summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-24 14:03:14 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-24 14:23:34 +0200
commit37493fac3422ce5cbe34748ca25757ca6302a583 (patch)
tree4bbffa04287106049fca1857225e0711fafe4730 /src/datavisualization/engine/abstract3drenderer.cpp
parente07e480d744c6f091844350704b916a71811c6b9 (diff)
Move selection labels to renderer from render items
Creating a new label on demand is fast enough, so we don't need to store old labels. Storing labels unnecessarily leads to unchecked use of graphics memory. Optimized bar slices a bit by having separate class of render items for slice items. Change-Id: I5afdecfb3949393341b6c3eaefbc667c65da32e3 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp
index e62f2a00..3122cf76 100644
--- a/src/datavisualization/engine/abstract3drenderer.cpp
+++ b/src/datavisualization/engine/abstract3drenderer.cpp
@@ -44,7 +44,8 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller)
m_devicePixelRatio(1.0f),
m_selectionLabelDirty(true),
m_clickPending(false),
- m_clickedSeries(0)
+ m_clickedSeries(0),
+ m_selectionLabelItem(0)
#ifdef DISPLAY_RENDER_SPEED
, m_isFirstFrame(true),
m_numFrames(0)
@@ -67,6 +68,7 @@ Abstract3DRenderer::~Abstract3DRenderer()
delete m_textureHelper;
delete m_cachedScene;
delete m_cachedTheme;
+ delete m_selectionLabelItem;
}
void Abstract3DRenderer::initializeOpenGL()
@@ -450,4 +452,23 @@ void Abstract3DRenderer::fixGradientAndGenerateTexture(QLinearGradient *gradient
*gradientTexture = m_textureHelper->createGradientTexture(*gradient);
}
+LabelItem &Abstract3DRenderer::selectionLabelItem()
+{
+ if (!m_selectionLabelItem)
+ m_selectionLabelItem = new LabelItem;
+ return *m_selectionLabelItem;
+}
+
+void Abstract3DRenderer::setSelectionLabel(const QString &label)
+{
+ if (m_selectionLabelItem)
+ m_selectionLabelItem->clear();
+ m_selectionLabel = label;
+}
+
+QString &Abstract3DRenderer::selectionLabel()
+{
+ return m_selectionLabel;
+}
+
QT_END_NAMESPACE_DATAVISUALIZATION