summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-12-18 10:02:25 +0200
committerPasi Keränen <pasi.keranen@digia.com>2013-12-18 10:11:30 +0200
commit3dbf7cc678879b314dc75264a9592e24b39e2deb (patch)
treee2d7905de7d277b9a1026659f9533dfe9f05fe1d /src
parent3461c5162b4a8e83f4ec06f5539ad227bffcc839 (diff)
Fixes QML surface selections.
Task-id: QTRD-2565 Change-Id: I7864e2e71b1d7b7cfab8ad4d9a3e9376d832c0d6 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 0b5d75d3..7049632d 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -988,6 +988,11 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
&& m_visibleSeriesList.size() > 0) {
m_selectionShader->bind();
glBindFramebuffer(GL_FRAMEBUFFER, m_selectionFrameBuffer);
+ glViewport(0,
+ 0,
+ m_primarySubViewport.width(),
+ m_primarySubViewport.height());
+
glEnable(GL_DEPTH_TEST); // Needed, otherwise the depth render buffer is not used
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Needed for clearing the frame buffer
@@ -1024,6 +1029,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
emit pointClicked(QPoint(selectionIdToSurfacePoint(selectionId)),
static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series()));
+
+ // Revert to original viewport
+ glViewport(m_primarySubViewport.x(),
+ m_primarySubViewport.y(),
+ m_primarySubViewport.width(),
+ m_primarySubViewport.height());
}
// Draw the surface