xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/dri3.h (revision 345cf9fb81bd0411c53e25d62cd93bdcaa865312)
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
19 extern "C" {
20 #endif
21 
22 #define XCB_DRI3_MAJOR_VERSION 1
23 #define XCB_DRI3_MINOR_VERSION 3
24 
25 extern xcb_extension_t xcb_dri3_id;
26 
27 /**
28  * @brief xcb_dri3_query_version_cookie_t
29  **/
30 typedef 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  **/
40 typedef 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  **/
51 typedef 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  **/
63 typedef 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  **/
73 typedef 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  **/
84 typedef 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  **/
98 typedef 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  **/
115 typedef 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  **/
125 typedef 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  **/
135 typedef 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  **/
155 typedef 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  **/
168 typedef 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  **/
178 typedef 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  **/
189 typedef 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  **/
200 typedef 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  **/
210 typedef 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  **/
223 typedef 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  **/
239 typedef 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  **/
266 typedef 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  **/
276 typedef 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  **/
286 typedef 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  **/
306 typedef 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  */
323 xcb_dri3_query_version_cookie_t
324 xcb_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  */
339 xcb_dri3_query_version_cookie_t
340 xcb_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  */
358 xcb_dri3_query_version_reply_t *
359 xcb_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  */
371 xcb_dri3_open_cookie_t
372 xcb_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  */
387 xcb_dri3_open_cookie_t
388 xcb_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  */
406 xcb_dri3_open_reply_t *
407 xcb_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  */
421 int *
422 xcb_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  */
436 xcb_void_cookie_t
437 xcb_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  */
456 xcb_void_cookie_t
457 xcb_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  */
476 xcb_dri3_buffer_from_pixmap_cookie_t
477 xcb_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  */
491 xcb_dri3_buffer_from_pixmap_cookie_t
492 xcb_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  */
509 xcb_dri3_buffer_from_pixmap_reply_t *
510 xcb_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  */
524 int *
525 xcb_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  */
539 xcb_void_cookie_t
540 xcb_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  */
554 xcb_void_cookie_t
555 xcb_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  */
569 xcb_dri3_fd_from_fence_cookie_t
570 xcb_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  */
585 xcb_dri3_fd_from_fence_cookie_t
586 xcb_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  */
604 xcb_dri3_fd_from_fence_reply_t *
605 xcb_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  */
619 int *
620 xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t                *c  /**< */,
621                                   xcb_dri3_fd_from_fence_reply_t  *reply);
622 
623 int
624 xcb_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  */
634 xcb_dri3_get_supported_modifiers_cookie_t
635 xcb_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  */
651 xcb_dri3_get_supported_modifiers_cookie_t
652 xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c,
653                                             uint32_t          window,
654                                             uint8_t           depth,
655                                             uint8_t           bpp);
656 
657 uint64_t *
658 xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
659 
660 int
661 xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
662 
663 xcb_generic_iterator_t
664 xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
665 
666 uint64_t *
667 xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
668 
669 int
670 xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
671 
672 xcb_generic_iterator_t
673 xcb_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  */
689 xcb_dri3_get_supported_modifiers_reply_t *
690 xcb_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  */
705 xcb_void_cookie_t
706 xcb_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  */
733 xcb_void_cookie_t
734 xcb_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 
753 int
754 xcb_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  */
765 xcb_dri3_buffers_from_pixmap_cookie_t
766 xcb_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  */
780 xcb_dri3_buffers_from_pixmap_cookie_t
781 xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c,
782                                         xcb_pixmap_t      pixmap);
783 
784 uint32_t *
785 xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R);
786 
787 int
788 xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
789 
790 xcb_generic_iterator_t
791 xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
792 
793 uint32_t *
794 xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R);
795 
796 int
797 xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
798 
799 xcb_generic_iterator_t
800 xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
801 
802 int32_t *
803 xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R);
804 
805 int
806 xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
807 
808 xcb_generic_iterator_t
809 xcb_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  */
825 xcb_dri3_buffers_from_pixmap_reply_t *
826 xcb_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  */
840 int *
841 xcb_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  */
855 xcb_void_cookie_t
856 xcb_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  */
869 xcb_void_cookie_t
870 xcb_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