<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/quick/scenegraph/qsgdefaultcontext.cpp, branch dev</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Quick/Scenegraph: Add default security headers (QUIP-23)</title>
<updated>2026-02-20T06:04:02+00:00</updated>
<author>
<name>Axel Spoerl</name>
<email>axel.spoerl@qt.io</email>
</author>
<published>2026-02-18T20:42:52+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ff028d3d3a94b09b84c86ddd24fc885b09c4a251'/>
<id>ff028d3d3a94b09b84c86ddd24fc885b09c4a251</id>
<content type='text'>
QUIP-23: Mark files with default security headers,
unless marked already.

Change-Id: If1cd98151d093e63c6ef8a5b6092a108c780e821
Reviewed-by: Richard Moe Gustavsen &lt;richard.gustavsen@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QUIP-23: Mark files with default security headers,
unless marked already.

Change-Id: If1cd98151d093e63c6ef8a5b6092a108c780e821
Reviewed-by: Richard Moe Gustavsen &lt;richard.gustavsen@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix text decoration on software backend</title>
<updated>2023-11-27T19:18:42+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2023-11-22T10:01:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3acc52f3d5eefdb17264c06aa6311b65e230d932'/>
<id>3acc52f3d5eefdb17264c06aa6311b65e230d932</id>
<content type='text'>
This amends d0cb311e0d3cd84c933bd993e6003f45be2ebdd8. In said
change, text decoration was implemented using the curve renderer
shaders, but neglected to consider that the QSGInternalTextNode is
used on all backends. This caused decorations to disappear when
using the software backend.

This patch slightly refactors it, so that the shader-based approach
is only used on the default RHI-based backend, and the software
backend will still use a rectangle node, since this works well with
that backend, even on fractional scaling displays.

Task-number: QTBUG-86977
Change-Id: I08a595b1a794c5b41a0f239328dc6f5f2fce70c0
Reviewed-by: Paul Olav Tvete &lt;paul.tvete@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This amends d0cb311e0d3cd84c933bd993e6003f45be2ebdd8. In said
change, text decoration was implemented using the curve renderer
shaders, but neglected to consider that the QSGInternalTextNode is
used on all backends. This caused decorations to disappear when
using the software backend.

This patch slightly refactors it, so that the shader-based approach
is only used on the default RHI-based backend, and the software
backend will still use a rectangle node, since this works well with
that backend, even on fractional scaling displays.

Task-number: QTBUG-86977
Change-Id: I08a595b1a794c5b41a0f239328dc6f5f2fce70c0
Reviewed-by: Paul Olav Tvete &lt;paul.tvete@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce a CurveRendering backend for text</title>
<updated>2023-11-11T10:42:49+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2023-10-10T12:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bde55ad574ac84440e2cdc9c1122a344bb1cb67a'/>
<id>bde55ad574ac84440e2cdc9c1122a344bb1cb67a</id>
<content type='text'>
This moves the internals of the curve renderer out from
Qt Quick Shapes and into a more centralized location
in Qt Quick, so that we can use the same code to create
a new text backend for rendering large scale text without
artifacts.

Change-Id: I3f7e6f7961c1bbe230fcb531c0ca028e038c1afd
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This moves the internals of the curve renderer out from
Qt Quick Shapes and into a more centralized location
in Qt Quick, so that we can use the same code to create
a new text backend for rendering large scale text without
artifacts.

Change-Id: I3f7e6f7961c1bbe230fcb531c0ca028e038c1afd
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make text node scenegraph API public</title>
<updated>2023-09-01T09:20:33+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2023-08-24T07:57:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8e7572ac63b4eb7ced5148fdca11702108fa511d'/>
<id>8e7572ac63b4eb7ced5148fdca11702108fa511d</id>
<content type='text'>
A lot of functionality is hidden underneath this, so exposing
this API will make it possible to build custom text-based
components for Qt Quick.

[ChangeLog][Text] Added QSGTextNode and QQuickWindow::createTextNode()
for creating scene graph nodes containing text. This can be useful when
building custom Qt Quick items with text.

Fixes: QTBUG-72773
Change-Id: I4810589cc28eb1cdfe91c9d8b66f4c6fe52a0c6a
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A lot of functionality is hidden underneath this, so exposing
this API will make it possible to build custom text-based
components for Qt Quick.

[ChangeLog][Text] Added QSGTextNode and QQuickWindow::createTextNode()
for creating scene graph nodes containing text. This can be useful when
building custom Qt Quick items with text.

Fixes: QTBUG-72773
Change-Id: I4810589cc28eb1cdfe91c9d8b66f4c6fe52a0c6a
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to the RHI API concept</title>
<updated>2023-05-22T10:08:08+00:00</updated>
<author>
<name>Laszlo Agocs</name>
<email>laszlo.agocs@qt.io</email>
</author>
<published>2023-04-27T12:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ace43e1db17d1bfbf549a5c4c6ef49c3ccaf10fc'/>
<id>ace43e1db17d1bfbf549a5c4c6ef49c3ccaf10fc</id>
<content type='text'>
Besides following the header naming changes, make the obvious API
changes that are based on data that is already there but was hidden
previously due to not wanting anything QRhi to shine through in the
public API.

This kind of hiding is no longer needed, even if qrhi.h and similar
still cannot be included from a public header. Forward declarations
are now perfectly fine however.

Task-number: QTBUG-113331
Change-Id: I9a114082cf9218edc487df50956f5793d6b8bdb4
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Besides following the header naming changes, make the obvious API
changes that are based on data that is already there but was hidden
previously due to not wanting anything QRhi to shine through in the
public API.

This kind of hiding is no longer needed, even if qrhi.h and similar
still cannot be included from a public header. Forward declarations
are now perfectly fine however.

Task-number: QTBUG-113331
Change-Id: I9a114082cf9218edc487df50956f5793d6b8bdb4
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Guard header files that belong to opengl feature</title>
<updated>2022-09-26T08:59:15+00:00</updated>
<author>
<name>Alexey Edelev</name>
<email>alexey.edelev@qt.io</email>
</author>
<published>2022-09-23T18:24:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ef97bf04af96980004cd1476b7ffc964be1be165'/>
<id>ef97bf04af96980004cd1476b7ffc964be1be165</id>
<content type='text'>
Guard includes of the header files that are only available if the
opengl feature is enabled.

Task-number: QTBUG-103196
Change-Id: Ia91e171d8ff72d8471e1b24c5139317d051f1d69
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Guard includes of the header files that are only available if the
opengl feature is enabled.

Task-number: QTBUG-103196
Change-Id: Ia91e171d8ff72d8471e1b24c5139317d051f1d69
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use SPDX license identifiers</title>
<updated>2022-06-11T06:05:15+00:00</updated>
<author>
<name>Lucie Gérard</name>
<email>lucie.gerard@qt.io</email>
</author>
<published>2022-05-13T13:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0dc4fd240a2897c5c443a0ef6d84c416843e4938'/>
<id>0dc4fd240a2897c5c443a0ef6d84c416843e4938</id>
<content type='text'>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sg: Remove internal rhiEnabled flag with the default backend</title>
<updated>2022-04-21T19:04:00+00:00</updated>
<author>
<name>Laszlo Agocs</name>
<email>laszlo.agocs@qt.io</email>
</author>
<published>2022-04-07T11:24:15+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=6db226caab8a61f88e077c5fabb6a439aab4e69a'/>
<id>6db226caab8a61f88e077c5fabb6a439aab4e69a</id>
<content type='text'>
There is no other option since Qt 6.0, this is always true.
In 5.14 and 5.15 this made sense since opting in to the
QRhi-based code path was optional.

Change-Id: Ifbe374242af221d1729a0999949588b933ceeb55
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no other option since Qt 6.0, this is always true.
In 5.14 and 5.15 this made sense since opting in to the
QRhi-based code path was optional.

Change-Id: Ifbe374242af221d1729a0999949588b933ceeb55
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Better handle requesting no-vsync and make this usable with threaded</title>
<updated>2022-01-20T18:33:01+00:00</updated>
<author>
<name>Laszlo Agocs</name>
<email>laszlo.agocs@qt.io</email>
</author>
<published>2022-01-17T10:57:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8d9347085822afe3778909bf879a1274b97b231a'/>
<id>8d9347085822afe3778909bf879a1274b97b231a</id>
<content type='text'>
Just like we have e.g. QSG_NO_DEPTH_BUFFER, it is highly useful to
have a QSG_NO_VSYNC which is folded into swapInterval=0 which is then
mapped to QRhiSwapChain::NoVSync, i.e. both OpenGL and other APIs will
be happy. Thus one can, if so desired, try disabling vsync-based
blocking without modifying the application.

Now, since we know if there is at least one window that has
swapInterval == 0 set, the threaded render loop can recognize and
handle this: the same way it falls back to the system timer based
animation advancing when there are more than 1 visible windows, having
a no-vsync window can trigger the same. This way the animations
advancing too fast issue disappears (at the expense of potentially
more stuttering) whenever explicitly requesting the disabling of
vsync-based throttling.

In addition, expand the scenegraph docs around this topic.

Note however that this does nothing for animators (the render thread
animators). Those do not have a fallback option at all. If the render
thread spins too fast, they will advance too fast.

[ChangeLog][QtQuick] In addition to setting the swapInterval to 0 in
the QQuickWindow's QSurfaceFormat, one can now also set the
QSG_NO_VSYNC=1 environment variable to achieve the same (applies
globally to all Quick windows in the application). The threaded render
loop can now recognize that one or more windows have vsync-based
throttling disabled explicitly, and if so, it will fall back
automatically to using system timers to advance animations in order to
prevent animations from running too fast when the presentation rate is
not throttled by vsync.

Fixes: QTBUG-99950
Fixes: QTBUG-99951
Change-Id: Iddda81b467b48dbb8d87748868daa8d922ad1bd0
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just like we have e.g. QSG_NO_DEPTH_BUFFER, it is highly useful to
have a QSG_NO_VSYNC which is folded into swapInterval=0 which is then
mapped to QRhiSwapChain::NoVSync, i.e. both OpenGL and other APIs will
be happy. Thus one can, if so desired, try disabling vsync-based
blocking without modifying the application.

Now, since we know if there is at least one window that has
swapInterval == 0 set, the threaded render loop can recognize and
handle this: the same way it falls back to the system timer based
animation advancing when there are more than 1 visible windows, having
a no-vsync window can trigger the same. This way the animations
advancing too fast issue disappears (at the expense of potentially
more stuttering) whenever explicitly requesting the disabling of
vsync-based throttling.

In addition, expand the scenegraph docs around this topic.

Note however that this does nothing for animators (the render thread
animators). Those do not have a fallback option at all. If the render
thread spins too fast, they will advance too fast.

[ChangeLog][QtQuick] In addition to setting the swapInterval to 0 in
the QQuickWindow's QSurfaceFormat, one can now also set the
QSG_NO_VSYNC=1 environment variable to achieve the same (applies
globally to all Quick windows in the application). The threaded render
loop can now recognize that one or more windows have vsync-based
throttling disabled explicitly, and if so, it will fall back
automatically to using system timers to advance animations in order to
prevent animations from running too fast when the presentation rate is
not throttled by vsync.

Fixes: QTBUG-99950
Fixes: QTBUG-99951
Change-Id: Iddda81b467b48dbb8d87748868daa8d922ad1bd0
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix MSVC warning C4065</title>
<updated>2021-05-27T09:30:12+00:00</updated>
<author>
<name>Kai Köhne</name>
<email>kai.koehne@qt.io</email>
</author>
<published>2021-05-27T07:05:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0bdbfb9589ce912afbecc6fd3408f8320d78de10'/>
<id>0bdbfb9589ce912afbecc6fd3408f8320d78de10</id>
<content type='text'>
  qsgdefaultcontext.cpp(308): warning C4065: switch statement contains 'default' but no 'case' labels

Pick-to: 6.1
Change-Id: Ic050d21549cb3eeabade803a23e3e9eb202e3a74
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Laszlo Agocs &lt;laszlo.agocs@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  qsgdefaultcontext.cpp(308): warning C4065: switch statement contains 'default' but no 'case' labels

Pick-to: 6.1
Change-Id: Ic050d21549cb3eeabade803a23e3e9eb202e3a74
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Laszlo Agocs &lt;laszlo.agocs@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
