summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/scatter3drenderer.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-30 13:22:05 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-31 08:05:46 +0200
commit23c544c4881a5b72fef9d02c40a81cf894ac3309 (patch)
tree38b1771c44d057a553cc4c808f9237f11c6d434e /src/datavisualization/engine/scatter3drenderer.cpp
parent1eefb471180746dda5882344deecd750305fea21 (diff)
Cleaning controller callbacks from renderers, part 1
Input state and position via synchronization Task-number: QTRD-2216 Change-Id: If53530aa9f65a8668fb628ba86d367149a62e64f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 75440cdc..ed69d88d 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -80,8 +80,7 @@ Scatter3DRenderer::Scatter3DRenderer(Scatter3DController *controller)
m_clickedColor(invalidColorVector),
m_areaSize(QSizeF(0.0, 0.0)),
m_dotSizeScale(1.0f),
- m_hasHeightAdjustmentChanged(true),
- m_cachedInputState(QDataVis::InputStateNone)
+ m_hasHeightAdjustmentChanged(true)
{
initializeOpenGLFunctions();
initializeOpenGL();
@@ -192,17 +191,19 @@ void Scatter3DRenderer::updateScene(Q3DScene *scene)
Abstract3DRenderer::updateScene(scene);
}
-void Scatter3DRenderer::render(GLuint defaultFboHandle)
+void Scatter3DRenderer::updateInputState(QDataVis::InputState state)
{
- // TODO: Can't call back to controller here! (QTRD-2216)
- // TODO: Needs to be added to synchronization
- QDataVis::InputState currentInputState = m_controller->inputState();
- if (currentInputState != m_cachedInputState) {
- if (currentInputState == QDataVis::InputStateOnScene)
- m_clickedColor = invalidColorVector;
- m_cachedInputState = currentInputState;
- }
+ QDataVis::InputState oldInputState = m_inputState;
+
+ Abstract3DRenderer::updateInputState(state);
+ // Clear clicked color on input state change
+ if (oldInputState != m_inputState && m_inputState == QDataVis::InputStateOnScene)
+ m_clickedColor = invalidColorVector;
+}
+
+void Scatter3DRenderer::render(GLuint defaultFboHandle)
+{
// Handle GL state setup for FBO buffers and clearing of the render surface
Abstract3DRenderer::render(defaultFboHandle);
@@ -386,7 +387,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
// Skip selection mode drawing if we have no selection mode
// TODO: Can't call back to controller here! (QTRD-2216)
if (m_cachedSelectionMode > QDataVis::SelectionNone
- && QDataVis::InputStateOnScene == m_controller->inputState()) {
+ && QDataVis::InputStateOnScene == m_inputState) {
// Bind selection shader
m_selectionShader->bind();
@@ -444,7 +445,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
// Read color under cursor
// TODO: Can't call back to controller here! (QTRD-2216)
- QVector3D clickedColor = Utils::getSelection(m_controller->inputPosition(),
+ QVector3D clickedColor = Utils::getSelection(m_inputPosition,
m_cachedBoundingRect.height());
if (m_clickedColor == invalidColorVector) {
m_clickedColor = clickedColor;