summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/drawer.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-17 10:24:02 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-17 11:00:21 +0200
commit631b1913f4115fc163a21fc8aba85b87b10a666a (patch)
tree5b7f8aff2f79abba2d2d2796e8340be9d352098d /src/datavisualization/engine/drawer.cpp
parentedb2cdbf30efe9bc8aec0aa89161c620899d3b4c (diff)
Optimize theme update
Do not reinitialize shaders in theme update and only update drawer if label related items change. Also fix the bug automerge slipped in in recent rebase. Task-number: QTRD-2778 Change-Id: I4c4317dd36a8e8b60dcaec224f45df81c2ae7f54 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/drawer.cpp')
-rw-r--r--src/datavisualization/engine/drawer.cpp28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/datavisualization/engine/drawer.cpp b/src/datavisualization/engine/drawer.cpp
index 72b64212..dde0def2 100644
--- a/src/datavisualization/engine/drawer.cpp
+++ b/src/datavisualization/engine/drawer.cpp
@@ -45,8 +45,6 @@ const GLfloat point_data[] = {0.0f, 0.0f, 0.0f};
Drawer::Drawer(Q3DTheme *theme)
: m_theme(theme),
- m_font(theme->font()),
- m_labelBackground(theme->isLabelBackgroundEnabled()),
m_textureHelper(0),
m_pointbuffer(0)
{
@@ -70,8 +68,6 @@ void Drawer::initializeOpenGL()
void Drawer::setTheme(Q3DTheme *theme)
{
m_theme = theme;
- m_font = m_theme->font();
- m_labelBackground = m_theme->isLabelBackgroundEnabled();
emit drawerChanged();
}
@@ -80,25 +76,9 @@ Q3DTheme *Drawer::theme() const
return m_theme;
}
-void Drawer::setFont(const QFont &font)
-{
- // We need to be able to override theme's font for drawer
- // TODO: (or do we?)
- m_font = font;
- emit drawerChanged();
-}
-
QFont Drawer::font() const
{
- return m_font;
-}
-
-void Drawer::setLabelBackground(bool enabled)
-{
- // We need to be able to override theme's label background for drawer
- // TODO: (or do we?)
- m_labelBackground = enabled;
- emit drawerChanged();
+ return m_theme->font();
}
void Drawer::drawObject(ShaderHelper *shader, AbstractObjectHelper *object, GLuint textureId,
@@ -266,7 +246,7 @@ void Drawer::drawLabel(const AbstractRenderItem &item, const LabelItem &labelIte
}
// Calculate scale factor to get uniform font size
- GLfloat scaledFontSize = 0.05f + m_font.pointSizeF() / 500.0f;
+ GLfloat scaledFontSize = 0.05f + m_theme->font().pointSizeF() / 500.0f;
GLfloat scaleFactor = scaledFontSize / (GLfloat)textureSize.height();
// Apply alignment
@@ -385,11 +365,11 @@ void Drawer::generateLabelItem(LabelItem &item, const QString &text, int widestL
if (!text.isEmpty()) {
// Create labels
// Print label into a QImage using QPainter
- QImage label = Utils::printTextToImage(m_font,
+ QImage label = Utils::printTextToImage(m_theme->font(),
text,
m_theme->labelBackgroundColor(),
m_theme->labelTextColor(),
- m_labelBackground,
+ m_theme->isLabelBackgroundEnabled(),
m_theme->isLabelBorderEnabled(),
widestLabel);