diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-01-15 13:16:55 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-01-17 17:20:50 +0000 |
commit | d5e7727c58a35a5f68260f4a1d4ce3a61d652765 (patch) | |
tree | 92d74bcb983f8c8a7c0470b5c98bb8ab09b4874e /src | |
parent | 21704e30c7abbf2f0d4cbc0f144c5bc5e3939abc (diff) |
Store the surface to use in the RenderView
Change-Id: I4dbdfe9315dc3b0bb89119372301d24a292520d9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/renderview.cpp | 1 | ||||
-rw-r--r-- | src/render/backend/renderview_p.h | 4 | ||||
-rw-r--r-- | src/render/jobs/renderviewjobutils.cpp | 11 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/render/backend/renderview.cpp b/src/render/backend/renderview.cpp index 40a3ccbc9..24e9d9c10 100644 --- a/src/render/backend/renderview.cpp +++ b/src/render/backend/renderview.cpp @@ -274,6 +274,7 @@ RenderView::RenderView() , m_data(Q_NULLPTR) , m_clearColor(Q_NULLPTR) , m_viewport(Q_NULLPTR) + , m_surface(Q_NULLPTR) , m_clearBuffer(QClearBuffer::None) , m_stateSet(Q_NULLPTR) , m_noDraw(false) diff --git a/src/render/backend/renderview_p.h b/src/render/backend/renderview_p.h index 4657dae81..ccb0554f3 100644 --- a/src/render/backend/renderview_p.h +++ b/src/render/backend/renderview_p.h @@ -230,6 +230,9 @@ public: void addSortCriteria(const QList<Qt3DCore::QNodeId> &sortMethodUid) { m_data->m_sortingCriteria.append(sortMethodUid); } + void setSurface(QSurface *surface) { m_surface = surface; } + QSurface *surface() const { return m_surface; } + // Helps making the size of RenderView smaller // Contains all the data needed for the actual building of the RenderView // But that aren't used later by the Renderer @@ -274,6 +277,7 @@ private: mutable QColor *m_clearColor; mutable QRectF *m_viewport; HTarget m_renderTarget; + QSurface *m_surface; AttachmentPack m_attachmentPack; QClearBuffer::BufferType m_clearBuffer; RenderStateSet *m_stateSet; diff --git a/src/render/jobs/renderviewjobutils.cpp b/src/render/jobs/renderviewjobutils.cpp index c9d7e2434..c2f03fc69 100644 --- a/src/render/jobs/renderviewjobutils.cpp +++ b/src/render/jobs/renderviewjobutils.cpp @@ -58,6 +58,7 @@ #include <Qt3DRender/private/shaderdata_p.h> #include <Qt3DRender/private/statesetnode_p.h> #include <Qt3DRender/private/dispatchcompute_p.h> +#include <Qt3DRender/private/rendersurfaceselector_p.h> QT_BEGIN_NAMESPACE @@ -222,6 +223,16 @@ void setRenderViewConfigFromFrameGraphLeafNode(RenderView *rv, const FrameGraphN break; } + case FrameGraphNode::Surface: { + // Use the surface closest to leaf node + if (rv->surface() == Q_NULLPTR) { + const Render::RenderSurfaceSelector *surfaceSelector + = static_cast<const Render::RenderSurfaceSelector *>(node); + rv->setSurface(surfaceSelector->surface()); + } + break; + } + default: // Should never get here qCWarning(Backend) << "Unhandled FrameGraphNode type"; |