gbm: Add new gbm_bo_import entry point
[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 #include "wayland-drm-server-protocol.h"
6
7 struct wl_drm;
8
9 struct wl_drm_buffer {
10 struct wl_buffer buffer;
11 struct wl_drm *drm;
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,
23 struct wl_drm_buffer *buffer);
24
25 void (*release_buffer)(void *user_data, struct wl_drm_buffer *buffer);
26 };
27
28 struct wl_drm *
29 wayland_drm_init(struct wl_display *display, char *device_name,
30 struct wayland_drm_callbacks *callbacks, void *user_data);
31
32 void
33 wayland_drm_uninit(struct wl_drm *drm);
34
35 int
36 wayland_buffer_is_drm(struct wl_buffer *buffer);
37
38 uint32_t
39 wayland_drm_buffer_get_format(struct wl_buffer *buffer_base);
40
41 void *
42 wayland_drm_buffer_get_buffer(struct wl_buffer *buffer);
43
44 #endif