diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-08-14 11:50:10 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-08-29 08:32:29 +0200 |
commit | c1b1bbbb72a9d0c11d92c8cdb998c52d515932da (patch) | |
tree | ea126554b3dde2505deb10b1a5b381fd82384b13 /tests/auto/render/renderviewbuilder | |
parent | fa801839d384e9d6eea09350433e354cf753c267 (diff) |
Use sync method when initializing new backend nodes
If the node type supports syncing, use that rather than the creation
message. The message is still needed since that is passed to the
instantiation functor (none of qt3d's classes appear to use anything
but the node id, but can't be sure no other classes do, and can't add
other virtual method without breaking BC).
Change-Id: Id99f448070b8722a7809b968798772c9eb3c8397
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests/auto/render/renderviewbuilder')
-rw-r--r-- | tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp index aa34dc5b3..18c3b3f36 100644 --- a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp +++ b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp @@ -29,7 +29,8 @@ #include <QtTest/QTest> #include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/private/qaspectjobmanager_p.h> -#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> +#include <Qt3DCore/private/qnodevisitor_p.h> +#include <Qt3DCore/private/qnode_p.h> #include <Qt3DRender/private/renderviewbuilder_p.h> #include <Qt3DRender/private/qrenderaspect_p.h> @@ -67,11 +68,17 @@ public: Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data(); QRenderAspect::onRegistered(); - const Qt3DCore::QNodeCreatedChangeGenerator generator(root); - const QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = generator.creationChanges(); - - for (const Qt3DCore::QNodeCreatedChangeBasePtr change : creationChanges) - d_func()->createBackendNode(change); + QVector<Qt3DCore::QNode *> nodes; + Qt3DCore::QNodeVisitor v; + v.traverse(root, [&nodes](Qt3DCore::QNode *node) { + Qt3DCore::QNodePrivate *d = Qt3DCore::QNodePrivate::get(node); + d->m_typeInfo = const_cast<QMetaObject*>(Qt3DCore::QNodePrivate::findStaticMetaObject(node->metaObject())); + d->m_hasBackendNode = true; + nodes << node; + }); + + for (const auto node: nodes) + d_func()->createBackendNode(node); } ~TestAspect() |