diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-24 14:03:14 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-24 14:23:34 +0200 |
commit | 37493fac3422ce5cbe34748ca25757ca6302a583 (patch) | |
tree | 4bbffa04287106049fca1857225e0711fafe4730 /src/datavisualization/engine/abstract3drenderer.cpp | |
parent | e07e480d744c6f091844350704b916a71811c6b9 (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.cpp | 23 |
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 |