summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/surface3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-03 13:26:07 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-03 14:06:03 +0300
commit58979c740aa4814692e6555840e2fe4d3913561b (patch)
treeb5b50b44011fa49788d84808c4d4e25db46599c4 /src/datavis3d/engine/surface3dcontroller.cpp
parent5eedaa018b6a1b1527b523d3018ac026af29eb33 (diff)
Only render the scene when something changes.
This seems to improve frame rate, too. Task-number: QTRD-2179 Change-Id: Icb3ddc5ba651ce0982068bcf7ab09c67be183717 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavis3d/engine/surface3dcontroller.cpp')
-rw-r--r--src/datavis3d/engine/surface3dcontroller.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/datavis3d/engine/surface3dcontroller.cpp b/src/datavis3d/engine/surface3dcontroller.cpp
index f5dec25e..ae383384 100644
--- a/src/datavis3d/engine/surface3dcontroller.cpp
+++ b/src/datavis3d/engine/surface3dcontroller.cpp
@@ -59,6 +59,7 @@ void Surface3DController::initializeOpenGL()
m_renderer = new Surface3DRenderer(this);
setRenderer(m_renderer);
synchDataToRenderer();
+ emitNeedRender();
}
void Surface3DController::synchDataToRenderer()
@@ -92,6 +93,7 @@ void Surface3DController::setSmoothSurface(bool enable)
{
m_smoothSurface = enable;
emit smoothStatusChanged(m_smoothSurface);
+ emitNeedRender();
}
bool Surface3DController::smoothSurface()
@@ -103,6 +105,7 @@ void Surface3DController::setSurfaceGrid(bool enable)
{
m_surfaceGrid = enable;
emit surfaceGridChanged(m_surfaceGrid);
+ emitNeedRender();
}
bool Surface3DController::surfaceGrid()
@@ -137,6 +140,7 @@ void Surface3DController::mousePressEvent(QMouseEvent *event, const QPoint &mous
m_mousePos = mousePos; //event->pos();
}
m_cameraHelper->updateMousePos(m_mousePos);
+ emitNeedRender();
}
void Surface3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos)
@@ -146,6 +150,7 @@ void Surface3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mo
// update mouse positions to prevent jumping when releasing or repressing a button
m_mousePos = mousePos; //event->pos();
m_cameraHelper->updateMousePos(mousePos); //event->pos());
+ emitNeedRender();
}
m_mouseState = Abstract3DController::MouseNone;
}
@@ -153,8 +158,10 @@ void Surface3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mo
void Surface3DController::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)
{
Q_UNUSED(event)
- if (Abstract3DController::MouseRotating == m_mouseState)
+ if (Abstract3DController::MouseRotating == m_mouseState) {
m_mousePos = mousePos; //event->pos();
+ emitNeedRender();
+ }
}
void Surface3DController::wheelEvent(QWheelEvent *event)
@@ -174,13 +181,14 @@ void Surface3DController::setSegmentCount(GLint segmentCount, GLfloat step, GLfl
m_segmentMinimum = minimum;
emit segmentCountChanged(m_segmentCount, m_segmentStep, m_segmentMinimum);
+ emitNeedRender();
}
void Surface3DController::setGradientColorAt(qreal pos, const QColor &color)
{
Theme t = theme();
t.m_surfaceGradient.setColorAt(pos, color);
- emit themeChanged(t);
+ emitNeedRender();
}
// TODO: Temp
@@ -192,6 +200,7 @@ void Surface3DController::setData(QList<qreal> series, int width, int depth)
m_renderer->setXZStuff(width, depth);
m_renderer->setSeries(series);
+ emitNeedRender();
}
QT_DATAVIS3D_END_NAMESPACE