From 732c9f39f08d7867c8e127c84d319ae514d682fd Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Oct 2014 10:21:20 +0300 Subject: Fix context cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Context was not getting properly cleaned up in cases where render thread stopped before the cleanup took place. Now we ensure that required cleanup is done before context thread terminates. Change-Id: I1489914dafec928eebb69bac737f6f858ff49432 Reviewed-by: Tomi Korpipää --- src/datavisualization/engine/abstract3drenderer_p.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/datavisualization/engine/abstract3drenderer_p.h') diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h index d8ca7696..1857278c 100644 --- a/src/datavisualization/engine/abstract3drenderer_p.h +++ b/src/datavisualization/engine/abstract3drenderer_p.h @@ -37,6 +37,8 @@ #include "seriesrendercache_p.h" #include "customrenderitem_p.h" +class QSurface; + QT_BEGIN_NAMESPACE_DATAVISUALIZATION class TextureHelper; @@ -229,6 +231,9 @@ protected: void queriedGraphPosition(const QMatrix4x4 &projectionViewMatrix, const QVector3D &scaling, GLuint defaultFboHandle); + void fixContextBeforeDelete(); + void restoreContextAfterDelete(); + bool m_hasNegativeValues; Q3DTheme *m_cachedTheme; Drawer *m_drawer; @@ -318,6 +323,10 @@ protected: qreal m_reflectivity; QLocale m_locale; + QPointer m_context; // Not owned + QOpenGLContext *m_currentContextAtDelete; // Not owned + QSurface *m_currentSurfaceAtDelete; // Not owned + QWindow *m_dummySurfaceAtDelete; private: friend class Abstract3DController; -- cgit v1.2.3