4 #include <wayland-server.h>
10 struct wayland_drm_callbacks
{
11 int (*authenticate
)(void *user_data
, uint32_t id
);
13 void (*reference_buffer
)(void *user_data
, uint32_t name
, int fd
,
14 struct wl_drm_buffer
*buffer
);
16 void (*release_buffer
)(void *user_data
, struct wl_drm_buffer
*buffer
);
18 bool (*is_format_supported
)(void *user_data
, uint32_t format
);
23 struct wl_display
*display
;
24 struct wl_global
*wl_drm_global
;
30 struct wayland_drm_callbacks callbacks
;
32 struct wl_buffer_interface buffer_interface
;
35 struct wl_drm_buffer
{
36 struct wl_resource
*resource
;
38 int32_t width
, height
;
40 const void *driver_format
;
46 enum { WAYLAND_DRM_PRIME
= 0x01 };
48 static inline struct wl_drm_buffer
*
49 wayland_drm_buffer_get(struct wl_drm
*drm
, struct wl_resource
*resource
)
54 if (wl_resource_instance_of(resource
, &wl_buffer_interface
,
55 &drm
->buffer_interface
))
56 return wl_resource_get_user_data(resource
);
62 wayland_drm_init(struct wl_display
*display
, char *device_name
,
63 const struct wayland_drm_callbacks
*callbacks
, void *user_data
,
67 wayland_drm_uninit(struct wl_drm
*drm
);