diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-15 14:56:44 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-08-16 06:23:17 +0300 |
commit | 29f6433606cebe3299e9915ae32bae7dfaed2770 (patch) | |
tree | 74589a32ac721e1b21f5ebec31480e03588da4aa /src | |
parent | 498d4f391932ab612afa2a1ce5ced8c6aea44942 (diff) |
Fixed zoomlevel caching
Change-Id: I0bd73c65559ccdde00ef6e5a99b2ecad8cfd0f98
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavis3d/engine/abstract3dcontroller.cpp | 5 | ||||
-rw-r--r-- | src/datavis3d/engine/abstract3drenderer.cpp | 9 | ||||
-rw-r--r-- | src/datavis3d/engine/abstract3drenderer_p.h | 2 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3dcontroller.cpp | 5 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3dcontroller_p.h | 4 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3drenderer.cpp | 6 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3drenderer_p.h | 2 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3dcontroller.cpp | 5 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3dcontroller_p.h | 4 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3drenderer.cpp | 7 | ||||
-rw-r--r-- | src/datavis3d/engine/scatter3drenderer_p.h | 4 |
11 files changed, 17 insertions, 36 deletions
diff --git a/src/datavis3d/engine/abstract3dcontroller.cpp b/src/datavis3d/engine/abstract3dcontroller.cpp index 99d0b66d..12f76fd1 100644 --- a/src/datavis3d/engine/abstract3dcontroller.cpp +++ b/src/datavis3d/engine/abstract3dcontroller.cpp @@ -71,6 +71,11 @@ void Abstract3DController::synchDataToRenderer() m_changeTracker.positionChanged = false; } + if (m_changeTracker.zoomLevelChanged) { + m_renderer->updateZoomLevel(m_zoomLevel); + m_changeTracker.zoomLevelChanged = false; + } + if (m_changeTracker.themeChanged) { m_renderer->updateTheme(m_theme); m_changeTracker.themeChanged = false; diff --git a/src/datavis3d/engine/abstract3drenderer.cpp b/src/datavis3d/engine/abstract3drenderer.cpp index ca97abad..b25e5a15 100644 --- a/src/datavis3d/engine/abstract3drenderer.cpp +++ b/src/datavis3d/engine/abstract3drenderer.cpp @@ -27,7 +27,9 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) m_isInitialized(false), m_hasNegativeValues(false), m_drawer(new Drawer(m_cachedTheme, m_cachedFont, m_cachedLabelTransparency)), - m_autoScaleAdjustment(1.0f) + m_autoScaleAdjustment(1.0f), + m_cachedZoomLevel(100) + { QObject::connect(m_drawer, &Drawer::drawerChanged, this, &Abstract3DRenderer::updateTextures); } @@ -161,6 +163,11 @@ void Abstract3DRenderer::handleResize() #endif } +void Abstract3DRenderer::updateZoomLevel(int newZoomLevel) +{ + m_cachedZoomLevel = newZoomLevel; +} + void Abstract3DRenderer::updateAxisType(QAbstractAxis::AxisOrientation orientation, QAbstractAxis::AxisType type) { axisCacheForOrientation(orientation).setType(type); diff --git a/src/datavis3d/engine/abstract3drenderer_p.h b/src/datavis3d/engine/abstract3drenderer_p.h index 6f13ac2f..3c5d1388 100644 --- a/src/datavis3d/engine/abstract3drenderer_p.h +++ b/src/datavis3d/engine/abstract3drenderer_p.h @@ -57,6 +57,7 @@ protected: QDataVis::SelectionMode m_cachedSelectionMode; bool m_cachedIsGridEnabled; bool m_cachedIsBackgroundEnabled; + int m_cachedZoomLevel; AxisRenderCache m_axisCacheX; AxisRenderCache m_axisCacheY; @@ -72,6 +73,7 @@ public: virtual void updatePosition(const QRect boundingRect); virtual void handleResize(); + virtual void updateZoomLevel(int newZoomLevel); virtual void updateTheme(Theme theme); virtual void updateFont(const QFont &font); virtual void updateLabelTransparency(QDataVis::LabelTransparency transparency); diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp index 750c3298..3f5a31b2 100644 --- a/src/datavis3d/engine/bars3dcontroller.cpp +++ b/src/datavis3d/engine/bars3dcontroller.cpp @@ -91,11 +91,6 @@ void Bars3dController::synchDataToRenderer() m_changeTracker.barSpecsChanged = false; } - if (m_changeTracker.zoomLevelChanged) { - m_renderer->updateZoomLevel(m_zoomLevel); - m_changeTracker.zoomLevelChanged = false; - } - if (m_isDataDirty) { m_renderer->updateDataModel(m_data); m_isDataDirty = false; diff --git a/src/datavis3d/engine/bars3dcontroller_p.h b/src/datavis3d/engine/bars3dcontroller_p.h index 5950d8cb..9811eb0d 100644 --- a/src/datavis3d/engine/bars3dcontroller_p.h +++ b/src/datavis3d/engine/bars3dcontroller_p.h @@ -43,13 +43,11 @@ struct Bars3DChangeBitField { bool slicingActiveChanged : 1; bool sampleSpaceChanged : 1; bool barSpecsChanged : 1; - bool zoomLevelChanged : 1; Bars3DChangeBitField() : slicingActiveChanged(true), sampleSpaceChanged(true), - barSpecsChanged(true), - zoomLevelChanged(true) + barSpecsChanged(true) { } }; diff --git a/src/datavis3d/engine/bars3drenderer.cpp b/src/datavis3d/engine/bars3drenderer.cpp index b071aa8e..908b7888 100644 --- a/src/datavis3d/engine/bars3drenderer.cpp +++ b/src/datavis3d/engine/bars3drenderer.cpp @@ -1743,12 +1743,6 @@ void Bars3dRenderer::updateSlicingActive(bool isSlicing) } } -void Bars3dRenderer::updateZoomLevel(int newZoomLevel) -{ - m_cachedZoomLevel = newZoomLevel; -} - - QRect Bars3dRenderer::mainViewPort() { return m_mainViewPort; diff --git a/src/datavis3d/engine/bars3drenderer_p.h b/src/datavis3d/engine/bars3drenderer_p.h index 5ab64dfa..93d47cf1 100644 --- a/src/datavis3d/engine/bars3drenderer_p.h +++ b/src/datavis3d/engine/bars3drenderer_p.h @@ -75,7 +75,6 @@ private: QSizeF m_cachedBarThickness; QSizeF m_cachedBarSpacing; bool m_cachedIsSlicingActivated; - int m_cachedZoomLevel; int m_cachedRowCount; int m_cachedColumnCount; @@ -149,7 +148,6 @@ public slots: void updateSelectionMode(QDataVis::SelectionMode newMode); void updateSlicingActive(bool isSlicing); void updateSampleSpace(int rowCount, int columnCount); - void updateZoomLevel(int newZoomLevel); void updateBackgroundEnabled(bool enable); void updateMeshFileName(const QString &objFileName); diff --git a/src/datavis3d/engine/scatter3dcontroller.cpp b/src/datavis3d/engine/scatter3dcontroller.cpp index 74bcc38a..0d93b06f 100644 --- a/src/datavis3d/engine/scatter3dcontroller.cpp +++ b/src/datavis3d/engine/scatter3dcontroller.cpp @@ -75,11 +75,6 @@ void Scatter3DController::synchDataToRenderer() m_changeTracker.slicingActiveChanged = false; } - if (m_changeTracker.zoomLevelChanged) { - m_renderer->updateZoomLevel(m_zoomLevel); - m_changeTracker.zoomLevelChanged = false; - } - if (m_isDataDirty) { m_renderer->updateDataModel(m_data); m_isDataDirty = false; diff --git a/src/datavis3d/engine/scatter3dcontroller_p.h b/src/datavis3d/engine/scatter3dcontroller_p.h index 67f32278..437664b7 100644 --- a/src/datavis3d/engine/scatter3dcontroller_p.h +++ b/src/datavis3d/engine/scatter3dcontroller_p.h @@ -41,11 +41,9 @@ class QScatterDataProxy; struct Scatter3DChangeBitField { bool slicingActiveChanged : 1; - bool zoomLevelChanged : 1; Scatter3DChangeBitField() : - slicingActiveChanged(true), - zoomLevelChanged(true) + slicingActiveChanged(true) { } }; diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp index b524e3ad..d8d5da9a 100644 --- a/src/datavis3d/engine/scatter3drenderer.cpp +++ b/src/datavis3d/engine/scatter3drenderer.cpp @@ -1544,13 +1544,6 @@ Scatter3DController::SelectionType Scatter3DRenderer::isSelected(GLint bar, return isSelectedType; } -void Scatter3DRenderer::updateZoomLevel(int newZoomLevel) -{ - //qDebug() << __FUNCTION__; - m_cachedZoomLevel = newZoomLevel; -} - - QRect Scatter3DRenderer::mainViewPort() { //qDebug() << __FUNCTION__; diff --git a/src/datavis3d/engine/scatter3drenderer_p.h b/src/datavis3d/engine/scatter3drenderer_p.h index 4eea41a9..45054db4 100644 --- a/src/datavis3d/engine/scatter3drenderer_p.h +++ b/src/datavis3d/engine/scatter3drenderer_p.h @@ -73,9 +73,6 @@ private: // TODO: this mutex needs to go, too QMutex m_mutex; - // Cached state based on emitted signals from the controller - int m_cachedZoomLevel; - // Internal state ScatterRenderItem *m_selectedItem; // points to renderitem array ScatterRenderItem *m_previouslySelectedItem; // points to renderitem array @@ -131,7 +128,6 @@ public: QRect mainViewPort(); public slots: - void updateZoomLevel(int newZoomLevel); void updateBackgroundEnabled(bool enable); void updateMeshFileName(const QString &objFileName); |