diff options
author | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-15 14:04:46 +0100 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-18 15:55:31 +0000 |
commit | b9905ee50f93942f71c2203ecbe73a82b11841c2 (patch) | |
tree | eb8bdcb5959ee6381f23cdb6ea78b8ad5bc5c621 /src/render/backend | |
parent | 38fe0e3aae7dbaacf02064defa42b8cff292703b (diff) |
Pass the QBackendNodeFactory to setSceneRoot
This helps to reduce the dependencies from the Renderer to the QRenderAspect.
Change-Id: Id54e38642061f787649ba3794cafb8b8bbbde3f1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/backend')
-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 |
3 files changed, 4 insertions, 6 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; |