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