summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qplatformbackingstore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/painting/qplatformbackingstore.cpp')
-rw-r--r--src/gui/painting/qplatformbackingstore.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gui/painting/qplatformbackingstore.cpp b/src/gui/painting/qplatformbackingstore.cpp
index 5f873bfe7e..4e26d8f741 100644
--- a/src/gui/painting/qplatformbackingstore.cpp
+++ b/src/gui/painting/qplatformbackingstore.cpp
@@ -75,8 +75,15 @@ public:
~QPlatformBackingStorePrivate()
{
#ifndef QT_NO_OPENGL
- if (blitter)
- blitter->destroy();
+ QOpenGLContext *ctx = QOpenGLContext::currentContext();
+ if (ctx) {
+ if (textureId)
+ ctx->functions()->glDeleteTextures(1, &textureId);
+ if (blitter)
+ blitter->destroy();
+ } else if (textureId || blitter) {
+ qWarning("No context current during QPlatformBackingStore destruction, OpenGL resources not released");
+ }
delete blitter;
#endif
}