| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4compileddata.cpp
src/qml/compiler/qv4compileddata_p.h
src/qml/jsruntime/qv4engine.cpp
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4qmlcontext_p.h
src/qml/jsruntime/qv4regexpobject.cpp
src/qml/jsruntime/qv4regexpobject_p.h
src/qml/types/qqmllistmodel.cpp
src/quick/items/qquickanimatedimage_p.h
src/quick/scenegraph/qsgrenderloop.cpp
tests/auto/qml/qmlcachegen/tst_qmlcachegen.cpp
Change-Id: If20ef62b2c98bdf656cb2f5d27b1897b754d3dc0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the default for OpenGL and D3D12 QSGLayer implementations, and
means that code using QSGLayer can end up rendering upside down if
switched the software backend.
Task-number: QTBUG-62929
Change-Id: Ib34b10c4eb834d2ef52e9005866242886b3addeb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I7d092cce33cb009d63e7b0df7c71183089dea53f
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-61939
Change-Id: Ibb7f242241df0a7a418ab4f268487e72d5595622
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/quick/doc/src/qmltypereference.qdoc
Change-Id: Ia58f1c5a98309c32ef8d8e5c893faf261215f19f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the 'basic' and the 'windows' render loop the scene graph
context is shared. Because of this we cannot start deleting textures
after the first window is synchronized as it may contain textures
needed by the another window, which is not yet synchronized.
QWindowPrivate::syncSceneGraph() is not calling endSync() anymore
as it doesn't know whether it is the last window or not. Instead
the renderloop is now responsible for calling endSync() once this
is safe to do.
Change-Id: Icb50ebfb447c928e38b41df7e26f3bfafdb4a811
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Say hello to Shape.
Change-Id: I1093feee4acc375e62bae1d351db0a7969a536d0
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp
Change-Id: Id8107cb0de0fbfe7120a90a137b49c2b915ff2d3
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
Change-Id: Iea0bb0788357bc615d0e9ea411087114b8b3b720
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I0cbb2ba4a00580e6a74a4e4085fc4eb06d0fadae
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Iba540adaeffb0098fc4e1923050eb611bf47287b
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I762e578aaf14a77efa26ce3fda2abb0e335003ea
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I27aa5f94165fb07807d2bb711d81eade552b9f76
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\ \ \ \ \ \ \ \
| |_|_|_|_|_|/ /
|/| | | | | | /
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
Change-Id: I3c41b9fc9ba7d41741e4dd400402ae80dd7726d9
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I3edebdd149d901992b7db5410bb871ba1bcd454e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I61ab3d0bd8cc02f640c60c037226eace09ec09ba
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The software renderers dirty region calculation is done in integral logical
coordinates, which leads to quite some trouble when handling scene graph
elements with fractional coordinates (used by WebEngine for example).
The optimal solution would probably be to either use integral physical
coordinates or floating point logical coordinates, however this would seem to
require substantial changes to QPainter and QBackingStore and so on. So, this
patch instead changes the calculation to use something like interval arithmetic:
instead of just rounding each logical coordinate to the nearest integer the
renderer now uses (very carefully) both the upper and lower boundaries to make
sure that the dirty regions always err on the side of caution.
I expect this change to make rendering slower but only in situations where
previously there would be rendering errors.
Task-number: QTBUG-60393
Change-Id: I7f8e7d2739c810328c841130df9c1c7332439447
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\| | | | | |
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4argumentsobject.cpp
src/qml/jsruntime/qv4arraydata.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4errorobject.cpp
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4internalclass.cpp
src/qml/jsruntime/qv4lookup.cpp
src/qml/jsruntime/qv4managed.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4heap_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/memory/qv4mmdefs_p.h
src/quick/scenegraph/util/qsgdistancefieldutil.cpp
src/quick/scenegraph/util/qsgdistancefieldutil_p.h
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Task-number: QTBUG-59865
Change-Id: I18911734b34e535c2c77d5a860bd776105617663
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\| | | | |
| |_|_|_|/
|/| | | |
| | | | | |
Change-Id: I71275a2076c3d32ee2896571be882067320a2e9e
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\| | | |
| |_|_|/
|/| | |
| | | | |
Change-Id: I0ec164ce6e8099e6e4d6b40a3c7340737473ef4b
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The software render loop updates the window content via either an expose
event or an update event. An expose event should always flush the entire
backingstore, but previously only the newly updated region would be
flushed. The first time a window is exposed this is fine because the whole
scene would be rendered, but when hidden and shown again, the software
renderer might show that nothing has changed, and nothing would be
flushed. A new flag has been added that forces a full window flush for an
expose event.
Task-number: QTBUG-59177
Change-Id: I3700bbcc76bc97be4eb0c822e2945ebef339f11a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I48e26b1491024d41ebf75d40f0d1a7e9a1b20f22
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][Qt Quick] Added the properties ShaderEffectSource.samples
and Item.layer.samples to allow requesting MSAA rendering of an item
subtree, without enabling multisampling for the entire scene.
Task-number: QTBUG-58945
Change-Id: I9102cfabba10d4dc1e7ad2aa0b258ada6d9a5a47
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
We cannot use dynamic_cast in Qt.
Change-Id: Ia6aeeb2439ca8c24239dce7cff55a0c18860e43e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... when destroying the last window while it is still visible.
For the case of windowDestroyed(), the QQuickWindow can still be
isVisible true and isExposed true. Given these circumstances, we would
not stop the timer (assuming that we needed to keep it running), but
this is actually wrong when we are evaluating a timer change depending
on the window being destroyed.
By calling startOrStopAnimationTimer again, after the window has been
removed from m_windows, we will successfully stop the timer -- the only
cost being an unnecessary polish event being sent from the first call
(which will be ignored).
Task-number: QTBUG-58091
Change-Id: I043ce5d88eafee15019e1c8d41c06d531d1da059
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp
src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp
src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp
src/qml/qml/qqmlimport.cpp
src/quick/items/context2d/qquickcontext2dtexture_p.h
tools/qmleasing/splineeditor.h
Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The renderers added in 5.8 had to be adapted to the changed profiling
macros from 5.6.
Conflicts:
src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
src/quick/util/qquickprofiler_p.h
tests/auto/qml/qjsengine/tst_qjsengine.cpp
tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
Change-Id: Icb370b7c95aab12589ad73881ac6d178759a5c6b
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4object_p.h
Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
|
| |
| |
| |
| |
| | |
Change-Id: I60e674760725d4c4dd13f53b31c3abb6b09c1790
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4variantobject.cpp
src/qml/types/qquickworkerscript.cpp
src/quick/scenegraph/util/qsgdefaultpainternode_p.h
tools/qmljs/qmljs.cpp
Change-Id: I876242714ec8c046238d8fd673a5ace2455b2b59
|
| |
| |
| |
| |
| |
| | |
Change-Id: Iab5c5261cb3cdce3d02fa6cd19ae6f594b6fc649
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4isel_moth_p.h
Change-Id: I8e86a649d1ef8ad27dc66cc8c290093b2faabc69
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For some reason the QPaintDevice of a QBackingStore is not valid on
HiDPI QBackingStores until QBackingStore::begin() has been called. I
suspect this is a bug in qtbase, but until this is fixed this change
will make sure that the paint device will always be valid, even in this
unusual situation.
Task-number: QTBUG-55875
Change-Id: I63137d0de9b68d29bfcf86d1807f576923875b5d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|/
|
|
|
|
|
|
|
|
| |
Replace it with char* literal in overloaded functions.
Saves some text size.
Change-Id: Iede24c2169d7329aa17c2175b10873c98c27361f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Also port remaining foreach to 'range for'.
Change-Id: I20296bb3bb6d63f144ebddaba02cabeb16b7d734
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
qsgsoftwarerenderablenode.cpp:221:11: warning: 'scissorRect' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
(plus 4 more)
Change-Id: Ie6b85d2eba9e3fbda8cfdc03abfece98df1bb28f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
This key was formerly used by the external plugin, so we should continue to
respect it to maintain compatibility with it.
Change-Id: I76118250d8ce94aad200c6d4d9f00b8f8cd968ea
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having rendernodes triggering fullscreen updates with the software backend
is not ideal. Therefore, introduce the option of reporting that the rendernode
is well-behaving, meaning it only writes inside the reported bounding rectangle.
Similarly, the OpenGL batch renderer can keep using the depth buffer when the
rendernode is known to behave like the renderer expects.
Change-Id: I6acc434432c2504776f26e8917b5434b44be293d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
| |
Under certain circumstances the clip node state would not get
propagated properly to child nodes.
Change-Id: I6f34690c7cc6f2837854fbcaff9aa4d7522e47c3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This is a new attempt at providing a threaded render loop for the
software adaptation in scenegraph. This approach is modeled after the
D3D12 backend, and provides a separate thread for each window. To
enable use the environment variable QSG_RENDER_LOOP=threaded as with the
other backends.
Change-Id: I6932975dd9c5579d36f0135aa4626dcc43b45ecd
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
Missing features in the QSGImageNode based software node.
Change-Id: If6a759873d201307e013a3ab019bd906d98ba7d5
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Have to change getResource() a bit since it turns out it is not suitable
currently for backends that do not have a per-window rendercontext and do
not implement the interface on the rendercontext. Pass in the window to
make sure it can always figure out which window we want the resources for.
(we do not want rendererInterface() to return window-specific instances
created on the fly, with ownership issues, so stick with the simple model
where backends implement the interface on one of their existing classes)
To support clipping, QSGRenderNode::RenderState is extended accordingly.
Also updated the docs since some claims in the rendernode docs are not true
since Qt 5.3.
Change-Id: I34779c83926f5231b888fcab7131e873ae97964f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling grabWindow recurses (since that is implemented via
QQuickRenderControl::grab...) so it's not an option. Instead,
call directly in the software renderer implementation.
Fix also the size of the offscreen QQuickWindow when using QQuickWidget
in combination with the software backend.
Change-Id: I857a2cc0aebbbaa5d52d809aeaec37c15b0787b9
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most core Qt Quick items use one of the nodes provided by the Scenegraph
Adaptation Layer, however the two items that provide support for Sprites
created their own custom nodes. There was significant redundancy in
this, and it made it only possible to use the OpenGL adaptation. The
AnimatedSprite and SpriteSequence items have been cleaned up, and now
use the new QSGSpriteNode.
Change-Id: Idc20b9c5da9dc1c94f6368021785382cdf7cec5a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I5e7c144e60959b9230c0757b4ad0e035f5f52f58
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
| |
I forsee this as a good way to get confused in the future otherwise.
Change-Id: I85a76bc4666db206b694b6fca6bdcc410e159126
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling invalidate() from the destructor is a bad idea since what we get
is the QSGRenderContext implementation, not the one from the more-derived
class. (it could have been intentional as well - it is confusing in any case
and unnecessary).
There is no adaptation relying in this anyways - invalidate() is always
invoked manually, typically from windowDestroyed. This is very good since it
avoids the at first less-than-obvious trouble with emitting invalidated()
from the rendercontext dtor. (that can in turn can trigger random amount of
code potentially calling back into the rendercontext and rely on virtuals
which are not functional anymore due to the vtable not there for the
functions in the more-derived class)
Change-Id: I44d78c5a819230f7006d33d4341eff45d8f77c88
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
This patch adds two virtual methods to QSGImageNode to set/get the
filtering mode for mipmapping, which makes it also possible to enable
it, which was previously not possible
Change-Id: Ie08a11aab35d8ba335841ca0eb73ef4b3d184d7e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|