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