Complete rewrite of threaded render loop.
authorGunnar Sletta <gunnar.sletta@digia.com>
Wed, 5 Dec 2012 14:27:47 +0000 (06:27 -0800)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 18 Jan 2013 11:26:55 +0000 (12:26 +0100)
commitebe8b9408cfcd953fae80514aa67e49221541bed
treea9728a64f5f462dc45dabce591f67140738b0edc
parent9c54d0ef8f6442e32d5762edccef46db80b68681
Complete rewrite of threaded render loop.

This change starts using the superior implementation of the scene graph
render loop which has been worked on in the scenegraph-playground
project for a while. It uses a far more straightforward locking/sync
paradigm compared to the existing one and is less deadlock and error
prone. It also enables the scene graph thread to run on its own when
the GUI thread is blocked, enabling threaded animations.

This changes also introduces a naming change inside Qt Quick from
"Window Manager" -> "Render Loop" as that fits better to what the
code does.

Change-Id: I1c2170ee04fcbef79660bd7dae6cace647cdb276
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
25 files changed:
src/quick/designer/designersupport.cpp
src/quick/designer/designerwindowmanager_p.h
src/quick/items/context2d/qquickcontext2d.cpp
src/quick/items/context2d/qquickcontext2d_p.h
src/quick/items/items.pri
src/quick/items/qquickthreadedwindowmanager.cpp [deleted file]
src/quick/items/qquickthreadedwindowmanager_p.h [deleted file]
src/quick/items/qquickwindow.cpp
src/quick/items/qquickwindow_p.h
src/quick/scenegraph/qsgcontext_p.h
src/quick/scenegraph/qsgcontextplugin.cpp
src/quick/scenegraph/qsgcontextplugin_p.h
src/quick/scenegraph/qsgrenderloop.cpp [moved from src/quick/items/qquickwindowmanager.cpp with 87% similarity]
src/quick/scenegraph/qsgrenderloop_p.h [moved from src/quick/items/qquickwindowmanager_p.h with 88% similarity]
src/quick/scenegraph/qsgthreadedrenderloop.cpp [new file with mode: 0644]
src/quick/scenegraph/qsgthreadedrenderloop_p.h [new file with mode: 0644]
src/quick/scenegraph/scenegraph.pri
tests/auto/quick/examples/tst_examples.cpp
tests/auto/quick/qquickflickable/qquickflickable.pro
tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
tests/auto/quick/qquickwindow/data/showHideAnimate.qml [new file with mode: 0644]
tests/auto/quick/qquickwindow/qquickwindow.pro
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp