summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3dcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/surface3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/surface3dcontroller.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp
index 5293cb0c..a6c086da 100644
--- a/src/datavisualization/engine/surface3dcontroller.cpp
+++ b/src/datavisualization/engine/surface3dcontroller.cpp
@@ -85,6 +85,12 @@ void Surface3DController::synchDataToRenderer()
m_renderer->updateFlipHorizontalGrid(m_flipHorizontalGrid);
m_changeTracker.flipHorizontalGridChanged = false;
}
+
+ if (m_changeTracker.surfaceTextureChanged) {
+ m_renderer->updateSurfaceTextures(m_changedTextures);
+ m_changeTracker.surfaceTextureChanged = false;
+ m_changedTextures.clear();
+ }
}
void Surface3DController::handleAxisAutoAdjustRangeChangedInOrientation(
@@ -146,6 +152,9 @@ void Surface3DController::addSeries(QAbstract3DSeries *series)
QSurface3DSeries *surfaceSeries = static_cast<QSurface3DSeries *>(series);
if (surfaceSeries->selectedPoint() != invalidSelectionPosition())
setSelectedPoint(surfaceSeries->selectedPoint(), surfaceSeries, false);
+
+ if (!surfaceSeries->texture().isNull())
+ updateSurfaceTexture(surfaceSeries);
}
void Surface3DController::removeSeries(QAbstract3DSeries *series)
@@ -450,6 +459,16 @@ void Surface3DController::handleRowsRemoved(int startIndex, int count)
emitNeedRender();
}
+void Surface3DController::updateSurfaceTexture(QSurface3DSeries *series)
+{
+ m_changeTracker.surfaceTextureChanged = true;
+
+ if (!m_changedTextures.contains(series))
+ m_changedTextures.append(series);
+
+ emitNeedRender();
+}
+
void Surface3DController::adjustAxisRanges()
{
QValue3DAxis *valueAxisX = static_cast<QValue3DAxis *>(m_axisX);