#ifndef WAYLAND_DRM_H #define WAYLAND_DRM_H #include struct wl_display; struct wl_drm; struct wl_resource; struct wl_drm_buffer { struct wl_resource *resource; struct wl_drm *drm; int32_t width, height; uint32_t format; const void *driver_format; int32_t offset[3]; int32_t stride[3]; void *driver_buffer; }; struct wayland_drm_callbacks { int (*authenticate)(void *user_data, uint32_t id); void (*reference_buffer)(void *user_data, uint32_t name, int fd, struct wl_drm_buffer *buffer); void (*release_buffer)(void *user_data, struct wl_drm_buffer *buffer); }; enum { WAYLAND_DRM_PRIME = 0x01 }; struct wl_drm_buffer * wayland_drm_buffer_get(struct wl_drm *drm, struct wl_resource *resource); struct wl_drm * wayland_drm_init(struct wl_display *display, char *device_name, const struct wayland_drm_callbacks *callbacks, void *user_data, uint32_t flags); void wayland_drm_uninit(struct wl_drm *drm); #endif