From aaea23708a46259094a8203f73ee0650c362d85f Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Mon, 10 Feb 2014 15:51:16 +0100 Subject: 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 --- src/quick/scenegraph/qsgrenderloop.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/quick/scenegraph/qsgrenderloop.cpp') 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(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(); -- cgit v1.2.3