[PATCHv2 1/3] egl: don't destroy wayland egl context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The egl context is from Gtk on Wayland. Destroy it only on X11.

Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx>
---
 src/spice-widget-egl.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/spice-widget-egl.c b/src/spice-widget-egl.c
index 961dcfa..a3db856 100644
--- a/src/spice-widget-egl.c
+++ b/src/spice-widget-egl.c
@@ -364,10 +364,6 @@ void spice_egl_unrealize_display(SpiceDisplay *display)
         d->egl.tex_pointer_id = 0;
     }
 
-    if (d->egl.surface != EGL_NO_SURFACE) {
-        eglDestroySurface(d->egl.display, d->egl.surface);
-        d->egl.surface = EGL_NO_SURFACE;
-    }
     if (d->egl.vbuf_id) {
         glDeleteBuffers(1, &d->egl.vbuf_id);
         d->egl.vbuf_id = 0;
@@ -378,14 +374,24 @@ void spice_egl_unrealize_display(SpiceDisplay *display)
         d->egl.prog = 0;
     }
 
-    if (d->egl.ctx) {
-        eglDestroyContext(d->egl.display, d->egl.ctx);
-        d->egl.ctx = 0;
+    if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
+        /* egl.surface && egl.ctx are only created on x11, see
+           spice_egl_init() */
+
+        if (d->egl.surface != EGL_NO_SURFACE) {
+            eglDestroySurface(d->egl.display, d->egl.surface);
+            d->egl.surface = EGL_NO_SURFACE;
+        }
+
+        if (d->egl.ctx) {
+            eglDestroyContext(d->egl.display, d->egl.ctx);
+            d->egl.ctx = 0;
+        }
+
+        eglMakeCurrent(d->egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE,
+                       EGL_NO_CONTEXT);
+        eglTerminate(d->egl.display);
     }
-
-    eglMakeCurrent(d->egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE,
-                   EGL_NO_CONTEXT);
-    eglTerminate(d->egl.display);
 }
 
 G_GNUC_INTERNAL
-- 
2.7.4

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]