diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-02-10 15:51:16 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-25 17:08:02 +0100 |
commit | aaea23708a46259094a8203f73ee0650c362d85f (patch) | |
tree | 2d6dda4f7542fd091bca8008f962bc8fcb6ffc41 /src/quick/scenegraph/qsgrenderloop.cpp | |
parent | b9f74e7467f31b63bd0ff2ae9d66bcd61a8b8b6f (diff) |
Introduced a few more signals to QQuickWindow.
Also marked the new afterAnimation() signal as \since 5.3 and
introduced proper revisioning on the new signals.
[Changelog][QtQuick] Added QQuickWindow::afterSynchronizing(),
openglContextCreated(), sceneGraphAboutToStop(). Useful for
deeper integration with the rendering.
Change-Id: I5532b310506c2432325595e55ef9307b8934abee
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/quick/scenegraph/qsgrenderloop.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgrenderloop.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp index 499abab76b..9ff34f92b8 100644 --- a/src/quick/scenegraph/qsgrenderloop.cpp +++ b/src/quick/scenegraph/qsgrenderloop.cpp @@ -241,6 +241,7 @@ void QSGGuiThreadRenderLoop::hide(QQuickWindow *window) QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); if (gl) gl->makeCurrent(window); + cd->fireAboutToStop(); cd->cleanupNodesOnShutdown(); if (m_windows.size() == 0) { @@ -268,7 +269,8 @@ void QSGGuiThreadRenderLoop::windowDestroyed(QQuickWindow *window) void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow *window) { - if (!QQuickWindowPrivate::get(window)->isRenderable() || !m_windows.contains(window)) + QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); + if (!cd->isRenderable() || !m_windows.contains(window)) return; WindowData &data = const_cast<WindowData &>(m_windows[window]); @@ -294,10 +296,11 @@ void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow *window) if (!signalEmitted) qFatal("%s", qPrintable(nonTranslatedMsg)); } else { + cd->fireOpenGLContextCreated(gl); current = gl->makeCurrent(window); } if (current) - QQuickWindowPrivate::get(window)->context->initialize(gl); + cd->context->initialize(gl); } else { current = gl->makeCurrent(window); } @@ -308,7 +311,6 @@ void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow *window) if (!current) return; - QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); cd->polishItems(); emit window->afterAnimating(); |