diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-06-17 07:47:33 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-07-16 11:07:47 +0200 |
commit | cc834ee647dee624805215d8270cb6f23083aa2a (patch) | |
tree | f0b8a1f3a7ca255f2fa6520669ca7fcdc17782e8 /src/quick3d | |
parent | 7200f5d869be35cd7bc47b22487aca321335e31a (diff) |
Fix following recent Scene3DRenderer changes
f39178a415cb41470775a86e0aa358faa3686d81 makes QtQuick redraw only when
something in the 3D scene has triggered a change.
A function is connected to QQuickWindow::afterSynchronizing to check
whether the 3D scene needs to be drawn again and if so the corresponding
SceneGraph nodes are marked as dirty. However, we need to ensure the SceneGraph
picks up that we've marked a node as dirty by calling QQuickItem::update().
This forces updatePaintNode to be called at the next frame since the
afterSynchronizing stage occurs after that step.
This fixes rendering freezes with the Always render policy.
Change-Id: I041dbe69d12a7e6e884c8ee0e29720d74ce5fa2f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d')
-rw-r--r-- | src/quick3d/imports/scene3d/scene3drenderer.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp index ca637f830..bda8e7343 100644 --- a/src/quick3d/imports/scene3d/scene3drenderer.cpp +++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp @@ -313,6 +313,7 @@ void Scene3DRenderer::synchronize() m_lastMultisample = m_multisample; m_node->markDirty(QSGNode::DirtyMaterial); + m_item->update(); } } |