From cc83a9bc362dd7947ba12a93caf960b9a517e1ee Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 21 Mar 2016 14:36:45 -0700 Subject: [PATCH] Actually loop qml render and wake on pause --- libraries/gl/src/gl/OffscreenQmlSurface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/gl/src/gl/OffscreenQmlSurface.cpp b/libraries/gl/src/gl/OffscreenQmlSurface.cpp index 87bdbf786a..0a3598e840 100644 --- a/libraries/gl/src/gl/OffscreenQmlSurface.cpp +++ b/libraries/gl/src/gl/OffscreenQmlSurface.cpp @@ -122,7 +122,7 @@ void OffscreenQmlRenderThread::Queue::add(QEvent::Type type) { QEvent* OffscreenQmlRenderThread::Queue::take() { QMutexLocker locker(&_mutex); - if (size() == 0) { + while (isEmpty()) { _isWaiting = true; _waitCondition.wait(&_mutex); _isWaiting = false; @@ -130,7 +130,7 @@ QEvent* OffscreenQmlRenderThread::Queue::take() { QEvent* e = dequeue(); return e; } - + OffscreenQmlRenderThread::OffscreenQmlRenderThread(OffscreenQmlSurface* surface, QOpenGLContext* shareContext) : _surface(surface) { if (!_canvas.create(shareContext)) { static const char* error = "Failed to create OffscreenGLCanvas"; @@ -274,6 +274,7 @@ void OffscreenQmlRenderThread::resize() { void OffscreenQmlRenderThread::render() { if (_surface->_paused) { + _waitCondition.wakeOne(); return; }