summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3drenderer.cpp
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2017-06-29 13:13:23 +0200
committerWieland Hagen <wieland.hagen@kdab.com>2017-06-29 12:26:32 +0000
commit86ec8ca096769fe392688fdafda10a8516b5dc05 (patch)
tree0936c8e722097bbbb3ed4cc03e6778b469a7f182 /src/quick3d/imports/scene3d/scene3drenderer.cpp
parenta530a45d1ab8721f2d1bf764528b25d91949ec70 (diff)
Make sure Qt3D gets a clean OpenGL state in Scene3D item
We need to reset the state before and after rendering, because it may have been dirty before and it might be dirty afterwards. Change-Id: Iaa32243aa5721d3e2319b2a58987624f30d6482d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3drenderer.cpp')
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp
index b32191391..26e966f76 100644
--- a/src/quick3d/imports/scene3d/scene3drenderer.cpp
+++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp
@@ -255,6 +255,10 @@ void Scene3DRenderer::render()
ContextSaver saver;
+ // The OpenGL state may be dirty from the previous QtQuick nodes, so reset
+ // it here to give Qt3D the clean state it expects
+ window->resetOpenGLState();
+
const QSize boundingRectSize = m_item->boundingRect().size().toSize();
const QSize currentSize = boundingRectSize * window->effectiveDevicePixelRatio();
const bool sizeHasChanged = currentSize != m_lastSize;