diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-12 09:53:52 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-12 10:31:27 +0300 |
commit | 7f8966b035c9fd73d2cde04521c92892feefc0f9 (patch) | |
tree | 55fee47c70805ff6bd4df1a8cd7693ea34132b27 /src/datavisualization/engine/bars3drenderer.cpp | |
parent | 1262c6562d7264c9fe4caf2f433615348c0f2ef8 (diff) |
Fix Q3DScene caching
Task-number: QTRD-2258
Change-Id: Ifce23dca40566e75398e00975e8b2159b325739e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/bars3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 6331ee8e..387f8530 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -197,7 +197,8 @@ void Bars3DRenderer::updateScene(Q3DScene *scene) void Bars3DRenderer::render(GLuint defaultFboHandle) { - updateSlicingActive(m_cachedScene->isSlicingActivated()); + bool slicingActivated = m_cachedScene->isSlicingActivated(); + updateSlicingActive(slicingActivated); // Handle GL state setup for FBO buffers and clearing of the render surface Abstract3DRenderer::render(defaultFboHandle); @@ -208,6 +209,11 @@ void Bars3DRenderer::render(GLuint defaultFboHandle) // Draw bars scene drawScene(defaultFboHandle); + + // If slicing has been activated by this render pass, we need another render + if (slicingActivated != m_cachedScene->isSlicingActivated()) + emit needRender(); + } void Bars3DRenderer::drawSlicedScene(const LabelItem &xLabel, @@ -1344,8 +1350,9 @@ void Bars3DRenderer::drawScene(GLuint defaultFboHandle) m_selectedBar = NULL; if (m_cachedIsSlicingActivated && (m_selection == selectionSkipColor - || QDataVis::InputOnOverview == m_controller->inputState())) + || QDataVis::InputOnOverview == m_controller->inputState())) { m_cachedScene->setSlicingActivated(false); + } } else if (m_cachedSelectionMode >= QDataVis::ModeSliceRow && selectionDirty) { // Activate slice mode m_cachedScene->setSlicingActivated(true); |