diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-09-18 07:58:46 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-09-20 14:27:50 +0200 |
commit | cda4e9cc4ba09d4117a809fa947a86fdeec8adc3 (patch) | |
tree | 0e49c32c916cfccd5680253774782e7b95d53d29 | |
parent | f8464b1daa8d8fd628b5e56d3256d01d0b7fa59e (diff) |
Update QSetFence to use direct sync
Change-Id: Ifa586128a97844e20b8a287b3746d3f9a6acd0eb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r-- | src/render/framegraph/framegraphnode.cpp | 4 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 2 | ||||
-rw-r--r-- | tests/auto/render/setfence/tst_setfence.cpp | 12 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/render/framegraph/framegraphnode.cpp b/src/render/framegraph/framegraphnode.cpp index 093213b78..c30b155e8 100644 --- a/src/render/framegraph/framegraphnode.cpp +++ b/src/render/framegraph/framegraphnode.cpp @@ -160,7 +160,6 @@ void FrameGraphNode::cleanup() void FrameGraphNode::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - Q_UNUSED(firstTime); const QFrameGraphNode *node = qobject_cast<const QFrameGraphNode *>(frontEnd); const auto parentId = Qt3DCore::qIdForNode(node->parentFrameGraphNode()); @@ -174,6 +173,9 @@ void FrameGraphNode::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firs d_func()->m_enabled = node->isEnabled(); markDirty(AbstractRenderer::FrameGraphDirty); } + + if (firstTime) + markDirty(AbstractRenderer::FrameGraphDirty); } diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index 1305fa32d..509cf5c25 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -314,7 +314,7 @@ void QRenderAspectPrivate::registerBackendTypes() q->registerBackendType<QMemoryBarrier, true>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::MemoryBarrier, QMemoryBarrier> >::create(m_renderer)); q->registerBackendType<QProximityFilter, true>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::ProximityFilter, QProximityFilter> >::create(m_renderer)); q->registerBackendType<QBlitFramebuffer, true>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::BlitFramebuffer, QBlitFramebuffer> >::create(m_renderer)); - q->registerBackendType<QSetFence>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::SetFence, QSetFence> >::create(m_renderer)); + q->registerBackendType<QSetFence, true>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::SetFence, QSetFence> >::create(m_renderer)); q->registerBackendType<QWaitFence>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::WaitFence, QWaitFence> >::create(m_renderer)); q->registerBackendType<QNoPicking>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::NoPicking, QNoPicking> >::create(m_renderer)); q->registerBackendType<QSubtreeEnabler>(QSharedPointer<Render::FrameGraphNodeFunctor<Render::SubtreeEnabler, QSubtreeEnabler> >::create(m_renderer)); diff --git a/tests/auto/render/setfence/tst_setfence.cpp b/tests/auto/render/setfence/tst_setfence.cpp index b70bf548c..92f7a0acc 100644 --- a/tests/auto/render/setfence/tst_setfence.cpp +++ b/tests/auto/render/setfence/tst_setfence.cpp @@ -75,7 +75,7 @@ private Q_SLOTS: // WHEN Qt3DRender::Render::SetFence backendSetFence; backendSetFence.setRenderer(&renderer); - simulateInitialization(&setFence, &backendSetFence); + simulateInitializationSync(&setFence, &backendSetFence); // THEN QCOMPARE(backendSetFence.isEnabled(), true); @@ -88,7 +88,7 @@ private Q_SLOTS: Qt3DRender::Render::SetFence backendSetFence; setFence.setEnabled(false); backendSetFence.setRenderer(&renderer); - simulateInitialization(&setFence, &backendSetFence); + simulateInitializationSync(&setFence, &backendSetFence); // THEN QCOMPARE(backendSetFence.peerId(), setFence.id()); @@ -101,16 +101,16 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::SetFence backendSetFence; + Qt3DRender::QSetFence setFence; TestRenderer renderer; backendSetFence.setRenderer(&renderer); + simulateInitializationSync(&setFence, &backendSetFence); { // WHEN const bool newValue = false; - const auto change = Qt3DCore::QPropertyUpdatedChangePtr::create(Qt3DCore::QNodeId()); - change->setPropertyName("enabled"); - change->setValue(newValue); - backendSetFence.sceneChangeEvent(change); + setFence.setEnabled(newValue); + backendSetFence.syncFromFrontEnd(&setFence, false); // THEN QCOMPARE(backendSetFence.isEnabled(), newValue); |