From e3c7cfe82ab429f5c5e4b9fe63df2af6cc8d1b4f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 17 Oct 2013 10:15:38 +0300 Subject: Change order of slice and main rendering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes issue with having one frame with incorrect slice. Change-Id: I5f3ef79f4fc304bf87aaff7f3fd5d3d6fa349dce Reviewed-by: Tomi Korpipää --- src/datavisualization/engine/bars3drenderer.cpp | 6 +++--- src/datavisualization/engine/surface3drenderer.cpp | 12 +++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 7863cda3..5944b3d7 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -241,13 +241,13 @@ void Bars3DRenderer::render(GLuint defaultFboHandle) // Handle GL state setup for FBO buffers and clearing of the render surface Abstract3DRenderer::render(defaultFboHandle); + // Draw bars scene + drawScene(defaultFboHandle); + // If slice selection is on, draw the sliced scene if (m_cachedIsSlicingActivated) drawSlicedScene(m_axisCacheX.titleItem(), m_axisCacheY.titleItem(), m_axisCacheZ.titleItem()); - // Draw bars scene - drawScene(defaultFboHandle); - // If slicing has been activated by this render pass, we need another render // Also trigger another render always when slicing changes in general to ensure // final draw is correct. diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index b73332f3..8dfd1c65 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -448,17 +448,15 @@ void Surface3DRenderer::render(GLuint defaultFboHandle) // Handle GL state setup for FBO buffers and clearing of the render surface Abstract3DRenderer::render(defaultFboHandle); - // In slice mode; draw slice and render selection ball - if (m_cachedIsSlicingActivated && m_selectionPointer && m_selectionActive) { - drawSlicedScene(); - m_selectionPointer->render(defaultFboHandle); - } - // Draw the surface scene drawScene(defaultFboHandle); + // In slice mode; draw slice and render selection ball + if (m_cachedIsSlicingActivated) + drawSlicedScene(); + // Render selection ball if not in slice mode - if (!m_cachedIsSlicingActivated && m_selectionPointer && m_selectionActive) + if (m_selectionPointer && m_selectionActive) m_selectionPointer->render(defaultFboHandle); // If slicing has been activated by this render pass, we need another render -- cgit v1.2.3