master
ブランチ master
ShaderPlayground / deps / xlibre / include / xcb / dri3.h
28.5 KB、1003行 生 Blame 履歴
1/*
2 * This file generated automatically from dri3.xml by c_client.py.
3 * Edit at your peril.
4 */
5
6/**
7 * @defgroup XCB_DRI3_API XCB DRI3 API
8 * @brief DRI3 XCB Protocol Implementation.
9 * @{
10 **/
11
12#ifndef __DRI3_H
13#define __DRI3_H
14
15#include "xcb.h"
16#include "xproto.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#define XCB_DRI3_MAJOR_VERSION 1
23#define XCB_DRI3_MINOR_VERSION 4
24
25extern xcb_extension_t xcb_dri3_id;
26
27typedef uint32_t xcb_dri3_syncobj_t;
28
29/**
30 * @brief xcb_dri3_syncobj_iterator_t
31 **/
32typedef struct xcb_dri3_syncobj_iterator_t {
33 xcb_dri3_syncobj_t *data;
34 int rem;
35 int index;
36} xcb_dri3_syncobj_iterator_t;
37
38/**
39 * @brief xcb_dri3_query_version_cookie_t
40 **/
41typedef struct xcb_dri3_query_version_cookie_t {
42 unsigned int sequence;
43} xcb_dri3_query_version_cookie_t;
44
45/** Opcode for xcb_dri3_query_version. */
46#define XCB_DRI3_QUERY_VERSION 0
47
48/**
49 * @brief xcb_dri3_query_version_request_t
50 **/
51typedef struct xcb_dri3_query_version_request_t {
52 uint8_t major_opcode;
53 uint8_t minor_opcode;
54 uint16_t length;
55 uint32_t major_version;
56 uint32_t minor_version;
57} xcb_dri3_query_version_request_t;
58
59/**
60 * @brief xcb_dri3_query_version_reply_t
61 **/
62typedef struct xcb_dri3_query_version_reply_t {
63 uint8_t response_type;
64 uint8_t pad0;
65 uint16_t sequence;
66 uint32_t length;
67 uint32_t major_version;
68 uint32_t minor_version;
69} xcb_dri3_query_version_reply_t;
70
71/**
72 * @brief xcb_dri3_open_cookie_t
73 **/
74typedef struct xcb_dri3_open_cookie_t {
75 unsigned int sequence;
76} xcb_dri3_open_cookie_t;
77
78/** Opcode for xcb_dri3_open. */
79#define XCB_DRI3_OPEN 1
80
81/**
82 * @brief xcb_dri3_open_request_t
83 **/
84typedef struct xcb_dri3_open_request_t {
85 uint8_t major_opcode;
86 uint8_t minor_opcode;
87 uint16_t length;
88 xcb_drawable_t drawable;
89 uint32_t provider;
90} xcb_dri3_open_request_t;
91
92/**
93 * @brief xcb_dri3_open_reply_t
94 **/
95typedef struct xcb_dri3_open_reply_t {
96 uint8_t response_type;
97 uint8_t nfd;
98 uint16_t sequence;
99 uint32_t length;
100 uint8_t pad0[24];
101} xcb_dri3_open_reply_t;
102
103/** Opcode for xcb_dri3_pixmap_from_buffer. */
104#define XCB_DRI3_PIXMAP_FROM_BUFFER 2
105
106/**
107 * @brief xcb_dri3_pixmap_from_buffer_request_t
108 **/
109typedef struct xcb_dri3_pixmap_from_buffer_request_t {
110 uint8_t major_opcode;
111 uint8_t minor_opcode;
112 uint16_t length;
113 xcb_pixmap_t pixmap;
114 xcb_drawable_t drawable;
115 uint32_t size;
116 uint16_t width;
117 uint16_t height;
118 uint16_t stride;
119 uint8_t depth;
120 uint8_t bpp;
121} xcb_dri3_pixmap_from_buffer_request_t;
122
123/**
124 * @brief xcb_dri3_buffer_from_pixmap_cookie_t
125 **/
126typedef struct xcb_dri3_buffer_from_pixmap_cookie_t {
127 unsigned int sequence;
128} xcb_dri3_buffer_from_pixmap_cookie_t;
129
130/** Opcode for xcb_dri3_buffer_from_pixmap. */
131#define XCB_DRI3_BUFFER_FROM_PIXMAP 3
132
133/**
134 * @brief xcb_dri3_buffer_from_pixmap_request_t
135 **/
136typedef struct xcb_dri3_buffer_from_pixmap_request_t {
137 uint8_t major_opcode;
138 uint8_t minor_opcode;
139 uint16_t length;
140 xcb_pixmap_t pixmap;
141} xcb_dri3_buffer_from_pixmap_request_t;
142
143/**
144 * @brief xcb_dri3_buffer_from_pixmap_reply_t
145 **/
146typedef struct xcb_dri3_buffer_from_pixmap_reply_t {
147 uint8_t response_type;
148 uint8_t nfd;
149 uint16_t sequence;
150 uint32_t length;
151 uint32_t size;
152 uint16_t width;
153 uint16_t height;
154 uint16_t stride;
155 uint8_t depth;
156 uint8_t bpp;
157 uint8_t pad0[12];
158} xcb_dri3_buffer_from_pixmap_reply_t;
159
160/** Opcode for xcb_dri3_fence_from_fd. */
161#define XCB_DRI3_FENCE_FROM_FD 4
162
163/**
164 * @brief xcb_dri3_fence_from_fd_request_t
165 **/
166typedef struct xcb_dri3_fence_from_fd_request_t {
167 uint8_t major_opcode;
168 uint8_t minor_opcode;
169 uint16_t length;
170 xcb_drawable_t drawable;
171 uint32_t fence;
172 uint8_t initially_triggered;
173 uint8_t pad0[3];
174} xcb_dri3_fence_from_fd_request_t;
175
176/**
177 * @brief xcb_dri3_fd_from_fence_cookie_t
178 **/
179typedef struct xcb_dri3_fd_from_fence_cookie_t {
180 unsigned int sequence;
181} xcb_dri3_fd_from_fence_cookie_t;
182
183/** Opcode for xcb_dri3_fd_from_fence. */
184#define XCB_DRI3_FD_FROM_FENCE 5
185
186/**
187 * @brief xcb_dri3_fd_from_fence_request_t
188 **/
189typedef struct xcb_dri3_fd_from_fence_request_t {
190 uint8_t major_opcode;
191 uint8_t minor_opcode;
192 uint16_t length;
193 xcb_drawable_t drawable;
194 uint32_t fence;
195} xcb_dri3_fd_from_fence_request_t;
196
197/**
198 * @brief xcb_dri3_fd_from_fence_reply_t
199 **/
200typedef struct xcb_dri3_fd_from_fence_reply_t {
201 uint8_t response_type;
202 uint8_t nfd;
203 uint16_t sequence;
204 uint32_t length;
205 uint8_t pad0[24];
206} xcb_dri3_fd_from_fence_reply_t;
207
208/**
209 * @brief xcb_dri3_get_supported_modifiers_cookie_t
210 **/
211typedef struct xcb_dri3_get_supported_modifiers_cookie_t {
212 unsigned int sequence;
213} xcb_dri3_get_supported_modifiers_cookie_t;
214
215/** Opcode for xcb_dri3_get_supported_modifiers. */
216#define XCB_DRI3_GET_SUPPORTED_MODIFIERS 6
217
218/**
219 * @brief xcb_dri3_get_supported_modifiers_request_t
220 **/
221typedef struct xcb_dri3_get_supported_modifiers_request_t {
222 uint8_t major_opcode;
223 uint8_t minor_opcode;
224 uint16_t length;
225 uint32_t window;
226 uint8_t depth;
227 uint8_t bpp;
228 uint8_t pad0[2];
229} xcb_dri3_get_supported_modifiers_request_t;
230
231/**
232 * @brief xcb_dri3_get_supported_modifiers_reply_t
233 **/
234typedef struct xcb_dri3_get_supported_modifiers_reply_t {
235 uint8_t response_type;
236 uint8_t pad0;
237 uint16_t sequence;
238 uint32_t length;
239 uint32_t num_window_modifiers;
240 uint32_t num_screen_modifiers;
241 uint8_t pad1[16];
242} xcb_dri3_get_supported_modifiers_reply_t;
243
244/** Opcode for xcb_dri3_pixmap_from_buffers. */
245#define XCB_DRI3_PIXMAP_FROM_BUFFERS 7
246
247/**
248 * @brief xcb_dri3_pixmap_from_buffers_request_t
249 **/
250typedef struct xcb_dri3_pixmap_from_buffers_request_t {
251 uint8_t major_opcode;
252 uint8_t minor_opcode;
253 uint16_t length;
254 xcb_pixmap_t pixmap;
255 xcb_window_t window;
256 uint8_t num_buffers;
257 uint8_t pad0[3];
258 uint16_t width;
259 uint16_t height;
260 uint32_t stride0;
261 uint32_t offset0;
262 uint32_t stride1;
263 uint32_t offset1;
264 uint32_t stride2;
265 uint32_t offset2;
266 uint32_t stride3;
267 uint32_t offset3;
268 uint8_t depth;
269 uint8_t bpp;
270 uint8_t pad1[2];
271 uint64_t modifier;
272} xcb_dri3_pixmap_from_buffers_request_t;
273
274/**
275 * @brief xcb_dri3_buffers_from_pixmap_cookie_t
276 **/
277typedef struct xcb_dri3_buffers_from_pixmap_cookie_t {
278 unsigned int sequence;
279} xcb_dri3_buffers_from_pixmap_cookie_t;
280
281/** Opcode for xcb_dri3_buffers_from_pixmap. */
282#define XCB_DRI3_BUFFERS_FROM_PIXMAP 8
283
284/**
285 * @brief xcb_dri3_buffers_from_pixmap_request_t
286 **/
287typedef struct xcb_dri3_buffers_from_pixmap_request_t {
288 uint8_t major_opcode;
289 uint8_t minor_opcode;
290 uint16_t length;
291 xcb_pixmap_t pixmap;
292} xcb_dri3_buffers_from_pixmap_request_t;
293
294/**
295 * @brief xcb_dri3_buffers_from_pixmap_reply_t
296 **/
297typedef struct xcb_dri3_buffers_from_pixmap_reply_t {
298 uint8_t response_type;
299 uint8_t nfd;
300 uint16_t sequence;
301 uint32_t length;
302 uint16_t width;
303 uint16_t height;
304 uint8_t pad0[4];
305 uint64_t modifier;
306 uint8_t depth;
307 uint8_t bpp;
308 uint8_t pad1[6];
309} xcb_dri3_buffers_from_pixmap_reply_t;
310
311/** Opcode for xcb_dri3_set_drm_device_in_use. */
312#define XCB_DRI3_SET_DRM_DEVICE_IN_USE 9
313
314/**
315 * @brief xcb_dri3_set_drm_device_in_use_request_t
316 **/
317typedef struct xcb_dri3_set_drm_device_in_use_request_t {
318 uint8_t major_opcode;
319 uint8_t minor_opcode;
320 uint16_t length;
321 xcb_window_t window;
322 uint32_t drmMajor;
323 uint32_t drmMinor;
324} xcb_dri3_set_drm_device_in_use_request_t;
325
326/** Opcode for xcb_dri3_import_syncobj. */
327#define XCB_DRI3_IMPORT_SYNCOBJ 10
328
329/**
330 * @brief xcb_dri3_import_syncobj_request_t
331 **/
332typedef struct xcb_dri3_import_syncobj_request_t {
333 uint8_t major_opcode;
334 uint8_t minor_opcode;
335 uint16_t length;
336 xcb_dri3_syncobj_t syncobj;
337 xcb_drawable_t drawable;
338} xcb_dri3_import_syncobj_request_t;
339
340/** Opcode for xcb_dri3_free_syncobj. */
341#define XCB_DRI3_FREE_SYNCOBJ 11
342
343/**
344 * @brief xcb_dri3_free_syncobj_request_t
345 **/
346typedef struct xcb_dri3_free_syncobj_request_t {
347 uint8_t major_opcode;
348 uint8_t minor_opcode;
349 uint16_t length;
350 xcb_dri3_syncobj_t syncobj;
351} xcb_dri3_free_syncobj_request_t;
352
353/**
354 * Get the next element of the iterator
355 * @param i Pointer to a xcb_dri3_syncobj_iterator_t
356 *
357 * Get the next element in the iterator. The member rem is
358 * decreased by one. The member data points to the next
359 * element. The member index is increased by sizeof(xcb_dri3_syncobj_t)
360 */
361void
362xcb_dri3_syncobj_next (xcb_dri3_syncobj_iterator_t *i);
363
364/**
365 * Return the iterator pointing to the last element
366 * @param i An xcb_dri3_syncobj_iterator_t
367 * @return The iterator pointing to the last element
368 *
369 * Set the current element in the iterator to the last element.
370 * The member rem is set to 0. The member data points to the
371 * last element.
372 */
373xcb_generic_iterator_t
374xcb_dri3_syncobj_end (xcb_dri3_syncobj_iterator_t i);
375
376/**
377 *
378 * @param c The connection
379 * @return A cookie
380 *
381 * Delivers a request to the X server.
382 *
383 */
384xcb_dri3_query_version_cookie_t
385xcb_dri3_query_version (xcb_connection_t *c,
386 uint32_t major_version,
387 uint32_t minor_version);
388
389/**
390 *
391 * @param c The connection
392 * @return A cookie
393 *
394 * Delivers a request to the X server.
395 *
396 * This form can be used only if the request will cause
397 * a reply to be generated. Any returned error will be
398 * placed in the event queue.
399 */
400xcb_dri3_query_version_cookie_t
401xcb_dri3_query_version_unchecked (xcb_connection_t *c,
402 uint32_t major_version,
403 uint32_t minor_version);
404
405/**
406 * Return the reply
407 * @param c The connection
408 * @param cookie The cookie
409 * @param e The xcb_generic_error_t supplied
410 *
411 * Returns the reply of the request asked by
412 *
413 * The parameter @p e supplied to this function must be NULL if
414 * xcb_dri3_query_version_unchecked(). is used.
415 * Otherwise, it stores the error if any.
416 *
417 * The returned value must be freed by the caller using free().
418 */
419xcb_dri3_query_version_reply_t *
420xcb_dri3_query_version_reply (xcb_connection_t *c,
421 xcb_dri3_query_version_cookie_t cookie /**< */,
422 xcb_generic_error_t **e);
423
424/**
425 *
426 * @param c The connection
427 * @return A cookie
428 *
429 * Delivers a request to the X server.
430 *
431 */
432xcb_dri3_open_cookie_t
433xcb_dri3_open (xcb_connection_t *c,
434 xcb_drawable_t drawable,
435 uint32_t provider);
436
437/**
438 *
439 * @param c The connection
440 * @return A cookie
441 *
442 * Delivers a request to the X server.
443 *
444 * This form can be used only if the request will cause
445 * a reply to be generated. Any returned error will be
446 * placed in the event queue.
447 */
448xcb_dri3_open_cookie_t
449xcb_dri3_open_unchecked (xcb_connection_t *c,
450 xcb_drawable_t drawable,
451 uint32_t provider);
452
453/**
454 * Return the reply
455 * @param c The connection
456 * @param cookie The cookie
457 * @param e The xcb_generic_error_t supplied
458 *
459 * Returns the reply of the request asked by
460 *
461 * The parameter @p e supplied to this function must be NULL if
462 * xcb_dri3_open_unchecked(). is used.
463 * Otherwise, it stores the error if any.
464 *
465 * The returned value must be freed by the caller using free().
466 */
467xcb_dri3_open_reply_t *
468xcb_dri3_open_reply (xcb_connection_t *c,
469 xcb_dri3_open_cookie_t cookie /**< */,
470 xcb_generic_error_t **e);
471
472/**
473 * Return the reply fds
474 * @param c The connection
475 * @param reply The reply
476 *
477 * Returns a pointer to the array of reply fds of the reply.
478 *
479 * The returned value points into the reply and must not be free().
480 * The fds are not managed by xcb. You must close() them before freeing the reply.
481 */
482int *
483xcb_dri3_open_reply_fds (xcb_connection_t *c /**< */,
484 xcb_dri3_open_reply_t *reply);
485
486/**
487 *
488 * @param c The connection
489 * @return A cookie
490 *
491 * Delivers a request to the X server.
492 *
493 * This form can be used only if the request will not cause
494 * a reply to be generated. Any returned error will be
495 * saved for handling by xcb_request_check().
496 */
497xcb_void_cookie_t
498xcb_dri3_pixmap_from_buffer_checked (xcb_connection_t *c,
499 xcb_pixmap_t pixmap,
500 xcb_drawable_t drawable,
501 uint32_t size,
502 uint16_t width,
503 uint16_t height,
504 uint16_t stride,
505 uint8_t depth,
506 uint8_t bpp,
507 int32_t pixmap_fd);
508
509/**
510 *
511 * @param c The connection
512 * @return A cookie
513 *
514 * Delivers a request to the X server.
515 *
516 */
517xcb_void_cookie_t
518xcb_dri3_pixmap_from_buffer (xcb_connection_t *c,
519 xcb_pixmap_t pixmap,
520 xcb_drawable_t drawable,
521 uint32_t size,
522 uint16_t width,
523 uint16_t height,
524 uint16_t stride,
525 uint8_t depth,
526 uint8_t bpp,
527 int32_t pixmap_fd);
528
529/**
530 *
531 * @param c The connection
532 * @return A cookie
533 *
534 * Delivers a request to the X server.
535 *
536 */
537xcb_dri3_buffer_from_pixmap_cookie_t
538xcb_dri3_buffer_from_pixmap (xcb_connection_t *c,
539 xcb_pixmap_t pixmap);
540
541/**
542 *
543 * @param c The connection
544 * @return A cookie
545 *
546 * Delivers a request to the X server.
547 *
548 * This form can be used only if the request will cause
549 * a reply to be generated. Any returned error will be
550 * placed in the event queue.
551 */
552xcb_dri3_buffer_from_pixmap_cookie_t
553xcb_dri3_buffer_from_pixmap_unchecked (xcb_connection_t *c,
554 xcb_pixmap_t pixmap);
555
556/**
557 * Return the reply
558 * @param c The connection
559 * @param cookie The cookie
560 * @param e The xcb_generic_error_t supplied
561 *
562 * Returns the reply of the request asked by
563 *
564 * The parameter @p e supplied to this function must be NULL if
565 * xcb_dri3_buffer_from_pixmap_unchecked(). is used.
566 * Otherwise, it stores the error if any.
567 *
568 * The returned value must be freed by the caller using free().
569 */
570xcb_dri3_buffer_from_pixmap_reply_t *
571xcb_dri3_buffer_from_pixmap_reply (xcb_connection_t *c,
572 xcb_dri3_buffer_from_pixmap_cookie_t cookie /**< */,
573 xcb_generic_error_t **e);
574
575/**
576 * Return the reply fds
577 * @param c The connection
578 * @param reply The reply
579 *
580 * Returns a pointer to the array of reply fds of the reply.
581 *
582 * The returned value points into the reply and must not be free().
583 * The fds are not managed by xcb. You must close() them before freeing the reply.
584 */
585int *
586xcb_dri3_buffer_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
587 xcb_dri3_buffer_from_pixmap_reply_t *reply);
588
589/**
590 *
591 * @param c The connection
592 * @return A cookie
593 *
594 * Delivers a request to the X server.
595 *
596 * This form can be used only if the request will not cause
597 * a reply to be generated. Any returned error will be
598 * saved for handling by xcb_request_check().
599 */
600xcb_void_cookie_t
601xcb_dri3_fence_from_fd_checked (xcb_connection_t *c,
602 xcb_drawable_t drawable,
603 uint32_t fence,
604 uint8_t initially_triggered,
605 int32_t fence_fd);
606
607/**
608 *
609 * @param c The connection
610 * @return A cookie
611 *
612 * Delivers a request to the X server.
613 *
614 */
615xcb_void_cookie_t
616xcb_dri3_fence_from_fd (xcb_connection_t *c,
617 xcb_drawable_t drawable,
618 uint32_t fence,
619 uint8_t initially_triggered,
620 int32_t fence_fd);
621
622/**
623 *
624 * @param c The connection
625 * @return A cookie
626 *
627 * Delivers a request to the X server.
628 *
629 */
630xcb_dri3_fd_from_fence_cookie_t
631xcb_dri3_fd_from_fence (xcb_connection_t *c,
632 xcb_drawable_t drawable,
633 uint32_t fence);
634
635/**
636 *
637 * @param c The connection
638 * @return A cookie
639 *
640 * Delivers a request to the X server.
641 *
642 * This form can be used only if the request will cause
643 * a reply to be generated. Any returned error will be
644 * placed in the event queue.
645 */
646xcb_dri3_fd_from_fence_cookie_t
647xcb_dri3_fd_from_fence_unchecked (xcb_connection_t *c,
648 xcb_drawable_t drawable,
649 uint32_t fence);
650
651/**
652 * Return the reply
653 * @param c The connection
654 * @param cookie The cookie
655 * @param e The xcb_generic_error_t supplied
656 *
657 * Returns the reply of the request asked by
658 *
659 * The parameter @p e supplied to this function must be NULL if
660 * xcb_dri3_fd_from_fence_unchecked(). is used.
661 * Otherwise, it stores the error if any.
662 *
663 * The returned value must be freed by the caller using free().
664 */
665xcb_dri3_fd_from_fence_reply_t *
666xcb_dri3_fd_from_fence_reply (xcb_connection_t *c,
667 xcb_dri3_fd_from_fence_cookie_t cookie /**< */,
668 xcb_generic_error_t **e);
669
670/**
671 * Return the reply fds
672 * @param c The connection
673 * @param reply The reply
674 *
675 * Returns a pointer to the array of reply fds of the reply.
676 *
677 * The returned value points into the reply and must not be free().
678 * The fds are not managed by xcb. You must close() them before freeing the reply.
679 */
680int *
681xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t *c /**< */,
682 xcb_dri3_fd_from_fence_reply_t *reply);
683
684int
685xcb_dri3_get_supported_modifiers_sizeof (const void *_buffer);
686
687/**
688 *
689 * @param c The connection
690 * @return A cookie
691 *
692 * Delivers a request to the X server.
693 *
694 */
695xcb_dri3_get_supported_modifiers_cookie_t
696xcb_dri3_get_supported_modifiers (xcb_connection_t *c,
697 uint32_t window,
698 uint8_t depth,
699 uint8_t bpp);
700
701/**
702 *
703 * @param c The connection
704 * @return A cookie
705 *
706 * Delivers a request to the X server.
707 *
708 * This form can be used only if the request will cause
709 * a reply to be generated. Any returned error will be
710 * placed in the event queue.
711 */
712xcb_dri3_get_supported_modifiers_cookie_t
713xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c,
714 uint32_t window,
715 uint8_t depth,
716 uint8_t bpp);
717
718uint64_t *
719xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
720
721int
722xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
723
724xcb_generic_iterator_t
725xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
726
727uint64_t *
728xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
729
730int
731xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
732
733xcb_generic_iterator_t
734xcb_dri3_get_supported_modifiers_screen_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
735
736/**
737 * Return the reply
738 * @param c The connection
739 * @param cookie The cookie
740 * @param e The xcb_generic_error_t supplied
741 *
742 * Returns the reply of the request asked by
743 *
744 * The parameter @p e supplied to this function must be NULL if
745 * xcb_dri3_get_supported_modifiers_unchecked(). is used.
746 * Otherwise, it stores the error if any.
747 *
748 * The returned value must be freed by the caller using free().
749 */
750xcb_dri3_get_supported_modifiers_reply_t *
751xcb_dri3_get_supported_modifiers_reply (xcb_connection_t *c,
752 xcb_dri3_get_supported_modifiers_cookie_t cookie /**< */,
753 xcb_generic_error_t **e);
754
755/**
756 *
757 * @param c The connection
758 * @return A cookie
759 *
760 * Delivers a request to the X server.
761 *
762 * This form can be used only if the request will not cause
763 * a reply to be generated. Any returned error will be
764 * saved for handling by xcb_request_check().
765 */
766xcb_void_cookie_t
767xcb_dri3_pixmap_from_buffers_checked (xcb_connection_t *c,
768 xcb_pixmap_t pixmap,
769 xcb_window_t window,
770 uint8_t num_buffers,
771 uint16_t width,
772 uint16_t height,
773 uint32_t stride0,
774 uint32_t offset0,
775 uint32_t stride1,
776 uint32_t offset1,
777 uint32_t stride2,
778 uint32_t offset2,
779 uint32_t stride3,
780 uint32_t offset3,
781 uint8_t depth,
782 uint8_t bpp,
783 uint64_t modifier,
784 const int32_t *buffers);
785
786/**
787 *
788 * @param c The connection
789 * @return A cookie
790 *
791 * Delivers a request to the X server.
792 *
793 */
794xcb_void_cookie_t
795xcb_dri3_pixmap_from_buffers (xcb_connection_t *c,
796 xcb_pixmap_t pixmap,
797 xcb_window_t window,
798 uint8_t num_buffers,
799 uint16_t width,
800 uint16_t height,
801 uint32_t stride0,
802 uint32_t offset0,
803 uint32_t stride1,
804 uint32_t offset1,
805 uint32_t stride2,
806 uint32_t offset2,
807 uint32_t stride3,
808 uint32_t offset3,
809 uint8_t depth,
810 uint8_t bpp,
811 uint64_t modifier,
812 const int32_t *buffers);
813
814int
815xcb_dri3_buffers_from_pixmap_sizeof (const void *_buffer,
816 int32_t buffers);
817
818/**
819 *
820 * @param c The connection
821 * @return A cookie
822 *
823 * Delivers a request to the X server.
824 *
825 */
826xcb_dri3_buffers_from_pixmap_cookie_t
827xcb_dri3_buffers_from_pixmap (xcb_connection_t *c,
828 xcb_pixmap_t pixmap);
829
830/**
831 *
832 * @param c The connection
833 * @return A cookie
834 *
835 * Delivers a request to the X server.
836 *
837 * This form can be used only if the request will cause
838 * a reply to be generated. Any returned error will be
839 * placed in the event queue.
840 */
841xcb_dri3_buffers_from_pixmap_cookie_t
842xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c,
843 xcb_pixmap_t pixmap);
844
845uint32_t *
846xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R);
847
848int
849xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
850
851xcb_generic_iterator_t
852xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
853
854uint32_t *
855xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R);
856
857int
858xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
859
860xcb_generic_iterator_t
861xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
862
863int32_t *
864xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R);
865
866int
867xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
868
869xcb_generic_iterator_t
870xcb_dri3_buffers_from_pixmap_buffers_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
871
872/**
873 * Return the reply
874 * @param c The connection
875 * @param cookie The cookie
876 * @param e The xcb_generic_error_t supplied
877 *
878 * Returns the reply of the request asked by
879 *
880 * The parameter @p e supplied to this function must be NULL if
881 * xcb_dri3_buffers_from_pixmap_unchecked(). is used.
882 * Otherwise, it stores the error if any.
883 *
884 * The returned value must be freed by the caller using free().
885 */
886xcb_dri3_buffers_from_pixmap_reply_t *
887xcb_dri3_buffers_from_pixmap_reply (xcb_connection_t *c,
888 xcb_dri3_buffers_from_pixmap_cookie_t cookie /**< */,
889 xcb_generic_error_t **e);
890
891/**
892 * Return the reply fds
893 * @param c The connection
894 * @param reply The reply
895 *
896 * Returns a pointer to the array of reply fds of the reply.
897 *
898 * The returned value points into the reply and must not be free().
899 * The fds are not managed by xcb. You must close() them before freeing the reply.
900 */
901int *
902xcb_dri3_buffers_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
903 xcb_dri3_buffers_from_pixmap_reply_t *reply);
904
905/**
906 *
907 * @param c The connection
908 * @return A cookie
909 *
910 * Delivers a request to the X server.
911 *
912 * This form can be used only if the request will not cause
913 * a reply to be generated. Any returned error will be
914 * saved for handling by xcb_request_check().
915 */
916xcb_void_cookie_t
917xcb_dri3_set_drm_device_in_use_checked (xcb_connection_t *c,
918 xcb_window_t window,
919 uint32_t drmMajor,
920 uint32_t drmMinor);
921
922/**
923 *
924 * @param c The connection
925 * @return A cookie
926 *
927 * Delivers a request to the X server.
928 *
929 */
930xcb_void_cookie_t
931xcb_dri3_set_drm_device_in_use (xcb_connection_t *c,
932 xcb_window_t window,
933 uint32_t drmMajor,
934 uint32_t drmMinor);
935
936/**
937 *
938 * @param c The connection
939 * @return A cookie
940 *
941 * Delivers a request to the X server.
942 *
943 * This form can be used only if the request will not cause
944 * a reply to be generated. Any returned error will be
945 * saved for handling by xcb_request_check().
946 */
947xcb_void_cookie_t
948xcb_dri3_import_syncobj_checked (xcb_connection_t *c,
949 xcb_dri3_syncobj_t syncobj,
950 xcb_drawable_t drawable,
951 int32_t syncobj_fd);
952
953/**
954 *
955 * @param c The connection
956 * @return A cookie
957 *
958 * Delivers a request to the X server.
959 *
960 */
961xcb_void_cookie_t
962xcb_dri3_import_syncobj (xcb_connection_t *c,
963 xcb_dri3_syncobj_t syncobj,
964 xcb_drawable_t drawable,
965 int32_t syncobj_fd);
966
967/**
968 *
969 * @param c The connection
970 * @return A cookie
971 *
972 * Delivers a request to the X server.
973 *
974 * This form can be used only if the request will not cause
975 * a reply to be generated. Any returned error will be
976 * saved for handling by xcb_request_check().
977 */
978xcb_void_cookie_t
979xcb_dri3_free_syncobj_checked (xcb_connection_t *c,
980 xcb_dri3_syncobj_t syncobj);
981
982/**
983 *
984 * @param c The connection
985 * @return A cookie
986 *
987 * Delivers a request to the X server.
988 *
989 */
990xcb_void_cookie_t
991xcb_dri3_free_syncobj (xcb_connection_t *c,
992 xcb_dri3_syncobj_t syncobj);
993
994
995#ifdef __cplusplus
996}
997#endif
998
999#endif
1000
1001/**
1002 * @}
1003 */