diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-12-19 11:12:38 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-12-19 11:53:43 +0200 |
commit | 6de5b7a0bb9fe79ccd56cc5088464143794d7135 (patch) | |
tree | 462fae9dcea73f864b72e30776d83a13889161b6 | |
parent | 5273db8cbc592ee5d2da767e3a8e873f2a83784f (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.cpp | 23 |
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 && |