diff options
-rw-r--r-- | src/core/aspects/qabstractaspect.cpp | 8 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect.h | 2 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect_p.h | 2 | ||||
-rw-r--r-- | src/core/aspects/qaspectmanager.cpp | 2 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 7 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.h | 2 | ||||
-rw-r--r-- | tests/auto/core/qaspectengine/tst_qaspectengine.cpp | 16 | ||||
-rw-r--r-- | tests/auto/core/qaspectfactory/tst_qaspectfactory.cpp | 1 | ||||
-rw-r--r-- | tests/benchmarks/render/jobs/tst_bench_jobs.cpp | 10 |
9 files changed, 19 insertions, 31 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 09d418509..edef2c19b 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -198,10 +198,9 @@ void QAbstractAspectPrivate::clearBackendNode(QNode *frontend) const } } -void QAbstractAspectPrivate::registerAspect(QEntity *rootObject) +void QAbstractAspectPrivate::setRootAndCreateNodes(QEntity *rootObject) { qCDebug(Aspects) << Q_FUNC_INFO << "rootObject =" << rootObject; - Q_Q(QAbstractAspect); if (rootObject == m_root) return; @@ -210,7 +209,6 @@ void QAbstractAspectPrivate::registerAspect(QEntity *rootObject) QNodeVisitor visitor; visitor.traverse(rootObject, this, &QAbstractAspectPrivate::createBackendNode); - q->onRootEntityChanged(rootObject); } QServiceLocator *QAbstractAspectPrivate::services() const @@ -269,10 +267,6 @@ void QAbstractAspect::onEngineShutdown() { } -void QAbstractAspect::onRootEntityChanged(QEntity *rootEntity) -{ - Q_UNUSED(rootEntity); -} } // of namespace Qt3DCore diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h index e4f8b8453..079c1bbd8 100644 --- a/src/core/aspects/qabstractaspect.h +++ b/src/core/aspects/qabstractaspect.h @@ -89,8 +89,6 @@ private: virtual void onEngineStartup(); virtual void onEngineShutdown(); - virtual void onRootEntityChanged(QEntity *rootEntity); - Q_DECLARE_PRIVATE(QAbstractAspect) friend class QAspectEngine; friend class QAspectManager; diff --git a/src/core/aspects/qabstractaspect_p.h b/src/core/aspects/qabstractaspect_p.h index bf7b035c3..5ce480288 100644 --- a/src/core/aspects/qabstractaspect_p.h +++ b/src/core/aspects/qabstractaspect_p.h @@ -80,7 +80,7 @@ class QT3DCORE_PRIVATE_EXPORT QAbstractAspectPrivate public: QAbstractAspectPrivate(); - void registerAspect(QEntity *rootObject); + void setRootAndCreateNodes(QEntity *rootObject); QServiceLocator *services() const; QAbstractAspectJobManager *jobManager() const; diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index 7ea94e63d..aacf753e4 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -154,7 +154,7 @@ void QAspectManager::setRootEntity(Qt3DCore::QEntity *root) if (m_root) { for (QAbstractAspect *aspect : qAsConst(m_aspects)) - aspect->d_func()->registerAspect(m_root); + aspect->d_func()->setRootAndCreateNodes(m_root); } } diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index 0b8aca1c7..dab0e856e 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -366,10 +366,13 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time) return jobs; } -void QRenderAspect::onRootEntityChanged(Qt3DCore::QEntity *rootEntity) +void QRenderAspect::onEngineStartup() { Q_D(QRenderAspect); - d->m_renderer->setSceneRoot(d, d->m_renderer->nodeManagers()->lookupResource<Render::Entity, Render::EntityManager>(rootEntity->id())); + Render::NodeManagers *managers = d->m_renderer->nodeManagers(); + Render::Entity *rootEntity = managers->lookupResource<Render::Entity, Render::EntityManager>(rootEntityId()); + Q_ASSERT(rootEntity); + d->m_renderer->setSceneRoot(d, rootEntity); } void QRenderAspect::onRegistered() diff --git a/src/render/frontend/qrenderaspect.h b/src/render/frontend/qrenderaspect.h index ffc8c53d9..52df56574 100644 --- a/src/render/frontend/qrenderaspect.h +++ b/src/render/frontend/qrenderaspect.h @@ -73,9 +73,9 @@ protected: QRenderAspect(QRenderAspectPrivate &dd, QObject *parent); Q_DECLARE_PRIVATE(QRenderAspect) - void onRootEntityChanged(Qt3DCore::QEntity *rootObject) Q_DECL_OVERRIDE; void onRegistered() Q_DECL_OVERRIDE; void onCleanup() Q_DECL_OVERRIDE; + void onEngineStartup() Q_DECL_OVERRIDE; private: friend class Render::Renderer; diff --git a/tests/auto/core/qaspectengine/tst_qaspectengine.cpp b/tests/auto/core/qaspectengine/tst_qaspectengine.cpp index efc1749e2..1edcf9b0f 100644 --- a/tests/auto/core/qaspectengine/tst_qaspectengine.cpp +++ b/tests/auto/core/qaspectengine/tst_qaspectengine.cpp @@ -40,18 +40,12 @@ class PrintRootAspect : public QAbstractAspect public: explicit PrintRootAspect(QObject *parent = 0) : QAbstractAspect(parent) - , m_rootEntity(nullptr) + , m_rootEntityId() { qDebug() << Q_FUNC_INFO; } private: - void onRootEntityChanged(QEntity *rootEntity) Q_DECL_OVERRIDE - { - qDebug() << Q_FUNC_INFO; - m_rootEntity = rootEntity; - } - void onRegistered() Q_DECL_OVERRIDE { qDebug() << Q_FUNC_INFO; @@ -60,6 +54,7 @@ private: void onEngineStartup() Q_DECL_OVERRIDE { qDebug() << Q_FUNC_INFO; + m_rootEntityId = rootEntityId(); } void onEngineShutdown() Q_DECL_OVERRIDE @@ -74,12 +69,12 @@ private: QVector<QAspectJobPtr> jobsToExecute(qint64) Q_DECL_OVERRIDE \ { - if (m_rootEntity) - qDebug() << Q_FUNC_INFO << m_rootEntity->objectName(); + if (m_rootEntityId) + qDebug() << Q_FUNC_INFO << m_rootEntityId; return QVector<QAspectJobPtr>(); } - QEntity *m_rootEntity; + QNodeId m_rootEntityId; }; #define FAKE_ASPECT(ClassName) \ @@ -91,7 +86,6 @@ public: \ : QAbstractAspect(parent) {} \ \ private: \ - void onRootEntityChanged(QEntity *) Q_DECL_OVERRIDE {} \ void onRegistered() Q_DECL_OVERRIDE {} \ void onEngineStartup() Q_DECL_OVERRIDE {} \ void onEngineShutdown() Q_DECL_OVERRIDE {} \ diff --git a/tests/auto/core/qaspectfactory/tst_qaspectfactory.cpp b/tests/auto/core/qaspectfactory/tst_qaspectfactory.cpp index 513a5ffc8..f902bbf80 100644 --- a/tests/auto/core/qaspectfactory/tst_qaspectfactory.cpp +++ b/tests/auto/core/qaspectfactory/tst_qaspectfactory.cpp @@ -41,7 +41,6 @@ public: \ : QAbstractAspect(parent) {} \ \ private: \ - void onRootEntityChanged(QEntity *) Q_DECL_OVERRIDE {} \ void onRegistered() Q_DECL_OVERRIDE {} \ void onEngineStartup() Q_DECL_OVERRIDE {} \ void onEngineShutdown() Q_DECL_OVERRIDE {} \ diff --git a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp index 3c530c42f..608c9ff16 100644 --- a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp +++ b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp @@ -233,7 +233,7 @@ private Q_SLOTS: QFETCH(Qt3DCore::QEntity*, rootEntity); TestAspect aspect; - Qt3DCore::QAbstractAspectPrivate::get(&aspect)->registerAspect(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); + Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); // WHEN QVector<Qt3DCore::QAspectJobPtr> jobs = aspect.worldTransformJob(); @@ -256,7 +256,7 @@ private Q_SLOTS: QFETCH(Qt3DCore::QEntity*, rootEntity); TestAspect aspect; - Qt3DCore::QAbstractAspectPrivate::get(&aspect)->registerAspect(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); + Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); // WHEN QVector<Qt3DCore::QAspectJobPtr> jobs = aspect.updateBoundingJob(); @@ -279,7 +279,7 @@ private Q_SLOTS: QFETCH(Qt3DCore::QEntity*, rootEntity); TestAspect aspect; - Qt3DCore::QAbstractAspectPrivate::get(&aspect)->registerAspect(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); + Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); // WHEN QVector<Qt3DCore::QAspectJobPtr> jobs = aspect.calculateBoundingVolumeJob(); @@ -302,7 +302,7 @@ private Q_SLOTS: QFETCH(Qt3DCore::QEntity*, rootEntity); TestAspect aspect; - Qt3DCore::QAbstractAspectPrivate::get(&aspect)->registerAspect(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); + Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); // WHEN QVector<Qt3DCore::QAspectJobPtr> jobs = aspect.framePreparationJob(); @@ -325,7 +325,7 @@ private Q_SLOTS: QFETCH(Qt3DCore::QEntity*, rootEntity); TestAspect aspect; - Qt3DCore::QAbstractAspectPrivate::get(&aspect)->registerAspect(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); + Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity)); // WHEN QVector<Qt3DCore::QAspectJobPtr> jobs = aspect.frameCleanupJob(); |