wayland-drm: remove hardcoded enum wl_drm_format
[mesa.git] / src / egl / wayland / wayland-drm / wayland-drm.h
1 #ifndef WAYLAND_DRM_H
2 #define WAYLAND_DRM_H
3
4 #include <wayland-server.h>
5
6 struct wl_drm;
7
8 struct wl_drm_buffer {
9 struct wl_resource *resource;
10 struct wl_drm *drm;
11 int32_t width, height;
12 uint32_t format;
13 const void *driver_format;
14 int32_t offset[3];
15 int32_t stride[3];
16 void *driver_buffer;
17 };
18
19 struct wayland_drm_callbacks {
20 int (*authenticate)(void *user_data, uint32_t id);
21
22 void (*reference_buffer)(void *user_data, uint32_t name, int fd,
23 struct wl_drm_buffer *buffer);
24
25 void (*release_buffer)(void *user_data, struct wl_drm_buffer *buffer);
26 };
27
28 enum { WAYLAND_DRM_PRIME = 0x01 };
29
30 struct wl_drm_buffer *
31 wayland_drm_buffer_get(struct wl_drm *drm, struct wl_resource *resource);
32
33 struct wl_drm *
34 wayland_drm_init(struct wl_display *display, char *device_name,
35 struct wayland_drm_callbacks *callbacks, void *user_data,
36 uint32_t flags);
37
38 void
39 wayland_drm_uninit(struct wl_drm *drm);
40
41 uint32_t
42 wayland_drm_buffer_get_format(struct wl_drm_buffer *buffer);
43
44 void *
45 wayland_drm_buffer_get_buffer(struct wl_drm_buffer *buffer);
46
47 #endif