Mesa (master): egl/wayland: Update to buffer.damage addition

Kristian Høgsberg krh at kemper.freedesktop.org
Fri Apr 22 16:29:42 UTC 2011


Module: Mesa
Branch: master
Commit: b1a91722773152ea96de79d2b446ae488561bb0c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1a91722773152ea96de79d2b446ae488561bb0c

Author: Benjamin Franzke <benjaminfranzke at googlemail.com>
Date:   Mon Mar  7 15:06:31 2011 +0100

egl/wayland: Update to buffer.damage addition

---

 src/egl/drivers/dri2/platform_wayland.c            |    2 ++
 src/egl/wayland/wayland-drm/wayland-drm.c          |    7 +++----
 .../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 c0860a7..030c687 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 5cf166f..149583b 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 236bad9..b9cf8c4 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);
    }
 




More information about the mesa-commit mailing list