diff options
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r-- | src/quick/scenegraph/qsgwindowsrenderloop.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp index b88d21ce66..0e22fa8b7b 100644 --- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp +++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp @@ -35,6 +35,7 @@ #include <QtCore/QCoreApplication> #include <QtCore/QLibraryInfo> +#include <QtCore/QThread> #include <QtGui/QScreen> #include <QtGui/QGuiApplication> @@ -355,13 +356,20 @@ bool QSGWindowsRenderLoop::event(QEvent *event) void QSGWindowsRenderLoop::render() { RLDEBUG("render"); + bool rendered = false; foreach (const WindowData &wd, m_windows) { if (wd.pendingUpdate) { const_cast<WindowData &>(wd).pendingUpdate = false; renderWindow(wd.window); + rendered = true; } } + if (!rendered) { + RLDEBUG("no changes, sleep"); + QThread::msleep(m_vsyncDelta); + } + if (m_animationDriver->isRunning()) { RLDEBUG("advancing animations"); QSG_LOG_TIME_SAMPLE(time_start); |