mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 02:16:51 +02:00
Actually loop qml render and wake on pause
This commit is contained in:
parent
d3d0f229aa
commit
cc83a9bc36
1 changed files with 3 additions and 2 deletions
|
@ -122,7 +122,7 @@ void OffscreenQmlRenderThread::Queue::add(QEvent::Type type) {
|
||||||
|
|
||||||
QEvent* OffscreenQmlRenderThread::Queue::take() {
|
QEvent* OffscreenQmlRenderThread::Queue::take() {
|
||||||
QMutexLocker locker(&_mutex);
|
QMutexLocker locker(&_mutex);
|
||||||
if (size() == 0) {
|
while (isEmpty()) {
|
||||||
_isWaiting = true;
|
_isWaiting = true;
|
||||||
_waitCondition.wait(&_mutex);
|
_waitCondition.wait(&_mutex);
|
||||||
_isWaiting = false;
|
_isWaiting = false;
|
||||||
|
@ -130,7 +130,7 @@ QEvent* OffscreenQmlRenderThread::Queue::take() {
|
||||||
QEvent* e = dequeue();
|
QEvent* e = dequeue();
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
OffscreenQmlRenderThread::OffscreenQmlRenderThread(OffscreenQmlSurface* surface, QOpenGLContext* shareContext) : _surface(surface) {
|
OffscreenQmlRenderThread::OffscreenQmlRenderThread(OffscreenQmlSurface* surface, QOpenGLContext* shareContext) : _surface(surface) {
|
||||||
if (!_canvas.create(shareContext)) {
|
if (!_canvas.create(shareContext)) {
|
||||||
static const char* error = "Failed to create OffscreenGLCanvas";
|
static const char* error = "Failed to create OffscreenGLCanvas";
|
||||||
|
@ -274,6 +274,7 @@ void OffscreenQmlRenderThread::resize() {
|
||||||
|
|
||||||
void OffscreenQmlRenderThread::render() {
|
void OffscreenQmlRenderThread::render() {
|
||||||
if (_surface->_paused) {
|
if (_surface->_paused) {
|
||||||
|
_waitCondition.wakeOne();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue