[Spice-devel] [PATCHv2 1/3] egl: don't destroy wayland egl context
Marc-André Lureau
marcandre.lureau at gmail.com
Mon May 23 11:01:08 UTC 2016
The egl context is from Gtk on Wayland. Destroy it only on X11.
Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
---
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
More information about the Spice-devel
mailing list