diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2017-03-28 13:04:05 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2017-04-27 06:13:07 +0000 |
commit | 7442d9cd770a5a2e30734b0e242883bac7802226 (patch) | |
tree | 2ddd01de5639cc214226ec106015434a5af19244 /src/render/framegraph/framegraphvisitor.cpp | |
parent | 51c1d5bdfe4da07b9408af2290e2e7b3c9010fcd (diff) |
Render: make FrameGraphVisitor return a vector of FG nodes
Adjust the Renderer to be the one creating the RenderViewBuilder jobs. This
removes a bit of coupling that will be needed to later only execute some jobs on demand.
Change-Id: Ia5f1c6e6d40ee39595c661e177a08054ebc92a18
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'src/render/framegraph/framegraphvisitor.cpp')
-rw-r--r-- | src/render/framegraph/framegraphvisitor.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/render/framegraph/framegraphvisitor.cpp b/src/render/framegraph/framegraphvisitor.cpp index d31e9cddd..cd8b08219 100644 --- a/src/render/framegraph/framegraphvisitor.cpp +++ b/src/render/framegraph/framegraphvisitor.cpp @@ -43,7 +43,6 @@ #include "framegraphnode_p.h" #include <Qt3DRender/private/renderer_p.h> #include <Qt3DRender/private/managers_p.h> -#include <Qt3DRender/private/renderviewbuilder_p.h> #include <QThreadPool> QT_BEGIN_NAMESPACE @@ -53,24 +52,16 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Render { -FrameGraphVisitor::FrameGraphVisitor(Renderer *renderer, - const FrameGraphManager *manager) - : m_renderer(renderer) - , m_manager(manager) - , m_jobs(nullptr) - , m_renderviewIndex(0) - +FrameGraphVisitor::FrameGraphVisitor(const FrameGraphManager *manager) + : m_manager(manager) { + m_leaves.reserve(8); } -void FrameGraphVisitor::traverse(FrameGraphNode *root, - QVector<Qt3DCore::QAspectJobPtr> *jobs) +QVector<FrameGraphNode *> FrameGraphVisitor::traverse(FrameGraphNode *root) { - m_jobs = jobs; - m_renderviewIndex = 0; + m_leaves.clear(); - Q_ASSERT(m_renderer); - Q_ASSERT(m_jobs); Q_ASSERT_X(root, Q_FUNC_INFO, "The FrameGraphRoot is null"); // Kick off the traversal @@ -78,6 +69,7 @@ void FrameGraphVisitor::traverse(FrameGraphNode *root, if (node == nullptr) qCritical() << Q_FUNC_INFO << "FrameGraph is null"; visit(node); + return m_leaves; } void FrameGraphVisitor::visit(Render::FrameGraphNode *node) @@ -97,10 +89,8 @@ void FrameGraphVisitor::visit(Render::FrameGraphNode *node) // Leaf node - create a RenderView ready to be populated // TODO: Pass in only framegraph config that has changed from previous // index RenderViewJob. - if (fgChildIds.empty()) { - RenderViewBuilder builder(node, m_renderviewIndex++, m_renderer); - m_jobs->append(builder.buildJobHierachy()); - } + if (fgChildIds.empty()) + m_leaves.push_back(node); } } // namespace Render |