From a483fa13f4d4acebe0bb21fc569a8de23b76b56f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 11 Oct 2013 10:00:48 +0300 Subject: Fix slice view reset on proxy change Change-Id: I7497da41e60ab0db405e3b44ff63771222ec14b3 Reviewed-by: Miikka Heikkinen --- src/datavisualization/engine/surface3drenderer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/datavisualization/engine/surface3drenderer.cpp') diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index d2dcf634..8d0d7203 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -439,6 +439,8 @@ void Surface3DRenderer::updateScene(Q3DScene *scene) void Surface3DRenderer::render(GLuint defaultFboHandle) { bool slicingActivated = m_cachedScene->isSlicingActive(); + bool slicingChanged = m_cachedIsSlicingActivated != slicingActivated; + updateSlicingActive(slicingActivated); // Handle GL state setup for FBO buffers and clearing of the render surface @@ -458,7 +460,9 @@ void Surface3DRenderer::render(GLuint defaultFboHandle) m_selectionPointer->render(defaultFboHandle); // If slicing has been activated by this render pass, we need another render - if (slicingActivated != m_cachedScene->isSlicingActive()) + // Also trigger another render always when slicing changes in general to ensure + // final draw is correct. + if (slicingActivated != m_cachedScene->isSlicingActive() || slicingChanged) emit needRender(); } -- cgit v1.2.3