diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-03-20 13:01:51 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-27 18:58:50 +0100 |
commit | 1d3ac919f2dafaa6482864c1e1940da5636bdc8c (patch) | |
tree | 295c520e572751e5648f56b964ac78b07fc631ce /src/quick/scenegraph | |
parent | d453b38415adcaef814ec54c3419673d2dbf4ce7 (diff) |
Let render loop be more tolerant wrt when markDirty is called.
Change-Id: I95f1d6fe4695a09b1b6ccaf026137dabc22ec82c
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgrenderer_p.h | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgthreadedrenderloop.cpp | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgrenderer_p.h b/src/quick/scenegraph/coreapi/qsgrenderer_p.h index 55c9444365..eddd38a68f 100644 --- a/src/quick/scenegraph/coreapi/qsgrenderer_p.h +++ b/src/quick/scenegraph/coreapi/qsgrenderer_p.h @@ -134,6 +134,8 @@ public: virtual void setCustomRenderMode(const QByteArray &) { }; + void clearChangedFlag() { m_changed_emitted = false; } + Q_SIGNALS: void sceneGraphChanged(); // Add, remove, ChangeFlags changes... diff --git a/src/quick/scenegraph/qsgthreadedrenderloop.cpp b/src/quick/scenegraph/qsgthreadedrenderloop.cpp index 40243a5b1b..9edca87d70 100644 --- a/src/quick/scenegraph/qsgthreadedrenderloop.cpp +++ b/src/quick/scenegraph/qsgthreadedrenderloop.cpp @@ -538,6 +538,10 @@ void QSGRenderThread::sync() if (current) { QQuickWindowPrivate *d = QQuickWindowPrivate::get(window); bool hadRenderer = d->renderer != 0; + // If the scene graph was touched since the last sync() make sure it sends the + // changed signal. + if (d->renderer) + d->renderer->clearChangedFlag(); d->syncSceneGraph(); if (!hadRenderer && d->renderer) { QSG_RT_DEBUG(" - renderer was created, hooking up changed signal"); |