Introduce 'buffer' object for attaching, image cahce and cursor images

The buffer object is created by a 'drm' object, which encapsulates the
buffer sharing and authentication mechanism.  Once the buffer is created
it can be attached to a surface.
This commit is contained in:
Kristian Høgsberg 2010-08-09 14:43:33 -04:00
parent 5b0079aed5
commit 5fcd0aa58e
12 changed files with 254 additions and 189 deletions

View file

@ -70,14 +70,9 @@ struct wl_event_source *wl_event_loop_add_idle(struct wl_event_loop *loop,
void *data);
struct wl_client;
struct wl_display;
struct wl_input_device;
struct wl_map {
int32_t x, y, width, height;
};
struct wl_display *wl_display_create(void);
struct wl_event_loop *wl_display_get_event_loop(struct wl_display *display);
int wl_display_add_socket(struct wl_display *display, const char *name, size_t name_size);
@ -93,13 +88,22 @@ void wl_client_destroy(struct wl_client *client);
struct wl_compositor {
struct wl_object base;
const char *device;
};
struct wl_resource {
struct wl_object base;
void (*destroy)(struct wl_resource *resource,
struct wl_client *client);
struct wl_list link;
};
struct wl_buffer {
struct wl_resource base;
};
struct wl_surface {
struct wl_object base;
struct wl_resource base;
struct wl_client *client;
struct wl_list link;
};
void
@ -123,10 +127,6 @@ wl_client_add_surface(struct wl_client *client,
const struct wl_surface_interface *implementation,
uint32_t id);
void
wl_client_remove_surface(struct wl_client *client,
struct wl_surface *surface);
void
wl_client_send_acknowledge(struct wl_client *client,
struct wl_compositor *compositor,
@ -137,6 +137,13 @@ wl_display_post_frame(struct wl_display *display,
struct wl_compositor *compositor,
uint32_t frame, uint32_t msecs);
void
wl_client_add_resource(struct wl_client *client,
struct wl_resource *resource);
void
wl_resource_destroy(struct wl_resource *resource, struct wl_client *client);
#ifdef __cplusplus
}
#endif