diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-17 08:38:43 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-17 08:43:03 +0200 |
commit | d88dd99014c4b2893192995e9e6cbec06db74166 (patch) | |
tree | 69fd45fb0cc8e8113525e5242e27dc41bd1ecacc /src | |
parent | 01b9609c35227a2398ed2a39ebb1da2265bf3396 (diff) |
Scatter selection label position fix
Change-Id: I96a0bfacd074152941618beb2c5a65a36781ceb3
Change-Id: I96a0bfacd074152941618beb2c5a65a36781ceb3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 2e6680aa..ce9560c8 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -254,6 +254,7 @@ void Scatter3DRenderer::render(GLuint defaultFboHandle) void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) { GLfloat backgroundRotation = 0; + GLfloat selectedItemSize = 0.0f; const Q3DCamera *activeCamera = m_cachedScene->activeCamera(); @@ -605,13 +606,15 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) m_dotGradientShader->bind(); m_dotGradientShader->setUniformValue(m_dotGradientShader->lightP(), lightPos); m_dotGradientShader->setUniformValue(m_dotGradientShader->view(), viewMatrix); - m_dotGradientShader->setUniformValue(m_dotGradientShader->ambientS(), m_cachedTheme->ambientLightStrength()); + m_dotGradientShader->setUniformValue(m_dotGradientShader->ambientS(), + m_cachedTheme->ambientLightStrength()); } if (haveUniformColorMeshSeries) { m_dotShader->bind(); m_dotShader->setUniformValue(m_dotShader->lightP(), lightPos); m_dotShader->setUniformValue(m_dotShader->view(), viewMatrix); - m_dotShader->setUniformValue(m_dotShader->ambientS(), m_cachedTheme->ambientLightStrength()); + m_dotShader->setUniformValue(m_dotShader->ambientS(), + m_cachedTheme->ambientLightStrength()); dotShader = m_dotShader; } else { dotShader = m_dotGradientShader; @@ -708,7 +711,8 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) gradientTexture = currentSeries.baseGradientTexture(); GLfloat lightStrength = m_cachedTheme->lightStrength(); - if (m_cachedSelectionMode > QAbstract3DGraph::SelectionNone && (m_selectedItemTotalIndex == dotNo)) { + if (m_cachedSelectionMode > QAbstract3DGraph::SelectionNone + && (m_selectedItemTotalIndex == dotNo)) { if (useColor) dotColor = currentSeries.singleHighlightColor(); else @@ -717,6 +721,8 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) // Insert data to ScatterRenderItem. We have no ownership, don't delete the previous one selectedItem = &item; dotSelectionFound = true; + // Save selected item size (adjusted with font size) for selection label positioning + selectedItemSize = itemSize + (m_cachedTheme->font().pointSizeF() / 500.0f); } if (!drawingPoints) { @@ -1526,8 +1532,9 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) } m_drawer->drawLabel(*selectedItem, labelItem, viewMatrix, projectionMatrix, - zeroVector, zeroVector, 0, m_cachedSelectionMode, m_labelShader, - m_labelObj, activeCamera, true, false, Drawer::LabelOver); + zeroVector, zeroVector, selectedItemSize, m_cachedSelectionMode, + m_labelShader, m_labelObj, activeCamera, true, false, + Drawer::LabelOver); // Reset label update flag; they should have been updated when we get here m_updateLabels = false; |