diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-09-17 11:25:06 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-09-17 11:31:14 +0300 |
commit | 3e795fd544331f4f38bcc667410f9c931f82bdf4 (patch) | |
tree | 781c68df8d520df19343cfd77de1590410bb7500 /src/datavisualization/engine/abstract3drenderer.cpp | |
parent | abcb511f9ea94a7654a1f27c2215bbf8d9ce9607 (diff) |
Fixed custom item wrong side reflection
Task-number: QTRD-3311
Change-Id: Ia5aea90259c249a5ffd48e16fae4e2dc33902afd
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
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()); |