summaryrefslogtreecommitdiffstats
path: root/src/render/backend/renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend/renderer.cpp')
-rw-r--r--src/render/backend/renderer.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp
index f11f0e2df..78805c47e 100644
--- a/src/render/backend/renderer.cpp
+++ b/src/render/backend/renderer.cpp
@@ -596,8 +596,9 @@ void Renderer::submitRenderViews(int maxFrameCount)
if (renderViewsCount <= 0)
continue;
+ QColor previousClearColor = renderViews.first()->clearColor();
// Bail out if we cannot make the OpenGL context current (e.g. if the window has been destroyed)
- if (!m_graphicsContext->beginDrawing(m_surface, renderViews.first()->clearColor())) {
+ if (!m_graphicsContext->beginDrawing(m_surface, previousClearColor)) {
qDeleteAll(renderViews);
m_renderQueues->popFrameQueue();
break;
@@ -622,6 +623,13 @@ void Renderer::submitRenderViews(int maxFrameCount)
// Activate RenderTarget
m_graphicsContext->activateRenderTarget(m_renderTargetManager->data(renderViews[i]->renderTargetHandle()),
renderViews[i]->attachmentPack(), defaultFboId);
+
+ // Set clear color if different
+ if (previousClearColor != renderViews[i]->clearColor()) {
+ previousClearColor = renderViews[i]->clearColor();
+ m_graphicsContext->clearColor(previousClearColor);
+ }
+
// Clear BackBuffer
m_graphicsContext->clearBackBuffer(renderViews[i]->clearBuffer());
// Set the Viewport