diff options
Diffstat (limited to 'src/datavisualization')
3 files changed, 12 insertions, 2 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc index 5dc7b35c..b1d74dd6 100644 --- a/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc +++ b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc @@ -357,6 +357,10 @@ * * \note Affects only Bars3D. * + * \note In Bars3D graphs holding both positive and negative values, reflections are not supported + * for custom items that intersect the floor plane. In that case, reflections should be turned off + * to avoid incorrect rendering. + * * \sa reflectivity */ diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index f0f332fe..a0e0bc45 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -1291,8 +1291,11 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, while (loopCount < 2) { foreach (CustomRenderItem *item, m_customRenderCache) { // Check that the render item is visible, and skip drawing if not - if (!item->isVisible()) + // Also check if reflected item is on the "wrong" side, and skip drawing if it is + if (!item->isVisible() || ((m_reflectionEnabled && reflection < 0.0f) + && (m_yFlipped == item->translation().y() >= 0.0))) { continue; + } if (loopCount == 0) { if (item->isVolume()) { volumeDetected = true; @@ -1434,7 +1437,6 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, shader->setUniformValue(shader->minBounds(), item->minBounds()); shader->setUniformValue(shader->maxBounds(), item->maxBounds()); - QVector3D slices; if (shader == m_volumeTextureSliceShader) { shader->setUniformValue(shader->volumeSliceIndices(), item->sliceFractions()); diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp index a1cd7c56..d906666c 100644 --- a/src/datavisualization/engine/qabstract3dgraph.cpp +++ b/src/datavisualization/engine/qabstract3dgraph.cpp @@ -729,6 +729,10 @@ qreal QAbstract3DGraph::horizontalAspectRatio() const * * \note Affects only Q3DBars. * + * \note In Q3DBars graphs holding both positive and negative values, reflections are not supported + * for custom items that intersect the floor plane. In that case, reflections should be turned off + * to avoid incorrect rendering. + * * \sa reflectivity */ void QAbstract3DGraph::setReflection(bool enable) |