summaryrefslogtreecommitdiffstats
path: root/src/datavisualization
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-12-03 09:03:54 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-12-03 09:04:52 +0200
commit1aafc43b5646eae86a53a7121aa29e0096b5fde8 (patch)
tree185cb5eaaf4552528bf749cb1efc6c67222b6d1b /src/datavisualization
parent50bc17dfb181a8806fe6814f77a55223a51335ef (diff)
Fixed crash on selection with no visible series
Task-number: QTRD-2667 Change-Id: I460ba87b4bcb639328439f6e1b698ca1323c0968 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization')
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp2
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp2
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp3
3 files changed, 4 insertions, 3 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index c3e8bf79..03612b87 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -881,7 +881,7 @@ void Bars3DRenderer::drawScene(GLuint defaultFboHandle)
// TODO: Selection must be enabled currently to support clicked signal. (QTRD-2517)
// Skip selection mode drawing if we're slicing or have no selection mode
if (!m_cachedIsSlicingActivated && m_cachedSelectionMode > QDataVis::SelectionNone
- && m_selectionState == SelectOnScene) {
+ && m_selectionState == SelectOnScene && seriesCount > 0) {
// Bind selection shader
m_selectionShader->bind();
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 74e589fd..11df55dd 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -434,7 +434,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
// Skip selection mode drawing if we have no selection mode
if (m_cachedSelectionMode > QDataVis::SelectionNone
- && SelectOnScene == m_selectionState) {
+ && SelectOnScene == m_selectionState && seriesCount > 0) {
// Draw dots to selection buffer
glBindFramebuffer(GL_FRAMEBUFFER, m_selectionFrameBuffer);
glEnable(GL_DEPTH_TEST); // Needed, otherwise the depth render buffer is not used
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 46857130..5b9aa9d8 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -936,7 +936,8 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
// Draw selection buffer
if (!m_cachedIsSlicingActivated && m_surfaceObj && m_selectionState == SelectOnScene
&& m_cachedSelectionMode > QDataVis::SelectionNone
- && (m_cachedSurfaceVisible || m_cachedSurfaceGridOn)) {
+ && (m_cachedSurfaceVisible || m_cachedSurfaceGridOn)
+ && m_visibleSeriesList.size() > 0) {
m_selectionShader->bind();
glBindFramebuffer(GL_FRAMEBUFFER, m_selectionFrameBuffer);
glEnable(GL_DEPTH_TEST); // Needed, otherwise the depth render buffer is not used