struct screenshooter *screenshooter;
uint32_t id;
- id = wl_display_get_object_id(display, "screenshooter");
+ id = wl_display_get_object_id(display, "screenshooter", 1);
if (id == 0) {
fprintf(stderr, "server doesn't support screenshooter interface\n");
return NULL;
wl_list_init(&display->visual_list);
display->proxy.interface = &wl_display_interface;
- display->proxy.id = wl_display_get_object_id(display, "display");
+ display->proxy.id = wl_display_get_object_id(display, "display", 1);
display->proxy.display = display;
display->connection = wl_connection_create(display->fd,
}
WL_EXPORT uint32_t
-wl_display_get_object_id(struct wl_display *display, const char *interface)
+wl_display_get_object_id(struct wl_display *display,
+ const char *interface, uint32_t version)
{
struct wl_global *global;
global = container_of(display->global_list.next,
struct wl_global, link);
while (&global->link != &display->global_list) {
- if (strcmp(global->interface, interface) == 0)
+ if (strcmp(global->interface, interface) == 0 &&
+ global->version >= version)
return global->id;
global = container_of(global->link.next,
struct wl_compositor *compositor;
uint32_t id;
- id = wl_display_get_object_id(display, "compositor");
+ id = wl_display_get_object_id(display, "compositor", 1);
if (id == 0)
return NULL;
* objects. */
uint32_t wl_display_get_object_id(struct wl_display *display,
- const char *interface);
+ const char *interface, uint32_t version);
uint32_t wl_display_allocate_id(struct wl_display *display);
void wl_display_write(struct wl_display *display,
const void *data,