diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/abstractrenderer_p.h | 3 | ||||
-rw-r--r-- | src/render/backend/renderer.cpp | 5 | ||||
-rw-r--r-- | src/render/backend/renderer_p.h | 2 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 2 |
4 files changed, 5 insertions, 7 deletions
diff --git a/src/render/backend/abstractrenderer_p.h b/src/render/backend/abstractrenderer_p.h index 2e24dc819..11e5b0a37 100644 --- a/src/render/backend/abstractrenderer_p.h +++ b/src/render/backend/abstractrenderer_p.h @@ -57,6 +57,7 @@ class QSurface; namespace Qt3DCore { class QAbstractFrameAdvanceService; +class QBackendNodeFactory; class QEventFilterService; class QAbstractAspectJobManager; } @@ -107,7 +108,7 @@ public: virtual Qt3DCore::QAspectJobPtr pickBoundingVolumeJob() = 0; virtual void setFrameGraphRoot(const Qt3DCore::QNodeId fgRootId) = 0; - virtual void setSceneRoot(Entity *root) = 0; + virtual void setSceneRoot(Qt3DCore::QBackendNodeFactory *factory, Entity *root) = 0; virtual Entity *sceneRoot() const = 0; virtual FrameGraphNode *frameGraphRoot() const = 0; diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp index a05800851..999570511 100644 --- a/src/render/backend/renderer.cpp +++ b/src/render/backend/renderer.cpp @@ -409,7 +409,7 @@ Render::FrameGraphNode *Renderer::frameGraphRoot() const // 3) setWindow -> waking Initialize if setSceneGraphRoot was called before // 4) Initialize resuming, performing initialization and waking up setSceneGraphRoot // 5) setSceneGraphRoot called || setSceneGraphRoot resuming if it was waiting -void Renderer::setSceneRoot(Entity *sgRoot) +void Renderer::setSceneRoot(QBackendNodeFactory *factory, Entity *sgRoot) { Q_ASSERT(sgRoot); QMutexLocker lock(&m_mutex); // This waits until initialize and setSurface have been called @@ -424,9 +424,6 @@ void Renderer::setSceneRoot(Entity *sgRoot) buildDefaultTechnique(); buildDefaultMaterial(); - // If that weren't for those lines, the renderer might not event need - // to know about the renderer aspect - QBackendNodeFactory *factory = QAbstractAspectPrivate::get(m_rendererAspect); factory->createBackendNode(m_defaultMaterial); factory->createBackendNode(m_defaultMaterial->effect()); factory->createBackendNode(m_defaultTechnique); diff --git a/src/render/backend/renderer_p.h b/src/render/backend/renderer_p.h index eead65190..105d45436 100644 --- a/src/render/backend/renderer_p.h +++ b/src/render/backend/renderer_p.h @@ -142,7 +142,7 @@ public: bool isRunning() const Q_DECL_OVERRIDE { return m_running.load(); } - void setSceneRoot(Entity *sgRoot) Q_DECL_OVERRIDE; + void setSceneRoot(Qt3DCore::QBackendNodeFactory *factory, Entity *sgRoot) Q_DECL_OVERRIDE; Entity *sceneRoot() const Q_DECL_OVERRIDE { return m_renderSceneRoot; } void setFrameGraphRoot(const Qt3DCore::QNodeId fgRootId) Q_DECL_OVERRIDE; diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index 337bb9747..34a5aa7c3 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -404,7 +404,7 @@ qint64 QRenderAspect::time() const void QRenderAspect::onRootEntityChanged(Qt3DCore::QEntity *rootEntity) { Q_D(QRenderAspect); - d->m_renderer->setSceneRoot(d->m_renderer->nodeManagers()->lookupResource<Render::Entity, Render::EntityManager>(rootEntity->id())); + d->m_renderer->setSceneRoot(d, d->m_renderer->nodeManagers()->lookupResource<Render::Entity, Render::EntityManager>(rootEntity->id())); } void QRenderAspect::onInitialize(const QVariantMap &data) |