1 /*
2  * This file generated automatically from composite.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 #ifdef HAVE_CONFIG_H
7 #include "config.h"
8 #endif
9 #include <stdlib.h>
10 #include <string.h>
11 #include <assert.h>
12 #include <stddef.h>  /* for offsetof() */
13 #include "xcbext.h"
14 #include "composite.h"
15 
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xproto.h"
18 #include "render.h"
19 #include "shape.h"
20 #include "xfixes.h"
21 
22 xcb_extension_t xcb_composite_id = { "Composite", 0 };
23 
24 
25 /*****************************************************************************
26  **
27  ** xcb_composite_query_version_cookie_t xcb_composite_query_version
28  **
29  ** @param xcb_connection_t *c
30  ** @param uint32_t          client_major_version
31  ** @param uint32_t          client_minor_version
32  ** @returns xcb_composite_query_version_cookie_t
33  **
34  *****************************************************************************/
35 
36 xcb_composite_query_version_cookie_t
37 xcb_composite_query_version (xcb_connection_t *c  /**< */,
38                              uint32_t          client_major_version  /**< */,
39                              uint32_t          client_minor_version  /**< */)
40 {
41     static const xcb_protocol_request_t xcb_req = {
42         /* count */ 2,
43         /* ext */ &xcb_composite_id,
44         /* opcode */ XCB_COMPOSITE_QUERY_VERSION,
45         /* isvoid */ 0
46     };
47 
48     struct iovec xcb_parts[4];
49     xcb_composite_query_version_cookie_t xcb_ret;
50     xcb_composite_query_version_request_t xcb_out;
51 
52     xcb_out.client_major_version = client_major_version;
53     xcb_out.client_minor_version = client_minor_version;
54 
55     xcb_parts[2].iov_base = (char *) &xcb_out;
56     xcb_parts[2].iov_len = sizeof(xcb_out);
57     xcb_parts[3].iov_base = 0;
58     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
59 
60     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
61     return xcb_ret;
62 }
63 
64 
65 /*****************************************************************************
66  **
67  ** xcb_composite_query_version_cookie_t xcb_composite_query_version_unchecked
68  **
69  ** @param xcb_connection_t *c
70  ** @param uint32_t          client_major_version
71  ** @param uint32_t          client_minor_version
72  ** @returns xcb_composite_query_version_cookie_t
73  **
74  *****************************************************************************/
75 
76 xcb_composite_query_version_cookie_t
77 xcb_composite_query_version_unchecked (xcb_connection_t *c  /**< */,
78                                        uint32_t          client_major_version  /**< */,
79                                        uint32_t          client_minor_version  /**< */)
80 {
81     static const xcb_protocol_request_t xcb_req = {
82         /* count */ 2,
83         /* ext */ &xcb_composite_id,
84         /* opcode */ XCB_COMPOSITE_QUERY_VERSION,
85         /* isvoid */ 0
86     };
87 
88     struct iovec xcb_parts[4];
89     xcb_composite_query_version_cookie_t xcb_ret;
90     xcb_composite_query_version_request_t xcb_out;
91 
92     xcb_out.client_major_version = client_major_version;
93     xcb_out.client_minor_version = client_minor_version;
94 
95     xcb_parts[2].iov_base = (char *) &xcb_out;
96     xcb_parts[2].iov_len = sizeof(xcb_out);
97     xcb_parts[3].iov_base = 0;
98     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
99 
100     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
101     return xcb_ret;
102 }
103 
104 
105 /*****************************************************************************
106  **
107  ** xcb_composite_query_version_reply_t * xcb_composite_query_version_reply
108  **
109  ** @param xcb_connection_t                      *c
110  ** @param xcb_composite_query_version_cookie_t   cookie
111  ** @param xcb_generic_error_t                  **e
112  ** @returns xcb_composite_query_version_reply_t *
113  **
114  *****************************************************************************/
115 
116 xcb_composite_query_version_reply_t *
117 xcb_composite_query_version_reply (xcb_connection_t                      *c  /**< */,
118                                    xcb_composite_query_version_cookie_t   cookie  /**< */,
119                                    xcb_generic_error_t                  **e  /**< */)
120 {
121     return (xcb_composite_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
122 }
123 
124 
125 /*****************************************************************************
126  **
127  ** xcb_void_cookie_t xcb_composite_redirect_window_checked
128  **
129  ** @param xcb_connection_t *c
130  ** @param xcb_window_t      window
131  ** @param uint8_t           update
132  ** @returns xcb_void_cookie_t
133  **
134  *****************************************************************************/
135 
136 xcb_void_cookie_t
137 xcb_composite_redirect_window_checked (xcb_connection_t *c  /**< */,
138                                        xcb_window_t      window  /**< */,
139                                        uint8_t           update  /**< */)
140 {
141     static const xcb_protocol_request_t xcb_req = {
142         /* count */ 2,
143         /* ext */ &xcb_composite_id,
144         /* opcode */ XCB_COMPOSITE_REDIRECT_WINDOW,
145         /* isvoid */ 1
146     };
147 
148     struct iovec xcb_parts[4];
149     xcb_void_cookie_t xcb_ret;
150     xcb_composite_redirect_window_request_t xcb_out;
151 
152     xcb_out.window = window;
153     xcb_out.update = update;
154     memset(xcb_out.pad0, 0, 3);
155 
156     xcb_parts[2].iov_base = (char *) &xcb_out;
157     xcb_parts[2].iov_len = sizeof(xcb_out);
158     xcb_parts[3].iov_base = 0;
159     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
160 
161     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
162     return xcb_ret;
163 }
164 
165 
166 /*****************************************************************************
167  **
168  ** xcb_void_cookie_t xcb_composite_redirect_window
169  **
170  ** @param xcb_connection_t *c
171  ** @param xcb_window_t      window
172  ** @param uint8_t           update
173  ** @returns xcb_void_cookie_t
174  **
175  *****************************************************************************/
176 
177 xcb_void_cookie_t
178 xcb_composite_redirect_window (xcb_connection_t *c  /**< */,
179                                xcb_window_t      window  /**< */,
180                                uint8_t           update  /**< */)
181 {
182     static const xcb_protocol_request_t xcb_req = {
183         /* count */ 2,
184         /* ext */ &xcb_composite_id,
185         /* opcode */ XCB_COMPOSITE_REDIRECT_WINDOW,
186         /* isvoid */ 1
187     };
188 
189     struct iovec xcb_parts[4];
190     xcb_void_cookie_t xcb_ret;
191     xcb_composite_redirect_window_request_t xcb_out;
192 
193     xcb_out.window = window;
194     xcb_out.update = update;
195     memset(xcb_out.pad0, 0, 3);
196 
197     xcb_parts[2].iov_base = (char *) &xcb_out;
198     xcb_parts[2].iov_len = sizeof(xcb_out);
199     xcb_parts[3].iov_base = 0;
200     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
201 
202     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
203     return xcb_ret;
204 }
205 
206 
207 /*****************************************************************************
208  **
209  ** xcb_void_cookie_t xcb_composite_redirect_subwindows_checked
210  **
211  ** @param xcb_connection_t *c
212  ** @param xcb_window_t      window
213  ** @param uint8_t           update
214  ** @returns xcb_void_cookie_t
215  **
216  *****************************************************************************/
217 
218 xcb_void_cookie_t
219 xcb_composite_redirect_subwindows_checked (xcb_connection_t *c  /**< */,
220                                            xcb_window_t      window  /**< */,
221                                            uint8_t           update  /**< */)
222 {
223     static const xcb_protocol_request_t xcb_req = {
224         /* count */ 2,
225         /* ext */ &xcb_composite_id,
226         /* opcode */ XCB_COMPOSITE_REDIRECT_SUBWINDOWS,
227         /* isvoid */ 1
228     };
229 
230     struct iovec xcb_parts[4];
231     xcb_void_cookie_t xcb_ret;
232     xcb_composite_redirect_subwindows_request_t xcb_out;
233 
234     xcb_out.window = window;
235     xcb_out.update = update;
236     memset(xcb_out.pad0, 0, 3);
237 
238     xcb_parts[2].iov_base = (char *) &xcb_out;
239     xcb_parts[2].iov_len = sizeof(xcb_out);
240     xcb_parts[3].iov_base = 0;
241     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
242 
243     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
244     return xcb_ret;
245 }
246 
247 
248 /*****************************************************************************
249  **
250  ** xcb_void_cookie_t xcb_composite_redirect_subwindows
251  **
252  ** @param xcb_connection_t *c
253  ** @param xcb_window_t      window
254  ** @param uint8_t           update
255  ** @returns xcb_void_cookie_t
256  **
257  *****************************************************************************/
258 
259 xcb_void_cookie_t
260 xcb_composite_redirect_subwindows (xcb_connection_t *c  /**< */,
261                                    xcb_window_t      window  /**< */,
262                                    uint8_t           update  /**< */)
263 {
264     static const xcb_protocol_request_t xcb_req = {
265         /* count */ 2,
266         /* ext */ &xcb_composite_id,
267         /* opcode */ XCB_COMPOSITE_REDIRECT_SUBWINDOWS,
268         /* isvoid */ 1
269     };
270 
271     struct iovec xcb_parts[4];
272     xcb_void_cookie_t xcb_ret;
273     xcb_composite_redirect_subwindows_request_t xcb_out;
274 
275     xcb_out.window = window;
276     xcb_out.update = update;
277     memset(xcb_out.pad0, 0, 3);
278 
279     xcb_parts[2].iov_base = (char *) &xcb_out;
280     xcb_parts[2].iov_len = sizeof(xcb_out);
281     xcb_parts[3].iov_base = 0;
282     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
283 
284     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
285     return xcb_ret;
286 }
287 
288 
289 /*****************************************************************************
290  **
291  ** xcb_void_cookie_t xcb_composite_unredirect_window_checked
292  **
293  ** @param xcb_connection_t *c
294  ** @param xcb_window_t      window
295  ** @param uint8_t           update
296  ** @returns xcb_void_cookie_t
297  **
298  *****************************************************************************/
299 
300 xcb_void_cookie_t
301 xcb_composite_unredirect_window_checked (xcb_connection_t *c  /**< */,
302                                          xcb_window_t      window  /**< */,
303                                          uint8_t           update  /**< */)
304 {
305     static const xcb_protocol_request_t xcb_req = {
306         /* count */ 2,
307         /* ext */ &xcb_composite_id,
308         /* opcode */ XCB_COMPOSITE_UNREDIRECT_WINDOW,
309         /* isvoid */ 1
310     };
311 
312     struct iovec xcb_parts[4];
313     xcb_void_cookie_t xcb_ret;
314     xcb_composite_unredirect_window_request_t xcb_out;
315 
316     xcb_out.window = window;
317     xcb_out.update = update;
318     memset(xcb_out.pad0, 0, 3);
319 
320     xcb_parts[2].iov_base = (char *) &xcb_out;
321     xcb_parts[2].iov_len = sizeof(xcb_out);
322     xcb_parts[3].iov_base = 0;
323     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
324 
325     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
326     return xcb_ret;
327 }
328 
329 
330 /*****************************************************************************
331  **
332  ** xcb_void_cookie_t xcb_composite_unredirect_window
333  **
334  ** @param xcb_connection_t *c
335  ** @param xcb_window_t      window
336  ** @param uint8_t           update
337  ** @returns xcb_void_cookie_t
338  **
339  *****************************************************************************/
340 
341 xcb_void_cookie_t
342 xcb_composite_unredirect_window (xcb_connection_t *c  /**< */,
343                                  xcb_window_t      window  /**< */,
344                                  uint8_t           update  /**< */)
345 {
346     static const xcb_protocol_request_t xcb_req = {
347         /* count */ 2,
348         /* ext */ &xcb_composite_id,
349         /* opcode */ XCB_COMPOSITE_UNREDIRECT_WINDOW,
350         /* isvoid */ 1
351     };
352 
353     struct iovec xcb_parts[4];
354     xcb_void_cookie_t xcb_ret;
355     xcb_composite_unredirect_window_request_t xcb_out;
356 
357     xcb_out.window = window;
358     xcb_out.update = update;
359     memset(xcb_out.pad0, 0, 3);
360 
361     xcb_parts[2].iov_base = (char *) &xcb_out;
362     xcb_parts[2].iov_len = sizeof(xcb_out);
363     xcb_parts[3].iov_base = 0;
364     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
365 
366     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
367     return xcb_ret;
368 }
369 
370 
371 /*****************************************************************************
372  **
373  ** xcb_void_cookie_t xcb_composite_unredirect_subwindows_checked
374  **
375  ** @param xcb_connection_t *c
376  ** @param xcb_window_t      window
377  ** @param uint8_t           update
378  ** @returns xcb_void_cookie_t
379  **
380  *****************************************************************************/
381 
382 xcb_void_cookie_t
383 xcb_composite_unredirect_subwindows_checked (xcb_connection_t *c  /**< */,
384                                              xcb_window_t      window  /**< */,
385                                              uint8_t           update  /**< */)
386 {
387     static const xcb_protocol_request_t xcb_req = {
388         /* count */ 2,
389         /* ext */ &xcb_composite_id,
390         /* opcode */ XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS,
391         /* isvoid */ 1
392     };
393 
394     struct iovec xcb_parts[4];
395     xcb_void_cookie_t xcb_ret;
396     xcb_composite_unredirect_subwindows_request_t xcb_out;
397 
398     xcb_out.window = window;
399     xcb_out.update = update;
400     memset(xcb_out.pad0, 0, 3);
401 
402     xcb_parts[2].iov_base = (char *) &xcb_out;
403     xcb_parts[2].iov_len = sizeof(xcb_out);
404     xcb_parts[3].iov_base = 0;
405     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
406 
407     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
408     return xcb_ret;
409 }
410 
411 
412 /*****************************************************************************
413  **
414  ** xcb_void_cookie_t xcb_composite_unredirect_subwindows
415  **
416  ** @param xcb_connection_t *c
417  ** @param xcb_window_t      window
418  ** @param uint8_t           update
419  ** @returns xcb_void_cookie_t
420  **
421  *****************************************************************************/
422 
423 xcb_void_cookie_t
424 xcb_composite_unredirect_subwindows (xcb_connection_t *c  /**< */,
425                                      xcb_window_t      window  /**< */,
426                                      uint8_t           update  /**< */)
427 {
428     static const xcb_protocol_request_t xcb_req = {
429         /* count */ 2,
430         /* ext */ &xcb_composite_id,
431         /* opcode */ XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS,
432         /* isvoid */ 1
433     };
434 
435     struct iovec xcb_parts[4];
436     xcb_void_cookie_t xcb_ret;
437     xcb_composite_unredirect_subwindows_request_t xcb_out;
438 
439     xcb_out.window = window;
440     xcb_out.update = update;
441     memset(xcb_out.pad0, 0, 3);
442 
443     xcb_parts[2].iov_base = (char *) &xcb_out;
444     xcb_parts[2].iov_len = sizeof(xcb_out);
445     xcb_parts[3].iov_base = 0;
446     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
447 
448     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
449     return xcb_ret;
450 }
451 
452 
453 /*****************************************************************************
454  **
455  ** xcb_void_cookie_t xcb_composite_create_region_from_border_clip_checked
456  **
457  ** @param xcb_connection_t    *c
458  ** @param xcb_xfixes_region_t  region
459  ** @param xcb_window_t         window
460  ** @returns xcb_void_cookie_t
461  **
462  *****************************************************************************/
463 
464 xcb_void_cookie_t
465 xcb_composite_create_region_from_border_clip_checked (xcb_connection_t    *c  /**< */,
466                                                       xcb_xfixes_region_t  region  /**< */,
467                                                       xcb_window_t         window  /**< */)
468 {
469     static const xcb_protocol_request_t xcb_req = {
470         /* count */ 2,
471         /* ext */ &xcb_composite_id,
472         /* opcode */ XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP,
473         /* isvoid */ 1
474     };
475 
476     struct iovec xcb_parts[4];
477     xcb_void_cookie_t xcb_ret;
478     xcb_composite_create_region_from_border_clip_request_t xcb_out;
479 
480     xcb_out.region = region;
481     xcb_out.window = window;
482 
483     xcb_parts[2].iov_base = (char *) &xcb_out;
484     xcb_parts[2].iov_len = sizeof(xcb_out);
485     xcb_parts[3].iov_base = 0;
486     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
487 
488     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
489     return xcb_ret;
490 }
491 
492 
493 /*****************************************************************************
494  **
495  ** xcb_void_cookie_t xcb_composite_create_region_from_border_clip
496  **
497  ** @param xcb_connection_t    *c
498  ** @param xcb_xfixes_region_t  region
499  ** @param xcb_window_t         window
500  ** @returns xcb_void_cookie_t
501  **
502  *****************************************************************************/
503 
504 xcb_void_cookie_t
505 xcb_composite_create_region_from_border_clip (xcb_connection_t    *c  /**< */,
506                                               xcb_xfixes_region_t  region  /**< */,
507                                               xcb_window_t         window  /**< */)
508 {
509     static const xcb_protocol_request_t xcb_req = {
510         /* count */ 2,
511         /* ext */ &xcb_composite_id,
512         /* opcode */ XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP,
513         /* isvoid */ 1
514     };
515 
516     struct iovec xcb_parts[4];
517     xcb_void_cookie_t xcb_ret;
518     xcb_composite_create_region_from_border_clip_request_t xcb_out;
519 
520     xcb_out.region = region;
521     xcb_out.window = window;
522 
523     xcb_parts[2].iov_base = (char *) &xcb_out;
524     xcb_parts[2].iov_len = sizeof(xcb_out);
525     xcb_parts[3].iov_base = 0;
526     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
527 
528     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
529     return xcb_ret;
530 }
531 
532 
533 /*****************************************************************************
534  **
535  ** xcb_void_cookie_t xcb_composite_name_window_pixmap_checked
536  **
537  ** @param xcb_connection_t *c
538  ** @param xcb_window_t      window
539  ** @param xcb_pixmap_t      pixmap
540  ** @returns xcb_void_cookie_t
541  **
542  *****************************************************************************/
543 
544 xcb_void_cookie_t
545 xcb_composite_name_window_pixmap_checked (xcb_connection_t *c  /**< */,
546                                           xcb_window_t      window  /**< */,
547                                           xcb_pixmap_t      pixmap  /**< */)
548 {
549     static const xcb_protocol_request_t xcb_req = {
550         /* count */ 2,
551         /* ext */ &xcb_composite_id,
552         /* opcode */ XCB_COMPOSITE_NAME_WINDOW_PIXMAP,
553         /* isvoid */ 1
554     };
555 
556     struct iovec xcb_parts[4];
557     xcb_void_cookie_t xcb_ret;
558     xcb_composite_name_window_pixmap_request_t xcb_out;
559 
560     xcb_out.window = window;
561     xcb_out.pixmap = pixmap;
562 
563     xcb_parts[2].iov_base = (char *) &xcb_out;
564     xcb_parts[2].iov_len = sizeof(xcb_out);
565     xcb_parts[3].iov_base = 0;
566     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
567 
568     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
569     return xcb_ret;
570 }
571 
572 
573 /*****************************************************************************
574  **
575  ** xcb_void_cookie_t xcb_composite_name_window_pixmap
576  **
577  ** @param xcb_connection_t *c
578  ** @param xcb_window_t      window
579  ** @param xcb_pixmap_t      pixmap
580  ** @returns xcb_void_cookie_t
581  **
582  *****************************************************************************/
583 
584 xcb_void_cookie_t
585 xcb_composite_name_window_pixmap (xcb_connection_t *c  /**< */,
586                                   xcb_window_t      window  /**< */,
587                                   xcb_pixmap_t      pixmap  /**< */)
588 {
589     static const xcb_protocol_request_t xcb_req = {
590         /* count */ 2,
591         /* ext */ &xcb_composite_id,
592         /* opcode */ XCB_COMPOSITE_NAME_WINDOW_PIXMAP,
593         /* isvoid */ 1
594     };
595 
596     struct iovec xcb_parts[4];
597     xcb_void_cookie_t xcb_ret;
598     xcb_composite_name_window_pixmap_request_t xcb_out;
599 
600     xcb_out.window = window;
601     xcb_out.pixmap = pixmap;
602 
603     xcb_parts[2].iov_base = (char *) &xcb_out;
604     xcb_parts[2].iov_len = sizeof(xcb_out);
605     xcb_parts[3].iov_base = 0;
606     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
607 
608     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
609     return xcb_ret;
610 }
611 
612 
613 /*****************************************************************************
614  **
615  ** xcb_composite_get_overlay_window_cookie_t xcb_composite_get_overlay_window
616  **
617  ** @param xcb_connection_t *c
618  ** @param xcb_window_t      window
619  ** @returns xcb_composite_get_overlay_window_cookie_t
620  **
621  *****************************************************************************/
622 
623 xcb_composite_get_overlay_window_cookie_t
624 xcb_composite_get_overlay_window (xcb_connection_t *c  /**< */,
625                                   xcb_window_t      window  /**< */)
626 {
627     static const xcb_protocol_request_t xcb_req = {
628         /* count */ 2,
629         /* ext */ &xcb_composite_id,
630         /* opcode */ XCB_COMPOSITE_GET_OVERLAY_WINDOW,
631         /* isvoid */ 0
632     };
633 
634     struct iovec xcb_parts[4];
635     xcb_composite_get_overlay_window_cookie_t xcb_ret;
636     xcb_composite_get_overlay_window_request_t xcb_out;
637 
638     xcb_out.window = window;
639 
640     xcb_parts[2].iov_base = (char *) &xcb_out;
641     xcb_parts[2].iov_len = sizeof(xcb_out);
642     xcb_parts[3].iov_base = 0;
643     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
644 
645     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
646     return xcb_ret;
647 }
648 
649 
650 /*****************************************************************************
651  **
652  ** xcb_composite_get_overlay_window_cookie_t xcb_composite_get_overlay_window_unchecked
653  **
654  ** @param xcb_connection_t *c
655  ** @param xcb_window_t      window
656  ** @returns xcb_composite_get_overlay_window_cookie_t
657  **
658  *****************************************************************************/
659 
660 xcb_composite_get_overlay_window_cookie_t
661 xcb_composite_get_overlay_window_unchecked (xcb_connection_t *c  /**< */,
662                                             xcb_window_t      window  /**< */)
663 {
664     static const xcb_protocol_request_t xcb_req = {
665         /* count */ 2,
666         /* ext */ &xcb_composite_id,
667         /* opcode */ XCB_COMPOSITE_GET_OVERLAY_WINDOW,
668         /* isvoid */ 0
669     };
670 
671     struct iovec xcb_parts[4];
672     xcb_composite_get_overlay_window_cookie_t xcb_ret;
673     xcb_composite_get_overlay_window_request_t xcb_out;
674 
675     xcb_out.window = window;
676 
677     xcb_parts[2].iov_base = (char *) &xcb_out;
678     xcb_parts[2].iov_len = sizeof(xcb_out);
679     xcb_parts[3].iov_base = 0;
680     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
681 
682     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
683     return xcb_ret;
684 }
685 
686 
687 /*****************************************************************************
688  **
689  ** xcb_composite_get_overlay_window_reply_t * xcb_composite_get_overlay_window_reply
690  **
691  ** @param xcb_connection_t                           *c
692  ** @param xcb_composite_get_overlay_window_cookie_t   cookie
693  ** @param xcb_generic_error_t                       **e
694  ** @returns xcb_composite_get_overlay_window_reply_t *
695  **
696  *****************************************************************************/
697 
698 xcb_composite_get_overlay_window_reply_t *
699 xcb_composite_get_overlay_window_reply (xcb_connection_t                           *c  /**< */,
700                                         xcb_composite_get_overlay_window_cookie_t   cookie  /**< */,
701                                         xcb_generic_error_t                       **e  /**< */)
702 {
703     return (xcb_composite_get_overlay_window_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
704 }
705 
706 
707 /*****************************************************************************
708  **
709  ** xcb_void_cookie_t xcb_composite_release_overlay_window_checked
710  **
711  ** @param xcb_connection_t *c
712  ** @param xcb_window_t      window
713  ** @returns xcb_void_cookie_t
714  **
715  *****************************************************************************/
716 
717 xcb_void_cookie_t
718 xcb_composite_release_overlay_window_checked (xcb_connection_t *c  /**< */,
719                                               xcb_window_t      window  /**< */)
720 {
721     static const xcb_protocol_request_t xcb_req = {
722         /* count */ 2,
723         /* ext */ &xcb_composite_id,
724         /* opcode */ XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW,
725         /* isvoid */ 1
726     };
727 
728     struct iovec xcb_parts[4];
729     xcb_void_cookie_t xcb_ret;
730     xcb_composite_release_overlay_window_request_t xcb_out;
731 
732     xcb_out.window = window;
733 
734     xcb_parts[2].iov_base = (char *) &xcb_out;
735     xcb_parts[2].iov_len = sizeof(xcb_out);
736     xcb_parts[3].iov_base = 0;
737     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
738 
739     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
740     return xcb_ret;
741 }
742 
743 
744 /*****************************************************************************
745  **
746  ** xcb_void_cookie_t xcb_composite_release_overlay_window
747  **
748  ** @param xcb_connection_t *c
749  ** @param xcb_window_t      window
750  ** @returns xcb_void_cookie_t
751  **
752  *****************************************************************************/
753 
754 xcb_void_cookie_t
755 xcb_composite_release_overlay_window (xcb_connection_t *c  /**< */,
756                                       xcb_window_t      window  /**< */)
757 {
758     static const xcb_protocol_request_t xcb_req = {
759         /* count */ 2,
760         /* ext */ &xcb_composite_id,
761         /* opcode */ XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW,
762         /* isvoid */ 1
763     };
764 
765     struct iovec xcb_parts[4];
766     xcb_void_cookie_t xcb_ret;
767     xcb_composite_release_overlay_window_request_t xcb_out;
768 
769     xcb_out.window = window;
770 
771     xcb_parts[2].iov_base = (char *) &xcb_out;
772     xcb_parts[2].iov_len = sizeof(xcb_out);
773     xcb_parts[3].iov_base = 0;
774     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
775 
776     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
777     return xcb_ret;
778 }
779 
780