Home | History | Annotate | Line # | Download | only in files
shape.c revision 1.1
      1 /*
      2  * This file generated automatically from shape.xml by c_client.py.
      3  * Edit at your peril.
      4  */
      5 
      6 #include <string.h>
      7 #include <assert.h>
      8 #include "xcbext.h"
      9 #include "shape.h"
     10 #include "xproto.h"
     11 
     12 xcb_extension_t xcb_shape_id = { "SHAPE", 0 };
     13 
     14 
     15 /*****************************************************************************
     16  **
     17  ** void xcb_shape_op_next
     18  **
     19  ** @param xcb_shape_op_iterator_t *i
     20  ** @returns void
     21  **
     22  *****************************************************************************/
     23 
     24 void
     25 xcb_shape_op_next (xcb_shape_op_iterator_t *i  /**< */)
     26 {
     27     --i->rem;
     28     ++i->data;
     29     i->index += sizeof(xcb_shape_op_t);
     30 }
     31 
     32 
     33 /*****************************************************************************
     34  **
     35  ** xcb_generic_iterator_t xcb_shape_op_end
     36  **
     37  ** @param xcb_shape_op_iterator_t i
     38  ** @returns xcb_generic_iterator_t
     39  **
     40  *****************************************************************************/
     41 
     42 xcb_generic_iterator_t
     43 xcb_shape_op_end (xcb_shape_op_iterator_t i  /**< */)
     44 {
     45     xcb_generic_iterator_t ret;
     46     ret.data = i.data + i.rem;
     47     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     48     ret.rem = 0;
     49     return ret;
     50 }
     51 
     52 
     53 /*****************************************************************************
     54  **
     55  ** void xcb_shape_kind_next
     56  **
     57  ** @param xcb_shape_kind_iterator_t *i
     58  ** @returns void
     59  **
     60  *****************************************************************************/
     61 
     62 void
     63 xcb_shape_kind_next (xcb_shape_kind_iterator_t *i  /**< */)
     64 {
     65     --i->rem;
     66     ++i->data;
     67     i->index += sizeof(xcb_shape_kind_t);
     68 }
     69 
     70 
     71 /*****************************************************************************
     72  **
     73  ** xcb_generic_iterator_t xcb_shape_kind_end
     74  **
     75  ** @param xcb_shape_kind_iterator_t i
     76  ** @returns xcb_generic_iterator_t
     77  **
     78  *****************************************************************************/
     79 
     80 xcb_generic_iterator_t
     81 xcb_shape_kind_end (xcb_shape_kind_iterator_t i  /**< */)
     82 {
     83     xcb_generic_iterator_t ret;
     84     ret.data = i.data + i.rem;
     85     ret.index = i.index + ((char *) ret.data - (char *) i.data);
     86     ret.rem = 0;
     87     return ret;
     88 }
     89 
     90 
     91 /*****************************************************************************
     92  **
     93  ** xcb_shape_query_version_cookie_t xcb_shape_query_version
     94  **
     95  ** @param xcb_connection_t *c
     96  ** @returns xcb_shape_query_version_cookie_t
     97  **
     98  *****************************************************************************/
     99 
    100 xcb_shape_query_version_cookie_t
    101 xcb_shape_query_version (xcb_connection_t *c  /**< */)
    102 {
    103     static const xcb_protocol_request_t xcb_req = {
    104         /* count */ 2,
    105         /* ext */ &xcb_shape_id,
    106         /* opcode */ XCB_SHAPE_QUERY_VERSION,
    107         /* isvoid */ 0
    108     };
    109 
    110     struct iovec xcb_parts[4];
    111     xcb_shape_query_version_cookie_t xcb_ret;
    112     xcb_shape_query_version_request_t xcb_out;
    113 
    114 
    115     xcb_parts[2].iov_base = (char *) &xcb_out;
    116     xcb_parts[2].iov_len = sizeof(xcb_out);
    117     xcb_parts[3].iov_base = 0;
    118     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    119     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    120     return xcb_ret;
    121 }
    122 
    123 
    124 /*****************************************************************************
    125  **
    126  ** xcb_shape_query_version_cookie_t xcb_shape_query_version_unchecked
    127  **
    128  ** @param xcb_connection_t *c
    129  ** @returns xcb_shape_query_version_cookie_t
    130  **
    131  *****************************************************************************/
    132 
    133 xcb_shape_query_version_cookie_t
    134 xcb_shape_query_version_unchecked (xcb_connection_t *c  /**< */)
    135 {
    136     static const xcb_protocol_request_t xcb_req = {
    137         /* count */ 2,
    138         /* ext */ &xcb_shape_id,
    139         /* opcode */ XCB_SHAPE_QUERY_VERSION,
    140         /* isvoid */ 0
    141     };
    142 
    143     struct iovec xcb_parts[4];
    144     xcb_shape_query_version_cookie_t xcb_ret;
    145     xcb_shape_query_version_request_t xcb_out;
    146 
    147 
    148     xcb_parts[2].iov_base = (char *) &xcb_out;
    149     xcb_parts[2].iov_len = sizeof(xcb_out);
    150     xcb_parts[3].iov_base = 0;
    151     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    152     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    153     return xcb_ret;
    154 }
    155 
    156 
    157 /*****************************************************************************
    158  **
    159  ** xcb_shape_query_version_reply_t * xcb_shape_query_version_reply
    160  **
    161  ** @param xcb_connection_t                  *c
    162  ** @param xcb_shape_query_version_cookie_t   cookie
    163  ** @param xcb_generic_error_t              **e
    164  ** @returns xcb_shape_query_version_reply_t *
    165  **
    166  *****************************************************************************/
    167 
    168 xcb_shape_query_version_reply_t *
    169 xcb_shape_query_version_reply (xcb_connection_t                  *c  /**< */,
    170                                xcb_shape_query_version_cookie_t   cookie  /**< */,
    171                                xcb_generic_error_t              **e  /**< */)
    172 {
    173     return (xcb_shape_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    174 }
    175 
    176 
    177 /*****************************************************************************
    178  **
    179  ** xcb_void_cookie_t xcb_shape_rectangles_checked
    180  **
    181  ** @param xcb_connection_t      *c
    182  ** @param xcb_shape_op_t         operation
    183  ** @param xcb_shape_kind_t       destination_kind
    184  ** @param uint8_t                ordering
    185  ** @param xcb_window_t           destination_window
    186  ** @param int16_t                x_offset
    187  ** @param int16_t                y_offset
    188  ** @param uint32_t               rectangles_len
    189  ** @param const xcb_rectangle_t *rectangles
    190  ** @returns xcb_void_cookie_t
    191  **
    192  *****************************************************************************/
    193 
    194 xcb_void_cookie_t
    195 xcb_shape_rectangles_checked (xcb_connection_t      *c  /**< */,
    196                               xcb_shape_op_t         operation  /**< */,
    197                               xcb_shape_kind_t       destination_kind  /**< */,
    198                               uint8_t                ordering  /**< */,
    199                               xcb_window_t           destination_window  /**< */,
    200                               int16_t                x_offset  /**< */,
    201                               int16_t                y_offset  /**< */,
    202                               uint32_t               rectangles_len  /**< */,
    203                               const xcb_rectangle_t *rectangles  /**< */)
    204 {
    205     static const xcb_protocol_request_t xcb_req = {
    206         /* count */ 4,
    207         /* ext */ &xcb_shape_id,
    208         /* opcode */ XCB_SHAPE_RECTANGLES,
    209         /* isvoid */ 1
    210     };
    211 
    212     struct iovec xcb_parts[6];
    213     xcb_void_cookie_t xcb_ret;
    214     xcb_shape_rectangles_request_t xcb_out;
    215 
    216     xcb_out.operation = operation;
    217     xcb_out.destination_kind = destination_kind;
    218     xcb_out.ordering = ordering;
    219     xcb_out.pad0 = 0;
    220     xcb_out.destination_window = destination_window;
    221     xcb_out.x_offset = x_offset;
    222     xcb_out.y_offset = y_offset;
    223 
    224     xcb_parts[2].iov_base = (char *) &xcb_out;
    225     xcb_parts[2].iov_len = sizeof(xcb_out);
    226     xcb_parts[3].iov_base = 0;
    227     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    228     xcb_parts[4].iov_base = (char *) rectangles;
    229     xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
    230     xcb_parts[5].iov_base = 0;
    231     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
    232     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    233     return xcb_ret;
    234 }
    235 
    236 
    237 /*****************************************************************************
    238  **
    239  ** xcb_void_cookie_t xcb_shape_rectangles
    240  **
    241  ** @param xcb_connection_t      *c
    242  ** @param xcb_shape_op_t         operation
    243  ** @param xcb_shape_kind_t       destination_kind
    244  ** @param uint8_t                ordering
    245  ** @param xcb_window_t           destination_window
    246  ** @param int16_t                x_offset
    247  ** @param int16_t                y_offset
    248  ** @param uint32_t               rectangles_len
    249  ** @param const xcb_rectangle_t *rectangles
    250  ** @returns xcb_void_cookie_t
    251  **
    252  *****************************************************************************/
    253 
    254 xcb_void_cookie_t
    255 xcb_shape_rectangles (xcb_connection_t      *c  /**< */,
    256                       xcb_shape_op_t         operation  /**< */,
    257                       xcb_shape_kind_t       destination_kind  /**< */,
    258                       uint8_t                ordering  /**< */,
    259                       xcb_window_t           destination_window  /**< */,
    260                       int16_t                x_offset  /**< */,
    261                       int16_t                y_offset  /**< */,
    262                       uint32_t               rectangles_len  /**< */,
    263                       const xcb_rectangle_t *rectangles  /**< */)
    264 {
    265     static const xcb_protocol_request_t xcb_req = {
    266         /* count */ 4,
    267         /* ext */ &xcb_shape_id,
    268         /* opcode */ XCB_SHAPE_RECTANGLES,
    269         /* isvoid */ 1
    270     };
    271 
    272     struct iovec xcb_parts[6];
    273     xcb_void_cookie_t xcb_ret;
    274     xcb_shape_rectangles_request_t xcb_out;
    275 
    276     xcb_out.operation = operation;
    277     xcb_out.destination_kind = destination_kind;
    278     xcb_out.ordering = ordering;
    279     xcb_out.pad0 = 0;
    280     xcb_out.destination_window = destination_window;
    281     xcb_out.x_offset = x_offset;
    282     xcb_out.y_offset = y_offset;
    283 
    284     xcb_parts[2].iov_base = (char *) &xcb_out;
    285     xcb_parts[2].iov_len = sizeof(xcb_out);
    286     xcb_parts[3].iov_base = 0;
    287     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    288     xcb_parts[4].iov_base = (char *) rectangles;
    289     xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
    290     xcb_parts[5].iov_base = 0;
    291     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
    292     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    293     return xcb_ret;
    294 }
    295 
    296 
    297 /*****************************************************************************
    298  **
    299  ** xcb_void_cookie_t xcb_shape_mask_checked
    300  **
    301  ** @param xcb_connection_t *c
    302  ** @param xcb_shape_op_t    operation
    303  ** @param xcb_shape_kind_t  destination_kind
    304  ** @param xcb_window_t      destination_window
    305  ** @param int16_t           x_offset
    306  ** @param int16_t           y_offset
    307  ** @param xcb_pixmap_t      source_bitmap
    308  ** @returns xcb_void_cookie_t
    309  **
    310  *****************************************************************************/
    311 
    312 xcb_void_cookie_t
    313 xcb_shape_mask_checked (xcb_connection_t *c  /**< */,
    314                         xcb_shape_op_t    operation  /**< */,
    315                         xcb_shape_kind_t  destination_kind  /**< */,
    316                         xcb_window_t      destination_window  /**< */,
    317                         int16_t           x_offset  /**< */,
    318                         int16_t           y_offset  /**< */,
    319                         xcb_pixmap_t      source_bitmap  /**< */)
    320 {
    321     static const xcb_protocol_request_t xcb_req = {
    322         /* count */ 2,
    323         /* ext */ &xcb_shape_id,
    324         /* opcode */ XCB_SHAPE_MASK,
    325         /* isvoid */ 1
    326     };
    327 
    328     struct iovec xcb_parts[4];
    329     xcb_void_cookie_t xcb_ret;
    330     xcb_shape_mask_request_t xcb_out;
    331 
    332     xcb_out.operation = operation;
    333     xcb_out.destination_kind = destination_kind;
    334     memset(xcb_out.pad0, 0, 2);
    335     xcb_out.destination_window = destination_window;
    336     xcb_out.x_offset = x_offset;
    337     xcb_out.y_offset = y_offset;
    338     xcb_out.source_bitmap = source_bitmap;
    339 
    340     xcb_parts[2].iov_base = (char *) &xcb_out;
    341     xcb_parts[2].iov_len = sizeof(xcb_out);
    342     xcb_parts[3].iov_base = 0;
    343     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    344     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    345     return xcb_ret;
    346 }
    347 
    348 
    349 /*****************************************************************************
    350  **
    351  ** xcb_void_cookie_t xcb_shape_mask
    352  **
    353  ** @param xcb_connection_t *c
    354  ** @param xcb_shape_op_t    operation
    355  ** @param xcb_shape_kind_t  destination_kind
    356  ** @param xcb_window_t      destination_window
    357  ** @param int16_t           x_offset
    358  ** @param int16_t           y_offset
    359  ** @param xcb_pixmap_t      source_bitmap
    360  ** @returns xcb_void_cookie_t
    361  **
    362  *****************************************************************************/
    363 
    364 xcb_void_cookie_t
    365 xcb_shape_mask (xcb_connection_t *c  /**< */,
    366                 xcb_shape_op_t    operation  /**< */,
    367                 xcb_shape_kind_t  destination_kind  /**< */,
    368                 xcb_window_t      destination_window  /**< */,
    369                 int16_t           x_offset  /**< */,
    370                 int16_t           y_offset  /**< */,
    371                 xcb_pixmap_t      source_bitmap  /**< */)
    372 {
    373     static const xcb_protocol_request_t xcb_req = {
    374         /* count */ 2,
    375         /* ext */ &xcb_shape_id,
    376         /* opcode */ XCB_SHAPE_MASK,
    377         /* isvoid */ 1
    378     };
    379 
    380     struct iovec xcb_parts[4];
    381     xcb_void_cookie_t xcb_ret;
    382     xcb_shape_mask_request_t xcb_out;
    383 
    384     xcb_out.operation = operation;
    385     xcb_out.destination_kind = destination_kind;
    386     memset(xcb_out.pad0, 0, 2);
    387     xcb_out.destination_window = destination_window;
    388     xcb_out.x_offset = x_offset;
    389     xcb_out.y_offset = y_offset;
    390     xcb_out.source_bitmap = source_bitmap;
    391 
    392     xcb_parts[2].iov_base = (char *) &xcb_out;
    393     xcb_parts[2].iov_len = sizeof(xcb_out);
    394     xcb_parts[3].iov_base = 0;
    395     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    396     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    397     return xcb_ret;
    398 }
    399 
    400 
    401 /*****************************************************************************
    402  **
    403  ** xcb_void_cookie_t xcb_shape_combine_checked
    404  **
    405  ** @param xcb_connection_t *c
    406  ** @param xcb_shape_op_t    operation
    407  ** @param xcb_shape_kind_t  destination_kind
    408  ** @param xcb_shape_kind_t  source_kind
    409  ** @param xcb_window_t      destination_window
    410  ** @param int16_t           x_offset
    411  ** @param int16_t           y_offset
    412  ** @param xcb_window_t      source_window
    413  ** @returns xcb_void_cookie_t
    414  **
    415  *****************************************************************************/
    416 
    417 xcb_void_cookie_t
    418 xcb_shape_combine_checked (xcb_connection_t *c  /**< */,
    419                            xcb_shape_op_t    operation  /**< */,
    420                            xcb_shape_kind_t  destination_kind  /**< */,
    421                            xcb_shape_kind_t  source_kind  /**< */,
    422                            xcb_window_t      destination_window  /**< */,
    423                            int16_t           x_offset  /**< */,
    424                            int16_t           y_offset  /**< */,
    425                            xcb_window_t      source_window  /**< */)
    426 {
    427     static const xcb_protocol_request_t xcb_req = {
    428         /* count */ 2,
    429         /* ext */ &xcb_shape_id,
    430         /* opcode */ XCB_SHAPE_COMBINE,
    431         /* isvoid */ 1
    432     };
    433 
    434     struct iovec xcb_parts[4];
    435     xcb_void_cookie_t xcb_ret;
    436     xcb_shape_combine_request_t xcb_out;
    437 
    438     xcb_out.operation = operation;
    439     xcb_out.destination_kind = destination_kind;
    440     xcb_out.source_kind = source_kind;
    441     xcb_out.pad0 = 0;
    442     xcb_out.destination_window = destination_window;
    443     xcb_out.x_offset = x_offset;
    444     xcb_out.y_offset = y_offset;
    445     xcb_out.source_window = source_window;
    446 
    447     xcb_parts[2].iov_base = (char *) &xcb_out;
    448     xcb_parts[2].iov_len = sizeof(xcb_out);
    449     xcb_parts[3].iov_base = 0;
    450     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    451     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    452     return xcb_ret;
    453 }
    454 
    455 
    456 /*****************************************************************************
    457  **
    458  ** xcb_void_cookie_t xcb_shape_combine
    459  **
    460  ** @param xcb_connection_t *c
    461  ** @param xcb_shape_op_t    operation
    462  ** @param xcb_shape_kind_t  destination_kind
    463  ** @param xcb_shape_kind_t  source_kind
    464  ** @param xcb_window_t      destination_window
    465  ** @param int16_t           x_offset
    466  ** @param int16_t           y_offset
    467  ** @param xcb_window_t      source_window
    468  ** @returns xcb_void_cookie_t
    469  **
    470  *****************************************************************************/
    471 
    472 xcb_void_cookie_t
    473 xcb_shape_combine (xcb_connection_t *c  /**< */,
    474                    xcb_shape_op_t    operation  /**< */,
    475                    xcb_shape_kind_t  destination_kind  /**< */,
    476                    xcb_shape_kind_t  source_kind  /**< */,
    477                    xcb_window_t      destination_window  /**< */,
    478                    int16_t           x_offset  /**< */,
    479                    int16_t           y_offset  /**< */,
    480                    xcb_window_t      source_window  /**< */)
    481 {
    482     static const xcb_protocol_request_t xcb_req = {
    483         /* count */ 2,
    484         /* ext */ &xcb_shape_id,
    485         /* opcode */ XCB_SHAPE_COMBINE,
    486         /* isvoid */ 1
    487     };
    488 
    489     struct iovec xcb_parts[4];
    490     xcb_void_cookie_t xcb_ret;
    491     xcb_shape_combine_request_t xcb_out;
    492 
    493     xcb_out.operation = operation;
    494     xcb_out.destination_kind = destination_kind;
    495     xcb_out.source_kind = source_kind;
    496     xcb_out.pad0 = 0;
    497     xcb_out.destination_window = destination_window;
    498     xcb_out.x_offset = x_offset;
    499     xcb_out.y_offset = y_offset;
    500     xcb_out.source_window = source_window;
    501 
    502     xcb_parts[2].iov_base = (char *) &xcb_out;
    503     xcb_parts[2].iov_len = sizeof(xcb_out);
    504     xcb_parts[3].iov_base = 0;
    505     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    506     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    507     return xcb_ret;
    508 }
    509 
    510 
    511 /*****************************************************************************
    512  **
    513  ** xcb_void_cookie_t xcb_shape_offset_checked
    514  **
    515  ** @param xcb_connection_t *c
    516  ** @param xcb_shape_kind_t  destination_kind
    517  ** @param xcb_window_t      destination_window
    518  ** @param int16_t           x_offset
    519  ** @param int16_t           y_offset
    520  ** @returns xcb_void_cookie_t
    521  **
    522  *****************************************************************************/
    523 
    524 xcb_void_cookie_t
    525 xcb_shape_offset_checked (xcb_connection_t *c  /**< */,
    526                           xcb_shape_kind_t  destination_kind  /**< */,
    527                           xcb_window_t      destination_window  /**< */,
    528                           int16_t           x_offset  /**< */,
    529                           int16_t           y_offset  /**< */)
    530 {
    531     static const xcb_protocol_request_t xcb_req = {
    532         /* count */ 2,
    533         /* ext */ &xcb_shape_id,
    534         /* opcode */ XCB_SHAPE_OFFSET,
    535         /* isvoid */ 1
    536     };
    537 
    538     struct iovec xcb_parts[4];
    539     xcb_void_cookie_t xcb_ret;
    540     xcb_shape_offset_request_t xcb_out;
    541 
    542     xcb_out.destination_kind = destination_kind;
    543     memset(xcb_out.pad0, 0, 3);
    544     xcb_out.destination_window = destination_window;
    545     xcb_out.x_offset = x_offset;
    546     xcb_out.y_offset = y_offset;
    547 
    548     xcb_parts[2].iov_base = (char *) &xcb_out;
    549     xcb_parts[2].iov_len = sizeof(xcb_out);
    550     xcb_parts[3].iov_base = 0;
    551     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    552     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    553     return xcb_ret;
    554 }
    555 
    556 
    557 /*****************************************************************************
    558  **
    559  ** xcb_void_cookie_t xcb_shape_offset
    560  **
    561  ** @param xcb_connection_t *c
    562  ** @param xcb_shape_kind_t  destination_kind
    563  ** @param xcb_window_t      destination_window
    564  ** @param int16_t           x_offset
    565  ** @param int16_t           y_offset
    566  ** @returns xcb_void_cookie_t
    567  **
    568  *****************************************************************************/
    569 
    570 xcb_void_cookie_t
    571 xcb_shape_offset (xcb_connection_t *c  /**< */,
    572                   xcb_shape_kind_t  destination_kind  /**< */,
    573                   xcb_window_t      destination_window  /**< */,
    574                   int16_t           x_offset  /**< */,
    575                   int16_t           y_offset  /**< */)
    576 {
    577     static const xcb_protocol_request_t xcb_req = {
    578         /* count */ 2,
    579         /* ext */ &xcb_shape_id,
    580         /* opcode */ XCB_SHAPE_OFFSET,
    581         /* isvoid */ 1
    582     };
    583 
    584     struct iovec xcb_parts[4];
    585     xcb_void_cookie_t xcb_ret;
    586     xcb_shape_offset_request_t xcb_out;
    587 
    588     xcb_out.destination_kind = destination_kind;
    589     memset(xcb_out.pad0, 0, 3);
    590     xcb_out.destination_window = destination_window;
    591     xcb_out.x_offset = x_offset;
    592     xcb_out.y_offset = y_offset;
    593 
    594     xcb_parts[2].iov_base = (char *) &xcb_out;
    595     xcb_parts[2].iov_len = sizeof(xcb_out);
    596     xcb_parts[3].iov_base = 0;
    597     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    598     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    599     return xcb_ret;
    600 }
    601 
    602 
    603 /*****************************************************************************
    604  **
    605  ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents
    606  **
    607  ** @param xcb_connection_t *c
    608  ** @param xcb_window_t      destination_window
    609  ** @returns xcb_shape_query_extents_cookie_t
    610  **
    611  *****************************************************************************/
    612 
    613 xcb_shape_query_extents_cookie_t
    614 xcb_shape_query_extents (xcb_connection_t *c  /**< */,
    615                          xcb_window_t      destination_window  /**< */)
    616 {
    617     static const xcb_protocol_request_t xcb_req = {
    618         /* count */ 2,
    619         /* ext */ &xcb_shape_id,
    620         /* opcode */ XCB_SHAPE_QUERY_EXTENTS,
    621         /* isvoid */ 0
    622     };
    623 
    624     struct iovec xcb_parts[4];
    625     xcb_shape_query_extents_cookie_t xcb_ret;
    626     xcb_shape_query_extents_request_t xcb_out;
    627 
    628     xcb_out.destination_window = destination_window;
    629 
    630     xcb_parts[2].iov_base = (char *) &xcb_out;
    631     xcb_parts[2].iov_len = sizeof(xcb_out);
    632     xcb_parts[3].iov_base = 0;
    633     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    634     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    635     return xcb_ret;
    636 }
    637 
    638 
    639 /*****************************************************************************
    640  **
    641  ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents_unchecked
    642  **
    643  ** @param xcb_connection_t *c
    644  ** @param xcb_window_t      destination_window
    645  ** @returns xcb_shape_query_extents_cookie_t
    646  **
    647  *****************************************************************************/
    648 
    649 xcb_shape_query_extents_cookie_t
    650 xcb_shape_query_extents_unchecked (xcb_connection_t *c  /**< */,
    651                                    xcb_window_t      destination_window  /**< */)
    652 {
    653     static const xcb_protocol_request_t xcb_req = {
    654         /* count */ 2,
    655         /* ext */ &xcb_shape_id,
    656         /* opcode */ XCB_SHAPE_QUERY_EXTENTS,
    657         /* isvoid */ 0
    658     };
    659 
    660     struct iovec xcb_parts[4];
    661     xcb_shape_query_extents_cookie_t xcb_ret;
    662     xcb_shape_query_extents_request_t xcb_out;
    663 
    664     xcb_out.destination_window = destination_window;
    665 
    666     xcb_parts[2].iov_base = (char *) &xcb_out;
    667     xcb_parts[2].iov_len = sizeof(xcb_out);
    668     xcb_parts[3].iov_base = 0;
    669     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    670     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    671     return xcb_ret;
    672 }
    673 
    674 
    675 /*****************************************************************************
    676  **
    677  ** xcb_shape_query_extents_reply_t * xcb_shape_query_extents_reply
    678  **
    679  ** @param xcb_connection_t                  *c
    680  ** @param xcb_shape_query_extents_cookie_t   cookie
    681  ** @param xcb_generic_error_t              **e
    682  ** @returns xcb_shape_query_extents_reply_t *
    683  **
    684  *****************************************************************************/
    685 
    686 xcb_shape_query_extents_reply_t *
    687 xcb_shape_query_extents_reply (xcb_connection_t                  *c  /**< */,
    688                                xcb_shape_query_extents_cookie_t   cookie  /**< */,
    689                                xcb_generic_error_t              **e  /**< */)
    690 {
    691     return (xcb_shape_query_extents_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    692 }
    693 
    694 
    695 /*****************************************************************************
    696  **
    697  ** xcb_void_cookie_t xcb_shape_select_input_checked
    698  **
    699  ** @param xcb_connection_t *c
    700  ** @param xcb_window_t      destination_window
    701  ** @param uint8_t           enable
    702  ** @returns xcb_void_cookie_t
    703  **
    704  *****************************************************************************/
    705 
    706 xcb_void_cookie_t
    707 xcb_shape_select_input_checked (xcb_connection_t *c  /**< */,
    708                                 xcb_window_t      destination_window  /**< */,
    709                                 uint8_t           enable  /**< */)
    710 {
    711     static const xcb_protocol_request_t xcb_req = {
    712         /* count */ 2,
    713         /* ext */ &xcb_shape_id,
    714         /* opcode */ XCB_SHAPE_SELECT_INPUT,
    715         /* isvoid */ 1
    716     };
    717 
    718     struct iovec xcb_parts[4];
    719     xcb_void_cookie_t xcb_ret;
    720     xcb_shape_select_input_request_t xcb_out;
    721 
    722     xcb_out.destination_window = destination_window;
    723     xcb_out.enable = enable;
    724     memset(xcb_out.pad0, 0, 3);
    725 
    726     xcb_parts[2].iov_base = (char *) &xcb_out;
    727     xcb_parts[2].iov_len = sizeof(xcb_out);
    728     xcb_parts[3].iov_base = 0;
    729     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    730     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    731     return xcb_ret;
    732 }
    733 
    734 
    735 /*****************************************************************************
    736  **
    737  ** xcb_void_cookie_t xcb_shape_select_input
    738  **
    739  ** @param xcb_connection_t *c
    740  ** @param xcb_window_t      destination_window
    741  ** @param uint8_t           enable
    742  ** @returns xcb_void_cookie_t
    743  **
    744  *****************************************************************************/
    745 
    746 xcb_void_cookie_t
    747 xcb_shape_select_input (xcb_connection_t *c  /**< */,
    748                         xcb_window_t      destination_window  /**< */,
    749                         uint8_t           enable  /**< */)
    750 {
    751     static const xcb_protocol_request_t xcb_req = {
    752         /* count */ 2,
    753         /* ext */ &xcb_shape_id,
    754         /* opcode */ XCB_SHAPE_SELECT_INPUT,
    755         /* isvoid */ 1
    756     };
    757 
    758     struct iovec xcb_parts[4];
    759     xcb_void_cookie_t xcb_ret;
    760     xcb_shape_select_input_request_t xcb_out;
    761 
    762     xcb_out.destination_window = destination_window;
    763     xcb_out.enable = enable;
    764     memset(xcb_out.pad0, 0, 3);
    765 
    766     xcb_parts[2].iov_base = (char *) &xcb_out;
    767     xcb_parts[2].iov_len = sizeof(xcb_out);
    768     xcb_parts[3].iov_base = 0;
    769     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    770     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    771     return xcb_ret;
    772 }
    773 
    774 
    775 /*****************************************************************************
    776  **
    777  ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected
    778  **
    779  ** @param xcb_connection_t *c
    780  ** @param xcb_window_t      destination_window
    781  ** @returns xcb_shape_input_selected_cookie_t
    782  **
    783  *****************************************************************************/
    784 
    785 xcb_shape_input_selected_cookie_t
    786 xcb_shape_input_selected (xcb_connection_t *c  /**< */,
    787                           xcb_window_t      destination_window  /**< */)
    788 {
    789     static const xcb_protocol_request_t xcb_req = {
    790         /* count */ 2,
    791         /* ext */ &xcb_shape_id,
    792         /* opcode */ XCB_SHAPE_INPUT_SELECTED,
    793         /* isvoid */ 0
    794     };
    795 
    796     struct iovec xcb_parts[4];
    797     xcb_shape_input_selected_cookie_t xcb_ret;
    798     xcb_shape_input_selected_request_t xcb_out;
    799 
    800     xcb_out.destination_window = destination_window;
    801 
    802     xcb_parts[2].iov_base = (char *) &xcb_out;
    803     xcb_parts[2].iov_len = sizeof(xcb_out);
    804     xcb_parts[3].iov_base = 0;
    805     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    806     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    807     return xcb_ret;
    808 }
    809 
    810 
    811 /*****************************************************************************
    812  **
    813  ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected_unchecked
    814  **
    815  ** @param xcb_connection_t *c
    816  ** @param xcb_window_t      destination_window
    817  ** @returns xcb_shape_input_selected_cookie_t
    818  **
    819  *****************************************************************************/
    820 
    821 xcb_shape_input_selected_cookie_t
    822 xcb_shape_input_selected_unchecked (xcb_connection_t *c  /**< */,
    823                                     xcb_window_t      destination_window  /**< */)
    824 {
    825     static const xcb_protocol_request_t xcb_req = {
    826         /* count */ 2,
    827         /* ext */ &xcb_shape_id,
    828         /* opcode */ XCB_SHAPE_INPUT_SELECTED,
    829         /* isvoid */ 0
    830     };
    831 
    832     struct iovec xcb_parts[4];
    833     xcb_shape_input_selected_cookie_t xcb_ret;
    834     xcb_shape_input_selected_request_t xcb_out;
    835 
    836     xcb_out.destination_window = destination_window;
    837 
    838     xcb_parts[2].iov_base = (char *) &xcb_out;
    839     xcb_parts[2].iov_len = sizeof(xcb_out);
    840     xcb_parts[3].iov_base = 0;
    841     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    842     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    843     return xcb_ret;
    844 }
    845 
    846 
    847 /*****************************************************************************
    848  **
    849  ** xcb_shape_input_selected_reply_t * xcb_shape_input_selected_reply
    850  **
    851  ** @param xcb_connection_t                   *c
    852  ** @param xcb_shape_input_selected_cookie_t   cookie
    853  ** @param xcb_generic_error_t               **e
    854  ** @returns xcb_shape_input_selected_reply_t *
    855  **
    856  *****************************************************************************/
    857 
    858 xcb_shape_input_selected_reply_t *
    859 xcb_shape_input_selected_reply (xcb_connection_t                   *c  /**< */,
    860                                 xcb_shape_input_selected_cookie_t   cookie  /**< */,
    861                                 xcb_generic_error_t               **e  /**< */)
    862 {
    863     return (xcb_shape_input_selected_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
    864 }
    865 
    866 
    867 /*****************************************************************************
    868  **
    869  ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles
    870  **
    871  ** @param xcb_connection_t *c
    872  ** @param xcb_window_t      window
    873  ** @param xcb_shape_kind_t  source_kind
    874  ** @returns xcb_shape_get_rectangles_cookie_t
    875  **
    876  *****************************************************************************/
    877 
    878 xcb_shape_get_rectangles_cookie_t
    879 xcb_shape_get_rectangles (xcb_connection_t *c  /**< */,
    880                           xcb_window_t      window  /**< */,
    881                           xcb_shape_kind_t  source_kind  /**< */)
    882 {
    883     static const xcb_protocol_request_t xcb_req = {
    884         /* count */ 2,
    885         /* ext */ &xcb_shape_id,
    886         /* opcode */ XCB_SHAPE_GET_RECTANGLES,
    887         /* isvoid */ 0
    888     };
    889 
    890     struct iovec xcb_parts[4];
    891     xcb_shape_get_rectangles_cookie_t xcb_ret;
    892     xcb_shape_get_rectangles_request_t xcb_out;
    893 
    894     xcb_out.window = window;
    895     xcb_out.source_kind = source_kind;
    896     memset(xcb_out.pad0, 0, 3);
    897 
    898     xcb_parts[2].iov_base = (char *) &xcb_out;
    899     xcb_parts[2].iov_len = sizeof(xcb_out);
    900     xcb_parts[3].iov_base = 0;
    901     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    902     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
    903     return xcb_ret;
    904 }
    905 
    906 
    907 /*****************************************************************************
    908  **
    909  ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles_unchecked
    910  **
    911  ** @param xcb_connection_t *c
    912  ** @param xcb_window_t      window
    913  ** @param xcb_shape_kind_t  source_kind
    914  ** @returns xcb_shape_get_rectangles_cookie_t
    915  **
    916  *****************************************************************************/
    917 
    918 xcb_shape_get_rectangles_cookie_t
    919 xcb_shape_get_rectangles_unchecked (xcb_connection_t *c  /**< */,
    920                                     xcb_window_t      window  /**< */,
    921                                     xcb_shape_kind_t  source_kind  /**< */)
    922 {
    923     static const xcb_protocol_request_t xcb_req = {
    924         /* count */ 2,
    925         /* ext */ &xcb_shape_id,
    926         /* opcode */ XCB_SHAPE_GET_RECTANGLES,
    927         /* isvoid */ 0
    928     };
    929 
    930     struct iovec xcb_parts[4];
    931     xcb_shape_get_rectangles_cookie_t xcb_ret;
    932     xcb_shape_get_rectangles_request_t xcb_out;
    933 
    934     xcb_out.window = window;
    935     xcb_out.source_kind = source_kind;
    936     memset(xcb_out.pad0, 0, 3);
    937 
    938     xcb_parts[2].iov_base = (char *) &xcb_out;
    939     xcb_parts[2].iov_len = sizeof(xcb_out);
    940     xcb_parts[3].iov_base = 0;
    941     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
    942     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
    943     return xcb_ret;
    944 }
    945 
    946 
    947 /*****************************************************************************
    948  **
    949  ** xcb_rectangle_t * xcb_shape_get_rectangles_rectangles
    950  **
    951  ** @param const xcb_shape_get_rectangles_reply_t *R
    952  ** @returns xcb_rectangle_t *
    953  **
    954  *****************************************************************************/
    955 
    956 xcb_rectangle_t *
    957 xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R  /**< */)
    958 {
    959     return (xcb_rectangle_t *) (R + 1);
    960 }
    961 
    962 
    963 /*****************************************************************************
    964  **
    965  ** int xcb_shape_get_rectangles_rectangles_length
    966  **
    967  ** @param const xcb_shape_get_rectangles_reply_t *R
    968  ** @returns int
    969  **
    970  *****************************************************************************/
    971 
    972 int
    973 xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R  /**< */)
    974 {
    975     return R->rectangles_len;
    976 }
    977 
    978 
    979 /*****************************************************************************
    980  **
    981  ** xcb_rectangle_iterator_t xcb_shape_get_rectangles_rectangles_iterator
    982  **
    983  ** @param const xcb_shape_get_rectangles_reply_t *R
    984  ** @returns xcb_rectangle_iterator_t
    985  **
    986  *****************************************************************************/
    987 
    988 xcb_rectangle_iterator_t
    989 xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R  /**< */)
    990 {
    991     xcb_rectangle_iterator_t i;
    992     i.data = (xcb_rectangle_t *) (R + 1);
    993     i.rem = R->rectangles_len;
    994     i.index = (char *) i.data - (char *) R;
    995     return i;
    996 }
    997 
    998 
    999 /*****************************************************************************
   1000  **
   1001  ** xcb_shape_get_rectangles_reply_t * xcb_shape_get_rectangles_reply
   1002  **
   1003  ** @param xcb_connection_t                   *c
   1004  ** @param xcb_shape_get_rectangles_cookie_t   cookie
   1005  ** @param xcb_generic_error_t               **e
   1006  ** @returns xcb_shape_get_rectangles_reply_t *
   1007  **
   1008  *****************************************************************************/
   1009 
   1010 xcb_shape_get_rectangles_reply_t *
   1011 xcb_shape_get_rectangles_reply (xcb_connection_t                   *c  /**< */,
   1012                                 xcb_shape_get_rectangles_cookie_t   cookie  /**< */,
   1013                                 xcb_generic_error_t               **e  /**< */)
   1014 {
   1015     return (xcb_shape_get_rectangles_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
   1016 }
   1017 
   1018