From b1a91722773152ea96de79d2b446ae488561bb0c Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Mon, 7 Mar 2011 15:06:31 +0100 Subject: egl/wayland: Update to buffer.damage addition --- src/egl/drivers/dri2/platform_wayland.c | 2 ++ src/egl/wayland/wayland-drm/wayland-drm.c | 7 +++---- src/gallium/state_trackers/egl/wayland/native_wayland.c | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index c0860a7377..030c68777a 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -488,6 +488,8 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw) dri2_surf->dri_buffers[__DRI_BUFFER_FRONT_LEFT], dri2_surf->wl_win->visual); + wl_buffer_damage(dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT], 0, 0, + dri2_surf->base.Width, dri2_surf->base.Height); wl_surface_attach(dri2_surf->wl_win->surface, dri2_surf->wl_drm_buffer[WL_BUFFER_FRONT], dri2_surf->dx, dri2_surf->dy); diff --git a/src/egl/wayland/wayland-drm/wayland-drm.c b/src/egl/wayland/wayland-drm/wayland-drm.c index 5cf166f313..149583b116 100644 --- a/src/egl/wayland/wayland-drm/wayland-drm.c +++ b/src/egl/wayland/wayland-drm/wayland-drm.c @@ -51,9 +51,8 @@ struct wl_drm { }; static void -drm_buffer_damage(struct wl_buffer *buffer_base, - struct wl_surface *surface, - int32_t x, int32_t y, int32_t width, int32_t height) +buffer_damage(struct wl_client *client, struct wl_buffer *buffer, + int32_t x, int32_t y, int32_t width, int32_t height) { } @@ -74,6 +73,7 @@ buffer_destroy(struct wl_client *client, struct wl_buffer *buffer) } const static struct wl_buffer_interface buffer_interface = { + buffer_damage, buffer_destroy }; @@ -104,7 +104,6 @@ drm_create_buffer(struct wl_client *client, struct wl_drm *drm, buffer->buffer.height = height; buffer->buffer.visual = visual; buffer->buffer.attach = NULL; - buffer->buffer.damage = drm_buffer_damage; if (visual->object.interface != &wl_visual_interface) { /* FIXME: Define a real exception event instead of diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.c b/src/gallium/state_trackers/egl/wayland/native_wayland.c index 236bad9afb..b9cf8c48f1 100644 --- a/src/gallium/state_trackers/egl/wayland/native_wayland.c +++ b/src/gallium/state_trackers/egl/wayland/native_wayland.c @@ -380,6 +380,7 @@ wayland_surface_present(struct native_surface *nsurf, if (surface->type == WL_WINDOW_SURFACE) { resource_surface_get_size(surface->rsurf, &width, &height); + wl_buffer_damage(surface->buffer[WL_BUFFER_FRONT], 0, 0, width, height); wl_surface_damage(surface->win->surface, 0, 0, width, height); } -- cgit v1.2.3