summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-09-18 07:58:46 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-09-20 14:27:50 +0200
commitcda4e9cc4ba09d4117a809fa947a86fdeec8adc3 (patch)
tree0e49c32c916cfccd5680253774782e7b95d53d29
parentf8464b1daa8d8fd628b5e56d3256d01d0b7fa59e (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.cpp4
-rw-r--r--src/render/frontend/qrenderaspect.cpp2
-rw-r--r--tests/auto/render/setfence/tst_setfence.cpp12
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);