summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2016-02-24 19:21:39 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-03-09 13:19:44 +0000
commitf34ec1fff6c2c62864a86c346e1ecd1364c83293 (patch)
tree9e262f49379e9055a1290677b67b95b411e3197d
parenta81d9c602574fb666717e73626ab8096aff0699a (diff)
Catch more cases where Frame rendering was incomplete
All these cases need to force drawing the next frame, even if no scene change events were registered Change-Id: I850018870c6d83f0a06c28633eaa202dccfacc9d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/backend/renderer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp
index 28b24b4b2..3afc92731 100644
--- a/src/render/backend/renderer.cpp
+++ b/src/render/backend/renderer.cpp
@@ -633,8 +633,10 @@ uint Renderer::submitRenderViews(const QVector<Render::RenderView *> &renderView
// TODO: Investigate if it's worth providing a fallback offscreen surface
// to use when surface is null. Or if we should instead expose an
// offscreensurface to Qt3D.
- if (!surface)
+ if (!surface) {
+ m_lastFrameCorrect.store(0);
continue;
+ }
if (surface != previousSurface && previousSurface)
m_graphicsContext->endDrawing(lastBoundFBOId == m_graphicsContext->defaultFBO());
@@ -644,6 +646,7 @@ uint Renderer::submitRenderViews(const QVector<Render::RenderView *> &renderView
// next RenderView. We won't get the full frame but we may get something
if (!m_graphicsContext->beginDrawing(surface, previousClearColor)) {
qWarning() << "Failed to make OpenGL context current on surface";
+ m_lastFrameCorrect.store(0);
continue;
}