We need to let the currentContext be in the same state after
authorJørgen Lind <jorgen.lind@nokia.com>
Fri, 27 May 2011 09:12:02 +0000 (02:12 -0700)
committerQt by Nokia <qt-info@nokia.com>
Wed, 6 Jul 2011 10:03:30 +0000 (12:03 +0200)
setting the new eglsurface
(cherry picked from commit af3efefeefe686e5c35ed502de077c0bcb6f6fc0)

Change-Id: Ic1d62b21a1482d1bc7f1d99478e175e4b767e157
Reviewed-on: http://codereview.qt.nokia.com/1209
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
src/plugins/platforms/wayland/gl_integration/wayland_egl/qwaylandglcontext.cpp

index 72ad5a8..0f27501 100644 (file)
@@ -115,8 +115,15 @@ void *QWaylandGLContext::getProcAddress(const QString &string)
 
 void QWaylandGLContext::setEglSurface(EGLSurface surface)
 {
-    doneCurrent();
+    bool wasCurrent = false;
+    if (QPlatformGLContext::currentContext() == this) {
+        wasCurrent = true;
+        doneCurrent();
+    }
     mSurface = surface;
+    if (wasCurrent) {
+        makeCurrent();
+    }
 }
 
 EGLConfig QWaylandGLContext::eglConfig() const