dri3.h revision 1.3 1 1.1 mrg /*
2 1.1 mrg * This file generated automatically from dri3.xml by c_client.py.
3 1.1 mrg * Edit at your peril.
4 1.1 mrg */
5 1.1 mrg
6 1.1 mrg /**
7 1.1 mrg * @defgroup XCB_DRI3_API XCB DRI3 API
8 1.1 mrg * @brief DRI3 XCB Protocol Implementation.
9 1.1 mrg * @{
10 1.1 mrg **/
11 1.1 mrg
12 1.1 mrg #ifndef __DRI3_H
13 1.1 mrg #define __DRI3_H
14 1.1 mrg
15 1.1 mrg #include "xcb.h"
16 1.1 mrg #include "xproto.h"
17 1.1 mrg
18 1.1 mrg #ifdef __cplusplus
19 1.1 mrg extern "C" {
20 1.1 mrg #endif
21 1.1 mrg
22 1.1 mrg #define XCB_DRI3_MAJOR_VERSION 1
23 1.1 mrg #define XCB_DRI3_MINOR_VERSION 0
24 1.2 mrg
25 1.1 mrg extern xcb_extension_t xcb_dri3_id;
26 1.1 mrg
27 1.1 mrg /**
28 1.1 mrg * @brief xcb_dri3_query_version_cookie_t
29 1.1 mrg **/
30 1.1 mrg typedef struct xcb_dri3_query_version_cookie_t {
31 1.3 mrg unsigned int sequence;
32 1.1 mrg } xcb_dri3_query_version_cookie_t;
33 1.1 mrg
34 1.1 mrg /** Opcode for xcb_dri3_query_version. */
35 1.1 mrg #define XCB_DRI3_QUERY_VERSION 0
36 1.1 mrg
37 1.1 mrg /**
38 1.1 mrg * @brief xcb_dri3_query_version_request_t
39 1.1 mrg **/
40 1.1 mrg typedef struct xcb_dri3_query_version_request_t {
41 1.3 mrg uint8_t major_opcode;
42 1.3 mrg uint8_t minor_opcode;
43 1.3 mrg uint16_t length;
44 1.3 mrg uint32_t major_version;
45 1.3 mrg uint32_t minor_version;
46 1.1 mrg } xcb_dri3_query_version_request_t;
47 1.1 mrg
48 1.1 mrg /**
49 1.1 mrg * @brief xcb_dri3_query_version_reply_t
50 1.1 mrg **/
51 1.1 mrg typedef struct xcb_dri3_query_version_reply_t {
52 1.3 mrg uint8_t response_type;
53 1.3 mrg uint8_t pad0;
54 1.3 mrg uint16_t sequence;
55 1.3 mrg uint32_t length;
56 1.3 mrg uint32_t major_version;
57 1.3 mrg uint32_t minor_version;
58 1.1 mrg } xcb_dri3_query_version_reply_t;
59 1.1 mrg
60 1.1 mrg /**
61 1.1 mrg * @brief xcb_dri3_open_cookie_t
62 1.1 mrg **/
63 1.1 mrg typedef struct xcb_dri3_open_cookie_t {
64 1.3 mrg unsigned int sequence;
65 1.1 mrg } xcb_dri3_open_cookie_t;
66 1.1 mrg
67 1.1 mrg /** Opcode for xcb_dri3_open. */
68 1.1 mrg #define XCB_DRI3_OPEN 1
69 1.1 mrg
70 1.1 mrg /**
71 1.1 mrg * @brief xcb_dri3_open_request_t
72 1.1 mrg **/
73 1.1 mrg typedef struct xcb_dri3_open_request_t {
74 1.3 mrg uint8_t major_opcode;
75 1.3 mrg uint8_t minor_opcode;
76 1.3 mrg uint16_t length;
77 1.3 mrg xcb_drawable_t drawable;
78 1.3 mrg uint32_t provider;
79 1.1 mrg } xcb_dri3_open_request_t;
80 1.1 mrg
81 1.1 mrg /**
82 1.1 mrg * @brief xcb_dri3_open_reply_t
83 1.1 mrg **/
84 1.1 mrg typedef struct xcb_dri3_open_reply_t {
85 1.3 mrg uint8_t response_type;
86 1.3 mrg uint8_t nfd;
87 1.3 mrg uint16_t sequence;
88 1.3 mrg uint32_t length;
89 1.3 mrg uint8_t pad0[24];
90 1.1 mrg } xcb_dri3_open_reply_t;
91 1.1 mrg
92 1.1 mrg /** Opcode for xcb_dri3_pixmap_from_buffer. */
93 1.1 mrg #define XCB_DRI3_PIXMAP_FROM_BUFFER 2
94 1.1 mrg
95 1.1 mrg /**
96 1.1 mrg * @brief xcb_dri3_pixmap_from_buffer_request_t
97 1.1 mrg **/
98 1.1 mrg typedef struct xcb_dri3_pixmap_from_buffer_request_t {
99 1.3 mrg uint8_t major_opcode;
100 1.3 mrg uint8_t minor_opcode;
101 1.3 mrg uint16_t length;
102 1.3 mrg xcb_pixmap_t pixmap;
103 1.3 mrg xcb_drawable_t drawable;
104 1.3 mrg uint32_t size;
105 1.3 mrg uint16_t width;
106 1.3 mrg uint16_t height;
107 1.3 mrg uint16_t stride;
108 1.3 mrg uint8_t depth;
109 1.3 mrg uint8_t bpp;
110 1.1 mrg } xcb_dri3_pixmap_from_buffer_request_t;
111 1.1 mrg
112 1.1 mrg /**
113 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_cookie_t
114 1.1 mrg **/
115 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_cookie_t {
116 1.3 mrg unsigned int sequence;
117 1.1 mrg } xcb_dri3_buffer_from_pixmap_cookie_t;
118 1.1 mrg
119 1.1 mrg /** Opcode for xcb_dri3_buffer_from_pixmap. */
120 1.1 mrg #define XCB_DRI3_BUFFER_FROM_PIXMAP 3
121 1.1 mrg
122 1.1 mrg /**
123 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_request_t
124 1.1 mrg **/
125 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_request_t {
126 1.3 mrg uint8_t major_opcode;
127 1.3 mrg uint8_t minor_opcode;
128 1.3 mrg uint16_t length;
129 1.3 mrg xcb_pixmap_t pixmap;
130 1.1 mrg } xcb_dri3_buffer_from_pixmap_request_t;
131 1.1 mrg
132 1.1 mrg /**
133 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_reply_t
134 1.1 mrg **/
135 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_reply_t {
136 1.3 mrg uint8_t response_type;
137 1.3 mrg uint8_t nfd;
138 1.3 mrg uint16_t sequence;
139 1.3 mrg uint32_t length;
140 1.3 mrg uint32_t size;
141 1.3 mrg uint16_t width;
142 1.3 mrg uint16_t height;
143 1.3 mrg uint16_t stride;
144 1.3 mrg uint8_t depth;
145 1.3 mrg uint8_t bpp;
146 1.3 mrg uint8_t pad0[12];
147 1.1 mrg } xcb_dri3_buffer_from_pixmap_reply_t;
148 1.1 mrg
149 1.1 mrg /** Opcode for xcb_dri3_fence_from_fd. */
150 1.1 mrg #define XCB_DRI3_FENCE_FROM_FD 4
151 1.1 mrg
152 1.1 mrg /**
153 1.1 mrg * @brief xcb_dri3_fence_from_fd_request_t
154 1.1 mrg **/
155 1.1 mrg typedef struct xcb_dri3_fence_from_fd_request_t {
156 1.3 mrg uint8_t major_opcode;
157 1.3 mrg uint8_t minor_opcode;
158 1.3 mrg uint16_t length;
159 1.3 mrg xcb_drawable_t drawable;
160 1.3 mrg uint32_t fence;
161 1.3 mrg uint8_t initially_triggered;
162 1.3 mrg uint8_t pad0[3];
163 1.1 mrg } xcb_dri3_fence_from_fd_request_t;
164 1.1 mrg
165 1.1 mrg /**
166 1.1 mrg * @brief xcb_dri3_fd_from_fence_cookie_t
167 1.1 mrg **/
168 1.1 mrg typedef struct xcb_dri3_fd_from_fence_cookie_t {
169 1.3 mrg unsigned int sequence;
170 1.1 mrg } xcb_dri3_fd_from_fence_cookie_t;
171 1.1 mrg
172 1.1 mrg /** Opcode for xcb_dri3_fd_from_fence. */
173 1.1 mrg #define XCB_DRI3_FD_FROM_FENCE 5
174 1.1 mrg
175 1.1 mrg /**
176 1.1 mrg * @brief xcb_dri3_fd_from_fence_request_t
177 1.1 mrg **/
178 1.1 mrg typedef struct xcb_dri3_fd_from_fence_request_t {
179 1.3 mrg uint8_t major_opcode;
180 1.3 mrg uint8_t minor_opcode;
181 1.3 mrg uint16_t length;
182 1.3 mrg xcb_drawable_t drawable;
183 1.3 mrg uint32_t fence;
184 1.1 mrg } xcb_dri3_fd_from_fence_request_t;
185 1.1 mrg
186 1.1 mrg /**
187 1.1 mrg * @brief xcb_dri3_fd_from_fence_reply_t
188 1.1 mrg **/
189 1.1 mrg typedef struct xcb_dri3_fd_from_fence_reply_t {
190 1.3 mrg uint8_t response_type;
191 1.3 mrg uint8_t nfd;
192 1.3 mrg uint16_t sequence;
193 1.3 mrg uint32_t length;
194 1.3 mrg uint8_t pad0[24];
195 1.1 mrg } xcb_dri3_fd_from_fence_reply_t;
196 1.1 mrg
197 1.1 mrg /**
198 1.1 mrg *
199 1.1 mrg * @param c The connection
200 1.1 mrg * @return A cookie
201 1.1 mrg *
202 1.1 mrg * Delivers a request to the X server.
203 1.2 mrg *
204 1.1 mrg */
205 1.1 mrg xcb_dri3_query_version_cookie_t
206 1.3 mrg xcb_dri3_query_version (xcb_connection_t *c,
207 1.3 mrg uint32_t major_version,
208 1.3 mrg uint32_t minor_version);
209 1.1 mrg
210 1.1 mrg /**
211 1.1 mrg *
212 1.1 mrg * @param c The connection
213 1.1 mrg * @return A cookie
214 1.1 mrg *
215 1.1 mrg * Delivers a request to the X server.
216 1.2 mrg *
217 1.1 mrg * This form can be used only if the request will cause
218 1.1 mrg * a reply to be generated. Any returned error will be
219 1.1 mrg * placed in the event queue.
220 1.1 mrg */
221 1.1 mrg xcb_dri3_query_version_cookie_t
222 1.3 mrg xcb_dri3_query_version_unchecked (xcb_connection_t *c,
223 1.3 mrg uint32_t major_version,
224 1.3 mrg uint32_t minor_version);
225 1.1 mrg
226 1.1 mrg /**
227 1.1 mrg * Return the reply
228 1.1 mrg * @param c The connection
229 1.1 mrg * @param cookie The cookie
230 1.1 mrg * @param e The xcb_generic_error_t supplied
231 1.1 mrg *
232 1.1 mrg * Returns the reply of the request asked by
233 1.2 mrg *
234 1.1 mrg * The parameter @p e supplied to this function must be NULL if
235 1.1 mrg * xcb_dri3_query_version_unchecked(). is used.
236 1.1 mrg * Otherwise, it stores the error if any.
237 1.1 mrg *
238 1.1 mrg * The returned value must be freed by the caller using free().
239 1.1 mrg */
240 1.1 mrg xcb_dri3_query_version_reply_t *
241 1.3 mrg xcb_dri3_query_version_reply (xcb_connection_t *c,
242 1.1 mrg xcb_dri3_query_version_cookie_t cookie /**< */,
243 1.3 mrg xcb_generic_error_t **e);
244 1.1 mrg
245 1.1 mrg /**
246 1.1 mrg *
247 1.1 mrg * @param c The connection
248 1.1 mrg * @return A cookie
249 1.1 mrg *
250 1.1 mrg * Delivers a request to the X server.
251 1.2 mrg *
252 1.1 mrg */
253 1.1 mrg xcb_dri3_open_cookie_t
254 1.3 mrg xcb_dri3_open (xcb_connection_t *c,
255 1.3 mrg xcb_drawable_t drawable,
256 1.3 mrg uint32_t provider);
257 1.1 mrg
258 1.1 mrg /**
259 1.1 mrg *
260 1.1 mrg * @param c The connection
261 1.1 mrg * @return A cookie
262 1.1 mrg *
263 1.1 mrg * Delivers a request to the X server.
264 1.2 mrg *
265 1.1 mrg * This form can be used only if the request will cause
266 1.1 mrg * a reply to be generated. Any returned error will be
267 1.1 mrg * placed in the event queue.
268 1.1 mrg */
269 1.1 mrg xcb_dri3_open_cookie_t
270 1.3 mrg xcb_dri3_open_unchecked (xcb_connection_t *c,
271 1.3 mrg xcb_drawable_t drawable,
272 1.3 mrg uint32_t provider);
273 1.1 mrg
274 1.1 mrg /**
275 1.1 mrg * Return the reply
276 1.1 mrg * @param c The connection
277 1.1 mrg * @param cookie The cookie
278 1.1 mrg * @param e The xcb_generic_error_t supplied
279 1.1 mrg *
280 1.1 mrg * Returns the reply of the request asked by
281 1.2 mrg *
282 1.1 mrg * The parameter @p e supplied to this function must be NULL if
283 1.1 mrg * xcb_dri3_open_unchecked(). is used.
284 1.1 mrg * Otherwise, it stores the error if any.
285 1.1 mrg *
286 1.1 mrg * The returned value must be freed by the caller using free().
287 1.1 mrg */
288 1.1 mrg xcb_dri3_open_reply_t *
289 1.3 mrg xcb_dri3_open_reply (xcb_connection_t *c,
290 1.1 mrg xcb_dri3_open_cookie_t cookie /**< */,
291 1.3 mrg xcb_generic_error_t **e);
292 1.1 mrg
293 1.1 mrg /**
294 1.1 mrg * Return the reply fds
295 1.1 mrg * @param c The connection
296 1.1 mrg * @param reply The reply
297 1.1 mrg *
298 1.1 mrg * Returns the array of reply fds of the request asked by
299 1.2 mrg *
300 1.1 mrg * The returned value must be freed by the caller using free().
301 1.1 mrg */
302 1.1 mrg int *
303 1.1 mrg xcb_dri3_open_reply_fds (xcb_connection_t *c /**< */,
304 1.3 mrg xcb_dri3_open_reply_t *reply);
305 1.1 mrg
306 1.1 mrg /**
307 1.1 mrg *
308 1.1 mrg * @param c The connection
309 1.1 mrg * @return A cookie
310 1.1 mrg *
311 1.1 mrg * Delivers a request to the X server.
312 1.2 mrg *
313 1.1 mrg * This form can be used only if the request will not cause
314 1.1 mrg * a reply to be generated. Any returned error will be
315 1.1 mrg * saved for handling by xcb_request_check().
316 1.1 mrg */
317 1.1 mrg xcb_void_cookie_t
318 1.3 mrg xcb_dri3_pixmap_from_buffer_checked (xcb_connection_t *c,
319 1.3 mrg xcb_pixmap_t pixmap,
320 1.3 mrg xcb_drawable_t drawable,
321 1.3 mrg uint32_t size,
322 1.3 mrg uint16_t width,
323 1.3 mrg uint16_t height,
324 1.3 mrg uint16_t stride,
325 1.3 mrg uint8_t depth,
326 1.3 mrg uint8_t bpp,
327 1.3 mrg int32_t pixmap_fd);
328 1.1 mrg
329 1.1 mrg /**
330 1.1 mrg *
331 1.1 mrg * @param c The connection
332 1.1 mrg * @return A cookie
333 1.1 mrg *
334 1.1 mrg * Delivers a request to the X server.
335 1.2 mrg *
336 1.1 mrg */
337 1.1 mrg xcb_void_cookie_t
338 1.3 mrg xcb_dri3_pixmap_from_buffer (xcb_connection_t *c,
339 1.3 mrg xcb_pixmap_t pixmap,
340 1.3 mrg xcb_drawable_t drawable,
341 1.3 mrg uint32_t size,
342 1.3 mrg uint16_t width,
343 1.3 mrg uint16_t height,
344 1.3 mrg uint16_t stride,
345 1.3 mrg uint8_t depth,
346 1.3 mrg uint8_t bpp,
347 1.3 mrg int32_t pixmap_fd);
348 1.1 mrg
349 1.1 mrg /**
350 1.1 mrg *
351 1.1 mrg * @param c The connection
352 1.1 mrg * @return A cookie
353 1.1 mrg *
354 1.1 mrg * Delivers a request to the X server.
355 1.2 mrg *
356 1.1 mrg */
357 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t
358 1.3 mrg xcb_dri3_buffer_from_pixmap (xcb_connection_t *c,
359 1.3 mrg xcb_pixmap_t pixmap);
360 1.1 mrg
361 1.1 mrg /**
362 1.1 mrg *
363 1.1 mrg * @param c The connection
364 1.1 mrg * @return A cookie
365 1.1 mrg *
366 1.1 mrg * Delivers a request to the X server.
367 1.2 mrg *
368 1.1 mrg * This form can be used only if the request will cause
369 1.1 mrg * a reply to be generated. Any returned error will be
370 1.1 mrg * placed in the event queue.
371 1.1 mrg */
372 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t
373 1.3 mrg xcb_dri3_buffer_from_pixmap_unchecked (xcb_connection_t *c,
374 1.3 mrg xcb_pixmap_t pixmap);
375 1.1 mrg
376 1.1 mrg /**
377 1.1 mrg * Return the reply
378 1.1 mrg * @param c The connection
379 1.1 mrg * @param cookie The cookie
380 1.1 mrg * @param e The xcb_generic_error_t supplied
381 1.1 mrg *
382 1.1 mrg * Returns the reply of the request asked by
383 1.2 mrg *
384 1.1 mrg * The parameter @p e supplied to this function must be NULL if
385 1.1 mrg * xcb_dri3_buffer_from_pixmap_unchecked(). is used.
386 1.1 mrg * Otherwise, it stores the error if any.
387 1.1 mrg *
388 1.1 mrg * The returned value must be freed by the caller using free().
389 1.1 mrg */
390 1.1 mrg xcb_dri3_buffer_from_pixmap_reply_t *
391 1.3 mrg xcb_dri3_buffer_from_pixmap_reply (xcb_connection_t *c,
392 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t cookie /**< */,
393 1.3 mrg xcb_generic_error_t **e);
394 1.1 mrg
395 1.1 mrg /**
396 1.1 mrg * Return the reply fds
397 1.1 mrg * @param c The connection
398 1.1 mrg * @param reply The reply
399 1.1 mrg *
400 1.1 mrg * Returns the array of reply fds of the request asked by
401 1.2 mrg *
402 1.1 mrg * The returned value must be freed by the caller using free().
403 1.1 mrg */
404 1.1 mrg int *
405 1.1 mrg xcb_dri3_buffer_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
406 1.3 mrg xcb_dri3_buffer_from_pixmap_reply_t *reply);
407 1.1 mrg
408 1.1 mrg /**
409 1.1 mrg *
410 1.1 mrg * @param c The connection
411 1.1 mrg * @return A cookie
412 1.1 mrg *
413 1.1 mrg * Delivers a request to the X server.
414 1.2 mrg *
415 1.1 mrg * This form can be used only if the request will not cause
416 1.1 mrg * a reply to be generated. Any returned error will be
417 1.1 mrg * saved for handling by xcb_request_check().
418 1.1 mrg */
419 1.1 mrg xcb_void_cookie_t
420 1.3 mrg xcb_dri3_fence_from_fd_checked (xcb_connection_t *c,
421 1.3 mrg xcb_drawable_t drawable,
422 1.3 mrg uint32_t fence,
423 1.3 mrg uint8_t initially_triggered,
424 1.3 mrg int32_t fence_fd);
425 1.1 mrg
426 1.1 mrg /**
427 1.1 mrg *
428 1.1 mrg * @param c The connection
429 1.1 mrg * @return A cookie
430 1.1 mrg *
431 1.1 mrg * Delivers a request to the X server.
432 1.2 mrg *
433 1.1 mrg */
434 1.1 mrg xcb_void_cookie_t
435 1.3 mrg xcb_dri3_fence_from_fd (xcb_connection_t *c,
436 1.3 mrg xcb_drawable_t drawable,
437 1.3 mrg uint32_t fence,
438 1.3 mrg uint8_t initially_triggered,
439 1.3 mrg int32_t fence_fd);
440 1.1 mrg
441 1.1 mrg /**
442 1.1 mrg *
443 1.1 mrg * @param c The connection
444 1.1 mrg * @return A cookie
445 1.1 mrg *
446 1.1 mrg * Delivers a request to the X server.
447 1.2 mrg *
448 1.1 mrg */
449 1.1 mrg xcb_dri3_fd_from_fence_cookie_t
450 1.3 mrg xcb_dri3_fd_from_fence (xcb_connection_t *c,
451 1.3 mrg xcb_drawable_t drawable,
452 1.3 mrg uint32_t fence);
453 1.1 mrg
454 1.1 mrg /**
455 1.1 mrg *
456 1.1 mrg * @param c The connection
457 1.1 mrg * @return A cookie
458 1.1 mrg *
459 1.1 mrg * Delivers a request to the X server.
460 1.2 mrg *
461 1.1 mrg * This form can be used only if the request will cause
462 1.1 mrg * a reply to be generated. Any returned error will be
463 1.1 mrg * placed in the event queue.
464 1.1 mrg */
465 1.1 mrg xcb_dri3_fd_from_fence_cookie_t
466 1.3 mrg xcb_dri3_fd_from_fence_unchecked (xcb_connection_t *c,
467 1.3 mrg xcb_drawable_t drawable,
468 1.3 mrg uint32_t fence);
469 1.1 mrg
470 1.1 mrg /**
471 1.1 mrg * Return the reply
472 1.1 mrg * @param c The connection
473 1.1 mrg * @param cookie The cookie
474 1.1 mrg * @param e The xcb_generic_error_t supplied
475 1.1 mrg *
476 1.1 mrg * Returns the reply of the request asked by
477 1.2 mrg *
478 1.1 mrg * The parameter @p e supplied to this function must be NULL if
479 1.1 mrg * xcb_dri3_fd_from_fence_unchecked(). is used.
480 1.1 mrg * Otherwise, it stores the error if any.
481 1.1 mrg *
482 1.1 mrg * The returned value must be freed by the caller using free().
483 1.1 mrg */
484 1.1 mrg xcb_dri3_fd_from_fence_reply_t *
485 1.3 mrg xcb_dri3_fd_from_fence_reply (xcb_connection_t *c,
486 1.1 mrg xcb_dri3_fd_from_fence_cookie_t cookie /**< */,
487 1.3 mrg xcb_generic_error_t **e);
488 1.1 mrg
489 1.1 mrg /**
490 1.1 mrg * Return the reply fds
491 1.1 mrg * @param c The connection
492 1.1 mrg * @param reply The reply
493 1.1 mrg *
494 1.1 mrg * Returns the array of reply fds of the request asked by
495 1.2 mrg *
496 1.1 mrg * The returned value must be freed by the caller using free().
497 1.1 mrg */
498 1.1 mrg int *
499 1.1 mrg xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t *c /**< */,
500 1.3 mrg xcb_dri3_fd_from_fence_reply_t *reply);
501 1.1 mrg
502 1.1 mrg
503 1.1 mrg #ifdef __cplusplus
504 1.1 mrg }
505 1.1 mrg #endif
506 1.1 mrg
507 1.1 mrg #endif
508 1.1 mrg
509 1.1 mrg /**
510 1.1 mrg * @}
511 1.1 mrg */
512