diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-05-10 12:01:00 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-06-21 17:42:57 +0200 |
commit | a56c0455717c4772e8e4b78e56af439ccd2356af (patch) | |
tree | b413bc769a33a793fe01cd297bc28c2ba36b3385 | |
parent | 2fcebfed95447b994649f58f7b0d40e8bac8de08 (diff) |
Add busy_count and client parameter to wl_buffer
Can be used to implement release event.
-rw-r--r-- | wayland/wayland-server.h | 2 | ||||
-rw-r--r-- | wayland/wayland-shm.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/wayland/wayland-server.h b/wayland/wayland-server.h index 6a042cd..62c4582 100644 --- a/wayland/wayland-server.h +++ b/wayland/wayland-server.h @@ -132,8 +132,10 @@ struct wl_resource { struct wl_buffer { struct wl_resource resource; struct wl_compositor *compositor; + struct wl_client *client; struct wl_visual *visual; int32_t width, height; + uint32_t busy_count; void *user_data; }; diff --git a/wayland/wayland-shm.c b/wayland/wayland-shm.c index cdd7874..90d2fcf 100644 --- a/wayland/wayland-shm.c +++ b/wayland/wayland-shm.c @@ -80,20 +80,21 @@ const static struct wl_buffer_interface shm_buffer_interface = { }; static struct wl_shm_buffer * -wl_shm_buffer_init(struct wl_shm *shm, uint32_t id, +wl_shm_buffer_init(struct wl_shm *shm, struct wl_client *client, uint32_t id, int32_t width, int32_t height, int32_t stride, struct wl_visual *visual, void *data) { struct wl_shm_buffer *buffer; - buffer = malloc(sizeof *buffer); + buffer = calloc(1, sizeof *buffer); if (buffer == NULL) return NULL; buffer->buffer.width = width; buffer->buffer.height = height; buffer->buffer.visual = visual; + buffer->buffer.client = client; buffer->stride = stride; buffer->data = data; @@ -147,7 +148,7 @@ shm_create_buffer(struct wl_client *client, struct wl_shm *shm, return; } - buffer = wl_shm_buffer_init(shm, id, + buffer = wl_shm_buffer_init(shm, client, id, width, height, stride, visual, data); if (buffer == NULL) { |