summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-10-04 09:55:49 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-10-04 10:09:52 +0300
commitad44f9774e8da73a5d3df80b3691adae9376abce (patch)
tree6a9c8da25147dfa414bba2aeed7799b45dfbb78f
parent5fab5d9a23c84a5de8e1117d821556779264494f (diff)
Fixed double-tap issues with surface slice
Task-number: QTRD-2370 Task-number: QTRD-2371 Change-Id: I389f70f68ac4d6d478947b736b602fba62b46bef Change-Id: I389f70f68ac4d6d478947b736b602fba62b46bef Reviewed-by: Mika Salmela <mika.salmela@digia.com>
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp1
-rw-r--r--src/datavisualization/engine/scatter3dcontroller.cpp1
-rw-r--r--src/datavisualization/engine/surface3dcontroller.cpp1
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp15
4 files changed, 10 insertions, 8 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp
index abd09b55..f9cdfd8f 100644
--- a/src/datavisualization/engine/bars3dcontroller.cpp
+++ b/src/datavisualization/engine/bars3dcontroller.cpp
@@ -25,7 +25,6 @@
#include "qbardataproxy_p.h"
#include <QMatrix4x4>
-#include <QMouseEvent>
#include <qmath.h>
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
diff --git a/src/datavisualization/engine/scatter3dcontroller.cpp b/src/datavisualization/engine/scatter3dcontroller.cpp
index e27c8b2b..94d3fd90 100644
--- a/src/datavisualization/engine/scatter3dcontroller.cpp
+++ b/src/datavisualization/engine/scatter3dcontroller.cpp
@@ -24,7 +24,6 @@
#include "qscatterdataproxy_p.h"
#include <QMatrix4x4>
-#include <QMouseEvent>
#include <qmath.h>
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp
index 514c5d07..a7c84a87 100644
--- a/src/datavisualization/engine/surface3dcontroller.cpp
+++ b/src/datavisualization/engine/surface3dcontroller.cpp
@@ -25,7 +25,6 @@
#include "qsurfacedataproxy_p.h"
#include <QMatrix4x4>
-#include <QMouseEvent>
#include <QDebug>
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 9f40e410..28a81e0d 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -413,7 +413,6 @@ void Surface3DRenderer::updateScene(Q3DScene *scene)
// TODO: Move these to more suitable place e.g. controller should be controlling the viewports.
scene->setSecondarySubViewport(m_sliceViewPort);
scene->setPrimarySubViewport(m_mainViewPort);
- scene->setUnderSideCameraEnabled(false);
// Set initial camera position
// X must be 0 for rotation to work - we can use "setCameraRotation" for setting it later
@@ -442,16 +441,22 @@ void Surface3DRenderer::render(GLuint defaultFboHandle)
// Handle GL state setup for FBO buffers and clearing of the render surface
Abstract3DRenderer::render(defaultFboHandle);
- // If slice selection is on, draw the sliced scene
- if (m_cachedIsSlicingActivated)
+ // 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);
- // If selection pointer is active, pass the render request for it also
- if (m_selectionPointer && m_selectionActive)
+ // Render selection ball if not in slice mode
+ if (!m_cachedIsSlicingActivated && m_selectionPointer && m_selectionActive)
m_selectionPointer->render(defaultFboHandle);
+
+ // If slicing has been activated by this render pass, we need another render
+ if (slicingActivated != m_cachedScene->isSlicingActive())
+ emit needRender();
}
void Surface3DRenderer::drawSlicedScene()