summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-06-17 07:47:33 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-07-16 11:07:47 +0200
commitcc834ee647dee624805215d8270cb6f23083aa2a (patch)
treef0b8a1f3a7ca255f2fa6520669ca7fcdc17782e8
parent7200f5d869be35cd7bc47b22487aca321335e31a (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>
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer.cpp1
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();
}
}