Rev 4358 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4358 | Rev 4401 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | void *user_data; |
43 | void *user_data; |
44 | char *device_name; |
44 | char *device_name; |
45 | uint32_t flags; |
45 | uint32_t flags; |
Line 46... | Line 46... | ||
46 | 46 | ||
- | 47 | struct wayland_drm_callbacks *callbacks; |
|
47 | struct wayland_drm_callbacks *callbacks; |
48 | struct wl_buffer_interface buffer_interface; |
Line 48... | Line 49... | ||
48 | }; |
49 | }; |
49 | 50 | ||
50 | static void |
51 | static void |
Line 61... | Line 62... | ||
61 | buffer_destroy(struct wl_client *client, struct wl_resource *resource) |
62 | buffer_destroy(struct wl_client *client, struct wl_resource *resource) |
62 | { |
63 | { |
63 | wl_resource_destroy(resource); |
64 | wl_resource_destroy(resource); |
64 | } |
65 | } |
Line 65... | Line -... | ||
65 | - | ||
66 | const static struct wl_buffer_interface drm_buffer_interface = { |
- | |
67 | buffer_destroy |
- | |
68 | }; |
- | |
69 | 66 | ||
70 | static void |
67 | static void |
71 | create_buffer(struct wl_client *client, struct wl_resource *resource, |
68 | create_buffer(struct wl_client *client, struct wl_resource *resource, |
72 | uint32_t id, uint32_t name, int fd, |
69 | uint32_t id, uint32_t name, int fd, |
73 | int32_t width, int32_t height, |
70 | int32_t width, int32_t height, |
Line 105... | Line 102... | ||
105 | } |
102 | } |
Line 106... | Line 103... | ||
106 | 103 | ||
107 | buffer->buffer.resource.object.id = id; |
104 | buffer->buffer.resource.object.id = id; |
108 | buffer->buffer.resource.object.interface = &wl_buffer_interface; |
105 | buffer->buffer.resource.object.interface = &wl_buffer_interface; |
109 | buffer->buffer.resource.object.implementation = |
106 | buffer->buffer.resource.object.implementation = |
110 | (void (**)(void)) &drm_buffer_interface; |
107 | (void (**)(void)) &drm->buffer_interface; |
Line 111... | Line 108... | ||
111 | buffer->buffer.resource.data = buffer; |
108 | buffer->buffer.resource.data = buffer; |
112 | 109 | ||
Line 244... | Line 241... | ||
244 | drm->display = display; |
241 | drm->display = display; |
245 | drm->device_name = strdup(device_name); |
242 | drm->device_name = strdup(device_name); |
246 | drm->callbacks = callbacks; |
243 | drm->callbacks = callbacks; |
247 | drm->user_data = user_data; |
244 | drm->user_data = user_data; |
248 | drm->flags = flags; |
245 | drm->flags = flags; |
- | 246 | drm->buffer_interface.destroy = buffer_destroy; |
|
Line 249... | Line 247... | ||
249 | 247 | ||
Line 250... | Line 248... | ||
250 | wl_display_add_global(display, &wl_drm_interface, drm, bind_drm); |
248 | wl_display_add_global(display, &wl_drm_interface, drm, bind_drm); |
251 | 249 | ||
Line 261... | Line 259... | ||
261 | 259 | ||
262 | free(drm); |
260 | free(drm); |
Line 263... | Line 261... | ||
263 | } |
261 | } |
264 | 262 | ||
265 | int |
263 | int |
266 | wayland_buffer_is_drm(struct wl_buffer *buffer) |
264 | wayland_buffer_is_drm(struct wl_drm *drm, struct wl_buffer *buffer) |
267 | { |
265 | { |
268 | return buffer->resource.object.implementation == |
266 | return buffer->resource.object.implementation == |
Line 269... | Line 267... | ||
269 | (void (**)(void)) &drm_buffer_interface; |
267 | (void (**)(void)) &drm->buffer_interface; |
270 | } |
268 | } |
271 | 269 |