aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgrenderloop.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-02-10 15:51:16 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-25 17:08:02 +0100
commitaaea23708a46259094a8203f73ee0650c362d85f (patch)
tree2d6dda4f7542fd091bca8008f962bc8fcb6ffc41 /src/quick/scenegraph/qsgrenderloop.cpp
parentb9f74e7467f31b63bd0ff2ae9d66bcd61a8b8b6f (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.cpp8
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();