summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp12
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp16
2 files changed, 17 insertions, 11 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index afa249c7..14523929 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -282,9 +282,9 @@ void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList)
m_haveGradientSeries = false;
for (int i = 0; i < seriesCount; i++) {
QBar3DSeries *barSeries = static_cast<QBar3DSeries *>(seriesList[i]);
+ BarSeriesRenderCache *cache =
+ static_cast<BarSeriesRenderCache *>(m_renderCacheList.value(barSeries));
if (barSeries->isVisible()) {
- BarSeriesRenderCache *cache =
- static_cast<BarSeriesRenderCache *>(m_renderCacheList.value(barSeries));
if (noSelection
&& barSeries->selectedBar() != QBar3DSeries::invalidSelectionPosition()) {
if (selectionLabel() != cache->itemLabel())
@@ -296,7 +296,10 @@ void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList)
m_haveUniformColorSeries = true;
else
m_haveGradientSeries = true;
+ } else {
+ cache->setVisualIndex(-1);
}
+
}
if (noSelection) {
if (!selectionLabel().isEmpty())
@@ -1830,10 +1833,13 @@ void Bars3DRenderer::drawScene(GLuint defaultFboHandle)
m_selectedBar = selectedBar;
}
+ Drawer::LabelPosition position =
+ m_selectedBar->height() >= 0 ? Drawer::LabelOver : Drawer::LabelBelow;
+
m_drawer->drawLabel(*selectedBar, labelItem, viewMatrix, projectionMatrix,
zeroVector, identityQuaternion, selectedBar->height(),
m_cachedSelectionMode, m_labelShader,
- m_labelObj, activeCamera, true, false);
+ m_labelObj, activeCamera, true, false, position);
// Reset label update flag; they should have been updated when we get here
m_updateLabels = false;
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 0628a77e..f703ed97 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -1241,10 +1241,10 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle)
glBindFramebuffer(GL_FRAMEBUFFER, defaultFboHandle);
// Put the RGBA value back to uint
- uint selectionId = clickedColor.x()
- + clickedColor.y() * greenMultiplier
- + clickedColor.z() * blueMultiplier
- + clickedColor.w() * alphaMultiplier;
+ uint selectionId = uint(clickedColor.x())
+ + uint(clickedColor.y()) * greenMultiplier
+ + uint(clickedColor.z()) * blueMultiplier
+ + uint(clickedColor.w()) * alphaMultiplier;
m_clickedPosition = selectionIdToSurfacePoint(selectionId);
@@ -2460,21 +2460,21 @@ QPoint Surface3DRenderer::selectionIdToSurfacePoint(uint id)
m_selectedCustomItemIndex = -1;
// Check for label and custom item selection
if (id / alphaMultiplier == labelRowAlpha) {
- m_selectedLabelIndex = id - (alphaMultiplier * labelRowAlpha);
+ m_selectedLabelIndex = id - (alphaMultiplier * uint(labelRowAlpha));
m_clickedType = QAbstract3DGraph::ElementAxisZLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == labelColumnAlpha) {
- m_selectedLabelIndex = (id - (alphaMultiplier * labelColumnAlpha)) / greenMultiplier;
+ m_selectedLabelIndex = (id - (alphaMultiplier * uint(labelColumnAlpha))) / greenMultiplier;
m_clickedType = QAbstract3DGraph::ElementAxisXLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == labelValueAlpha) {
- m_selectedLabelIndex = (id - (alphaMultiplier * labelValueAlpha)) / blueMultiplier;
+ m_selectedLabelIndex = (id - (alphaMultiplier * uint(labelValueAlpha))) / blueMultiplier;
m_clickedType = QAbstract3DGraph::ElementAxisYLabel;
return Surface3DController::invalidSelectionPosition();
} else if (id / alphaMultiplier == customItemAlpha) {
// Custom item selection
m_clickedType = QAbstract3DGraph::ElementCustomItem;
- m_selectedCustomItemIndex = id - (alphaMultiplier * customItemAlpha);
+ m_selectedCustomItemIndex = id - (alphaMultiplier * uint(customItemAlpha));
return Surface3DController::invalidSelectionPosition();
}