diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-03 13:26:07 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-03 14:06:03 +0300 |
commit | 58979c740aa4814692e6555840e2fe4d3913561b (patch) | |
tree | b5b50b44011fa49788d84808c4d4e25db46599c4 /src/datavis3d/engine/surface3dcontroller.cpp | |
parent | 5eedaa018b6a1b1527b523d3018ac026af29eb33 (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.cpp | 13 |
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 |