egl/wayland-drm: Generalize interface
[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
9 struct wl_drm;
10
11 struct wayland_drm_callbacks {
12 int (*authenticate)(void *user_data, uint32_t id);
13
14 void *(*reference_buffer)(void *user_data, uint32_t name,
15 int32_t width, int32_t height,
16 uint32_t stride, struct wl_visual *visual);
17
18 void (*release_buffer)(void *user_data, void *buffer);
19 };
20
21 struct wl_drm *
22 wayland_drm_init(struct wl_display *display, char *device_name,
23 struct wayland_drm_callbacks *callbacks, void *user_data);
24
25 void
26 wayland_drm_uninit(struct wl_drm *drm);
27
28 int
29 wayland_buffer_is_drm(struct wl_buffer *buffer);
30
31 void *
32 wayland_drm_buffer_get_buffer(struct wl_buffer *buffer);
33
34 #endif