diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2014-10-13 10:21:20 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2014-10-13 10:33:10 +0300 |
commit | 732c9f39f08d7867c8e127c84d319ae514d682fd (patch) | |
tree | acb14a3dbe2cb98e154c28b6845b83c687abb752 /src/datavisualization/engine/abstract3drenderer_p.h | |
parent | 8ff6a5d6d89d80707dc07fc96e22160fa1f8e973 (diff) |
Fix context cleanup
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ää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer_p.h')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer_p.h | 9 |
1 files changed, 9 insertions, 0 deletions
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<QOpenGLContext> m_context; // Not owned + QOpenGLContext *m_currentContextAtDelete; // Not owned + QSurface *m_currentSurfaceAtDelete; // Not owned + QWindow *m_dummySurfaceAtDelete; private: friend class Abstract3DController; |