summaryrefslogtreecommitdiff
path: root/clients/nested.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2013-07-08 19:03:57 -0400
committerKristian Høgsberg <krh@bitplanet.net>2013-07-09 02:02:11 -0400
commit919cddb0abc1a1611643d1ce7fcf6b94580c8d85 (patch)
tree74310158e4ad8245dbefdb94a2c7c4e83360c74b /clients/nested.c
parentac3a8b83fd900c8d38f808f1255e4b1d0ee50c5c (diff)
downloadweston-919cddb0abc1a1611643d1ce7fcf6b94580c8d85.tar.gz
Convert to wl_global_create/destroy()
Diffstat (limited to 'clients/nested.c')
-rw-r--r--clients/nested.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/clients/nested.c b/clients/nested.c
index 6aef9c87..a4e07f7b 100644
--- a/clients/nested.c
+++ b/clients/nested.c
@@ -44,6 +44,8 @@
#include "window.h"
+#define MIN(x,y) (((x) < (y)) ? (x) : (y))
+
struct nested {
struct display *display;
struct window *window;
@@ -347,10 +349,10 @@ surface_frame(struct wl_client *client,
return;
}
- callback->resource =
- wl_client_add_object(client, &wl_callback_interface,
- NULL, id, callback);
- wl_resource_set_destructor(callback->resource, destroy_frame_callback);
+ callback->resource = wl_resource_create(client,
+ &wl_callback_interface, 1, id);
+ wl_resource_set_implementation(callback->resource, NULL, callback,
+ destroy_frame_callback);
wl_list_insert(nested->frame_callback_list.prev, &callback->link);
}
@@ -423,9 +425,11 @@ compositor_create_surface(struct wl_client *client,
display_release_window_surface(nested->display, nested->window);
surface->resource =
- wl_client_add_object(client, &wl_surface_interface,
- &surface_interface, id, surface);
- wl_resource_set_destructor(surface->resource, destroy_surface);
+ wl_resource_create(client, &wl_surface_interface, 1, id);
+
+ wl_resource_set_implementation(surface->resource,
+ &surface_interface, surface,
+ destroy_surface);
wl_list_insert(nested->surface_list.prev, &surface->link);
}
@@ -488,23 +492,27 @@ compositor_create_region(struct wl_client *client,
pixman_region32_init(&region->region);
region->resource =
- wl_client_add_object(client, &wl_region_interface,
- &region_interface, id, region);
- wl_resource_set_destructor(region->resource, destroy_region);
+ wl_resource_create(client, &wl_region_interface, 1, id);
+ wl_resource_set_implementation(region->resource, &region_interface,
+ region, destroy_region);
}
static const struct wl_compositor_interface compositor_interface = {
compositor_create_surface,
compositor_create_region
};
+
static void
compositor_bind(struct wl_client *client,
void *data, uint32_t version, uint32_t id)
{
struct nested *nested = data;
+ struct wl_resource *resource;
- wl_client_add_object(client, &wl_compositor_interface,
- &compositor_interface, id, nested);
+ resource = wl_resource_create(client, &wl_compositor_interface,
+ MIN(version, 3), id);
+ wl_resource_set_implementation(resource, &compositor_interface,
+ nested, NULL);
}
static int
@@ -523,9 +531,9 @@ nested_init_compositor(struct nested *nested)
display_watch_fd(nested->display, fd,
EPOLLIN, &nested->child_task);
- if (!wl_display_add_global(nested->child_display,
- &wl_compositor_interface,
- nested, compositor_bind))
+ if (!wl_global_create(nested->child_display,
+ &wl_compositor_interface, 1,
+ nested, compositor_bind))
return -1;
wl_display_init_shm(nested->child_display);