diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-03-13 16:12:22 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2015-04-25 08:05:11 +0000 |
commit | 8c692dd5d17b7dd7877dec021440549dbf4d1a43 (patch) | |
tree | 561a28dcf10738b559dda9c92b014869c6aa7f5b /src/render/backend/qrenderaspect.cpp | |
parent | aa4442aa7138583c7d194796736038b3d62c56f1 (diff) |
Renderer: apply per RenderView global RenderState
Each RenderView now has a RenderStateSet. If the FrameGraph tree contains
a StateSet node, the RenderStateSet will be created and filled correctly in
the RenderView. Otherwise the RenderView's RenderStateSet will remain null.
When comes render time, foreach RenderView, if the RenderStateSet is not null,
it will be applied before processing the rest of the RenderView.
Change-Id: Id0aecce1f77950665e17ff759336d7fc29a0afcf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/backend/qrenderaspect.cpp')
-rw-r--r-- | src/render/backend/qrenderaspect.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/render/backend/qrenderaspect.cpp b/src/render/backend/qrenderaspect.cpp index a6f9b85bb..695581ec5 100644 --- a/src/render/backend/qrenderaspect.cpp +++ b/src/render/backend/qrenderaspect.cpp @@ -61,6 +61,7 @@ #include <Qt3DRenderer/qtexture.h> #include <Qt3DRenderer/qeffect.h> #include <Qt3DRenderer/qshaderdata.h> +#include <Qt3DRenderer/qstateset.h> #include <Qt3DCore/qcameralens.h> #include <Qt3DRenderer/private/cameraselectornode_p.h> @@ -89,6 +90,7 @@ #include <Qt3DRenderer/private/updateworldtransformjob_p.h> #include <Qt3DRenderer/private/framecleanupjob_p.h> #include <Qt3DRenderer/private/rendertextureimage_p.h> +#include <Qt3DRenderer/private/statesetnode_p.h> #include <Qt3DCore/qentity.h> #include <Qt3DCore/qtransform.h> #include <Qt3DCore/qnodevisitor.h> @@ -218,6 +220,7 @@ void QRenderAspect::registerBackendTypes() registerBackendType<QParameter>(QBackendNodeFunctorPtr(new Render::RenderNodeFunctor<Render::RenderParameter, Render::ParameterManager>(d->m_renderer->parameterManager()))); registerBackendType<QShaderData>(QBackendNodeFunctorPtr(new Render::RenderShaderDataFunctor(d->m_renderer->shaderDataManager()))); registerBackendType<QAbstractTextureImage>(QBackendNodeFunctorPtr(new Render::RenderTextureImageFunctor(d->m_renderer->textureManager(), d->m_renderer->textureImageManager(), d->m_renderer->textureDataManager()))); + registerBackendType<QStateSet>(QBackendNodeFunctorPtr(new Render::FrameGraphNodeFunctor<Render::StateSetNode, QStateSet>(d->m_renderer->frameGraphManager()))); } void QRenderAspect::renderInitialize(QOpenGLContext *context) |