1*4882a593SmuzhiyunFrom b1f41f2b6ad442494d31fa18692d1201545c3f26 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Wed, 6 Jun 2018 21:26:46 +0800 4*4882a593SmuzhiyunSubject: [PATCH 10/28] qoffscreensurface: Clear current surface before destroy 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 7*4882a593Smuzhiyun--- 8*4882a593Smuzhiyun src/gui/kernel/qoffscreensurface.cpp | 6 ++++++ 9*4882a593Smuzhiyun 1 file changed, 6 insertions(+) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyundiff --git a/src/gui/kernel/qoffscreensurface.cpp b/src/gui/kernel/qoffscreensurface.cpp 12*4882a593Smuzhiyunindex c74fe0b3..563cb410 100644 13*4882a593Smuzhiyun--- a/src/gui/kernel/qoffscreensurface.cpp 14*4882a593Smuzhiyun+++ b/src/gui/kernel/qoffscreensurface.cpp 15*4882a593Smuzhiyun@@ -234,6 +234,12 @@ void QOffscreenSurface::destroy() 16*4882a593Smuzhiyun QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed); 17*4882a593Smuzhiyun QGuiApplication::sendEvent(this, &e); 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun+#ifndef QT_NO_OPENGL 20*4882a593Smuzhiyun+ QOpenGLContext *context = QOpenGLContext::currentContext(); 21*4882a593Smuzhiyun+ if (context && context->surface() == this) 22*4882a593Smuzhiyun+ context->doneCurrent(); 23*4882a593Smuzhiyun+#endif 24*4882a593Smuzhiyun+ 25*4882a593Smuzhiyun delete d->platformOffscreenSurface; 26*4882a593Smuzhiyun d->platformOffscreenSurface = nullptr; 27*4882a593Smuzhiyun if (d->offscreenWindow) { 28*4882a593Smuzhiyun-- 29*4882a593Smuzhiyun2.20.1 30*4882a593Smuzhiyun 31