diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-17 10:24:02 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-17 11:00:21 +0200 |
commit | 631b1913f4115fc163a21fc8aba85b87b10a666a (patch) | |
tree | 5b7f8aff2f79abba2d2d2796e8340be9d352098d /src/datavisualization/engine/drawer.cpp | |
parent | edb2cdbf30efe9bc8aec0aa89161c620899d3b4c (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.cpp | 28 |
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); |