Home | History | Annotate | Line # | Download | only in files
dri3.h revision 1.5.4.1
      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 4
     24 
     25 extern xcb_extension_t xcb_dri3_id;
     26 
     27 typedef uint32_t xcb_dri3_syncobj_t;
     28 
     29 /**
     30  * @brief xcb_dri3_syncobj_iterator_t
     31  **/
     32 typedef 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  **/
     41 typedef 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  **/
     51 typedef 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  **/
     62 typedef 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  **/
     74 typedef 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  **/
     84 typedef 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  **/
     95 typedef 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  **/
    109 typedef 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  **/
    126 typedef 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  **/
    136 typedef 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  **/
    146 typedef 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  **/
    166 typedef 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  **/
    179 typedef 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  **/
    189 typedef 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  **/
    200 typedef 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  **/
    211 typedef 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  **/
    221 typedef 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  **/
    234 typedef 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  **/
    250 typedef 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  **/
    277 typedef 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  **/
    287 typedef 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  **/
    297 typedef 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  **/
    317 typedef 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  **/
    332 typedef 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  **/
    346 typedef 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  */
    361 void
    362 xcb_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  */
    373 xcb_generic_iterator_t
    374 xcb_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  */
    384 xcb_dri3_query_version_cookie_t
    385 xcb_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  */
    400 xcb_dri3_query_version_cookie_t
    401 xcb_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  */
    419 xcb_dri3_query_version_reply_t *
    420 xcb_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  */
    432 xcb_dri3_open_cookie_t
    433 xcb_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  */
    448 xcb_dri3_open_cookie_t
    449 xcb_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  */
    467 xcb_dri3_open_reply_t *
    468 xcb_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  */
    482 int *
    483 xcb_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  */
    497 xcb_void_cookie_t
    498 xcb_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  */
    517 xcb_void_cookie_t
    518 xcb_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  */
    537 xcb_dri3_buffer_from_pixmap_cookie_t
    538 xcb_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  */
    552 xcb_dri3_buffer_from_pixmap_cookie_t
    553 xcb_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  */
    570 xcb_dri3_buffer_from_pixmap_reply_t *
    571 xcb_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  */
    585 int *
    586 xcb_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  */
    600 xcb_void_cookie_t
    601 xcb_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  */
    615 xcb_void_cookie_t
    616 xcb_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  */
    630 xcb_dri3_fd_from_fence_cookie_t
    631 xcb_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  */
    646 xcb_dri3_fd_from_fence_cookie_t
    647 xcb_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  */
    665 xcb_dri3_fd_from_fence_reply_t *
    666 xcb_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  */
    680 int *
    681 xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t                *c  /**< */,
    682                                   xcb_dri3_fd_from_fence_reply_t  *reply);
    683 
    684 int
    685 xcb_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  */
    695 xcb_dri3_get_supported_modifiers_cookie_t
    696 xcb_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  */
    712 xcb_dri3_get_supported_modifiers_cookie_t
    713 xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c,
    714                                             uint32_t          window,
    715                                             uint8_t           depth,
    716                                             uint8_t           bpp);
    717 
    718 uint64_t *
    719 xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
    720 
    721 int
    722 xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
    723 
    724 xcb_generic_iterator_t
    725 xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
    726 
    727 uint64_t *
    728 xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
    729 
    730 int
    731 xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
    732 
    733 xcb_generic_iterator_t
    734 xcb_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  */
    750 xcb_dri3_get_supported_modifiers_reply_t *
    751 xcb_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  */
    766 xcb_void_cookie_t
    767 xcb_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  */
    794 xcb_void_cookie_t
    795 xcb_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 
    814 int
    815 xcb_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  */
    826 xcb_dri3_buffers_from_pixmap_cookie_t
    827 xcb_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  */
    841 xcb_dri3_buffers_from_pixmap_cookie_t
    842 xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c,
    843                                         xcb_pixmap_t      pixmap);
    844 
    845 uint32_t *
    846 xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    847 
    848 int
    849 xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    850 
    851 xcb_generic_iterator_t
    852 xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    853 
    854 uint32_t *
    855 xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    856 
    857 int
    858 xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    859 
    860 xcb_generic_iterator_t
    861 xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    862 
    863 int32_t *
    864 xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    865 
    866 int
    867 xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
    868 
    869 xcb_generic_iterator_t
    870 xcb_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  */
    886 xcb_dri3_buffers_from_pixmap_reply_t *
    887 xcb_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  */
    901 int *
    902 xcb_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  */
    916 xcb_void_cookie_t
    917 xcb_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  */
    930 xcb_void_cookie_t
    931 xcb_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  */
    947 xcb_void_cookie_t
    948 xcb_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  */
    961 xcb_void_cookie_t
    962 xcb_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  */
    978 xcb_void_cookie_t
    979 xcb_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  */
    990 xcb_void_cookie_t
    991 xcb_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  */
   1004