summaryrefslogtreecommitdiffstats
path: root/src/render/backend
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2015-12-15 14:04:46 +0100
committerKevin Ottens <kevin.ottens@kdab.com>2015-12-18 15:55:31 +0000
commitb9905ee50f93942f71c2203ecbe73a82b11841c2 (patch)
treeeb8bdcb5959ee6381f23cdb6ea78b8ad5bc5c621 /src/render/backend
parent38fe0e3aae7dbaacf02064defa42b8cff292703b (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.h3
-rw-r--r--src/render/backend/renderer.cpp5
-rw-r--r--src/render/backend/renderer_p.h2
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;