From 9e0c2a3c6c79f3e23165d3fce2ef605305445872 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Tue, 2 Jun 2015 14:36:34 -0700 Subject: [PATCH] fix crash in ~OffscreenGlCanvas on linux shutdown --- libraries/render-utils/src/OffscreenGlCanvas.cpp | 11 +++++++++++ libraries/render-utils/src/OffscreenGlCanvas.h | 1 + 2 files changed, 12 insertions(+) diff --git a/libraries/render-utils/src/OffscreenGlCanvas.cpp b/libraries/render-utils/src/OffscreenGlCanvas.cpp index a3025bc3f6..e41209a40c 100644 --- a/libraries/render-utils/src/OffscreenGlCanvas.cpp +++ b/libraries/render-utils/src/OffscreenGlCanvas.cpp @@ -16,6 +16,17 @@ OffscreenGlCanvas::OffscreenGlCanvas() { } +OffscreenGlCanvas::~OffscreenGlCanvas() { +#ifdef DEBUG + if (_logger) { + makeCurrent(); + delete _logger; + _logger = nullptr; + } +#endif + _context.doneCurrent(); +} + void OffscreenGlCanvas::create(QOpenGLContext* sharedContext) { if (nullptr != sharedContext) { sharedContext->doneCurrent(); diff --git a/libraries/render-utils/src/OffscreenGlCanvas.h b/libraries/render-utils/src/OffscreenGlCanvas.h index 399737ddb8..7a69e276e4 100644 --- a/libraries/render-utils/src/OffscreenGlCanvas.h +++ b/libraries/render-utils/src/OffscreenGlCanvas.h @@ -20,6 +20,7 @@ class QOpenGLDebugLogger; class OffscreenGlCanvas : public QObject { public: OffscreenGlCanvas(); + ~OffscreenGlCanvas(); void create(QOpenGLContext* sharedContext = nullptr); bool makeCurrent(); void doneCurrent();