Rev 4358 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4358 | Serge | 1 | #ifndef WAYLAND_DRM_H |
2 | #define WAYLAND_DRM_H |
||
3 | |||
4 | #include |
||
5 | |||
6 | #ifndef WL_DRM_FORMAT_ENUM |
||
7 | #define WL_DRM_FORMAT_ENUM |
||
8 | enum wl_drm_format { |
||
9 | WL_DRM_FORMAT_C8 = 0x20203843, |
||
10 | WL_DRM_FORMAT_RGB332 = 0x38424752, |
||
11 | WL_DRM_FORMAT_BGR233 = 0x38524742, |
||
12 | WL_DRM_FORMAT_XRGB4444 = 0x32315258, |
||
13 | WL_DRM_FORMAT_XBGR4444 = 0x32314258, |
||
14 | WL_DRM_FORMAT_RGBX4444 = 0x32315852, |
||
15 | WL_DRM_FORMAT_BGRX4444 = 0x32315842, |
||
16 | WL_DRM_FORMAT_ARGB4444 = 0x32315241, |
||
17 | WL_DRM_FORMAT_ABGR4444 = 0x32314241, |
||
18 | WL_DRM_FORMAT_RGBA4444 = 0x32314152, |
||
19 | WL_DRM_FORMAT_BGRA4444 = 0x32314142, |
||
20 | WL_DRM_FORMAT_XRGB1555 = 0x35315258, |
||
21 | WL_DRM_FORMAT_XBGR1555 = 0x35314258, |
||
22 | WL_DRM_FORMAT_RGBX5551 = 0x35315852, |
||
23 | WL_DRM_FORMAT_BGRX5551 = 0x35315842, |
||
24 | WL_DRM_FORMAT_ARGB1555 = 0x35315241, |
||
25 | WL_DRM_FORMAT_ABGR1555 = 0x35314241, |
||
26 | WL_DRM_FORMAT_RGBA5551 = 0x35314152, |
||
27 | WL_DRM_FORMAT_BGRA5551 = 0x35314142, |
||
28 | WL_DRM_FORMAT_RGB565 = 0x36314752, |
||
29 | WL_DRM_FORMAT_BGR565 = 0x36314742, |
||
30 | WL_DRM_FORMAT_RGB888 = 0x34324752, |
||
31 | WL_DRM_FORMAT_BGR888 = 0x34324742, |
||
32 | WL_DRM_FORMAT_XRGB8888 = 0x34325258, |
||
33 | WL_DRM_FORMAT_XBGR8888 = 0x34324258, |
||
34 | WL_DRM_FORMAT_RGBX8888 = 0x34325852, |
||
35 | WL_DRM_FORMAT_BGRX8888 = 0x34325842, |
||
36 | WL_DRM_FORMAT_ARGB8888 = 0x34325241, |
||
37 | WL_DRM_FORMAT_ABGR8888 = 0x34324241, |
||
38 | WL_DRM_FORMAT_RGBA8888 = 0x34324152, |
||
39 | WL_DRM_FORMAT_BGRA8888 = 0x34324142, |
||
40 | WL_DRM_FORMAT_XRGB2101010 = 0x30335258, |
||
41 | WL_DRM_FORMAT_XBGR2101010 = 0x30334258, |
||
42 | WL_DRM_FORMAT_RGBX1010102 = 0x30335852, |
||
43 | WL_DRM_FORMAT_BGRX1010102 = 0x30335842, |
||
44 | WL_DRM_FORMAT_ARGB2101010 = 0x30335241, |
||
45 | WL_DRM_FORMAT_ABGR2101010 = 0x30334241, |
||
46 | WL_DRM_FORMAT_RGBA1010102 = 0x30334152, |
||
47 | WL_DRM_FORMAT_BGRA1010102 = 0x30334142, |
||
48 | WL_DRM_FORMAT_YUYV = 0x56595559, |
||
49 | WL_DRM_FORMAT_YVYU = 0x55595659, |
||
50 | WL_DRM_FORMAT_UYVY = 0x59565955, |
||
51 | WL_DRM_FORMAT_VYUY = 0x59555956, |
||
52 | WL_DRM_FORMAT_AYUV = 0x56555941, |
||
53 | WL_DRM_FORMAT_NV12 = 0x3231564e, |
||
54 | WL_DRM_FORMAT_NV21 = 0x3132564e, |
||
55 | WL_DRM_FORMAT_NV16 = 0x3631564e, |
||
56 | WL_DRM_FORMAT_NV61 = 0x3136564e, |
||
57 | WL_DRM_FORMAT_YUV410 = 0x39565559, |
||
58 | WL_DRM_FORMAT_YVU410 = 0x39555659, |
||
59 | WL_DRM_FORMAT_YUV411 = 0x31315559, |
||
60 | WL_DRM_FORMAT_YVU411 = 0x31315659, |
||
61 | WL_DRM_FORMAT_YUV420 = 0x32315559, |
||
62 | WL_DRM_FORMAT_YVU420 = 0x32315659, |
||
63 | WL_DRM_FORMAT_YUV422 = 0x36315559, |
||
64 | WL_DRM_FORMAT_YVU422 = 0x36315659, |
||
65 | WL_DRM_FORMAT_YUV444 = 0x34325559, |
||
66 | WL_DRM_FORMAT_YVU444 = 0x34325659, |
||
67 | }; |
||
68 | #endif /* WL_DRM_FORMAT_ENUM */ |
||
69 | |||
70 | struct wl_drm; |
||
71 | |||
72 | struct wl_drm_buffer { |
||
73 | struct wl_buffer buffer; |
||
74 | struct wl_drm *drm; |
||
75 | uint32_t format; |
||
76 | const void *driver_format; |
||
77 | int32_t offset[3]; |
||
78 | int32_t stride[3]; |
||
79 | void *driver_buffer; |
||
80 | }; |
||
81 | |||
82 | struct wayland_drm_callbacks { |
||
83 | int (*authenticate)(void *user_data, uint32_t id); |
||
84 | |||
85 | void (*reference_buffer)(void *user_data, uint32_t name, int fd, |
||
86 | struct wl_drm_buffer *buffer); |
||
87 | |||
88 | void (*release_buffer)(void *user_data, struct wl_drm_buffer *buffer); |
||
89 | }; |
||
90 | |||
91 | enum { WAYLAND_DRM_PRIME = 0x01 }; |
||
92 | |||
93 | struct wl_drm * |
||
94 | wayland_drm_init(struct wl_display *display, char *device_name, |
||
95 | struct wayland_drm_callbacks *callbacks, void *user_data, |
||
96 | uint32_t flags); |
||
97 | |||
98 | void |
||
99 | wayland_drm_uninit(struct wl_drm *drm); |
||
100 | |||
101 | int |
||
4401 | Serge | 102 | wayland_buffer_is_drm(struct wl_drm *drm, struct wl_buffer *buffer); |
4358 | Serge | 103 | |
104 | uint32_t |
||
105 | wayland_drm_buffer_get_format(struct wl_buffer *buffer_base); |
||
106 | |||
107 | void * |
||
108 | wayland_drm_buffer_get_buffer(struct wl_buffer *buffer); |
||
109 | |||
110 | #endif |