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
);
21 struct wl_display
*display
;
22 struct wl_global
*wl_drm_global
;
28 struct wayland_drm_callbacks callbacks
;
30 struct wl_buffer_interface buffer_interface
;
33 struct wl_drm_buffer
{
34 struct wl_resource
*resource
;
36 int32_t width
, height
;
38 const void *driver_format
;
44 enum { WAYLAND_DRM_PRIME
= 0x01 };
46 static inline struct wl_drm_buffer
*
47 wayland_drm_buffer_get(struct wl_drm
*drm
, struct wl_resource
*resource
)
52 if (wl_resource_instance_of(resource
, &wl_buffer_interface
,
53 &drm
->buffer_interface
))
54 return wl_resource_get_user_data(resource
);
60 wayland_drm_init(struct wl_display
*display
, char *device_name
,
61 const struct wayland_drm_callbacks
*callbacks
, void *user_data
,
65 wayland_drm_uninit(struct wl_drm
*drm
);