[gtk+] wayland: Update to recent API changes



commit 0dd1f7edbc6e3d0a04b254e2c0b15d6ebaf6f086
Author: Kristian HÃgsberg <krh bitplanet net>
Date:   Wed Nov 30 10:21:27 2011 -0500

    wayland: Update to recent API changes

 gdk/wayland/gdkcursor-wayland.c  |    4 +--
 gdk/wayland/gdkdisplay-wayland.c |   53 +++++--------------------------------
 gdk/wayland/gdkdisplay-wayland.h |    1 -
 gdk/wayland/gdkscreen-wayland.c  |   44 ++++++++-----------------------
 gdk/wayland/gdkwindow-wayland.c  |    4 +--
 5 files changed, 21 insertions(+), 85 deletions(-)
---
diff --git a/gdk/wayland/gdkcursor-wayland.c b/gdk/wayland/gdkcursor-wayland.c
index 21b3bf5..7553f05 100644
--- a/gdk/wayland/gdkcursor-wayland.c
+++ b/gdk/wayland/gdkcursor-wayland.c
@@ -168,7 +168,6 @@ static GdkCursor *
 create_cursor(GdkDisplayWayland *display, GdkPixbuf *pixbuf, int x, int y)
 {
   GdkWaylandCursor *cursor;
-  struct wl_visual *visual;
   int stride, fd;
   char *filename;
   GError *error = NULL;
@@ -224,12 +223,11 @@ create_cursor(GdkDisplayWayland *display, GdkPixbuf *pixbuf, int x, int y)
   else
     memset (cursor->map, 0, 4);
 
-  visual = display->premultiplied_argb_visual;
   cursor->buffer = wl_shm_create_buffer(display->shm,
 					fd,
 					cursor->width,
 					cursor->height,
-					stride, visual);
+					stride, WL_SHM_FORMAT_ARGB32);
 
   close(fd);
 
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index 8481e8b..929ab58 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -143,31 +143,6 @@ display_handle_mode(void *data,
 {
 }
 
-static void
-compositor_handle_visual(void *data,
-			 struct wl_compositor *compositor,
-			 uint32_t id, uint32_t token)
-{
-	GdkDisplayWayland *d = data;
-
-	switch (token) {
-	case WL_COMPOSITOR_VISUAL_ARGB32:
-		d->argb_visual = wl_visual_create(d->wl_display, id, 1);
-		break;
-	case WL_COMPOSITOR_VISUAL_PREMULTIPLIED_ARGB32:
-		d->premultiplied_argb_visual =
-			wl_visual_create(d->wl_display, id, 1);
-		break;
-	case WL_COMPOSITOR_VISUAL_XRGB32:
-		d->rgb_visual = wl_visual_create(d->wl_display, id, 1);
-		break;
-	}
-}
-
-static const struct wl_compositor_listener compositor_listener = {
-	compositor_handle_visual,
-};
-
 static const struct wl_output_listener output_listener = {
 	output_handle_geometry,
 	display_handle_mode
@@ -182,21 +157,21 @@ gdk_display_handle_global(struct wl_display *display, uint32_t id,
   struct wl_input_device *input;
 
   if (strcmp(interface, "wl_compositor") == 0) {
-    display_wayland->compositor = wl_compositor_create(display, id, 1);
-    wl_compositor_add_listener(display_wayland->compositor,
-					   &compositor_listener, display_wayland);
+    display_wayland->compositor =
+      wl_display_bind(display, id, &wl_compositor_interface);
   } else if (strcmp(interface, "wl_shm") == 0) {
-    display_wayland->shm = wl_shm_create(display, id, 1);
+    display_wayland->shm = wl_display_bind(display, id, &wl_shm_interface);
   } else if (strcmp(interface, "wl_shell") == 0) {
-    display_wayland->shell = wl_shell_create(display, id, 1);
+    display_wayland->shell = wl_display_bind(display, id, &wl_shell_interface);
     wl_shell_add_listener(display_wayland->shell,
 			  &shell_listener, display_wayland);
   } else if (strcmp(interface, "wl_output") == 0) {
-    display_wayland->output = wl_output_create(display, id, 1);
+    display_wayland->output =
+      wl_display_bind(display, id, &wl_output_interface);
     wl_output_add_listener(display_wayland->output,
 			   &output_listener, display_wayland);
   } else if (strcmp(interface, "wl_input_device") == 0) {
-    input = wl_input_device_create(display, id, 1);
+    input = wl_display_bind(display, id, &wl_input_device_interface);
     _gdk_wayland_device_manager_add_device (gdk_display->device_manager,
 					    input);
   }
@@ -376,27 +351,15 @@ gdk_wayland_display_beep (GdkDisplay *display)
 }
 
 static void
-sync_callback(void *data)
-{
-  gboolean *done = data;
-
-  *done = TRUE;
-}
-
-static void
 gdk_wayland_display_sync (GdkDisplay *display)
 {
   GdkDisplayWayland *display_wayland;
-  gboolean done;
 
   g_return_if_fail (GDK_IS_DISPLAY (display));
 
   display_wayland = GDK_DISPLAY_WAYLAND (display);
 
-  wl_display_sync_callback(display_wayland->wl_display, sync_callback, &done);
-  wl_display_iterate(display_wayland->wl_display, WL_DISPLAY_WRITABLE);
-  while (!done)
-    wl_display_iterate(display_wayland->wl_display, WL_DISPLAY_READABLE);
+  wl_display_roundtrip(display_wayland->wl_display);
 }
 
 static void
diff --git a/gdk/wayland/gdkdisplay-wayland.h b/gdk/wayland/gdkdisplay-wayland.h
index 787de8c..88756af 100644
--- a/gdk/wayland/gdkdisplay-wayland.h
+++ b/gdk/wayland/gdkdisplay-wayland.h
@@ -71,7 +71,6 @@ struct _GdkDisplayWayland
 
   /* Wayland fields below */
   struct wl_display *wl_display;
-  struct wl_visual *argb_visual, *premultiplied_argb_visual, *rgb_visual;
   struct wl_compositor *compositor;
   struct wl_shm *shm;
   struct wl_shell *shell;
diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c
index 26f426d..cf7ef90 100644
--- a/gdk/wayland/gdkscreen-wayland.c
+++ b/gdk/wayland/gdkscreen-wayland.c
@@ -53,9 +53,7 @@ struct _GdkScreenWayland
   int width_mm, height_mm;
 
   /* Visual Part */
-  GdkVisual *argb_visual;
-  GdkVisual *premultiplied_argb_visual;
-  GdkVisual *rgb_visual;
+  GdkVisual *visual;
 
   /* Xinerama/RandR 1.2 */
   gint		     n_monitors;
@@ -155,10 +153,7 @@ gdk_wayland_screen_finalize (GObject *object)
   if (screen_wayland->root_window)
     g_object_unref (screen_wayland->root_window);
 
-  /* Visual Part */
-  g_object_unref (screen_wayland->argb_visual);
-  g_object_unref (screen_wayland->premultiplied_argb_visual);
-  g_object_unref (screen_wayland->rgb_visual);
+  g_object_unref (screen_wayland->visual);
 
   deinit_multihead (GDK_SCREEN (object));
 
@@ -294,13 +289,13 @@ gdk_wayland_screen_get_monitor_geometry (GdkScreen    *screen,
 static GdkVisual *
 gdk_wayland_screen_get_system_visual (GdkScreen * screen)
 {
-  return (GdkVisual *) GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return (GdkVisual *) GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static GdkVisual *
 gdk_wayland_screen_get_rgba_visual (GdkScreen *screen)
 {
-  return (GdkVisual *) GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return (GdkVisual *) GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static gboolean
@@ -349,7 +344,6 @@ typedef struct _GdkWaylandVisualClass	GdkWaylandVisualClass;
 struct _GdkWaylandVisual
 {
   GdkVisual visual;
-  struct wl_visual *wl_visual;
 };
 
 struct _GdkWaylandVisualClass
@@ -384,21 +378,21 @@ gdk_wayland_screen_visual_get_best_type (GdkScreen *screen)
 static GdkVisual*
 gdk_wayland_screen_visual_get_best (GdkScreen *screen)
 {
-  return GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static GdkVisual*
 gdk_wayland_screen_visual_get_best_with_depth (GdkScreen *screen,
 					       gint       depth)
 {
-  return GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static GdkVisual*
 gdk_wayland_screen_visual_get_best_with_type (GdkScreen     *screen,
 					      GdkVisualType  visual_type)
 {
-  return GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static GdkVisual*
@@ -406,7 +400,7 @@ gdk_wayland_screen_visual_get_best_with_both (GdkScreen     *screen,
 					      gint           depth,
 					      GdkVisualType  visual_type)
 {
-  return GDK_SCREEN_WAYLAND (screen)->argb_visual;
+  return GDK_SCREEN_WAYLAND (screen)->visual;
 }
 
 static void
@@ -440,9 +434,7 @@ gdk_wayland_screen_list_visuals (GdkScreen *screen)
   g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
   screen_wayland = GDK_SCREEN_WAYLAND (screen);
 
-  list = g_list_append (NULL, screen_wayland->argb_visual);
-  list = g_list_append (NULL, screen_wayland->premultiplied_argb_visual);
-  list = g_list_append (NULL, screen_wayland->rgb_visual);
+  list = g_list_append (NULL, screen_wayland->visual);
 
   return list;
 }
@@ -451,7 +443,7 @@ gdk_wayland_screen_list_visuals (GdkScreen *screen)
 #define GDK_WAYLAND_VISUAL(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_VISUAL, GdkWaylandVisual))
 
 static GdkVisual *
-gdk_wayland_visual_new (GdkScreen *screen, struct wl_visual *wl_visual)
+gdk_wayland_visual_new (GdkScreen *screen)
 {
   GdkVisual *visual;
 
@@ -460,8 +452,6 @@ gdk_wayland_visual_new (GdkScreen *screen, struct wl_visual *wl_visual)
   visual->type = GDK_VISUAL_TRUE_COLOR;
   visual->depth = 32;
 
-  GDK_WAYLAND_VISUAL (visual)->wl_visual = wl_visual;
-
   return visual;
 }
 
@@ -470,10 +460,6 @@ _gdk_wayland_screen_new (GdkDisplay *display)
 {
   GdkScreen *screen;
   GdkScreenWayland *screen_wayland;
-  GdkDisplayWayland *display_wayland;
-  struct wl_visual *visual;
-
-  display_wayland = GDK_DISPLAY_WAYLAND (display);
 
   screen = g_object_new (GDK_TYPE_SCREEN_WAYLAND, NULL);
 
@@ -482,15 +468,7 @@ _gdk_wayland_screen_new (GdkDisplay *display)
   screen_wayland->width = 8192;
   screen_wayland->height = 8192;
 
-  visual = display_wayland->argb_visual;
-  screen_wayland->argb_visual = gdk_wayland_visual_new (screen, visual);
-
-  visual = display_wayland->premultiplied_argb_visual;
-  screen_wayland->premultiplied_argb_visual =
-    gdk_wayland_visual_new (screen, visual);
-
-  visual = display_wayland->rgb_visual;
-  screen_wayland->rgb_visual = gdk_wayland_visual_new (screen, visual);
+  screen_wayland->visual = gdk_wayland_visual_new (screen);
 
   screen_wayland->root_window =
     _gdk_wayland_screen_create_root_window (screen,
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 653059e..3653fa3 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -387,15 +387,13 @@ gdk_wayland_create_cairo_surface (GdkDisplayWayland *display,
 {
   GdkWaylandCairoSurfaceData *data;
   cairo_surface_t *surface;
-  struct wl_visual *visual;
 
   data = g_new (GdkWaylandCairoSurfaceData, 1);
   data->display = display;
   data->buffer = NULL;
-  visual = display->premultiplied_argb_visual;
   data->width = width;
   data->height = height;
-  data->pixmap = wl_egl_pixmap_create(width, height, visual, 0);
+  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);



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