diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index a2eb8e0b08..de3352566a 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -17,10 +17,6 @@ #include "config.h" -#ifdef GDK_WAYLAND_USE_EGL -#include -#endif - #include #include #include @@ -155,63 +151,6 @@ gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id } } -#ifdef GDK_WAYLAND_USE_EGL -static gboolean -gdk_display_init_egl(GdkDisplay *display) -{ - GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display); - EGLint major, minor, i; - void *p; - - static const struct { const char *f; unsigned int offset; } - extension_functions[] = { - { "glEGLImageTargetTexture2DOES", offsetof(GdkWaylandDisplay, image_target_texture_2d) }, - { "eglCreateImageKHR", offsetof(GdkWaylandDisplay, create_image) }, - { "eglDestroyImageKHR", offsetof(GdkWaylandDisplay, destroy_image) } - }; - - display_wayland->egl_display = - eglGetDisplay(display_wayland->wl_display); - if (!eglInitialize(display_wayland->egl_display, &major, &minor)) { - fprintf(stderr, "failed to initialize display\n"); - return FALSE; - } - - eglBindAPI(EGL_OPENGL_API); - - display_wayland->egl_context = - eglCreateContext(display_wayland->egl_display, NULL, EGL_NO_CONTEXT, NULL); - if (display_wayland->egl_context == NULL) { - fprintf(stderr, "failed to create context\n"); - return FALSE; - } - - if (!eglMakeCurrent(display_wayland->egl_display, - NULL, NULL, display_wayland->egl_context)) { - fprintf(stderr, "faile to make context current\n"); - return FALSE; - } - - display_wayland->cairo_device = - cairo_egl_device_create(display_wayland->egl_display, - display_wayland->egl_context); - if (cairo_device_status (display_wayland->cairo_device) != CAIRO_STATUS_SUCCESS) { - fprintf(stderr, "failed to get cairo drm device\n"); - return FALSE; - } - - for (i = 0; i < G_N_ELEMENTS(extension_functions); i++) { - p = eglGetProcAddress(extension_functions[i].f); - *(void **) ((char *) display_wayland + extension_functions[i].offset) = p; - if (p == NULL) { - fprintf(stderr, "failed to look up %s\n", extension_functions[i].f); - return FALSE; - } - } - - return TRUE; -} -#endif static const struct wl_registry_listener registry_listener = { gdk_registry_handle_global @@ -241,11 +180,7 @@ _gdk_wayland_display_open (const gchar *display_name) display_wayland->wl_registry = wl_display_get_registry(display_wayland->wl_display); wl_registry_add_listener(display_wayland->wl_registry, ®istry_listener, display_wayland); -#ifdef GDK_WAYLAND_USE_EGL - gdk_display_init_egl(display); -#else wl_display_dispatch(display_wayland->wl_display); -#endif display_wayland->event_source = _gdk_wayland_display_event_source_new (display); @@ -277,10 +212,6 @@ gdk_wayland_display_dispose (GObject *object) display_wayland->event_source = NULL; } -#ifdef GDK_WAYLAND_USE_EGL - eglTerminate(display_wayland->egl_display); -#endif - G_OBJECT_CLASS (_gdk_wayland_display_parent_class)->dispose (object); } diff --git a/gdk/wayland/gdkdisplay-wayland.h b/gdk/wayland/gdkdisplay-wayland.h index 5e8e76f6c0..ae95a17e7a 100644 --- a/gdk/wayland/gdkdisplay-wayland.h +++ b/gdk/wayland/gdkdisplay-wayland.h @@ -27,15 +27,6 @@ #include #include -#ifdef GDK_WAYLAND_USE_EGL -#include -#include -#include -#include -#include -#include -#endif - #include #include #include @@ -89,18 +80,6 @@ struct _GdkWaylandDisplay GSource *event_source; struct xkb_context *xkb_context; - -#ifdef GDK_WAYLAND_USE_EGL - EGLDisplay egl_display; - EGLContext egl_context; - cairo_device_t *cairo_device; -#endif - -#ifdef GDK_WAYLAND_USE_EGL - PFNGLEGLIMAGETARGETTEXTURE2DOESPROC image_target_texture_2d; - PFNEGLCREATEIMAGEKHRPROC create_image; - PFNEGLDESTROYIMAGEKHRPROC destroy_image; -#endif }; struct _GdkWaylandDisplayClass diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 553d0b9b7e..088c59cf76 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -302,15 +302,9 @@ _gdk_wayland_display_create_window_impl (GdkDisplay *display, static const cairo_user_data_key_t gdk_wayland_cairo_key; typedef struct _GdkWaylandCairoSurfaceData { -#ifdef GDK_WAYLAND_USE_EGL - EGLImageKHR image; - GLuint texture; - struct wl_egl_pixmap *pixmap; -#else gpointer buf; size_t buf_length; struct wl_shm_pool *pool; -#endif struct wl_buffer *buffer; GdkWaylandDisplay *display; int32_t width, height; @@ -374,67 +368,6 @@ gdk_wayland_window_attach_image (GdkWindow *window) wl_surface_attach (impl->surface, data->buffer, dx, dy); } -#ifdef GDK_WAYLAND_USE_EGL -static void -gdk_wayland_cairo_surface_destroy (void *p) -{ - GdkWaylandCairoSurfaceData *data = p; - - data->display->destroy_image (data->display->egl_display, data->image); - cairo_device_acquire(data->display->cairo_device); - glDeleteTextures(1, &data->texture); - cairo_device_release(data->display->cairo_device); - if (data->buffer) - wl_buffer_destroy(data->buffer); - g_free(data); -} - -static cairo_surface_t * -gdk_wayland_create_cairo_surface (GdkWaylandDisplay *display, - int width, int height) -{ - GdkWaylandCairoSurfaceData *data; - cairo_surface_t *surface; - cairo_status_t status; - - data = g_new (GdkWaylandCairoSurfaceData, 1); - data->display = display; - data->buffer = NULL; - data->width = width; - data->height = height; - data->pixmap = wl_egl_pixmap_create(width, height, 0); - data->image = - display->create_image(display->egl_display, NULL, EGL_NATIVE_PIXMAP_KHR, - (EGLClientBuffer) data->pixmap, NULL); - - cairo_device_acquire(display->cairo_device); - glGenTextures(1, &data->texture); - glBindTexture(GL_TEXTURE_2D, data->texture); - display->image_target_texture_2d(GL_TEXTURE_2D, data->image); - cairo_device_release(display->cairo_device); - - surface = cairo_gl_surface_create_for_texture(display->cairo_device, - CAIRO_CONTENT_COLOR_ALPHA, - data->texture, width, height); - - cairo_surface_set_user_data (surface, &gdk_wayland_cairo_key, - data, gdk_wayland_cairo_surface_destroy); - - status = cairo_surface_status (surface); - if (status != CAIRO_STATUS_SUCCESS) - { - g_critical (G_STRLOC ": Unable to create Cairo GL surface: %s", - cairo_status_to_string (status)); - - } - - if (!data->buffer) - data->buffer = - wl_egl_pixmap_create_buffer(data->pixmap); - - return surface; -} -#else static void gdk_wayland_cairo_surface_destroy (void *p) { @@ -542,7 +475,6 @@ gdk_wayland_create_cairo_surface (GdkWaylandDisplay *display, return surface; } -#endif /* On this first call this creates a double reference - the first reference * is held by the GdkWindowImplWayland struct - since unlike other backends