summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index 47e3bf08..43815d39 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -206,12 +206,9 @@ void Surface3DRenderer::updateData()
const QSurfaceDataArray *array = 0;
if (m_visibleSeriesList.size()) {
QSurface3DSeries *firstSeries = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series());
- m_cachedSurfaceVisible = firstSeries->isVisible(); // TODO: To series visuals update?
- if (m_cachedSurfaceGridOn || m_cachedSurfaceVisible) {
- QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
- if (dataProxy)
- array = dataProxy->array();
- }
+ QSurfaceDataProxy *dataProxy = firstSeries->dataProxy();
+ if (dataProxy)
+ array = dataProxy->array();
}
calculateSceneScalingFactors();
@@ -264,6 +261,9 @@ void Surface3DRenderer::updateData()
delete m_dataArray.at(i);
m_dataArray.clear();
m_sampleSpace = QRect();
+
+ delete m_surfaceObj;
+ m_surfaceObj = 0;
}
for (int i = 0; i < m_sliceDataArray.size(); i++)
@@ -282,7 +282,11 @@ void Surface3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis
if (m_visibleSeriesList.size()) {
QSurface3DSeries *series = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series());
updateFlatStatus(series->isFlatShadingEnabled());
- updateSurfaceGridStatus(series->isSurfaceGridEnabled());
+
+ QSurface3DSeries::DrawFlags drawMode = series->drawMode();
+ m_cachedSurfaceVisible = drawMode.testFlag(QSurface3DSeries::DrawSurface);
+ m_cachedSurfaceGridOn = drawMode.testFlag(QSurface3DSeries::DrawWireframe);
+
QVector3D seriesColor = Utils::vectorFromColor(series->baseColor());
if (m_uniformGradientTextureColor != seriesColor)
generateUniformGradient(seriesColor);