From c9e00c06e97c74bc96951f4b81d08ecf4a01c705 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 10 Oct 2012 12:49:24 +0300 Subject: [PATCH] clients: use wl_surface_commit Use wl_surface_commit() to commit the buffer attach, as Weston now requires. NOTE: GL-applications are broken until you upgrade to a version of Mesa which does wl_surface_commit() on eglSwapBuffers(). If you have Cairo-gl, this means all toytoolkit apps, too. simple-shm and simple-touch OTOH will work now. Signed-off-by: Pekka Paalanen --- clients/dnd.c | 2 ++ clients/simple-shm.c | 1 + clients/simple-touch.c | 1 + clients/window.c | 2 ++ 4 files changed, 6 insertions(+) diff --git a/clients/dnd.c b/clients/dnd.c index 44c15412..4c070ff4 100644 --- a/clients/dnd.c +++ b/clients/dnd.c @@ -269,6 +269,7 @@ data_source_target(void *data, wl_surface_attach(dnd_drag->drag_surface, buffer, 0, 0); wl_surface_damage(dnd_drag->drag_surface, 0, 0, dnd_drag->width, dnd_drag->height); + wl_surface_commit(dnd_drag->drag_surface); } static void @@ -450,6 +451,7 @@ dnd_button_handler(struct widget *widget, -dnd_drag->hotspot_x, -dnd_drag->hotspot_y); wl_surface_damage(dnd_drag->drag_surface, 0, 0, dnd_drag->width, dnd_drag->height); + wl_surface_commit(dnd_drag->drag_surface); dnd->current_drag = dnd_drag; window_schedule_redraw(dnd->window); diff --git a/clients/simple-shm.c b/clients/simple-shm.c index fc05bb40..66b3772d 100644 --- a/clients/simple-shm.c +++ b/clients/simple-shm.c @@ -217,6 +217,7 @@ redraw(void *data, struct wl_callback *callback, uint32_t time) paint_pixels(window->shm_data, 20, window->width, window->height, time); wl_surface_damage(window->surface, 20, 20, window->width - 40, window->height - 40); + wl_surface_commit(window->surface); if (callback) wl_callback_destroy(callback); diff --git a/clients/simple-touch.c b/clients/simple-touch.c index 68fb3684..72a7e072 100644 --- a/clients/simple-touch.c +++ b/clients/simple-touch.c @@ -305,6 +305,7 @@ touch_create(int width, int height) memset(touch->data, 64, width * height * 4); wl_surface_attach(touch->surface, touch->buffer, 0, 0); wl_surface_damage(touch->surface, 0, 0, width, height); + wl_surface_commit(touch->surface); return touch; } diff --git a/clients/window.c b/clients/window.c index 8ea453d3..b2ad73a6 100644 --- a/clients/window.c +++ b/clients/window.c @@ -852,6 +852,7 @@ window_attach_surface(struct window *window) wl_surface_damage(window->surface, 0, 0, window->allocation.width, window->allocation.height); + wl_surface_commit(window->surface); window->server_allocation = window->allocation; cairo_surface_destroy(window->cairo_surface); window->cairo_surface = NULL; @@ -2625,6 +2626,7 @@ input_set_pointer_image_index(struct input *input, int index) wl_surface_attach(input->pointer_surface, buffer, 0, 0); wl_surface_damage(input->pointer_surface, 0, 0, image->width, image->height); + wl_surface_commit(input->pointer_surface); } static const struct wl_callback_listener pointer_surface_listener;