diff options
author | Gunnar Sletta <gunnar@sletta.org> | 2014-09-19 09:52:25 +0200 |
---|---|---|
committer | Gunnar Sletta <gunnar@sletta.org> | 2014-09-24 15:03:37 +0200 |
commit | c2706491906c053f5d38ddc0558a993bbf7cfd3e (patch) | |
tree | 9ad959a949e88c087f38cc501e6f2bc53f9ba44f /src/quick/items/qquickwindowmodule.cpp | |
parent | 37c52cf6453a91127bcf54f1506fe7eaffd563ad (diff) |
Fix cleanup of non-threaded render loops.
They would unconditionally call cleanupNodesOnShutdown on hide(), but
QQuickWindow::sceneGraphInvalidated would only be emitted if this was
the last window being hidden, leading to an inconsistent state in the
application.
Since the non-threaded render loops do not support releasing resources
(there is one OpenGL context and one QSGRenderContext shared between
all windows) we delay cleanup until the window is destroyed.
This change also make the render loops track the windows until they
are destroyed, similar to what the threaded one does. The purpose of
this is to, in the case of dangling windows, only trigger invalidation
of the scene graph when the last QQuickWindow is destroyed through
QSGRenderLoop::cleanup().
Task-number: QTBUG-41210
Change-Id: I7e12a4f726ebb3e7935c822b6046abb3590c583a
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/quick/items/qquickwindowmodule.cpp')
0 files changed, 0 insertions, 0 deletions