summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-12-19 11:12:38 +0200
committerMika Salmela <mika.salmela@digia.com>2013-12-19 11:53:43 +0200
commit6de5b7a0bb9fe79ccd56cc5088464143794d7135 (patch)
tree462fae9dcea73f864b72e30776d83a13889161b6
parent5273db8cbc592ee5d2da767e3a8e873f2a83784f (diff)
Clear the depth texture when surface not visible
Also grid and surface visibility should not affect on updates. Task-number: QTRD-2742 Change-Id: I9605897599d571b1ee39dab7f6c93d5c80110f0c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 7049632d..d9351cc9 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -264,6 +264,9 @@ void Surface3DRenderer::updateData()
delete m_surfaceObj;
m_surfaceObj = 0;
+
+ m_textureHelper->fillDepthTexture(m_depthTexture, m_primarySubViewport.size(),
+ m_shadowQualityMultiplier, 1.0f);
}
for (int i = 0; i < m_sliceDataArray.size(); i++)
@@ -285,6 +288,10 @@ void Surface3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis
QSurface3DSeries::DrawFlags drawMode = series->drawMode();
m_cachedSurfaceVisible = drawMode.testFlag(QSurface3DSeries::DrawSurface);
+ if (!m_cachedSurfaceVisible) {
+ m_textureHelper->fillDepthTexture(m_depthTexture, m_primarySubViewport.size(),
+ m_shadowQualityMultiplier, 1.0f);
+ }
m_cachedSurfaceGridOn = drawMode.testFlag(QSurface3DSeries::DrawWireframe);
QVector3D seriesColor = Utils::vectorFromColor(series->baseColor());
@@ -304,11 +311,9 @@ void Surface3DRenderer::updateRows(const QVector<int> &rows)
const QSurfaceDataArray *array = 0;
if (m_visibleSeriesList.size()) {
QSurface3DSeries *firstSeries = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series());
- if (m_cachedSurfaceGridOn || m_cachedSurfaceVisible) {
- QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
- if (dataProxy)
- array = dataProxy->array();
- }
+ QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
+ if (dataProxy)
+ array = dataProxy->array();
}
if (array && array->size() >= 2 && array->at(0)->size() >= 2 &&
@@ -346,11 +351,9 @@ void Surface3DRenderer::updateItem(const QVector<QPoint> &points)
const QSurfaceDataArray *array = 0;
if (m_visibleSeriesList.size()) {
QSurface3DSeries *firstSeries = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series());
- if (m_cachedSurfaceGridOn || m_cachedSurfaceVisible) {
- QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
- if (dataProxy)
- array = dataProxy->array();
- }
+ QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
+ if (dataProxy)
+ array = dataProxy->array();
}
if (array && array->size() >= 2 && array->at(0)->size() >= 2 &&