xref: /netbsd/external/mit/xorg/lib/libxcb/files/shape.c (revision 6550d01e)
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