diff options
Diffstat (limited to 'src/datavisualization/engine/surfaceseriesrendercache.cpp')
-rw-r--r-- | src/datavisualization/engine/surfaceseriesrendercache.cpp | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/datavisualization/engine/surfaceseriesrendercache.cpp b/src/datavisualization/engine/surfaceseriesrendercache.cpp index bc261f05..ba25d71d 100644 --- a/src/datavisualization/engine/surfaceseriesrendercache.cpp +++ b/src/datavisualization/engine/surfaceseriesrendercache.cpp @@ -50,18 +50,6 @@ SurfaceSeriesRenderCache::SurfaceSeriesRenderCache() SurfaceSeriesRenderCache::~SurfaceSeriesRenderCache() { - delete m_surfaceObj; - delete m_sliceSurfaceObj; - for (int i = 0; i < m_dataArray.size(); i++) - delete m_dataArray.at(i); - m_dataArray.clear(); - - for (int i = 0; i < m_sliceDataArray.size(); i++) - delete m_sliceDataArray.at(i); - m_sliceDataArray.clear(); - - delete m_sliceSelectionPointer; - delete m_mainSelectionPointer; } void SurfaceSeriesRenderCache::populate(QSurface3DSeries *series, Abstract3DRenderer *renderer) @@ -79,4 +67,25 @@ void SurfaceSeriesRenderCache::populate(QSurface3DSeries *series, Abstract3DRend } } +void SurfaceSeriesRenderCache::cleanup(TextureHelper *texHelper) +{ + if (QOpenGLContext::currentContext()) + texHelper->deleteTexture(&m_selectionTexture); + + delete m_surfaceObj; + delete m_sliceSurfaceObj; + for (int i = 0; i < m_dataArray.size(); i++) + delete m_dataArray.at(i); + m_dataArray.clear(); + + for (int i = 0; i < m_sliceDataArray.size(); i++) + delete m_sliceDataArray.at(i); + m_sliceDataArray.clear(); + + delete m_sliceSelectionPointer; + delete m_mainSelectionPointer; + + SeriesRenderCache::cleanup(texHelper); +} + QT_END_NAMESPACE_DATAVISUALIZATION |