summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-08-09 12:15:39 +0200
committerPaul Lemire <paul.lemire@kdab.com>2016-08-09 13:12:26 +0000
commit0045f1cfdfe669dd4f9c5f78d4d7dab153e2a17b (patch)
tree43e7ba16d86766a5859dec7b5232e21dbe033058
parentc85d68638ee2e3f903f3421002ce2d6dd8da60d9 (diff)
Simplify RV state handling
Change-Id: Id7cb66f13560eb856327a1ec4cbc6b4c7545224b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/backend/renderer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp
index 66efb6dcb..c91eff86e 100644
--- a/src/render/backend/renderer.cpp
+++ b/src/render/backend/renderer.cpp
@@ -811,6 +811,7 @@ Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const QVector<Ren
QSurface *surface = nullptr;
QSurface *previousSurface = renderViews.first()->surface();
QSurface *lastUsedSurface = nullptr;
+
for (int i = 0; i < renderViewsCount; ++i) {
// Initialize GraphicsContext for drawing
// If the RenderView has a RenderStateSet defined
@@ -855,13 +856,14 @@ Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const QVector<Ren
lastBoundFBOId = m_graphicsContext->boundFrameBufferObject();
}
- // Set RenderView render state
// Note: the RenderStateSet is allocated once per RV if needed
// and it contains a list of StateVariant value types
RenderStateSet *renderViewStateSet = renderView->stateSet();
- if (renderViewStateSet)
+
+ // Set the RV state if not null,
+ if (renderViewStateSet != nullptr)
m_graphicsContext->setCurrentStateSet(renderViewStateSet);
- else if (surfaceHasChanged || i == 0) // Reset state to the default state on initial render view or on surface change
+ else
m_graphicsContext->setCurrentStateSet(m_defaultRenderStateSet);
// Set RenderTarget ...