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