summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/scatter3drenderer.cpp
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2019-04-29 12:50:14 +0300
committerTomi Korpipää <tomi.korpipaa@qt.io>2019-04-29 12:58:36 +0000
commite4cd15e388f675a80a9c257655a580b1b53c240a (patch)
tree07840b4acf5790a88dfe56740e5a4cab9ec8bf03 /src/datavisualization/engine/scatter3drenderer.cpp
parentfd902c04b912deb81f41da0cd216d2cb1c86289b (diff)
Fix hanging at application exit
Task-number: QTBUG-75256 Task-number: QTBUG-69627 Change-Id: If4221c8fcf783daf4bf6a38dbf1b9633a20eafb0 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 8df8f4ea..fbf2b2cf 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -87,15 +87,7 @@ Scatter3DRenderer::Scatter3DRenderer(Scatter3DController *controller)
Scatter3DRenderer::~Scatter3DRenderer()
{
- fixContextBeforeDelete();
-
- if (QOpenGLContext::currentContext()) {
- m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer);
- m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer);
- m_textureHelper->deleteTexture(&m_selectionTexture);
- m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer);
- m_textureHelper->deleteTexture(&m_bgrTexture);
- }
+ contextCleanup();
delete m_dotShader;
delete m_staticSelectedItemGradientShader;
delete m_staticSelectedItemShader;
@@ -106,6 +98,17 @@ Scatter3DRenderer::~Scatter3DRenderer()
delete m_staticGradientPointShader;
}
+void Scatter3DRenderer::contextCleanup()
+{
+ if (QOpenGLContext::currentContext()) {
+ m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer);
+ m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer);
+ m_textureHelper->deleteTexture(&m_selectionTexture);
+ m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer);
+ m_textureHelper->deleteTexture(&m_bgrTexture);
+ }
+}
+
void Scatter3DRenderer::initializeOpenGL()
{
Abstract3DRenderer::initializeOpenGL();