summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/seriesrendercache_p.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-04-07 14:26:32 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-04-10 08:20:49 +0300
commit28e42188efb1544cf6b1433c244d590165ee6ebd (patch)
tree3cc0e1c717a1b21f21616dc87a08db6a9b36bada /src/datavisualization/engine/seriesrendercache_p.h
parent1b5d9a30adc0c9ca4f7929c375db008830586516 (diff)
Optimize multiple series rendering.
Cache all series instead of just the visible ones on all graphs instead of just surface. Changes to one series now trigger data update to only the affected series, which should significantly improve performance in these cases. Task-number: QTRD-2600 Task-number: QTRD-2957 Change-Id: I6db7c689108fce8d25aace6682a193936d6f0eaf Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/seriesrendercache_p.h')
-rw-r--r--src/datavisualization/engine/seriesrendercache_p.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/datavisualization/engine/seriesrendercache_p.h b/src/datavisualization/engine/seriesrendercache_p.h
index a6ae03cf..8536d501 100644
--- a/src/datavisualization/engine/seriesrendercache_p.h
+++ b/src/datavisualization/engine/seriesrendercache_p.h
@@ -41,10 +41,10 @@ class TextureHelper;
class SeriesRenderCache
{
public:
- SeriesRenderCache();
+ SeriesRenderCache(QAbstract3DSeries *series, Abstract3DRenderer *renderer);
virtual ~SeriesRenderCache();
- void populate(QAbstract3DSeries *series, Abstract3DRenderer *renderer);
+ virtual void populate(bool newSeries);
virtual void cleanup(TextureHelper *texHelper);
// NOTE: Series pointer can only be used to access the series when syncing with controller.
@@ -66,6 +66,11 @@ public:
inline const GLuint &multiHighlightGradientTexture() const { return m_multiHighlightGradientTexture; }
inline const QString &name() const { return m_name; }
inline const QString &itemLabel() const { return m_itemLabel; }
+ inline void setValid(bool valid) { m_valid = valid; }
+ inline bool isValid() const { return m_valid; }
+ inline bool isVisible() const { return m_visible; }
+ inline void setDataDirty(bool state) { m_objectDirty = state; }
+ inline bool dataDirty() const { return m_objectDirty; }
protected:
QAbstract3DSeries *m_series;
@@ -85,6 +90,10 @@ protected:
QString m_name;
QString m_itemLabel;
+ bool m_valid;
+ bool m_visible;
+ Abstract3DRenderer *m_renderer;
+ bool m_objectDirty;
};
QT_END_NAMESPACE_DATAVISUALIZATION