summaryrefslogtreecommitdiffstats
path: root/src/datavisualization
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-01-17 08:38:43 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-01-17 08:43:03 +0200
commitd88dd99014c4b2893192995e9e6cbec06db74166 (patch)
tree69fd45fb0cc8e8113525e5242e27dc41bd1ecacc /src/datavisualization
parent01b9609c35227a2398ed2a39ebb1da2265bf3396 (diff)
Scatter selection label position fix
Change-Id: I96a0bfacd074152941618beb2c5a65a36781ceb3 Change-Id: I96a0bfacd074152941618beb2c5a65a36781ceb3 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization')
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp17
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;