summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-03-07 15:06:31 +0100
committerKristian Høgsberg <krh@bitplanet.net>2011-04-22 12:21:37 -0400
commitb1a91722773152ea96de79d2b446ae488561bb0c (patch)
treee6c58e82614feec1c3091491ba7241c6b10073b4
parent5b2ff543ab784107a62ac405ed93fa1629a74cc4 (diff)
egl/wayland: Update to buffer.damage addition
-rw-r--r--src/egl/drivers/dri2/platform_wayland.c2
-rw-r--r--src/egl/wayland/wayland-drm/wayland-drm.c7
-rw-r--r--src/gallium/state_trackers/egl/wayland/native_wayland.c1
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 c0860a73778..030c68777af 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 5cf166f3130..149583b1169 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 236bad9afbf..b9cf8c48f1e 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);
}