diff options
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index b6125719..be7ccf66 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -95,17 +95,7 @@ Surface3DRenderer::Surface3DRenderer(Surface3DController *controller) Surface3DRenderer::~Surface3DRenderer() { - fixContextBeforeDelete(); - - if (QOpenGLContext::currentContext()) { - m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer); - m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer); - m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer); - - m_textureHelper->deleteTexture(&m_noShadowTexture); - m_textureHelper->deleteTexture(&m_depthTexture); - m_textureHelper->deleteTexture(&m_selectionResultTexture); - } + contextCleanup(); delete m_depthShader; delete m_backgroundShader; delete m_selectionShader; @@ -118,6 +108,19 @@ Surface3DRenderer::~Surface3DRenderer() delete m_surfaceSliceSmoothShader; } +void Surface3DRenderer::contextCleanup() +{ + if (QOpenGLContext::currentContext()) { + m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer); + m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer); + m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer); + + m_textureHelper->deleteTexture(&m_noShadowTexture); + m_textureHelper->deleteTexture(&m_depthTexture); + m_textureHelper->deleteTexture(&m_selectionResultTexture); + } +} + void Surface3DRenderer::initializeOpenGL() { Abstract3DRenderer::initializeOpenGL(); |