Subversion Repositories Kolibri OS

Rev

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