1/*
2 * This file generated automatically from render.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 "render.h"
10#include "xproto.h"
11
12xcb_extension_t xcb_render_id = { "RENDER", 0 };
13
14
15/*****************************************************************************
16 **
17 ** void xcb_render_glyph_next
18 **
19 ** @param xcb_render_glyph_iterator_t *i
20 ** @returns void
21 **
22 *****************************************************************************/
23
24void
25xcb_render_glyph_next (xcb_render_glyph_iterator_t *i  /**< */)
26{
27    --i->rem;
28    ++i->data;
29    i->index += sizeof(xcb_render_glyph_t);
30}
31
32
33/*****************************************************************************
34 **
35 ** xcb_generic_iterator_t xcb_render_glyph_end
36 **
37 ** @param xcb_render_glyph_iterator_t i
38 ** @returns xcb_generic_iterator_t
39 **
40 *****************************************************************************/
41
42xcb_generic_iterator_t
43xcb_render_glyph_end (xcb_render_glyph_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_render_glyphset_next
56 **
57 ** @param xcb_render_glyphset_iterator_t *i
58 ** @returns void
59 **
60 *****************************************************************************/
61
62void
63xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i  /**< */)
64{
65    --i->rem;
66    ++i->data;
67    i->index += sizeof(xcb_render_glyphset_t);
68}
69
70
71/*****************************************************************************
72 **
73 ** xcb_generic_iterator_t xcb_render_glyphset_end
74 **
75 ** @param xcb_render_glyphset_iterator_t i
76 ** @returns xcb_generic_iterator_t
77 **
78 *****************************************************************************/
79
80xcb_generic_iterator_t
81xcb_render_glyphset_end (xcb_render_glyphset_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 ** void xcb_render_picture_next
94 **
95 ** @param xcb_render_picture_iterator_t *i
96 ** @returns void
97 **
98 *****************************************************************************/
99
100void
101xcb_render_picture_next (xcb_render_picture_iterator_t *i  /**< */)
102{
103    --i->rem;
104    ++i->data;
105    i->index += sizeof(xcb_render_picture_t);
106}
107
108
109/*****************************************************************************
110 **
111 ** xcb_generic_iterator_t xcb_render_picture_end
112 **
113 ** @param xcb_render_picture_iterator_t i
114 ** @returns xcb_generic_iterator_t
115 **
116 *****************************************************************************/
117
118xcb_generic_iterator_t
119xcb_render_picture_end (xcb_render_picture_iterator_t i  /**< */)
120{
121    xcb_generic_iterator_t ret;
122    ret.data = i.data + i.rem;
123    ret.index = i.index + ((char *) ret.data - (char *) i.data);
124    ret.rem = 0;
125    return ret;
126}
127
128
129/*****************************************************************************
130 **
131 ** void xcb_render_pictformat_next
132 **
133 ** @param xcb_render_pictformat_iterator_t *i
134 ** @returns void
135 **
136 *****************************************************************************/
137
138void
139xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i  /**< */)
140{
141    --i->rem;
142    ++i->data;
143    i->index += sizeof(xcb_render_pictformat_t);
144}
145
146
147/*****************************************************************************
148 **
149 ** xcb_generic_iterator_t xcb_render_pictformat_end
150 **
151 ** @param xcb_render_pictformat_iterator_t i
152 ** @returns xcb_generic_iterator_t
153 **
154 *****************************************************************************/
155
156xcb_generic_iterator_t
157xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i  /**< */)
158{
159    xcb_generic_iterator_t ret;
160    ret.data = i.data + i.rem;
161    ret.index = i.index + ((char *) ret.data - (char *) i.data);
162    ret.rem = 0;
163    return ret;
164}
165
166
167/*****************************************************************************
168 **
169 ** void xcb_render_fixed_next
170 **
171 ** @param xcb_render_fixed_iterator_t *i
172 ** @returns void
173 **
174 *****************************************************************************/
175
176void
177xcb_render_fixed_next (xcb_render_fixed_iterator_t *i  /**< */)
178{
179    --i->rem;
180    ++i->data;
181    i->index += sizeof(xcb_render_fixed_t);
182}
183
184
185/*****************************************************************************
186 **
187 ** xcb_generic_iterator_t xcb_render_fixed_end
188 **
189 ** @param xcb_render_fixed_iterator_t i
190 ** @returns xcb_generic_iterator_t
191 **
192 *****************************************************************************/
193
194xcb_generic_iterator_t
195xcb_render_fixed_end (xcb_render_fixed_iterator_t i  /**< */)
196{
197    xcb_generic_iterator_t ret;
198    ret.data = i.data + i.rem;
199    ret.index = i.index + ((char *) ret.data - (char *) i.data);
200    ret.rem = 0;
201    return ret;
202}
203
204
205/*****************************************************************************
206 **
207 ** void xcb_render_directformat_next
208 **
209 ** @param xcb_render_directformat_iterator_t *i
210 ** @returns void
211 **
212 *****************************************************************************/
213
214void
215xcb_render_directformat_next (xcb_render_directformat_iterator_t *i  /**< */)
216{
217    --i->rem;
218    ++i->data;
219    i->index += sizeof(xcb_render_directformat_t);
220}
221
222
223/*****************************************************************************
224 **
225 ** xcb_generic_iterator_t xcb_render_directformat_end
226 **
227 ** @param xcb_render_directformat_iterator_t i
228 ** @returns xcb_generic_iterator_t
229 **
230 *****************************************************************************/
231
232xcb_generic_iterator_t
233xcb_render_directformat_end (xcb_render_directformat_iterator_t i  /**< */)
234{
235    xcb_generic_iterator_t ret;
236    ret.data = i.data + i.rem;
237    ret.index = i.index + ((char *) ret.data - (char *) i.data);
238    ret.rem = 0;
239    return ret;
240}
241
242
243/*****************************************************************************
244 **
245 ** void xcb_render_pictforminfo_next
246 **
247 ** @param xcb_render_pictforminfo_iterator_t *i
248 ** @returns void
249 **
250 *****************************************************************************/
251
252void
253xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i  /**< */)
254{
255    --i->rem;
256    ++i->data;
257    i->index += sizeof(xcb_render_pictforminfo_t);
258}
259
260
261/*****************************************************************************
262 **
263 ** xcb_generic_iterator_t xcb_render_pictforminfo_end
264 **
265 ** @param xcb_render_pictforminfo_iterator_t i
266 ** @returns xcb_generic_iterator_t
267 **
268 *****************************************************************************/
269
270xcb_generic_iterator_t
271xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i  /**< */)
272{
273    xcb_generic_iterator_t ret;
274    ret.data = i.data + i.rem;
275    ret.index = i.index + ((char *) ret.data - (char *) i.data);
276    ret.rem = 0;
277    return ret;
278}
279
280
281/*****************************************************************************
282 **
283 ** void xcb_render_pictvisual_next
284 **
285 ** @param xcb_render_pictvisual_iterator_t *i
286 ** @returns void
287 **
288 *****************************************************************************/
289
290void
291xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i  /**< */)
292{
293    --i->rem;
294    ++i->data;
295    i->index += sizeof(xcb_render_pictvisual_t);
296}
297
298
299/*****************************************************************************
300 **
301 ** xcb_generic_iterator_t xcb_render_pictvisual_end
302 **
303 ** @param xcb_render_pictvisual_iterator_t i
304 ** @returns xcb_generic_iterator_t
305 **
306 *****************************************************************************/
307
308xcb_generic_iterator_t
309xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i  /**< */)
310{
311    xcb_generic_iterator_t ret;
312    ret.data = i.data + i.rem;
313    ret.index = i.index + ((char *) ret.data - (char *) i.data);
314    ret.rem = 0;
315    return ret;
316}
317
318
319/*****************************************************************************
320 **
321 ** xcb_render_pictvisual_t * xcb_render_pictdepth_visuals
322 **
323 ** @param const xcb_render_pictdepth_t *R
324 ** @returns xcb_render_pictvisual_t *
325 **
326 *****************************************************************************/
327
328xcb_render_pictvisual_t *
329xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R  /**< */)
330{
331    return (xcb_render_pictvisual_t *) (R + 1);
332}
333
334
335/*****************************************************************************
336 **
337 ** int xcb_render_pictdepth_visuals_length
338 **
339 ** @param const xcb_render_pictdepth_t *R
340 ** @returns int
341 **
342 *****************************************************************************/
343
344int
345xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R  /**< */)
346{
347    return R->num_visuals;
348}
349
350
351/*****************************************************************************
352 **
353 ** xcb_render_pictvisual_iterator_t xcb_render_pictdepth_visuals_iterator
354 **
355 ** @param const xcb_render_pictdepth_t *R
356 ** @returns xcb_render_pictvisual_iterator_t
357 **
358 *****************************************************************************/
359
360xcb_render_pictvisual_iterator_t
361xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R  /**< */)
362{
363    xcb_render_pictvisual_iterator_t i;
364    i.data = (xcb_render_pictvisual_t *) (R + 1);
365    i.rem = R->num_visuals;
366    i.index = (char *) i.data - (char *) R;
367    return i;
368}
369
370
371/*****************************************************************************
372 **
373 ** void xcb_render_pictdepth_next
374 **
375 ** @param xcb_render_pictdepth_iterator_t *i
376 ** @returns void
377 **
378 *****************************************************************************/
379
380void
381xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i  /**< */)
382{
383    xcb_render_pictdepth_t *R = i->data;
384    xcb_generic_iterator_t child = xcb_render_pictvisual_end(xcb_render_pictdepth_visuals_iterator(R));
385    --i->rem;
386    i->data = (xcb_render_pictdepth_t *) child.data;
387    i->index = child.index;
388}
389
390
391/*****************************************************************************
392 **
393 ** xcb_generic_iterator_t xcb_render_pictdepth_end
394 **
395 ** @param xcb_render_pictdepth_iterator_t i
396 ** @returns xcb_generic_iterator_t
397 **
398 *****************************************************************************/
399
400xcb_generic_iterator_t
401xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i  /**< */)
402{
403    xcb_generic_iterator_t ret;
404    while(i.rem > 0)
405        xcb_render_pictdepth_next(&i);
406    ret.data = i.data;
407    ret.rem = i.rem;
408    ret.index = i.index;
409    return ret;
410}
411
412
413/*****************************************************************************
414 **
415 ** int xcb_render_pictscreen_depths_length
416 **
417 ** @param const xcb_render_pictscreen_t *R
418 ** @returns int
419 **
420 *****************************************************************************/
421
422int
423xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R  /**< */)
424{
425    return R->num_depths;
426}
427
428
429/*****************************************************************************
430 **
431 ** xcb_render_pictdepth_iterator_t xcb_render_pictscreen_depths_iterator
432 **
433 ** @param const xcb_render_pictscreen_t *R
434 ** @returns xcb_render_pictdepth_iterator_t
435 **
436 *****************************************************************************/
437
438xcb_render_pictdepth_iterator_t
439xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R  /**< */)
440{
441    xcb_render_pictdepth_iterator_t i;
442    i.data = (xcb_render_pictdepth_t *) (R + 1);
443    i.rem = R->num_depths;
444    i.index = (char *) i.data - (char *) R;
445    return i;
446}
447
448
449/*****************************************************************************
450 **
451 ** void xcb_render_pictscreen_next
452 **
453 ** @param xcb_render_pictscreen_iterator_t *i
454 ** @returns void
455 **
456 *****************************************************************************/
457
458void
459xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i  /**< */)
460{
461    xcb_render_pictscreen_t *R = i->data;
462    xcb_generic_iterator_t child = xcb_render_pictdepth_end(xcb_render_pictscreen_depths_iterator(R));
463    --i->rem;
464    i->data = (xcb_render_pictscreen_t *) child.data;
465    i->index = child.index;
466}
467
468
469/*****************************************************************************
470 **
471 ** xcb_generic_iterator_t xcb_render_pictscreen_end
472 **
473 ** @param xcb_render_pictscreen_iterator_t i
474 ** @returns xcb_generic_iterator_t
475 **
476 *****************************************************************************/
477
478xcb_generic_iterator_t
479xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i  /**< */)
480{
481    xcb_generic_iterator_t ret;
482    while(i.rem > 0)
483        xcb_render_pictscreen_next(&i);
484    ret.data = i.data;
485    ret.rem = i.rem;
486    ret.index = i.index;
487    return ret;
488}
489
490
491/*****************************************************************************
492 **
493 ** void xcb_render_indexvalue_next
494 **
495 ** @param xcb_render_indexvalue_iterator_t *i
496 ** @returns void
497 **
498 *****************************************************************************/
499
500void
501xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i  /**< */)
502{
503    --i->rem;
504    ++i->data;
505    i->index += sizeof(xcb_render_indexvalue_t);
506}
507
508
509/*****************************************************************************
510 **
511 ** xcb_generic_iterator_t xcb_render_indexvalue_end
512 **
513 ** @param xcb_render_indexvalue_iterator_t i
514 ** @returns xcb_generic_iterator_t
515 **
516 *****************************************************************************/
517
518xcb_generic_iterator_t
519xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i  /**< */)
520{
521    xcb_generic_iterator_t ret;
522    ret.data = i.data + i.rem;
523    ret.index = i.index + ((char *) ret.data - (char *) i.data);
524    ret.rem = 0;
525    return ret;
526}
527
528
529/*****************************************************************************
530 **
531 ** void xcb_render_color_next
532 **
533 ** @param xcb_render_color_iterator_t *i
534 ** @returns void
535 **
536 *****************************************************************************/
537
538void
539xcb_render_color_next (xcb_render_color_iterator_t *i  /**< */)
540{
541    --i->rem;
542    ++i->data;
543    i->index += sizeof(xcb_render_color_t);
544}
545
546
547/*****************************************************************************
548 **
549 ** xcb_generic_iterator_t xcb_render_color_end
550 **
551 ** @param xcb_render_color_iterator_t i
552 ** @returns xcb_generic_iterator_t
553 **
554 *****************************************************************************/
555
556xcb_generic_iterator_t
557xcb_render_color_end (xcb_render_color_iterator_t i  /**< */)
558{
559    xcb_generic_iterator_t ret;
560    ret.data = i.data + i.rem;
561    ret.index = i.index + ((char *) ret.data - (char *) i.data);
562    ret.rem = 0;
563    return ret;
564}
565
566
567/*****************************************************************************
568 **
569 ** void xcb_render_pointfix_next
570 **
571 ** @param xcb_render_pointfix_iterator_t *i
572 ** @returns void
573 **
574 *****************************************************************************/
575
576void
577xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i  /**< */)
578{
579    --i->rem;
580    ++i->data;
581    i->index += sizeof(xcb_render_pointfix_t);
582}
583
584
585/*****************************************************************************
586 **
587 ** xcb_generic_iterator_t xcb_render_pointfix_end
588 **
589 ** @param xcb_render_pointfix_iterator_t i
590 ** @returns xcb_generic_iterator_t
591 **
592 *****************************************************************************/
593
594xcb_generic_iterator_t
595xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i  /**< */)
596{
597    xcb_generic_iterator_t ret;
598    ret.data = i.data + i.rem;
599    ret.index = i.index + ((char *) ret.data - (char *) i.data);
600    ret.rem = 0;
601    return ret;
602}
603
604
605/*****************************************************************************
606 **
607 ** void xcb_render_linefix_next
608 **
609 ** @param xcb_render_linefix_iterator_t *i
610 ** @returns void
611 **
612 *****************************************************************************/
613
614void
615xcb_render_linefix_next (xcb_render_linefix_iterator_t *i  /**< */)
616{
617    --i->rem;
618    ++i->data;
619    i->index += sizeof(xcb_render_linefix_t);
620}
621
622
623/*****************************************************************************
624 **
625 ** xcb_generic_iterator_t xcb_render_linefix_end
626 **
627 ** @param xcb_render_linefix_iterator_t i
628 ** @returns xcb_generic_iterator_t
629 **
630 *****************************************************************************/
631
632xcb_generic_iterator_t
633xcb_render_linefix_end (xcb_render_linefix_iterator_t i  /**< */)
634{
635    xcb_generic_iterator_t ret;
636    ret.data = i.data + i.rem;
637    ret.index = i.index + ((char *) ret.data - (char *) i.data);
638    ret.rem = 0;
639    return ret;
640}
641
642
643/*****************************************************************************
644 **
645 ** void xcb_render_triangle_next
646 **
647 ** @param xcb_render_triangle_iterator_t *i
648 ** @returns void
649 **
650 *****************************************************************************/
651
652void
653xcb_render_triangle_next (xcb_render_triangle_iterator_t *i  /**< */)
654{
655    --i->rem;
656    ++i->data;
657    i->index += sizeof(xcb_render_triangle_t);
658}
659
660
661/*****************************************************************************
662 **
663 ** xcb_generic_iterator_t xcb_render_triangle_end
664 **
665 ** @param xcb_render_triangle_iterator_t i
666 ** @returns xcb_generic_iterator_t
667 **
668 *****************************************************************************/
669
670xcb_generic_iterator_t
671xcb_render_triangle_end (xcb_render_triangle_iterator_t i  /**< */)
672{
673    xcb_generic_iterator_t ret;
674    ret.data = i.data + i.rem;
675    ret.index = i.index + ((char *) ret.data - (char *) i.data);
676    ret.rem = 0;
677    return ret;
678}
679
680
681/*****************************************************************************
682 **
683 ** void xcb_render_trapezoid_next
684 **
685 ** @param xcb_render_trapezoid_iterator_t *i
686 ** @returns void
687 **
688 *****************************************************************************/
689
690void
691xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i  /**< */)
692{
693    --i->rem;
694    ++i->data;
695    i->index += sizeof(xcb_render_trapezoid_t);
696}
697
698
699/*****************************************************************************
700 **
701 ** xcb_generic_iterator_t xcb_render_trapezoid_end
702 **
703 ** @param xcb_render_trapezoid_iterator_t i
704 ** @returns xcb_generic_iterator_t
705 **
706 *****************************************************************************/
707
708xcb_generic_iterator_t
709xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i  /**< */)
710{
711    xcb_generic_iterator_t ret;
712    ret.data = i.data + i.rem;
713    ret.index = i.index + ((char *) ret.data - (char *) i.data);
714    ret.rem = 0;
715    return ret;
716}
717
718
719/*****************************************************************************
720 **
721 ** void xcb_render_glyphinfo_next
722 **
723 ** @param xcb_render_glyphinfo_iterator_t *i
724 ** @returns void
725 **
726 *****************************************************************************/
727
728void
729xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i  /**< */)
730{
731    --i->rem;
732    ++i->data;
733    i->index += sizeof(xcb_render_glyphinfo_t);
734}
735
736
737/*****************************************************************************
738 **
739 ** xcb_generic_iterator_t xcb_render_glyphinfo_end
740 **
741 ** @param xcb_render_glyphinfo_iterator_t i
742 ** @returns xcb_generic_iterator_t
743 **
744 *****************************************************************************/
745
746xcb_generic_iterator_t
747xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i  /**< */)
748{
749    xcb_generic_iterator_t ret;
750    ret.data = i.data + i.rem;
751    ret.index = i.index + ((char *) ret.data - (char *) i.data);
752    ret.rem = 0;
753    return ret;
754}
755
756
757/*****************************************************************************
758 **
759 ** xcb_render_query_version_cookie_t xcb_render_query_version
760 **
761 ** @param xcb_connection_t *c
762 ** @param uint32_t          client_major_version
763 ** @param uint32_t          client_minor_version
764 ** @returns xcb_render_query_version_cookie_t
765 **
766 *****************************************************************************/
767
768xcb_render_query_version_cookie_t
769xcb_render_query_version (xcb_connection_t *c  /**< */,
770                          uint32_t          client_major_version  /**< */,
771                          uint32_t          client_minor_version  /**< */)
772{
773    static const xcb_protocol_request_t xcb_req = {
774        /* count */ 2,
775        /* ext */ &xcb_render_id,
776        /* opcode */ XCB_RENDER_QUERY_VERSION,
777        /* isvoid */ 0
778    };
779
780    struct iovec xcb_parts[4];
781    xcb_render_query_version_cookie_t xcb_ret;
782    xcb_render_query_version_request_t xcb_out;
783
784    xcb_out.client_major_version = client_major_version;
785    xcb_out.client_minor_version = client_minor_version;
786
787    xcb_parts[2].iov_base = (char *) &xcb_out;
788    xcb_parts[2].iov_len = sizeof(xcb_out);
789    xcb_parts[3].iov_base = 0;
790    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
791    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
792    return xcb_ret;
793}
794
795
796/*****************************************************************************
797 **
798 ** xcb_render_query_version_cookie_t xcb_render_query_version_unchecked
799 **
800 ** @param xcb_connection_t *c
801 ** @param uint32_t          client_major_version
802 ** @param uint32_t          client_minor_version
803 ** @returns xcb_render_query_version_cookie_t
804 **
805 *****************************************************************************/
806
807xcb_render_query_version_cookie_t
808xcb_render_query_version_unchecked (xcb_connection_t *c  /**< */,
809                                    uint32_t          client_major_version  /**< */,
810                                    uint32_t          client_minor_version  /**< */)
811{
812    static const xcb_protocol_request_t xcb_req = {
813        /* count */ 2,
814        /* ext */ &xcb_render_id,
815        /* opcode */ XCB_RENDER_QUERY_VERSION,
816        /* isvoid */ 0
817    };
818
819    struct iovec xcb_parts[4];
820    xcb_render_query_version_cookie_t xcb_ret;
821    xcb_render_query_version_request_t xcb_out;
822
823    xcb_out.client_major_version = client_major_version;
824    xcb_out.client_minor_version = client_minor_version;
825
826    xcb_parts[2].iov_base = (char *) &xcb_out;
827    xcb_parts[2].iov_len = sizeof(xcb_out);
828    xcb_parts[3].iov_base = 0;
829    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
830    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
831    return xcb_ret;
832}
833
834
835/*****************************************************************************
836 **
837 ** xcb_render_query_version_reply_t * xcb_render_query_version_reply
838 **
839 ** @param xcb_connection_t                   *c
840 ** @param xcb_render_query_version_cookie_t   cookie
841 ** @param xcb_generic_error_t               **e
842 ** @returns xcb_render_query_version_reply_t *
843 **
844 *****************************************************************************/
845
846xcb_render_query_version_reply_t *
847xcb_render_query_version_reply (xcb_connection_t                   *c  /**< */,
848                                xcb_render_query_version_cookie_t   cookie  /**< */,
849                                xcb_generic_error_t               **e  /**< */)
850{
851    return (xcb_render_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
852}
853
854
855/*****************************************************************************
856 **
857 ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats
858 **
859 ** @param xcb_connection_t *c
860 ** @returns xcb_render_query_pict_formats_cookie_t
861 **
862 *****************************************************************************/
863
864xcb_render_query_pict_formats_cookie_t
865xcb_render_query_pict_formats (xcb_connection_t *c  /**< */)
866{
867    static const xcb_protocol_request_t xcb_req = {
868        /* count */ 2,
869        /* ext */ &xcb_render_id,
870        /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS,
871        /* isvoid */ 0
872    };
873
874    struct iovec xcb_parts[4];
875    xcb_render_query_pict_formats_cookie_t xcb_ret;
876    xcb_render_query_pict_formats_request_t xcb_out;
877
878
879    xcb_parts[2].iov_base = (char *) &xcb_out;
880    xcb_parts[2].iov_len = sizeof(xcb_out);
881    xcb_parts[3].iov_base = 0;
882    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
883    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
884    return xcb_ret;
885}
886
887
888/*****************************************************************************
889 **
890 ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats_unchecked
891 **
892 ** @param xcb_connection_t *c
893 ** @returns xcb_render_query_pict_formats_cookie_t
894 **
895 *****************************************************************************/
896
897xcb_render_query_pict_formats_cookie_t
898xcb_render_query_pict_formats_unchecked (xcb_connection_t *c  /**< */)
899{
900    static const xcb_protocol_request_t xcb_req = {
901        /* count */ 2,
902        /* ext */ &xcb_render_id,
903        /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS,
904        /* isvoid */ 0
905    };
906
907    struct iovec xcb_parts[4];
908    xcb_render_query_pict_formats_cookie_t xcb_ret;
909    xcb_render_query_pict_formats_request_t xcb_out;
910
911
912    xcb_parts[2].iov_base = (char *) &xcb_out;
913    xcb_parts[2].iov_len = sizeof(xcb_out);
914    xcb_parts[3].iov_base = 0;
915    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
916    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
917    return xcb_ret;
918}
919
920
921/*****************************************************************************
922 **
923 ** xcb_render_pictforminfo_t * xcb_render_query_pict_formats_formats
924 **
925 ** @param const xcb_render_query_pict_formats_reply_t *R
926 ** @returns xcb_render_pictforminfo_t *
927 **
928 *****************************************************************************/
929
930xcb_render_pictforminfo_t *
931xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R  /**< */)
932{
933    return (xcb_render_pictforminfo_t *) (R + 1);
934}
935
936
937/*****************************************************************************
938 **
939 ** int xcb_render_query_pict_formats_formats_length
940 **
941 ** @param const xcb_render_query_pict_formats_reply_t *R
942 ** @returns int
943 **
944 *****************************************************************************/
945
946int
947xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R  /**< */)
948{
949    return R->num_formats;
950}
951
952
953/*****************************************************************************
954 **
955 ** xcb_render_pictforminfo_iterator_t xcb_render_query_pict_formats_formats_iterator
956 **
957 ** @param const xcb_render_query_pict_formats_reply_t *R
958 ** @returns xcb_render_pictforminfo_iterator_t
959 **
960 *****************************************************************************/
961
962xcb_render_pictforminfo_iterator_t
963xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R  /**< */)
964{
965    xcb_render_pictforminfo_iterator_t i;
966    i.data = (xcb_render_pictforminfo_t *) (R + 1);
967    i.rem = R->num_formats;
968    i.index = (char *) i.data - (char *) R;
969    return i;
970}
971
972
973/*****************************************************************************
974 **
975 ** int xcb_render_query_pict_formats_screens_length
976 **
977 ** @param const xcb_render_query_pict_formats_reply_t *R
978 ** @returns int
979 **
980 *****************************************************************************/
981
982int
983xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R  /**< */)
984{
985    return R->num_screens;
986}
987
988
989/*****************************************************************************
990 **
991 ** xcb_render_pictscreen_iterator_t xcb_render_query_pict_formats_screens_iterator
992 **
993 ** @param const xcb_render_query_pict_formats_reply_t *R
994 ** @returns xcb_render_pictscreen_iterator_t
995 **
996 *****************************************************************************/
997
998xcb_render_pictscreen_iterator_t
999xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R  /**< */)
1000{
1001    xcb_render_pictscreen_iterator_t i;
1002    xcb_generic_iterator_t prev = xcb_render_pictforminfo_end(xcb_render_query_pict_formats_formats_iterator(R));
1003    i.data = (xcb_render_pictscreen_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_render_pictscreen_t, prev.index));
1004    i.rem = R->num_screens;
1005    i.index = (char *) i.data - (char *) R;
1006    return i;
1007}
1008
1009
1010/*****************************************************************************
1011 **
1012 ** uint32_t * xcb_render_query_pict_formats_subpixels
1013 **
1014 ** @param const xcb_render_query_pict_formats_reply_t *R
1015 ** @returns uint32_t *
1016 **
1017 *****************************************************************************/
1018
1019uint32_t *
1020xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R  /**< */)
1021{
1022    xcb_generic_iterator_t prev = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R));
1023    return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
1024}
1025
1026
1027/*****************************************************************************
1028 **
1029 ** int xcb_render_query_pict_formats_subpixels_length
1030 **
1031 ** @param const xcb_render_query_pict_formats_reply_t *R
1032 ** @returns int
1033 **
1034 *****************************************************************************/
1035
1036int
1037xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R  /**< */)
1038{
1039    return R->num_subpixel;
1040}
1041
1042
1043/*****************************************************************************
1044 **
1045 ** xcb_generic_iterator_t xcb_render_query_pict_formats_subpixels_end
1046 **
1047 ** @param const xcb_render_query_pict_formats_reply_t *R
1048 ** @returns xcb_generic_iterator_t
1049 **
1050 *****************************************************************************/
1051
1052xcb_generic_iterator_t
1053xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R  /**< */)
1054{
1055    xcb_generic_iterator_t i;
1056    xcb_generic_iterator_t child = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R));
1057    i.data = ((uint32_t *) child.data) + (R->num_subpixel);
1058    i.rem = 0;
1059    i.index = (char *) i.data - (char *) R;
1060    return i;
1061}
1062
1063
1064/*****************************************************************************
1065 **
1066 ** xcb_render_query_pict_formats_reply_t * xcb_render_query_pict_formats_reply
1067 **
1068 ** @param xcb_connection_t                        *c
1069 ** @param xcb_render_query_pict_formats_cookie_t   cookie
1070 ** @param xcb_generic_error_t                    **e
1071 ** @returns xcb_render_query_pict_formats_reply_t *
1072 **
1073 *****************************************************************************/
1074
1075xcb_render_query_pict_formats_reply_t *
1076xcb_render_query_pict_formats_reply (xcb_connection_t                        *c  /**< */,
1077                                     xcb_render_query_pict_formats_cookie_t   cookie  /**< */,
1078                                     xcb_generic_error_t                    **e  /**< */)
1079{
1080    return (xcb_render_query_pict_formats_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1081}
1082
1083
1084/*****************************************************************************
1085 **
1086 ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values
1087 **
1088 ** @param xcb_connection_t        *c
1089 ** @param xcb_render_pictformat_t  format
1090 ** @returns xcb_render_query_pict_index_values_cookie_t
1091 **
1092 *****************************************************************************/
1093
1094xcb_render_query_pict_index_values_cookie_t
1095xcb_render_query_pict_index_values (xcb_connection_t        *c  /**< */,
1096                                    xcb_render_pictformat_t  format  /**< */)
1097{
1098    static const xcb_protocol_request_t xcb_req = {
1099        /* count */ 2,
1100        /* ext */ &xcb_render_id,
1101        /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES,
1102        /* isvoid */ 0
1103    };
1104
1105    struct iovec xcb_parts[4];
1106    xcb_render_query_pict_index_values_cookie_t xcb_ret;
1107    xcb_render_query_pict_index_values_request_t xcb_out;
1108
1109    xcb_out.format = format;
1110
1111    xcb_parts[2].iov_base = (char *) &xcb_out;
1112    xcb_parts[2].iov_len = sizeof(xcb_out);
1113    xcb_parts[3].iov_base = 0;
1114    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1115    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1116    return xcb_ret;
1117}
1118
1119
1120/*****************************************************************************
1121 **
1122 ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values_unchecked
1123 **
1124 ** @param xcb_connection_t        *c
1125 ** @param xcb_render_pictformat_t  format
1126 ** @returns xcb_render_query_pict_index_values_cookie_t
1127 **
1128 *****************************************************************************/
1129
1130xcb_render_query_pict_index_values_cookie_t
1131xcb_render_query_pict_index_values_unchecked (xcb_connection_t        *c  /**< */,
1132                                              xcb_render_pictformat_t  format  /**< */)
1133{
1134    static const xcb_protocol_request_t xcb_req = {
1135        /* count */ 2,
1136        /* ext */ &xcb_render_id,
1137        /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES,
1138        /* isvoid */ 0
1139    };
1140
1141    struct iovec xcb_parts[4];
1142    xcb_render_query_pict_index_values_cookie_t xcb_ret;
1143    xcb_render_query_pict_index_values_request_t xcb_out;
1144
1145    xcb_out.format = format;
1146
1147    xcb_parts[2].iov_base = (char *) &xcb_out;
1148    xcb_parts[2].iov_len = sizeof(xcb_out);
1149    xcb_parts[3].iov_base = 0;
1150    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1151    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1152    return xcb_ret;
1153}
1154
1155
1156/*****************************************************************************
1157 **
1158 ** xcb_render_indexvalue_t * xcb_render_query_pict_index_values_values
1159 **
1160 ** @param const xcb_render_query_pict_index_values_reply_t *R
1161 ** @returns xcb_render_indexvalue_t *
1162 **
1163 *****************************************************************************/
1164
1165xcb_render_indexvalue_t *
1166xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R  /**< */)
1167{
1168    return (xcb_render_indexvalue_t *) (R + 1);
1169}
1170
1171
1172/*****************************************************************************
1173 **
1174 ** int xcb_render_query_pict_index_values_values_length
1175 **
1176 ** @param const xcb_render_query_pict_index_values_reply_t *R
1177 ** @returns int
1178 **
1179 *****************************************************************************/
1180
1181int
1182xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R  /**< */)
1183{
1184    return R->num_values;
1185}
1186
1187
1188/*****************************************************************************
1189 **
1190 ** xcb_render_indexvalue_iterator_t xcb_render_query_pict_index_values_values_iterator
1191 **
1192 ** @param const xcb_render_query_pict_index_values_reply_t *R
1193 ** @returns xcb_render_indexvalue_iterator_t
1194 **
1195 *****************************************************************************/
1196
1197xcb_render_indexvalue_iterator_t
1198xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R  /**< */)
1199{
1200    xcb_render_indexvalue_iterator_t i;
1201    i.data = (xcb_render_indexvalue_t *) (R + 1);
1202    i.rem = R->num_values;
1203    i.index = (char *) i.data - (char *) R;
1204    return i;
1205}
1206
1207
1208/*****************************************************************************
1209 **
1210 ** xcb_render_query_pict_index_values_reply_t * xcb_render_query_pict_index_values_reply
1211 **
1212 ** @param xcb_connection_t                             *c
1213 ** @param xcb_render_query_pict_index_values_cookie_t   cookie
1214 ** @param xcb_generic_error_t                         **e
1215 ** @returns xcb_render_query_pict_index_values_reply_t *
1216 **
1217 *****************************************************************************/
1218
1219xcb_render_query_pict_index_values_reply_t *
1220xcb_render_query_pict_index_values_reply (xcb_connection_t                             *c  /**< */,
1221                                          xcb_render_query_pict_index_values_cookie_t   cookie  /**< */,
1222                                          xcb_generic_error_t                         **e  /**< */)
1223{
1224    return (xcb_render_query_pict_index_values_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1225}
1226
1227
1228/*****************************************************************************
1229 **
1230 ** xcb_void_cookie_t xcb_render_create_picture_checked
1231 **
1232 ** @param xcb_connection_t        *c
1233 ** @param xcb_render_picture_t     pid
1234 ** @param xcb_drawable_t           drawable
1235 ** @param xcb_render_pictformat_t  format
1236 ** @param uint32_t                 value_mask
1237 ** @param const uint32_t          *value_list
1238 ** @returns xcb_void_cookie_t
1239 **
1240 *****************************************************************************/
1241
1242xcb_void_cookie_t
1243xcb_render_create_picture_checked (xcb_connection_t        *c  /**< */,
1244                                   xcb_render_picture_t     pid  /**< */,
1245                                   xcb_drawable_t           drawable  /**< */,
1246                                   xcb_render_pictformat_t  format  /**< */,
1247                                   uint32_t                 value_mask  /**< */,
1248                                   const uint32_t          *value_list  /**< */)
1249{
1250    static const xcb_protocol_request_t xcb_req = {
1251        /* count */ 4,
1252        /* ext */ &xcb_render_id,
1253        /* opcode */ XCB_RENDER_CREATE_PICTURE,
1254        /* isvoid */ 1
1255    };
1256
1257    struct iovec xcb_parts[6];
1258    xcb_void_cookie_t xcb_ret;
1259    xcb_render_create_picture_request_t xcb_out;
1260
1261    xcb_out.pid = pid;
1262    xcb_out.drawable = drawable;
1263    xcb_out.format = format;
1264    xcb_out.value_mask = value_mask;
1265
1266    xcb_parts[2].iov_base = (char *) &xcb_out;
1267    xcb_parts[2].iov_len = sizeof(xcb_out);
1268    xcb_parts[3].iov_base = 0;
1269    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1270    xcb_parts[4].iov_base = (char *) value_list;
1271    xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t);
1272    xcb_parts[5].iov_base = 0;
1273    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1274    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1275    return xcb_ret;
1276}
1277
1278
1279/*****************************************************************************
1280 **
1281 ** xcb_void_cookie_t xcb_render_create_picture
1282 **
1283 ** @param xcb_connection_t        *c
1284 ** @param xcb_render_picture_t     pid
1285 ** @param xcb_drawable_t           drawable
1286 ** @param xcb_render_pictformat_t  format
1287 ** @param uint32_t                 value_mask
1288 ** @param const uint32_t          *value_list
1289 ** @returns xcb_void_cookie_t
1290 **
1291 *****************************************************************************/
1292
1293xcb_void_cookie_t
1294xcb_render_create_picture (xcb_connection_t        *c  /**< */,
1295                           xcb_render_picture_t     pid  /**< */,
1296                           xcb_drawable_t           drawable  /**< */,
1297                           xcb_render_pictformat_t  format  /**< */,
1298                           uint32_t                 value_mask  /**< */,
1299                           const uint32_t          *value_list  /**< */)
1300{
1301    static const xcb_protocol_request_t xcb_req = {
1302        /* count */ 4,
1303        /* ext */ &xcb_render_id,
1304        /* opcode */ XCB_RENDER_CREATE_PICTURE,
1305        /* isvoid */ 1
1306    };
1307
1308    struct iovec xcb_parts[6];
1309    xcb_void_cookie_t xcb_ret;
1310    xcb_render_create_picture_request_t xcb_out;
1311
1312    xcb_out.pid = pid;
1313    xcb_out.drawable = drawable;
1314    xcb_out.format = format;
1315    xcb_out.value_mask = value_mask;
1316
1317    xcb_parts[2].iov_base = (char *) &xcb_out;
1318    xcb_parts[2].iov_len = sizeof(xcb_out);
1319    xcb_parts[3].iov_base = 0;
1320    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1321    xcb_parts[4].iov_base = (char *) value_list;
1322    xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t);
1323    xcb_parts[5].iov_base = 0;
1324    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1325    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1326    return xcb_ret;
1327}
1328
1329
1330/*****************************************************************************
1331 **
1332 ** xcb_void_cookie_t xcb_render_change_picture_checked
1333 **
1334 ** @param xcb_connection_t     *c
1335 ** @param xcb_render_picture_t  picture
1336 ** @param uint32_t              value_mask
1337 ** @param const uint32_t       *value_list
1338 ** @returns xcb_void_cookie_t
1339 **
1340 *****************************************************************************/
1341
1342xcb_void_cookie_t
1343xcb_render_change_picture_checked (xcb_connection_t     *c  /**< */,
1344                                   xcb_render_picture_t  picture  /**< */,
1345                                   uint32_t              value_mask  /**< */,
1346                                   const uint32_t       *value_list  /**< */)
1347{
1348    static const xcb_protocol_request_t xcb_req = {
1349        /* count */ 4,
1350        /* ext */ &xcb_render_id,
1351        /* opcode */ XCB_RENDER_CHANGE_PICTURE,
1352        /* isvoid */ 1
1353    };
1354
1355    struct iovec xcb_parts[6];
1356    xcb_void_cookie_t xcb_ret;
1357    xcb_render_change_picture_request_t xcb_out;
1358
1359    xcb_out.picture = picture;
1360    xcb_out.value_mask = value_mask;
1361
1362    xcb_parts[2].iov_base = (char *) &xcb_out;
1363    xcb_parts[2].iov_len = sizeof(xcb_out);
1364    xcb_parts[3].iov_base = 0;
1365    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1366    xcb_parts[4].iov_base = (char *) value_list;
1367    xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t);
1368    xcb_parts[5].iov_base = 0;
1369    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1370    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1371    return xcb_ret;
1372}
1373
1374
1375/*****************************************************************************
1376 **
1377 ** xcb_void_cookie_t xcb_render_change_picture
1378 **
1379 ** @param xcb_connection_t     *c
1380 ** @param xcb_render_picture_t  picture
1381 ** @param uint32_t              value_mask
1382 ** @param const uint32_t       *value_list
1383 ** @returns xcb_void_cookie_t
1384 **
1385 *****************************************************************************/
1386
1387xcb_void_cookie_t
1388xcb_render_change_picture (xcb_connection_t     *c  /**< */,
1389                           xcb_render_picture_t  picture  /**< */,
1390                           uint32_t              value_mask  /**< */,
1391                           const uint32_t       *value_list  /**< */)
1392{
1393    static const xcb_protocol_request_t xcb_req = {
1394        /* count */ 4,
1395        /* ext */ &xcb_render_id,
1396        /* opcode */ XCB_RENDER_CHANGE_PICTURE,
1397        /* isvoid */ 1
1398    };
1399
1400    struct iovec xcb_parts[6];
1401    xcb_void_cookie_t xcb_ret;
1402    xcb_render_change_picture_request_t xcb_out;
1403
1404    xcb_out.picture = picture;
1405    xcb_out.value_mask = value_mask;
1406
1407    xcb_parts[2].iov_base = (char *) &xcb_out;
1408    xcb_parts[2].iov_len = sizeof(xcb_out);
1409    xcb_parts[3].iov_base = 0;
1410    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1411    xcb_parts[4].iov_base = (char *) value_list;
1412    xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t);
1413    xcb_parts[5].iov_base = 0;
1414    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1415    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1416    return xcb_ret;
1417}
1418
1419
1420/*****************************************************************************
1421 **
1422 ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles_checked
1423 **
1424 ** @param xcb_connection_t      *c
1425 ** @param xcb_render_picture_t   picture
1426 ** @param int16_t                clip_x_origin
1427 ** @param int16_t                clip_y_origin
1428 ** @param uint32_t               rectangles_len
1429 ** @param const xcb_rectangle_t *rectangles
1430 ** @returns xcb_void_cookie_t
1431 **
1432 *****************************************************************************/
1433
1434xcb_void_cookie_t
1435xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t      *c  /**< */,
1436                                                xcb_render_picture_t   picture  /**< */,
1437                                                int16_t                clip_x_origin  /**< */,
1438                                                int16_t                clip_y_origin  /**< */,
1439                                                uint32_t               rectangles_len  /**< */,
1440                                                const xcb_rectangle_t *rectangles  /**< */)
1441{
1442    static const xcb_protocol_request_t xcb_req = {
1443        /* count */ 4,
1444        /* ext */ &xcb_render_id,
1445        /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES,
1446        /* isvoid */ 1
1447    };
1448
1449    struct iovec xcb_parts[6];
1450    xcb_void_cookie_t xcb_ret;
1451    xcb_render_set_picture_clip_rectangles_request_t xcb_out;
1452
1453    xcb_out.picture = picture;
1454    xcb_out.clip_x_origin = clip_x_origin;
1455    xcb_out.clip_y_origin = clip_y_origin;
1456
1457    xcb_parts[2].iov_base = (char *) &xcb_out;
1458    xcb_parts[2].iov_len = sizeof(xcb_out);
1459    xcb_parts[3].iov_base = 0;
1460    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1461    xcb_parts[4].iov_base = (char *) rectangles;
1462    xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
1463    xcb_parts[5].iov_base = 0;
1464    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1465    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1466    return xcb_ret;
1467}
1468
1469
1470/*****************************************************************************
1471 **
1472 ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles
1473 **
1474 ** @param xcb_connection_t      *c
1475 ** @param xcb_render_picture_t   picture
1476 ** @param int16_t                clip_x_origin
1477 ** @param int16_t                clip_y_origin
1478 ** @param uint32_t               rectangles_len
1479 ** @param const xcb_rectangle_t *rectangles
1480 ** @returns xcb_void_cookie_t
1481 **
1482 *****************************************************************************/
1483
1484xcb_void_cookie_t
1485xcb_render_set_picture_clip_rectangles (xcb_connection_t      *c  /**< */,
1486                                        xcb_render_picture_t   picture  /**< */,
1487                                        int16_t                clip_x_origin  /**< */,
1488                                        int16_t                clip_y_origin  /**< */,
1489                                        uint32_t               rectangles_len  /**< */,
1490                                        const xcb_rectangle_t *rectangles  /**< */)
1491{
1492    static const xcb_protocol_request_t xcb_req = {
1493        /* count */ 4,
1494        /* ext */ &xcb_render_id,
1495        /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES,
1496        /* isvoid */ 1
1497    };
1498
1499    struct iovec xcb_parts[6];
1500    xcb_void_cookie_t xcb_ret;
1501    xcb_render_set_picture_clip_rectangles_request_t xcb_out;
1502
1503    xcb_out.picture = picture;
1504    xcb_out.clip_x_origin = clip_x_origin;
1505    xcb_out.clip_y_origin = clip_y_origin;
1506
1507    xcb_parts[2].iov_base = (char *) &xcb_out;
1508    xcb_parts[2].iov_len = sizeof(xcb_out);
1509    xcb_parts[3].iov_base = 0;
1510    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1511    xcb_parts[4].iov_base = (char *) rectangles;
1512    xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
1513    xcb_parts[5].iov_base = 0;
1514    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1515    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1516    return xcb_ret;
1517}
1518
1519
1520/*****************************************************************************
1521 **
1522 ** xcb_void_cookie_t xcb_render_free_picture_checked
1523 **
1524 ** @param xcb_connection_t     *c
1525 ** @param xcb_render_picture_t  picture
1526 ** @returns xcb_void_cookie_t
1527 **
1528 *****************************************************************************/
1529
1530xcb_void_cookie_t
1531xcb_render_free_picture_checked (xcb_connection_t     *c  /**< */,
1532                                 xcb_render_picture_t  picture  /**< */)
1533{
1534    static const xcb_protocol_request_t xcb_req = {
1535        /* count */ 2,
1536        /* ext */ &xcb_render_id,
1537        /* opcode */ XCB_RENDER_FREE_PICTURE,
1538        /* isvoid */ 1
1539    };
1540
1541    struct iovec xcb_parts[4];
1542    xcb_void_cookie_t xcb_ret;
1543    xcb_render_free_picture_request_t xcb_out;
1544
1545    xcb_out.picture = picture;
1546
1547    xcb_parts[2].iov_base = (char *) &xcb_out;
1548    xcb_parts[2].iov_len = sizeof(xcb_out);
1549    xcb_parts[3].iov_base = 0;
1550    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1551    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1552    return xcb_ret;
1553}
1554
1555
1556/*****************************************************************************
1557 **
1558 ** xcb_void_cookie_t xcb_render_free_picture
1559 **
1560 ** @param xcb_connection_t     *c
1561 ** @param xcb_render_picture_t  picture
1562 ** @returns xcb_void_cookie_t
1563 **
1564 *****************************************************************************/
1565
1566xcb_void_cookie_t
1567xcb_render_free_picture (xcb_connection_t     *c  /**< */,
1568                         xcb_render_picture_t  picture  /**< */)
1569{
1570    static const xcb_protocol_request_t xcb_req = {
1571        /* count */ 2,
1572        /* ext */ &xcb_render_id,
1573        /* opcode */ XCB_RENDER_FREE_PICTURE,
1574        /* isvoid */ 1
1575    };
1576
1577    struct iovec xcb_parts[4];
1578    xcb_void_cookie_t xcb_ret;
1579    xcb_render_free_picture_request_t xcb_out;
1580
1581    xcb_out.picture = picture;
1582
1583    xcb_parts[2].iov_base = (char *) &xcb_out;
1584    xcb_parts[2].iov_len = sizeof(xcb_out);
1585    xcb_parts[3].iov_base = 0;
1586    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1587    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1588    return xcb_ret;
1589}
1590
1591
1592/*****************************************************************************
1593 **
1594 ** xcb_void_cookie_t xcb_render_composite_checked
1595 **
1596 ** @param xcb_connection_t     *c
1597 ** @param uint8_t               op
1598 ** @param xcb_render_picture_t  src
1599 ** @param xcb_render_picture_t  mask
1600 ** @param xcb_render_picture_t  dst
1601 ** @param int16_t               src_x
1602 ** @param int16_t               src_y
1603 ** @param int16_t               mask_x
1604 ** @param int16_t               mask_y
1605 ** @param int16_t               dst_x
1606 ** @param int16_t               dst_y
1607 ** @param uint16_t              width
1608 ** @param uint16_t              height
1609 ** @returns xcb_void_cookie_t
1610 **
1611 *****************************************************************************/
1612
1613xcb_void_cookie_t
1614xcb_render_composite_checked (xcb_connection_t     *c  /**< */,
1615                              uint8_t               op  /**< */,
1616                              xcb_render_picture_t  src  /**< */,
1617                              xcb_render_picture_t  mask  /**< */,
1618                              xcb_render_picture_t  dst  /**< */,
1619                              int16_t               src_x  /**< */,
1620                              int16_t               src_y  /**< */,
1621                              int16_t               mask_x  /**< */,
1622                              int16_t               mask_y  /**< */,
1623                              int16_t               dst_x  /**< */,
1624                              int16_t               dst_y  /**< */,
1625                              uint16_t              width  /**< */,
1626                              uint16_t              height  /**< */)
1627{
1628    static const xcb_protocol_request_t xcb_req = {
1629        /* count */ 2,
1630        /* ext */ &xcb_render_id,
1631        /* opcode */ XCB_RENDER_COMPOSITE,
1632        /* isvoid */ 1
1633    };
1634
1635    struct iovec xcb_parts[4];
1636    xcb_void_cookie_t xcb_ret;
1637    xcb_render_composite_request_t xcb_out;
1638
1639    xcb_out.op = op;
1640    memset(xcb_out.pad0, 0, 3);
1641    xcb_out.src = src;
1642    xcb_out.mask = mask;
1643    xcb_out.dst = dst;
1644    xcb_out.src_x = src_x;
1645    xcb_out.src_y = src_y;
1646    xcb_out.mask_x = mask_x;
1647    xcb_out.mask_y = mask_y;
1648    xcb_out.dst_x = dst_x;
1649    xcb_out.dst_y = dst_y;
1650    xcb_out.width = width;
1651    xcb_out.height = height;
1652
1653    xcb_parts[2].iov_base = (char *) &xcb_out;
1654    xcb_parts[2].iov_len = sizeof(xcb_out);
1655    xcb_parts[3].iov_base = 0;
1656    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1657    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1658    return xcb_ret;
1659}
1660
1661
1662/*****************************************************************************
1663 **
1664 ** xcb_void_cookie_t xcb_render_composite
1665 **
1666 ** @param xcb_connection_t     *c
1667 ** @param uint8_t               op
1668 ** @param xcb_render_picture_t  src
1669 ** @param xcb_render_picture_t  mask
1670 ** @param xcb_render_picture_t  dst
1671 ** @param int16_t               src_x
1672 ** @param int16_t               src_y
1673 ** @param int16_t               mask_x
1674 ** @param int16_t               mask_y
1675 ** @param int16_t               dst_x
1676 ** @param int16_t               dst_y
1677 ** @param uint16_t              width
1678 ** @param uint16_t              height
1679 ** @returns xcb_void_cookie_t
1680 **
1681 *****************************************************************************/
1682
1683xcb_void_cookie_t
1684xcb_render_composite (xcb_connection_t     *c  /**< */,
1685                      uint8_t               op  /**< */,
1686                      xcb_render_picture_t  src  /**< */,
1687                      xcb_render_picture_t  mask  /**< */,
1688                      xcb_render_picture_t  dst  /**< */,
1689                      int16_t               src_x  /**< */,
1690                      int16_t               src_y  /**< */,
1691                      int16_t               mask_x  /**< */,
1692                      int16_t               mask_y  /**< */,
1693                      int16_t               dst_x  /**< */,
1694                      int16_t               dst_y  /**< */,
1695                      uint16_t              width  /**< */,
1696                      uint16_t              height  /**< */)
1697{
1698    static const xcb_protocol_request_t xcb_req = {
1699        /* count */ 2,
1700        /* ext */ &xcb_render_id,
1701        /* opcode */ XCB_RENDER_COMPOSITE,
1702        /* isvoid */ 1
1703    };
1704
1705    struct iovec xcb_parts[4];
1706    xcb_void_cookie_t xcb_ret;
1707    xcb_render_composite_request_t xcb_out;
1708
1709    xcb_out.op = op;
1710    memset(xcb_out.pad0, 0, 3);
1711    xcb_out.src = src;
1712    xcb_out.mask = mask;
1713    xcb_out.dst = dst;
1714    xcb_out.src_x = src_x;
1715    xcb_out.src_y = src_y;
1716    xcb_out.mask_x = mask_x;
1717    xcb_out.mask_y = mask_y;
1718    xcb_out.dst_x = dst_x;
1719    xcb_out.dst_y = dst_y;
1720    xcb_out.width = width;
1721    xcb_out.height = height;
1722
1723    xcb_parts[2].iov_base = (char *) &xcb_out;
1724    xcb_parts[2].iov_len = sizeof(xcb_out);
1725    xcb_parts[3].iov_base = 0;
1726    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1727    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1728    return xcb_ret;
1729}
1730
1731
1732/*****************************************************************************
1733 **
1734 ** xcb_void_cookie_t xcb_render_trapezoids_checked
1735 **
1736 ** @param xcb_connection_t             *c
1737 ** @param uint8_t                       op
1738 ** @param xcb_render_picture_t          src
1739 ** @param xcb_render_picture_t          dst
1740 ** @param xcb_render_pictformat_t       mask_format
1741 ** @param int16_t                       src_x
1742 ** @param int16_t                       src_y
1743 ** @param uint32_t                      traps_len
1744 ** @param const xcb_render_trapezoid_t *traps
1745 ** @returns xcb_void_cookie_t
1746 **
1747 *****************************************************************************/
1748
1749xcb_void_cookie_t
1750xcb_render_trapezoids_checked (xcb_connection_t             *c  /**< */,
1751                               uint8_t                       op  /**< */,
1752                               xcb_render_picture_t          src  /**< */,
1753                               xcb_render_picture_t          dst  /**< */,
1754                               xcb_render_pictformat_t       mask_format  /**< */,
1755                               int16_t                       src_x  /**< */,
1756                               int16_t                       src_y  /**< */,
1757                               uint32_t                      traps_len  /**< */,
1758                               const xcb_render_trapezoid_t *traps  /**< */)
1759{
1760    static const xcb_protocol_request_t xcb_req = {
1761        /* count */ 4,
1762        /* ext */ &xcb_render_id,
1763        /* opcode */ XCB_RENDER_TRAPEZOIDS,
1764        /* isvoid */ 1
1765    };
1766
1767    struct iovec xcb_parts[6];
1768    xcb_void_cookie_t xcb_ret;
1769    xcb_render_trapezoids_request_t xcb_out;
1770
1771    xcb_out.op = op;
1772    memset(xcb_out.pad0, 0, 3);
1773    xcb_out.src = src;
1774    xcb_out.dst = dst;
1775    xcb_out.mask_format = mask_format;
1776    xcb_out.src_x = src_x;
1777    xcb_out.src_y = src_y;
1778
1779    xcb_parts[2].iov_base = (char *) &xcb_out;
1780    xcb_parts[2].iov_len = sizeof(xcb_out);
1781    xcb_parts[3].iov_base = 0;
1782    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1783    xcb_parts[4].iov_base = (char *) traps;
1784    xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t);
1785    xcb_parts[5].iov_base = 0;
1786    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1787    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1788    return xcb_ret;
1789}
1790
1791
1792/*****************************************************************************
1793 **
1794 ** xcb_void_cookie_t xcb_render_trapezoids
1795 **
1796 ** @param xcb_connection_t             *c
1797 ** @param uint8_t                       op
1798 ** @param xcb_render_picture_t          src
1799 ** @param xcb_render_picture_t          dst
1800 ** @param xcb_render_pictformat_t       mask_format
1801 ** @param int16_t                       src_x
1802 ** @param int16_t                       src_y
1803 ** @param uint32_t                      traps_len
1804 ** @param const xcb_render_trapezoid_t *traps
1805 ** @returns xcb_void_cookie_t
1806 **
1807 *****************************************************************************/
1808
1809xcb_void_cookie_t
1810xcb_render_trapezoids (xcb_connection_t             *c  /**< */,
1811                       uint8_t                       op  /**< */,
1812                       xcb_render_picture_t          src  /**< */,
1813                       xcb_render_picture_t          dst  /**< */,
1814                       xcb_render_pictformat_t       mask_format  /**< */,
1815                       int16_t                       src_x  /**< */,
1816                       int16_t                       src_y  /**< */,
1817                       uint32_t                      traps_len  /**< */,
1818                       const xcb_render_trapezoid_t *traps  /**< */)
1819{
1820    static const xcb_protocol_request_t xcb_req = {
1821        /* count */ 4,
1822        /* ext */ &xcb_render_id,
1823        /* opcode */ XCB_RENDER_TRAPEZOIDS,
1824        /* isvoid */ 1
1825    };
1826
1827    struct iovec xcb_parts[6];
1828    xcb_void_cookie_t xcb_ret;
1829    xcb_render_trapezoids_request_t xcb_out;
1830
1831    xcb_out.op = op;
1832    memset(xcb_out.pad0, 0, 3);
1833    xcb_out.src = src;
1834    xcb_out.dst = dst;
1835    xcb_out.mask_format = mask_format;
1836    xcb_out.src_x = src_x;
1837    xcb_out.src_y = src_y;
1838
1839    xcb_parts[2].iov_base = (char *) &xcb_out;
1840    xcb_parts[2].iov_len = sizeof(xcb_out);
1841    xcb_parts[3].iov_base = 0;
1842    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1843    xcb_parts[4].iov_base = (char *) traps;
1844    xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t);
1845    xcb_parts[5].iov_base = 0;
1846    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1847    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1848    return xcb_ret;
1849}
1850
1851
1852/*****************************************************************************
1853 **
1854 ** xcb_void_cookie_t xcb_render_triangles_checked
1855 **
1856 ** @param xcb_connection_t            *c
1857 ** @param uint8_t                      op
1858 ** @param xcb_render_picture_t         src
1859 ** @param xcb_render_picture_t         dst
1860 ** @param xcb_render_pictformat_t      mask_format
1861 ** @param int16_t                      src_x
1862 ** @param int16_t                      src_y
1863 ** @param uint32_t                     triangles_len
1864 ** @param const xcb_render_triangle_t *triangles
1865 ** @returns xcb_void_cookie_t
1866 **
1867 *****************************************************************************/
1868
1869xcb_void_cookie_t
1870xcb_render_triangles_checked (xcb_connection_t            *c  /**< */,
1871                              uint8_t                      op  /**< */,
1872                              xcb_render_picture_t         src  /**< */,
1873                              xcb_render_picture_t         dst  /**< */,
1874                              xcb_render_pictformat_t      mask_format  /**< */,
1875                              int16_t                      src_x  /**< */,
1876                              int16_t                      src_y  /**< */,
1877                              uint32_t                     triangles_len  /**< */,
1878                              const xcb_render_triangle_t *triangles  /**< */)
1879{
1880    static const xcb_protocol_request_t xcb_req = {
1881        /* count */ 4,
1882        /* ext */ &xcb_render_id,
1883        /* opcode */ XCB_RENDER_TRIANGLES,
1884        /* isvoid */ 1
1885    };
1886
1887    struct iovec xcb_parts[6];
1888    xcb_void_cookie_t xcb_ret;
1889    xcb_render_triangles_request_t xcb_out;
1890
1891    xcb_out.op = op;
1892    memset(xcb_out.pad0, 0, 3);
1893    xcb_out.src = src;
1894    xcb_out.dst = dst;
1895    xcb_out.mask_format = mask_format;
1896    xcb_out.src_x = src_x;
1897    xcb_out.src_y = src_y;
1898
1899    xcb_parts[2].iov_base = (char *) &xcb_out;
1900    xcb_parts[2].iov_len = sizeof(xcb_out);
1901    xcb_parts[3].iov_base = 0;
1902    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1903    xcb_parts[4].iov_base = (char *) triangles;
1904    xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t);
1905    xcb_parts[5].iov_base = 0;
1906    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1907    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1908    return xcb_ret;
1909}
1910
1911
1912/*****************************************************************************
1913 **
1914 ** xcb_void_cookie_t xcb_render_triangles
1915 **
1916 ** @param xcb_connection_t            *c
1917 ** @param uint8_t                      op
1918 ** @param xcb_render_picture_t         src
1919 ** @param xcb_render_picture_t         dst
1920 ** @param xcb_render_pictformat_t      mask_format
1921 ** @param int16_t                      src_x
1922 ** @param int16_t                      src_y
1923 ** @param uint32_t                     triangles_len
1924 ** @param const xcb_render_triangle_t *triangles
1925 ** @returns xcb_void_cookie_t
1926 **
1927 *****************************************************************************/
1928
1929xcb_void_cookie_t
1930xcb_render_triangles (xcb_connection_t            *c  /**< */,
1931                      uint8_t                      op  /**< */,
1932                      xcb_render_picture_t         src  /**< */,
1933                      xcb_render_picture_t         dst  /**< */,
1934                      xcb_render_pictformat_t      mask_format  /**< */,
1935                      int16_t                      src_x  /**< */,
1936                      int16_t                      src_y  /**< */,
1937                      uint32_t                     triangles_len  /**< */,
1938                      const xcb_render_triangle_t *triangles  /**< */)
1939{
1940    static const xcb_protocol_request_t xcb_req = {
1941        /* count */ 4,
1942        /* ext */ &xcb_render_id,
1943        /* opcode */ XCB_RENDER_TRIANGLES,
1944        /* isvoid */ 1
1945    };
1946
1947    struct iovec xcb_parts[6];
1948    xcb_void_cookie_t xcb_ret;
1949    xcb_render_triangles_request_t xcb_out;
1950
1951    xcb_out.op = op;
1952    memset(xcb_out.pad0, 0, 3);
1953    xcb_out.src = src;
1954    xcb_out.dst = dst;
1955    xcb_out.mask_format = mask_format;
1956    xcb_out.src_x = src_x;
1957    xcb_out.src_y = src_y;
1958
1959    xcb_parts[2].iov_base = (char *) &xcb_out;
1960    xcb_parts[2].iov_len = sizeof(xcb_out);
1961    xcb_parts[3].iov_base = 0;
1962    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1963    xcb_parts[4].iov_base = (char *) triangles;
1964    xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t);
1965    xcb_parts[5].iov_base = 0;
1966    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1967    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1968    return xcb_ret;
1969}
1970
1971
1972/*****************************************************************************
1973 **
1974 ** xcb_void_cookie_t xcb_render_tri_strip_checked
1975 **
1976 ** @param xcb_connection_t            *c
1977 ** @param uint8_t                      op
1978 ** @param xcb_render_picture_t         src
1979 ** @param xcb_render_picture_t         dst
1980 ** @param xcb_render_pictformat_t      mask_format
1981 ** @param int16_t                      src_x
1982 ** @param int16_t                      src_y
1983 ** @param uint32_t                     points_len
1984 ** @param const xcb_render_pointfix_t *points
1985 ** @returns xcb_void_cookie_t
1986 **
1987 *****************************************************************************/
1988
1989xcb_void_cookie_t
1990xcb_render_tri_strip_checked (xcb_connection_t            *c  /**< */,
1991                              uint8_t                      op  /**< */,
1992                              xcb_render_picture_t         src  /**< */,
1993                              xcb_render_picture_t         dst  /**< */,
1994                              xcb_render_pictformat_t      mask_format  /**< */,
1995                              int16_t                      src_x  /**< */,
1996                              int16_t                      src_y  /**< */,
1997                              uint32_t                     points_len  /**< */,
1998                              const xcb_render_pointfix_t *points  /**< */)
1999{
2000    static const xcb_protocol_request_t xcb_req = {
2001        /* count */ 4,
2002        /* ext */ &xcb_render_id,
2003        /* opcode */ XCB_RENDER_TRI_STRIP,
2004        /* isvoid */ 1
2005    };
2006
2007    struct iovec xcb_parts[6];
2008    xcb_void_cookie_t xcb_ret;
2009    xcb_render_tri_strip_request_t xcb_out;
2010
2011    xcb_out.op = op;
2012    memset(xcb_out.pad0, 0, 3);
2013    xcb_out.src = src;
2014    xcb_out.dst = dst;
2015    xcb_out.mask_format = mask_format;
2016    xcb_out.src_x = src_x;
2017    xcb_out.src_y = src_y;
2018
2019    xcb_parts[2].iov_base = (char *) &xcb_out;
2020    xcb_parts[2].iov_len = sizeof(xcb_out);
2021    xcb_parts[3].iov_base = 0;
2022    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2023    xcb_parts[4].iov_base = (char *) points;
2024    xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t);
2025    xcb_parts[5].iov_base = 0;
2026    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2027    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2028    return xcb_ret;
2029}
2030
2031
2032/*****************************************************************************
2033 **
2034 ** xcb_void_cookie_t xcb_render_tri_strip
2035 **
2036 ** @param xcb_connection_t            *c
2037 ** @param uint8_t                      op
2038 ** @param xcb_render_picture_t         src
2039 ** @param xcb_render_picture_t         dst
2040 ** @param xcb_render_pictformat_t      mask_format
2041 ** @param int16_t                      src_x
2042 ** @param int16_t                      src_y
2043 ** @param uint32_t                     points_len
2044 ** @param const xcb_render_pointfix_t *points
2045 ** @returns xcb_void_cookie_t
2046 **
2047 *****************************************************************************/
2048
2049xcb_void_cookie_t
2050xcb_render_tri_strip (xcb_connection_t            *c  /**< */,
2051                      uint8_t                      op  /**< */,
2052                      xcb_render_picture_t         src  /**< */,
2053                      xcb_render_picture_t         dst  /**< */,
2054                      xcb_render_pictformat_t      mask_format  /**< */,
2055                      int16_t                      src_x  /**< */,
2056                      int16_t                      src_y  /**< */,
2057                      uint32_t                     points_len  /**< */,
2058                      const xcb_render_pointfix_t *points  /**< */)
2059{
2060    static const xcb_protocol_request_t xcb_req = {
2061        /* count */ 4,
2062        /* ext */ &xcb_render_id,
2063        /* opcode */ XCB_RENDER_TRI_STRIP,
2064        /* isvoid */ 1
2065    };
2066
2067    struct iovec xcb_parts[6];
2068    xcb_void_cookie_t xcb_ret;
2069    xcb_render_tri_strip_request_t xcb_out;
2070
2071    xcb_out.op = op;
2072    memset(xcb_out.pad0, 0, 3);
2073    xcb_out.src = src;
2074    xcb_out.dst = dst;
2075    xcb_out.mask_format = mask_format;
2076    xcb_out.src_x = src_x;
2077    xcb_out.src_y = src_y;
2078
2079    xcb_parts[2].iov_base = (char *) &xcb_out;
2080    xcb_parts[2].iov_len = sizeof(xcb_out);
2081    xcb_parts[3].iov_base = 0;
2082    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2083    xcb_parts[4].iov_base = (char *) points;
2084    xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t);
2085    xcb_parts[5].iov_base = 0;
2086    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2087    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2088    return xcb_ret;
2089}
2090
2091
2092/*****************************************************************************
2093 **
2094 ** xcb_void_cookie_t xcb_render_tri_fan_checked
2095 **
2096 ** @param xcb_connection_t            *c
2097 ** @param uint8_t                      op
2098 ** @param xcb_render_picture_t         src
2099 ** @param xcb_render_picture_t         dst
2100 ** @param xcb_render_pictformat_t      mask_format
2101 ** @param int16_t                      src_x
2102 ** @param int16_t                      src_y
2103 ** @param uint32_t                     points_len
2104 ** @param const xcb_render_pointfix_t *points
2105 ** @returns xcb_void_cookie_t
2106 **
2107 *****************************************************************************/
2108
2109xcb_void_cookie_t
2110xcb_render_tri_fan_checked (xcb_connection_t            *c  /**< */,
2111                            uint8_t                      op  /**< */,
2112                            xcb_render_picture_t         src  /**< */,
2113                            xcb_render_picture_t         dst  /**< */,
2114                            xcb_render_pictformat_t      mask_format  /**< */,
2115                            int16_t                      src_x  /**< */,
2116                            int16_t                      src_y  /**< */,
2117                            uint32_t                     points_len  /**< */,
2118                            const xcb_render_pointfix_t *points  /**< */)
2119{
2120    static const xcb_protocol_request_t xcb_req = {
2121        /* count */ 4,
2122        /* ext */ &xcb_render_id,
2123        /* opcode */ XCB_RENDER_TRI_FAN,
2124        /* isvoid */ 1
2125    };
2126
2127    struct iovec xcb_parts[6];
2128    xcb_void_cookie_t xcb_ret;
2129    xcb_render_tri_fan_request_t xcb_out;
2130
2131    xcb_out.op = op;
2132    memset(xcb_out.pad0, 0, 3);
2133    xcb_out.src = src;
2134    xcb_out.dst = dst;
2135    xcb_out.mask_format = mask_format;
2136    xcb_out.src_x = src_x;
2137    xcb_out.src_y = src_y;
2138
2139    xcb_parts[2].iov_base = (char *) &xcb_out;
2140    xcb_parts[2].iov_len = sizeof(xcb_out);
2141    xcb_parts[3].iov_base = 0;
2142    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2143    xcb_parts[4].iov_base = (char *) points;
2144    xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t);
2145    xcb_parts[5].iov_base = 0;
2146    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2147    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2148    return xcb_ret;
2149}
2150
2151
2152/*****************************************************************************
2153 **
2154 ** xcb_void_cookie_t xcb_render_tri_fan
2155 **
2156 ** @param xcb_connection_t            *c
2157 ** @param uint8_t                      op
2158 ** @param xcb_render_picture_t         src
2159 ** @param xcb_render_picture_t         dst
2160 ** @param xcb_render_pictformat_t      mask_format
2161 ** @param int16_t                      src_x
2162 ** @param int16_t                      src_y
2163 ** @param uint32_t                     points_len
2164 ** @param const xcb_render_pointfix_t *points
2165 ** @returns xcb_void_cookie_t
2166 **
2167 *****************************************************************************/
2168
2169xcb_void_cookie_t
2170xcb_render_tri_fan (xcb_connection_t            *c  /**< */,
2171                    uint8_t                      op  /**< */,
2172                    xcb_render_picture_t         src  /**< */,
2173                    xcb_render_picture_t         dst  /**< */,
2174                    xcb_render_pictformat_t      mask_format  /**< */,
2175                    int16_t                      src_x  /**< */,
2176                    int16_t                      src_y  /**< */,
2177                    uint32_t                     points_len  /**< */,
2178                    const xcb_render_pointfix_t *points  /**< */)
2179{
2180    static const xcb_protocol_request_t xcb_req = {
2181        /* count */ 4,
2182        /* ext */ &xcb_render_id,
2183        /* opcode */ XCB_RENDER_TRI_FAN,
2184        /* isvoid */ 1
2185    };
2186
2187    struct iovec xcb_parts[6];
2188    xcb_void_cookie_t xcb_ret;
2189    xcb_render_tri_fan_request_t xcb_out;
2190
2191    xcb_out.op = op;
2192    memset(xcb_out.pad0, 0, 3);
2193    xcb_out.src = src;
2194    xcb_out.dst = dst;
2195    xcb_out.mask_format = mask_format;
2196    xcb_out.src_x = src_x;
2197    xcb_out.src_y = src_y;
2198
2199    xcb_parts[2].iov_base = (char *) &xcb_out;
2200    xcb_parts[2].iov_len = sizeof(xcb_out);
2201    xcb_parts[3].iov_base = 0;
2202    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2203    xcb_parts[4].iov_base = (char *) points;
2204    xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t);
2205    xcb_parts[5].iov_base = 0;
2206    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2207    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2208    return xcb_ret;
2209}
2210
2211
2212/*****************************************************************************
2213 **
2214 ** xcb_void_cookie_t xcb_render_create_glyph_set_checked
2215 **
2216 ** @param xcb_connection_t        *c
2217 ** @param xcb_render_glyphset_t    gsid
2218 ** @param xcb_render_pictformat_t  format
2219 ** @returns xcb_void_cookie_t
2220 **
2221 *****************************************************************************/
2222
2223xcb_void_cookie_t
2224xcb_render_create_glyph_set_checked (xcb_connection_t        *c  /**< */,
2225                                     xcb_render_glyphset_t    gsid  /**< */,
2226                                     xcb_render_pictformat_t  format  /**< */)
2227{
2228    static const xcb_protocol_request_t xcb_req = {
2229        /* count */ 2,
2230        /* ext */ &xcb_render_id,
2231        /* opcode */ XCB_RENDER_CREATE_GLYPH_SET,
2232        /* isvoid */ 1
2233    };
2234
2235    struct iovec xcb_parts[4];
2236    xcb_void_cookie_t xcb_ret;
2237    xcb_render_create_glyph_set_request_t xcb_out;
2238
2239    xcb_out.gsid = gsid;
2240    xcb_out.format = format;
2241
2242    xcb_parts[2].iov_base = (char *) &xcb_out;
2243    xcb_parts[2].iov_len = sizeof(xcb_out);
2244    xcb_parts[3].iov_base = 0;
2245    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2246    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2247    return xcb_ret;
2248}
2249
2250
2251/*****************************************************************************
2252 **
2253 ** xcb_void_cookie_t xcb_render_create_glyph_set
2254 **
2255 ** @param xcb_connection_t        *c
2256 ** @param xcb_render_glyphset_t    gsid
2257 ** @param xcb_render_pictformat_t  format
2258 ** @returns xcb_void_cookie_t
2259 **
2260 *****************************************************************************/
2261
2262xcb_void_cookie_t
2263xcb_render_create_glyph_set (xcb_connection_t        *c  /**< */,
2264                             xcb_render_glyphset_t    gsid  /**< */,
2265                             xcb_render_pictformat_t  format  /**< */)
2266{
2267    static const xcb_protocol_request_t xcb_req = {
2268        /* count */ 2,
2269        /* ext */ &xcb_render_id,
2270        /* opcode */ XCB_RENDER_CREATE_GLYPH_SET,
2271        /* isvoid */ 1
2272    };
2273
2274    struct iovec xcb_parts[4];
2275    xcb_void_cookie_t xcb_ret;
2276    xcb_render_create_glyph_set_request_t xcb_out;
2277
2278    xcb_out.gsid = gsid;
2279    xcb_out.format = format;
2280
2281    xcb_parts[2].iov_base = (char *) &xcb_out;
2282    xcb_parts[2].iov_len = sizeof(xcb_out);
2283    xcb_parts[3].iov_base = 0;
2284    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2285    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2286    return xcb_ret;
2287}
2288
2289
2290/*****************************************************************************
2291 **
2292 ** xcb_void_cookie_t xcb_render_reference_glyph_set_checked
2293 **
2294 ** @param xcb_connection_t      *c
2295 ** @param xcb_render_glyphset_t  gsid
2296 ** @param xcb_render_glyphset_t  existing
2297 ** @returns xcb_void_cookie_t
2298 **
2299 *****************************************************************************/
2300
2301xcb_void_cookie_t
2302xcb_render_reference_glyph_set_checked (xcb_connection_t      *c  /**< */,
2303                                        xcb_render_glyphset_t  gsid  /**< */,
2304                                        xcb_render_glyphset_t  existing  /**< */)
2305{
2306    static const xcb_protocol_request_t xcb_req = {
2307        /* count */ 2,
2308        /* ext */ &xcb_render_id,
2309        /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET,
2310        /* isvoid */ 1
2311    };
2312
2313    struct iovec xcb_parts[4];
2314    xcb_void_cookie_t xcb_ret;
2315    xcb_render_reference_glyph_set_request_t xcb_out;
2316
2317    xcb_out.gsid = gsid;
2318    xcb_out.existing = existing;
2319
2320    xcb_parts[2].iov_base = (char *) &xcb_out;
2321    xcb_parts[2].iov_len = sizeof(xcb_out);
2322    xcb_parts[3].iov_base = 0;
2323    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2324    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2325    return xcb_ret;
2326}
2327
2328
2329/*****************************************************************************
2330 **
2331 ** xcb_void_cookie_t xcb_render_reference_glyph_set
2332 **
2333 ** @param xcb_connection_t      *c
2334 ** @param xcb_render_glyphset_t  gsid
2335 ** @param xcb_render_glyphset_t  existing
2336 ** @returns xcb_void_cookie_t
2337 **
2338 *****************************************************************************/
2339
2340xcb_void_cookie_t
2341xcb_render_reference_glyph_set (xcb_connection_t      *c  /**< */,
2342                                xcb_render_glyphset_t  gsid  /**< */,
2343                                xcb_render_glyphset_t  existing  /**< */)
2344{
2345    static const xcb_protocol_request_t xcb_req = {
2346        /* count */ 2,
2347        /* ext */ &xcb_render_id,
2348        /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET,
2349        /* isvoid */ 1
2350    };
2351
2352    struct iovec xcb_parts[4];
2353    xcb_void_cookie_t xcb_ret;
2354    xcb_render_reference_glyph_set_request_t xcb_out;
2355
2356    xcb_out.gsid = gsid;
2357    xcb_out.existing = existing;
2358
2359    xcb_parts[2].iov_base = (char *) &xcb_out;
2360    xcb_parts[2].iov_len = sizeof(xcb_out);
2361    xcb_parts[3].iov_base = 0;
2362    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2363    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2364    return xcb_ret;
2365}
2366
2367
2368/*****************************************************************************
2369 **
2370 ** xcb_void_cookie_t xcb_render_free_glyph_set_checked
2371 **
2372 ** @param xcb_connection_t      *c
2373 ** @param xcb_render_glyphset_t  glyphset
2374 ** @returns xcb_void_cookie_t
2375 **
2376 *****************************************************************************/
2377
2378xcb_void_cookie_t
2379xcb_render_free_glyph_set_checked (xcb_connection_t      *c  /**< */,
2380                                   xcb_render_glyphset_t  glyphset  /**< */)
2381{
2382    static const xcb_protocol_request_t xcb_req = {
2383        /* count */ 2,
2384        /* ext */ &xcb_render_id,
2385        /* opcode */ XCB_RENDER_FREE_GLYPH_SET,
2386        /* isvoid */ 1
2387    };
2388
2389    struct iovec xcb_parts[4];
2390    xcb_void_cookie_t xcb_ret;
2391    xcb_render_free_glyph_set_request_t xcb_out;
2392
2393    xcb_out.glyphset = glyphset;
2394
2395    xcb_parts[2].iov_base = (char *) &xcb_out;
2396    xcb_parts[2].iov_len = sizeof(xcb_out);
2397    xcb_parts[3].iov_base = 0;
2398    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2399    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2400    return xcb_ret;
2401}
2402
2403
2404/*****************************************************************************
2405 **
2406 ** xcb_void_cookie_t xcb_render_free_glyph_set
2407 **
2408 ** @param xcb_connection_t      *c
2409 ** @param xcb_render_glyphset_t  glyphset
2410 ** @returns xcb_void_cookie_t
2411 **
2412 *****************************************************************************/
2413
2414xcb_void_cookie_t
2415xcb_render_free_glyph_set (xcb_connection_t      *c  /**< */,
2416                           xcb_render_glyphset_t  glyphset  /**< */)
2417{
2418    static const xcb_protocol_request_t xcb_req = {
2419        /* count */ 2,
2420        /* ext */ &xcb_render_id,
2421        /* opcode */ XCB_RENDER_FREE_GLYPH_SET,
2422        /* isvoid */ 1
2423    };
2424
2425    struct iovec xcb_parts[4];
2426    xcb_void_cookie_t xcb_ret;
2427    xcb_render_free_glyph_set_request_t xcb_out;
2428
2429    xcb_out.glyphset = glyphset;
2430
2431    xcb_parts[2].iov_base = (char *) &xcb_out;
2432    xcb_parts[2].iov_len = sizeof(xcb_out);
2433    xcb_parts[3].iov_base = 0;
2434    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2435    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2436    return xcb_ret;
2437}
2438
2439
2440/*****************************************************************************
2441 **
2442 ** xcb_void_cookie_t xcb_render_add_glyphs_checked
2443 **
2444 ** @param xcb_connection_t             *c
2445 ** @param xcb_render_glyphset_t         glyphset
2446 ** @param uint32_t                      glyphs_len
2447 ** @param const uint32_t               *glyphids
2448 ** @param const xcb_render_glyphinfo_t *glyphs
2449 ** @param uint32_t                      data_len
2450 ** @param const uint8_t                *data
2451 ** @returns xcb_void_cookie_t
2452 **
2453 *****************************************************************************/
2454
2455xcb_void_cookie_t
2456xcb_render_add_glyphs_checked (xcb_connection_t             *c  /**< */,
2457                               xcb_render_glyphset_t         glyphset  /**< */,
2458                               uint32_t                      glyphs_len  /**< */,
2459                               const uint32_t               *glyphids  /**< */,
2460                               const xcb_render_glyphinfo_t *glyphs  /**< */,
2461                               uint32_t                      data_len  /**< */,
2462                               const uint8_t                *data  /**< */)
2463{
2464    static const xcb_protocol_request_t xcb_req = {
2465        /* count */ 8,
2466        /* ext */ &xcb_render_id,
2467        /* opcode */ XCB_RENDER_ADD_GLYPHS,
2468        /* isvoid */ 1
2469    };
2470
2471    struct iovec xcb_parts[10];
2472    xcb_void_cookie_t xcb_ret;
2473    xcb_render_add_glyphs_request_t xcb_out;
2474
2475    xcb_out.glyphset = glyphset;
2476    xcb_out.glyphs_len = glyphs_len;
2477
2478    xcb_parts[2].iov_base = (char *) &xcb_out;
2479    xcb_parts[2].iov_len = sizeof(xcb_out);
2480    xcb_parts[3].iov_base = 0;
2481    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2482    xcb_parts[4].iov_base = (char *) glyphids;
2483    xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t);
2484    xcb_parts[5].iov_base = 0;
2485    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2486    xcb_parts[6].iov_base = (char *) glyphs;
2487    xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t);
2488    xcb_parts[7].iov_base = 0;
2489    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
2490    xcb_parts[8].iov_base = (char *) data;
2491    xcb_parts[8].iov_len = data_len * sizeof(uint8_t);
2492    xcb_parts[9].iov_base = 0;
2493    xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3;
2494    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2495    return xcb_ret;
2496}
2497
2498
2499/*****************************************************************************
2500 **
2501 ** xcb_void_cookie_t xcb_render_add_glyphs
2502 **
2503 ** @param xcb_connection_t             *c
2504 ** @param xcb_render_glyphset_t         glyphset
2505 ** @param uint32_t                      glyphs_len
2506 ** @param const uint32_t               *glyphids
2507 ** @param const xcb_render_glyphinfo_t *glyphs
2508 ** @param uint32_t                      data_len
2509 ** @param const uint8_t                *data
2510 ** @returns xcb_void_cookie_t
2511 **
2512 *****************************************************************************/
2513
2514xcb_void_cookie_t
2515xcb_render_add_glyphs (xcb_connection_t             *c  /**< */,
2516                       xcb_render_glyphset_t         glyphset  /**< */,
2517                       uint32_t                      glyphs_len  /**< */,
2518                       const uint32_t               *glyphids  /**< */,
2519                       const xcb_render_glyphinfo_t *glyphs  /**< */,
2520                       uint32_t                      data_len  /**< */,
2521                       const uint8_t                *data  /**< */)
2522{
2523    static const xcb_protocol_request_t xcb_req = {
2524        /* count */ 8,
2525        /* ext */ &xcb_render_id,
2526        /* opcode */ XCB_RENDER_ADD_GLYPHS,
2527        /* isvoid */ 1
2528    };
2529
2530    struct iovec xcb_parts[10];
2531    xcb_void_cookie_t xcb_ret;
2532    xcb_render_add_glyphs_request_t xcb_out;
2533
2534    xcb_out.glyphset = glyphset;
2535    xcb_out.glyphs_len = glyphs_len;
2536
2537    xcb_parts[2].iov_base = (char *) &xcb_out;
2538    xcb_parts[2].iov_len = sizeof(xcb_out);
2539    xcb_parts[3].iov_base = 0;
2540    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2541    xcb_parts[4].iov_base = (char *) glyphids;
2542    xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t);
2543    xcb_parts[5].iov_base = 0;
2544    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2545    xcb_parts[6].iov_base = (char *) glyphs;
2546    xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t);
2547    xcb_parts[7].iov_base = 0;
2548    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
2549    xcb_parts[8].iov_base = (char *) data;
2550    xcb_parts[8].iov_len = data_len * sizeof(uint8_t);
2551    xcb_parts[9].iov_base = 0;
2552    xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3;
2553    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2554    return xcb_ret;
2555}
2556
2557
2558/*****************************************************************************
2559 **
2560 ** xcb_void_cookie_t xcb_render_free_glyphs_checked
2561 **
2562 ** @param xcb_connection_t         *c
2563 ** @param xcb_render_glyphset_t     glyphset
2564 ** @param uint32_t                  glyphs_len
2565 ** @param const xcb_render_glyph_t *glyphs
2566 ** @returns xcb_void_cookie_t
2567 **
2568 *****************************************************************************/
2569
2570xcb_void_cookie_t
2571xcb_render_free_glyphs_checked (xcb_connection_t         *c  /**< */,
2572                                xcb_render_glyphset_t     glyphset  /**< */,
2573                                uint32_t                  glyphs_len  /**< */,
2574                                const xcb_render_glyph_t *glyphs  /**< */)
2575{
2576    static const xcb_protocol_request_t xcb_req = {
2577        /* count */ 4,
2578        /* ext */ &xcb_render_id,
2579        /* opcode */ XCB_RENDER_FREE_GLYPHS,
2580        /* isvoid */ 1
2581    };
2582
2583    struct iovec xcb_parts[6];
2584    xcb_void_cookie_t xcb_ret;
2585    xcb_render_free_glyphs_request_t xcb_out;
2586
2587    xcb_out.glyphset = glyphset;
2588
2589    xcb_parts[2].iov_base = (char *) &xcb_out;
2590    xcb_parts[2].iov_len = sizeof(xcb_out);
2591    xcb_parts[3].iov_base = 0;
2592    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2593    xcb_parts[4].iov_base = (char *) glyphs;
2594    xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t);
2595    xcb_parts[5].iov_base = 0;
2596    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2597    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2598    return xcb_ret;
2599}
2600
2601
2602/*****************************************************************************
2603 **
2604 ** xcb_void_cookie_t xcb_render_free_glyphs
2605 **
2606 ** @param xcb_connection_t         *c
2607 ** @param xcb_render_glyphset_t     glyphset
2608 ** @param uint32_t                  glyphs_len
2609 ** @param const xcb_render_glyph_t *glyphs
2610 ** @returns xcb_void_cookie_t
2611 **
2612 *****************************************************************************/
2613
2614xcb_void_cookie_t
2615xcb_render_free_glyphs (xcb_connection_t         *c  /**< */,
2616                        xcb_render_glyphset_t     glyphset  /**< */,
2617                        uint32_t                  glyphs_len  /**< */,
2618                        const xcb_render_glyph_t *glyphs  /**< */)
2619{
2620    static const xcb_protocol_request_t xcb_req = {
2621        /* count */ 4,
2622        /* ext */ &xcb_render_id,
2623        /* opcode */ XCB_RENDER_FREE_GLYPHS,
2624        /* isvoid */ 1
2625    };
2626
2627    struct iovec xcb_parts[6];
2628    xcb_void_cookie_t xcb_ret;
2629    xcb_render_free_glyphs_request_t xcb_out;
2630
2631    xcb_out.glyphset = glyphset;
2632
2633    xcb_parts[2].iov_base = (char *) &xcb_out;
2634    xcb_parts[2].iov_len = sizeof(xcb_out);
2635    xcb_parts[3].iov_base = 0;
2636    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2637    xcb_parts[4].iov_base = (char *) glyphs;
2638    xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t);
2639    xcb_parts[5].iov_base = 0;
2640    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2641    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2642    return xcb_ret;
2643}
2644
2645
2646/*****************************************************************************
2647 **
2648 ** xcb_void_cookie_t xcb_render_composite_glyphs_8_checked
2649 **
2650 ** @param xcb_connection_t        *c
2651 ** @param uint8_t                  op
2652 ** @param xcb_render_picture_t     src
2653 ** @param xcb_render_picture_t     dst
2654 ** @param xcb_render_pictformat_t  mask_format
2655 ** @param xcb_render_glyphset_t    glyphset
2656 ** @param int16_t                  src_x
2657 ** @param int16_t                  src_y
2658 ** @param uint32_t                 glyphcmds_len
2659 ** @param const uint8_t           *glyphcmds
2660 ** @returns xcb_void_cookie_t
2661 **
2662 *****************************************************************************/
2663
2664xcb_void_cookie_t
2665xcb_render_composite_glyphs_8_checked (xcb_connection_t        *c  /**< */,
2666                                       uint8_t                  op  /**< */,
2667                                       xcb_render_picture_t     src  /**< */,
2668                                       xcb_render_picture_t     dst  /**< */,
2669                                       xcb_render_pictformat_t  mask_format  /**< */,
2670                                       xcb_render_glyphset_t    glyphset  /**< */,
2671                                       int16_t                  src_x  /**< */,
2672                                       int16_t                  src_y  /**< */,
2673                                       uint32_t                 glyphcmds_len  /**< */,
2674                                       const uint8_t           *glyphcmds  /**< */)
2675{
2676    static const xcb_protocol_request_t xcb_req = {
2677        /* count */ 4,
2678        /* ext */ &xcb_render_id,
2679        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8,
2680        /* isvoid */ 1
2681    };
2682
2683    struct iovec xcb_parts[6];
2684    xcb_void_cookie_t xcb_ret;
2685    xcb_render_composite_glyphs_8_request_t xcb_out;
2686
2687    xcb_out.op = op;
2688    memset(xcb_out.pad0, 0, 3);
2689    xcb_out.src = src;
2690    xcb_out.dst = dst;
2691    xcb_out.mask_format = mask_format;
2692    xcb_out.glyphset = glyphset;
2693    xcb_out.src_x = src_x;
2694    xcb_out.src_y = src_y;
2695
2696    xcb_parts[2].iov_base = (char *) &xcb_out;
2697    xcb_parts[2].iov_len = sizeof(xcb_out);
2698    xcb_parts[3].iov_base = 0;
2699    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2700    xcb_parts[4].iov_base = (char *) glyphcmds;
2701    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
2702    xcb_parts[5].iov_base = 0;
2703    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2704    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2705    return xcb_ret;
2706}
2707
2708
2709/*****************************************************************************
2710 **
2711 ** xcb_void_cookie_t xcb_render_composite_glyphs_8
2712 **
2713 ** @param xcb_connection_t        *c
2714 ** @param uint8_t                  op
2715 ** @param xcb_render_picture_t     src
2716 ** @param xcb_render_picture_t     dst
2717 ** @param xcb_render_pictformat_t  mask_format
2718 ** @param xcb_render_glyphset_t    glyphset
2719 ** @param int16_t                  src_x
2720 ** @param int16_t                  src_y
2721 ** @param uint32_t                 glyphcmds_len
2722 ** @param const uint8_t           *glyphcmds
2723 ** @returns xcb_void_cookie_t
2724 **
2725 *****************************************************************************/
2726
2727xcb_void_cookie_t
2728xcb_render_composite_glyphs_8 (xcb_connection_t        *c  /**< */,
2729                               uint8_t                  op  /**< */,
2730                               xcb_render_picture_t     src  /**< */,
2731                               xcb_render_picture_t     dst  /**< */,
2732                               xcb_render_pictformat_t  mask_format  /**< */,
2733                               xcb_render_glyphset_t    glyphset  /**< */,
2734                               int16_t                  src_x  /**< */,
2735                               int16_t                  src_y  /**< */,
2736                               uint32_t                 glyphcmds_len  /**< */,
2737                               const uint8_t           *glyphcmds  /**< */)
2738{
2739    static const xcb_protocol_request_t xcb_req = {
2740        /* count */ 4,
2741        /* ext */ &xcb_render_id,
2742        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8,
2743        /* isvoid */ 1
2744    };
2745
2746    struct iovec xcb_parts[6];
2747    xcb_void_cookie_t xcb_ret;
2748    xcb_render_composite_glyphs_8_request_t xcb_out;
2749
2750    xcb_out.op = op;
2751    memset(xcb_out.pad0, 0, 3);
2752    xcb_out.src = src;
2753    xcb_out.dst = dst;
2754    xcb_out.mask_format = mask_format;
2755    xcb_out.glyphset = glyphset;
2756    xcb_out.src_x = src_x;
2757    xcb_out.src_y = src_y;
2758
2759    xcb_parts[2].iov_base = (char *) &xcb_out;
2760    xcb_parts[2].iov_len = sizeof(xcb_out);
2761    xcb_parts[3].iov_base = 0;
2762    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2763    xcb_parts[4].iov_base = (char *) glyphcmds;
2764    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
2765    xcb_parts[5].iov_base = 0;
2766    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2767    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2768    return xcb_ret;
2769}
2770
2771
2772/*****************************************************************************
2773 **
2774 ** xcb_void_cookie_t xcb_render_composite_glyphs_16_checked
2775 **
2776 ** @param xcb_connection_t        *c
2777 ** @param uint8_t                  op
2778 ** @param xcb_render_picture_t     src
2779 ** @param xcb_render_picture_t     dst
2780 ** @param xcb_render_pictformat_t  mask_format
2781 ** @param xcb_render_glyphset_t    glyphset
2782 ** @param int16_t                  src_x
2783 ** @param int16_t                  src_y
2784 ** @param uint32_t                 glyphcmds_len
2785 ** @param const uint8_t           *glyphcmds
2786 ** @returns xcb_void_cookie_t
2787 **
2788 *****************************************************************************/
2789
2790xcb_void_cookie_t
2791xcb_render_composite_glyphs_16_checked (xcb_connection_t        *c  /**< */,
2792                                        uint8_t                  op  /**< */,
2793                                        xcb_render_picture_t     src  /**< */,
2794                                        xcb_render_picture_t     dst  /**< */,
2795                                        xcb_render_pictformat_t  mask_format  /**< */,
2796                                        xcb_render_glyphset_t    glyphset  /**< */,
2797                                        int16_t                  src_x  /**< */,
2798                                        int16_t                  src_y  /**< */,
2799                                        uint32_t                 glyphcmds_len  /**< */,
2800                                        const uint8_t           *glyphcmds  /**< */)
2801{
2802    static const xcb_protocol_request_t xcb_req = {
2803        /* count */ 4,
2804        /* ext */ &xcb_render_id,
2805        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16,
2806        /* isvoid */ 1
2807    };
2808
2809    struct iovec xcb_parts[6];
2810    xcb_void_cookie_t xcb_ret;
2811    xcb_render_composite_glyphs_16_request_t xcb_out;
2812
2813    xcb_out.op = op;
2814    memset(xcb_out.pad0, 0, 3);
2815    xcb_out.src = src;
2816    xcb_out.dst = dst;
2817    xcb_out.mask_format = mask_format;
2818    xcb_out.glyphset = glyphset;
2819    xcb_out.src_x = src_x;
2820    xcb_out.src_y = src_y;
2821
2822    xcb_parts[2].iov_base = (char *) &xcb_out;
2823    xcb_parts[2].iov_len = sizeof(xcb_out);
2824    xcb_parts[3].iov_base = 0;
2825    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2826    xcb_parts[4].iov_base = (char *) glyphcmds;
2827    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
2828    xcb_parts[5].iov_base = 0;
2829    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2830    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2831    return xcb_ret;
2832}
2833
2834
2835/*****************************************************************************
2836 **
2837 ** xcb_void_cookie_t xcb_render_composite_glyphs_16
2838 **
2839 ** @param xcb_connection_t        *c
2840 ** @param uint8_t                  op
2841 ** @param xcb_render_picture_t     src
2842 ** @param xcb_render_picture_t     dst
2843 ** @param xcb_render_pictformat_t  mask_format
2844 ** @param xcb_render_glyphset_t    glyphset
2845 ** @param int16_t                  src_x
2846 ** @param int16_t                  src_y
2847 ** @param uint32_t                 glyphcmds_len
2848 ** @param const uint8_t           *glyphcmds
2849 ** @returns xcb_void_cookie_t
2850 **
2851 *****************************************************************************/
2852
2853xcb_void_cookie_t
2854xcb_render_composite_glyphs_16 (xcb_connection_t        *c  /**< */,
2855                                uint8_t                  op  /**< */,
2856                                xcb_render_picture_t     src  /**< */,
2857                                xcb_render_picture_t     dst  /**< */,
2858                                xcb_render_pictformat_t  mask_format  /**< */,
2859                                xcb_render_glyphset_t    glyphset  /**< */,
2860                                int16_t                  src_x  /**< */,
2861                                int16_t                  src_y  /**< */,
2862                                uint32_t                 glyphcmds_len  /**< */,
2863                                const uint8_t           *glyphcmds  /**< */)
2864{
2865    static const xcb_protocol_request_t xcb_req = {
2866        /* count */ 4,
2867        /* ext */ &xcb_render_id,
2868        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16,
2869        /* isvoid */ 1
2870    };
2871
2872    struct iovec xcb_parts[6];
2873    xcb_void_cookie_t xcb_ret;
2874    xcb_render_composite_glyphs_16_request_t xcb_out;
2875
2876    xcb_out.op = op;
2877    memset(xcb_out.pad0, 0, 3);
2878    xcb_out.src = src;
2879    xcb_out.dst = dst;
2880    xcb_out.mask_format = mask_format;
2881    xcb_out.glyphset = glyphset;
2882    xcb_out.src_x = src_x;
2883    xcb_out.src_y = src_y;
2884
2885    xcb_parts[2].iov_base = (char *) &xcb_out;
2886    xcb_parts[2].iov_len = sizeof(xcb_out);
2887    xcb_parts[3].iov_base = 0;
2888    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2889    xcb_parts[4].iov_base = (char *) glyphcmds;
2890    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
2891    xcb_parts[5].iov_base = 0;
2892    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2893    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2894    return xcb_ret;
2895}
2896
2897
2898/*****************************************************************************
2899 **
2900 ** xcb_void_cookie_t xcb_render_composite_glyphs_32_checked
2901 **
2902 ** @param xcb_connection_t        *c
2903 ** @param uint8_t                  op
2904 ** @param xcb_render_picture_t     src
2905 ** @param xcb_render_picture_t     dst
2906 ** @param xcb_render_pictformat_t  mask_format
2907 ** @param xcb_render_glyphset_t    glyphset
2908 ** @param int16_t                  src_x
2909 ** @param int16_t                  src_y
2910 ** @param uint32_t                 glyphcmds_len
2911 ** @param const uint8_t           *glyphcmds
2912 ** @returns xcb_void_cookie_t
2913 **
2914 *****************************************************************************/
2915
2916xcb_void_cookie_t
2917xcb_render_composite_glyphs_32_checked (xcb_connection_t        *c  /**< */,
2918                                        uint8_t                  op  /**< */,
2919                                        xcb_render_picture_t     src  /**< */,
2920                                        xcb_render_picture_t     dst  /**< */,
2921                                        xcb_render_pictformat_t  mask_format  /**< */,
2922                                        xcb_render_glyphset_t    glyphset  /**< */,
2923                                        int16_t                  src_x  /**< */,
2924                                        int16_t                  src_y  /**< */,
2925                                        uint32_t                 glyphcmds_len  /**< */,
2926                                        const uint8_t           *glyphcmds  /**< */)
2927{
2928    static const xcb_protocol_request_t xcb_req = {
2929        /* count */ 4,
2930        /* ext */ &xcb_render_id,
2931        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32,
2932        /* isvoid */ 1
2933    };
2934
2935    struct iovec xcb_parts[6];
2936    xcb_void_cookie_t xcb_ret;
2937    xcb_render_composite_glyphs_32_request_t xcb_out;
2938
2939    xcb_out.op = op;
2940    memset(xcb_out.pad0, 0, 3);
2941    xcb_out.src = src;
2942    xcb_out.dst = dst;
2943    xcb_out.mask_format = mask_format;
2944    xcb_out.glyphset = glyphset;
2945    xcb_out.src_x = src_x;
2946    xcb_out.src_y = src_y;
2947
2948    xcb_parts[2].iov_base = (char *) &xcb_out;
2949    xcb_parts[2].iov_len = sizeof(xcb_out);
2950    xcb_parts[3].iov_base = 0;
2951    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2952    xcb_parts[4].iov_base = (char *) glyphcmds;
2953    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
2954    xcb_parts[5].iov_base = 0;
2955    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2956    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2957    return xcb_ret;
2958}
2959
2960
2961/*****************************************************************************
2962 **
2963 ** xcb_void_cookie_t xcb_render_composite_glyphs_32
2964 **
2965 ** @param xcb_connection_t        *c
2966 ** @param uint8_t                  op
2967 ** @param xcb_render_picture_t     src
2968 ** @param xcb_render_picture_t     dst
2969 ** @param xcb_render_pictformat_t  mask_format
2970 ** @param xcb_render_glyphset_t    glyphset
2971 ** @param int16_t                  src_x
2972 ** @param int16_t                  src_y
2973 ** @param uint32_t                 glyphcmds_len
2974 ** @param const uint8_t           *glyphcmds
2975 ** @returns xcb_void_cookie_t
2976 **
2977 *****************************************************************************/
2978
2979xcb_void_cookie_t
2980xcb_render_composite_glyphs_32 (xcb_connection_t        *c  /**< */,
2981                                uint8_t                  op  /**< */,
2982                                xcb_render_picture_t     src  /**< */,
2983                                xcb_render_picture_t     dst  /**< */,
2984                                xcb_render_pictformat_t  mask_format  /**< */,
2985                                xcb_render_glyphset_t    glyphset  /**< */,
2986                                int16_t                  src_x  /**< */,
2987                                int16_t                  src_y  /**< */,
2988                                uint32_t                 glyphcmds_len  /**< */,
2989                                const uint8_t           *glyphcmds  /**< */)
2990{
2991    static const xcb_protocol_request_t xcb_req = {
2992        /* count */ 4,
2993        /* ext */ &xcb_render_id,
2994        /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32,
2995        /* isvoid */ 1
2996    };
2997
2998    struct iovec xcb_parts[6];
2999    xcb_void_cookie_t xcb_ret;
3000    xcb_render_composite_glyphs_32_request_t xcb_out;
3001
3002    xcb_out.op = op;
3003    memset(xcb_out.pad0, 0, 3);
3004    xcb_out.src = src;
3005    xcb_out.dst = dst;
3006    xcb_out.mask_format = mask_format;
3007    xcb_out.glyphset = glyphset;
3008    xcb_out.src_x = src_x;
3009    xcb_out.src_y = src_y;
3010
3011    xcb_parts[2].iov_base = (char *) &xcb_out;
3012    xcb_parts[2].iov_len = sizeof(xcb_out);
3013    xcb_parts[3].iov_base = 0;
3014    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3015    xcb_parts[4].iov_base = (char *) glyphcmds;
3016    xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t);
3017    xcb_parts[5].iov_base = 0;
3018    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3019    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3020    return xcb_ret;
3021}
3022
3023
3024/*****************************************************************************
3025 **
3026 ** xcb_void_cookie_t xcb_render_fill_rectangles_checked
3027 **
3028 ** @param xcb_connection_t      *c
3029 ** @param uint8_t                op
3030 ** @param xcb_render_picture_t   dst
3031 ** @param xcb_render_color_t     color
3032 ** @param uint32_t               rects_len
3033 ** @param const xcb_rectangle_t *rects
3034 ** @returns xcb_void_cookie_t
3035 **
3036 *****************************************************************************/
3037
3038xcb_void_cookie_t
3039xcb_render_fill_rectangles_checked (xcb_connection_t      *c  /**< */,
3040                                    uint8_t                op  /**< */,
3041                                    xcb_render_picture_t   dst  /**< */,
3042                                    xcb_render_color_t     color  /**< */,
3043                                    uint32_t               rects_len  /**< */,
3044                                    const xcb_rectangle_t *rects  /**< */)
3045{
3046    static const xcb_protocol_request_t xcb_req = {
3047        /* count */ 4,
3048        /* ext */ &xcb_render_id,
3049        /* opcode */ XCB_RENDER_FILL_RECTANGLES,
3050        /* isvoid */ 1
3051    };
3052
3053    struct iovec xcb_parts[6];
3054    xcb_void_cookie_t xcb_ret;
3055    xcb_render_fill_rectangles_request_t xcb_out;
3056
3057    xcb_out.op = op;
3058    memset(xcb_out.pad0, 0, 3);
3059    xcb_out.dst = dst;
3060    xcb_out.color = color;
3061
3062    xcb_parts[2].iov_base = (char *) &xcb_out;
3063    xcb_parts[2].iov_len = sizeof(xcb_out);
3064    xcb_parts[3].iov_base = 0;
3065    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3066    xcb_parts[4].iov_base = (char *) rects;
3067    xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t);
3068    xcb_parts[5].iov_base = 0;
3069    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3070    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3071    return xcb_ret;
3072}
3073
3074
3075/*****************************************************************************
3076 **
3077 ** xcb_void_cookie_t xcb_render_fill_rectangles
3078 **
3079 ** @param xcb_connection_t      *c
3080 ** @param uint8_t                op
3081 ** @param xcb_render_picture_t   dst
3082 ** @param xcb_render_color_t     color
3083 ** @param uint32_t               rects_len
3084 ** @param const xcb_rectangle_t *rects
3085 ** @returns xcb_void_cookie_t
3086 **
3087 *****************************************************************************/
3088
3089xcb_void_cookie_t
3090xcb_render_fill_rectangles (xcb_connection_t      *c  /**< */,
3091                            uint8_t                op  /**< */,
3092                            xcb_render_picture_t   dst  /**< */,
3093                            xcb_render_color_t     color  /**< */,
3094                            uint32_t               rects_len  /**< */,
3095                            const xcb_rectangle_t *rects  /**< */)
3096{
3097    static const xcb_protocol_request_t xcb_req = {
3098        /* count */ 4,
3099        /* ext */ &xcb_render_id,
3100        /* opcode */ XCB_RENDER_FILL_RECTANGLES,
3101        /* isvoid */ 1
3102    };
3103
3104    struct iovec xcb_parts[6];
3105    xcb_void_cookie_t xcb_ret;
3106    xcb_render_fill_rectangles_request_t xcb_out;
3107
3108    xcb_out.op = op;
3109    memset(xcb_out.pad0, 0, 3);
3110    xcb_out.dst = dst;
3111    xcb_out.color = color;
3112
3113    xcb_parts[2].iov_base = (char *) &xcb_out;
3114    xcb_parts[2].iov_len = sizeof(xcb_out);
3115    xcb_parts[3].iov_base = 0;
3116    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3117    xcb_parts[4].iov_base = (char *) rects;
3118    xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t);
3119    xcb_parts[5].iov_base = 0;
3120    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3121    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3122    return xcb_ret;
3123}
3124
3125
3126/*****************************************************************************
3127 **
3128 ** xcb_void_cookie_t xcb_render_create_cursor_checked
3129 **
3130 ** @param xcb_connection_t     *c
3131 ** @param xcb_cursor_t          cid
3132 ** @param xcb_render_picture_t  source
3133 ** @param uint16_t              x
3134 ** @param uint16_t              y
3135 ** @returns xcb_void_cookie_t
3136 **
3137 *****************************************************************************/
3138
3139xcb_void_cookie_t
3140xcb_render_create_cursor_checked (xcb_connection_t     *c  /**< */,
3141                                  xcb_cursor_t          cid  /**< */,
3142                                  xcb_render_picture_t  source  /**< */,
3143                                  uint16_t              x  /**< */,
3144                                  uint16_t              y  /**< */)
3145{
3146    static const xcb_protocol_request_t xcb_req = {
3147        /* count */ 2,
3148        /* ext */ &xcb_render_id,
3149        /* opcode */ XCB_RENDER_CREATE_CURSOR,
3150        /* isvoid */ 1
3151    };
3152
3153    struct iovec xcb_parts[4];
3154    xcb_void_cookie_t xcb_ret;
3155    xcb_render_create_cursor_request_t xcb_out;
3156
3157    xcb_out.cid = cid;
3158    xcb_out.source = source;
3159    xcb_out.x = x;
3160    xcb_out.y = y;
3161
3162    xcb_parts[2].iov_base = (char *) &xcb_out;
3163    xcb_parts[2].iov_len = sizeof(xcb_out);
3164    xcb_parts[3].iov_base = 0;
3165    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3166    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3167    return xcb_ret;
3168}
3169
3170
3171/*****************************************************************************
3172 **
3173 ** xcb_void_cookie_t xcb_render_create_cursor
3174 **
3175 ** @param xcb_connection_t     *c
3176 ** @param xcb_cursor_t          cid
3177 ** @param xcb_render_picture_t  source
3178 ** @param uint16_t              x
3179 ** @param uint16_t              y
3180 ** @returns xcb_void_cookie_t
3181 **
3182 *****************************************************************************/
3183
3184xcb_void_cookie_t
3185xcb_render_create_cursor (xcb_connection_t     *c  /**< */,
3186                          xcb_cursor_t          cid  /**< */,
3187                          xcb_render_picture_t  source  /**< */,
3188                          uint16_t              x  /**< */,
3189                          uint16_t              y  /**< */)
3190{
3191    static const xcb_protocol_request_t xcb_req = {
3192        /* count */ 2,
3193        /* ext */ &xcb_render_id,
3194        /* opcode */ XCB_RENDER_CREATE_CURSOR,
3195        /* isvoid */ 1
3196    };
3197
3198    struct iovec xcb_parts[4];
3199    xcb_void_cookie_t xcb_ret;
3200    xcb_render_create_cursor_request_t xcb_out;
3201
3202    xcb_out.cid = cid;
3203    xcb_out.source = source;
3204    xcb_out.x = x;
3205    xcb_out.y = y;
3206
3207    xcb_parts[2].iov_base = (char *) &xcb_out;
3208    xcb_parts[2].iov_len = sizeof(xcb_out);
3209    xcb_parts[3].iov_base = 0;
3210    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3211    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3212    return xcb_ret;
3213}
3214
3215
3216/*****************************************************************************
3217 **
3218 ** void xcb_render_transform_next
3219 **
3220 ** @param xcb_render_transform_iterator_t *i
3221 ** @returns void
3222 **
3223 *****************************************************************************/
3224
3225void
3226xcb_render_transform_next (xcb_render_transform_iterator_t *i  /**< */)
3227{
3228    --i->rem;
3229    ++i->data;
3230    i->index += sizeof(xcb_render_transform_t);
3231}
3232
3233
3234/*****************************************************************************
3235 **
3236 ** xcb_generic_iterator_t xcb_render_transform_end
3237 **
3238 ** @param xcb_render_transform_iterator_t i
3239 ** @returns xcb_generic_iterator_t
3240 **
3241 *****************************************************************************/
3242
3243xcb_generic_iterator_t
3244xcb_render_transform_end (xcb_render_transform_iterator_t i  /**< */)
3245{
3246    xcb_generic_iterator_t ret;
3247    ret.data = i.data + i.rem;
3248    ret.index = i.index + ((char *) ret.data - (char *) i.data);
3249    ret.rem = 0;
3250    return ret;
3251}
3252
3253
3254/*****************************************************************************
3255 **
3256 ** xcb_void_cookie_t xcb_render_set_picture_transform_checked
3257 **
3258 ** @param xcb_connection_t       *c
3259 ** @param xcb_render_picture_t    picture
3260 ** @param xcb_render_transform_t  transform
3261 ** @returns xcb_void_cookie_t
3262 **
3263 *****************************************************************************/
3264
3265xcb_void_cookie_t
3266xcb_render_set_picture_transform_checked (xcb_connection_t       *c  /**< */,
3267                                          xcb_render_picture_t    picture  /**< */,
3268                                          xcb_render_transform_t  transform  /**< */)
3269{
3270    static const xcb_protocol_request_t xcb_req = {
3271        /* count */ 2,
3272        /* ext */ &xcb_render_id,
3273        /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM,
3274        /* isvoid */ 1
3275    };
3276
3277    struct iovec xcb_parts[4];
3278    xcb_void_cookie_t xcb_ret;
3279    xcb_render_set_picture_transform_request_t xcb_out;
3280
3281    xcb_out.picture = picture;
3282    xcb_out.transform = transform;
3283
3284    xcb_parts[2].iov_base = (char *) &xcb_out;
3285    xcb_parts[2].iov_len = sizeof(xcb_out);
3286    xcb_parts[3].iov_base = 0;
3287    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3288    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3289    return xcb_ret;
3290}
3291
3292
3293/*****************************************************************************
3294 **
3295 ** xcb_void_cookie_t xcb_render_set_picture_transform
3296 **
3297 ** @param xcb_connection_t       *c
3298 ** @param xcb_render_picture_t    picture
3299 ** @param xcb_render_transform_t  transform
3300 ** @returns xcb_void_cookie_t
3301 **
3302 *****************************************************************************/
3303
3304xcb_void_cookie_t
3305xcb_render_set_picture_transform (xcb_connection_t       *c  /**< */,
3306                                  xcb_render_picture_t    picture  /**< */,
3307                                  xcb_render_transform_t  transform  /**< */)
3308{
3309    static const xcb_protocol_request_t xcb_req = {
3310        /* count */ 2,
3311        /* ext */ &xcb_render_id,
3312        /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM,
3313        /* isvoid */ 1
3314    };
3315
3316    struct iovec xcb_parts[4];
3317    xcb_void_cookie_t xcb_ret;
3318    xcb_render_set_picture_transform_request_t xcb_out;
3319
3320    xcb_out.picture = picture;
3321    xcb_out.transform = transform;
3322
3323    xcb_parts[2].iov_base = (char *) &xcb_out;
3324    xcb_parts[2].iov_len = sizeof(xcb_out);
3325    xcb_parts[3].iov_base = 0;
3326    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3327    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3328    return xcb_ret;
3329}
3330
3331
3332/*****************************************************************************
3333 **
3334 ** xcb_render_query_filters_cookie_t xcb_render_query_filters
3335 **
3336 ** @param xcb_connection_t *c
3337 ** @param xcb_drawable_t    drawable
3338 ** @returns xcb_render_query_filters_cookie_t
3339 **
3340 *****************************************************************************/
3341
3342xcb_render_query_filters_cookie_t
3343xcb_render_query_filters (xcb_connection_t *c  /**< */,
3344                          xcb_drawable_t    drawable  /**< */)
3345{
3346    static const xcb_protocol_request_t xcb_req = {
3347        /* count */ 2,
3348        /* ext */ &xcb_render_id,
3349        /* opcode */ XCB_RENDER_QUERY_FILTERS,
3350        /* isvoid */ 0
3351    };
3352
3353    struct iovec xcb_parts[4];
3354    xcb_render_query_filters_cookie_t xcb_ret;
3355    xcb_render_query_filters_request_t xcb_out;
3356
3357    xcb_out.drawable = drawable;
3358
3359    xcb_parts[2].iov_base = (char *) &xcb_out;
3360    xcb_parts[2].iov_len = sizeof(xcb_out);
3361    xcb_parts[3].iov_base = 0;
3362    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3363    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3364    return xcb_ret;
3365}
3366
3367
3368/*****************************************************************************
3369 **
3370 ** xcb_render_query_filters_cookie_t xcb_render_query_filters_unchecked
3371 **
3372 ** @param xcb_connection_t *c
3373 ** @param xcb_drawable_t    drawable
3374 ** @returns xcb_render_query_filters_cookie_t
3375 **
3376 *****************************************************************************/
3377
3378xcb_render_query_filters_cookie_t
3379xcb_render_query_filters_unchecked (xcb_connection_t *c  /**< */,
3380                                    xcb_drawable_t    drawable  /**< */)
3381{
3382    static const xcb_protocol_request_t xcb_req = {
3383        /* count */ 2,
3384        /* ext */ &xcb_render_id,
3385        /* opcode */ XCB_RENDER_QUERY_FILTERS,
3386        /* isvoid */ 0
3387    };
3388
3389    struct iovec xcb_parts[4];
3390    xcb_render_query_filters_cookie_t xcb_ret;
3391    xcb_render_query_filters_request_t xcb_out;
3392
3393    xcb_out.drawable = drawable;
3394
3395    xcb_parts[2].iov_base = (char *) &xcb_out;
3396    xcb_parts[2].iov_len = sizeof(xcb_out);
3397    xcb_parts[3].iov_base = 0;
3398    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3399    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3400    return xcb_ret;
3401}
3402
3403
3404/*****************************************************************************
3405 **
3406 ** uint16_t * xcb_render_query_filters_aliases
3407 **
3408 ** @param const xcb_render_query_filters_reply_t *R
3409 ** @returns uint16_t *
3410 **
3411 *****************************************************************************/
3412
3413uint16_t *
3414xcb_render_query_filters_aliases (const xcb_render_query_filters_reply_t *R  /**< */)
3415{
3416    return (uint16_t *) (R + 1);
3417}
3418
3419
3420/*****************************************************************************
3421 **
3422 ** int xcb_render_query_filters_aliases_length
3423 **
3424 ** @param const xcb_render_query_filters_reply_t *R
3425 ** @returns int
3426 **
3427 *****************************************************************************/
3428
3429int
3430xcb_render_query_filters_aliases_length (const xcb_render_query_filters_reply_t *R  /**< */)
3431{
3432    return R->num_aliases;
3433}
3434
3435
3436/*****************************************************************************
3437 **
3438 ** xcb_generic_iterator_t xcb_render_query_filters_aliases_end
3439 **
3440 ** @param const xcb_render_query_filters_reply_t *R
3441 ** @returns xcb_generic_iterator_t
3442 **
3443 *****************************************************************************/
3444
3445xcb_generic_iterator_t
3446xcb_render_query_filters_aliases_end (const xcb_render_query_filters_reply_t *R  /**< */)
3447{
3448    xcb_generic_iterator_t i;
3449    i.data = ((uint16_t *) (R + 1)) + (R->num_aliases);
3450    i.rem = 0;
3451    i.index = (char *) i.data - (char *) R;
3452    return i;
3453}
3454
3455
3456/*****************************************************************************
3457 **
3458 ** int xcb_render_query_filters_filters_length
3459 **
3460 ** @param const xcb_render_query_filters_reply_t *R
3461 ** @returns int
3462 **
3463 *****************************************************************************/
3464
3465int
3466xcb_render_query_filters_filters_length (const xcb_render_query_filters_reply_t *R  /**< */)
3467{
3468    return R->num_filters;
3469}
3470
3471
3472/*****************************************************************************
3473 **
3474 ** xcb_str_iterator_t xcb_render_query_filters_filters_iterator
3475 **
3476 ** @param const xcb_render_query_filters_reply_t *R
3477 ** @returns xcb_str_iterator_t
3478 **
3479 *****************************************************************************/
3480
3481xcb_str_iterator_t
3482xcb_render_query_filters_filters_iterator (const xcb_render_query_filters_reply_t *R  /**< */)
3483{
3484    xcb_str_iterator_t i;
3485    xcb_generic_iterator_t prev = xcb_render_query_filters_aliases_end(R);
3486    i.data = (xcb_str_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_str_t, prev.index));
3487    i.rem = R->num_filters;
3488    i.index = (char *) i.data - (char *) R;
3489    return i;
3490}
3491
3492
3493/*****************************************************************************
3494 **
3495 ** xcb_render_query_filters_reply_t * xcb_render_query_filters_reply
3496 **
3497 ** @param xcb_connection_t                   *c
3498 ** @param xcb_render_query_filters_cookie_t   cookie
3499 ** @param xcb_generic_error_t               **e
3500 ** @returns xcb_render_query_filters_reply_t *
3501 **
3502 *****************************************************************************/
3503
3504xcb_render_query_filters_reply_t *
3505xcb_render_query_filters_reply (xcb_connection_t                   *c  /**< */,
3506                                xcb_render_query_filters_cookie_t   cookie  /**< */,
3507                                xcb_generic_error_t               **e  /**< */)
3508{
3509    return (xcb_render_query_filters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3510}
3511
3512
3513/*****************************************************************************
3514 **
3515 ** xcb_void_cookie_t xcb_render_set_picture_filter_checked
3516 **
3517 ** @param xcb_connection_t         *c
3518 ** @param xcb_render_picture_t      picture
3519 ** @param uint16_t                  filter_len
3520 ** @param const char               *filter
3521 ** @param uint32_t                  values_len
3522 ** @param const xcb_render_fixed_t *values
3523 ** @returns xcb_void_cookie_t
3524 **
3525 *****************************************************************************/
3526
3527xcb_void_cookie_t
3528xcb_render_set_picture_filter_checked (xcb_connection_t         *c  /**< */,
3529                                       xcb_render_picture_t      picture  /**< */,
3530                                       uint16_t                  filter_len  /**< */,
3531                                       const char               *filter  /**< */,
3532                                       uint32_t                  values_len  /**< */,
3533                                       const xcb_render_fixed_t *values  /**< */)
3534{
3535    static const xcb_protocol_request_t xcb_req = {
3536        /* count */ 6,
3537        /* ext */ &xcb_render_id,
3538        /* opcode */ XCB_RENDER_SET_PICTURE_FILTER,
3539        /* isvoid */ 1
3540    };
3541
3542    struct iovec xcb_parts[8];
3543    xcb_void_cookie_t xcb_ret;
3544    xcb_render_set_picture_filter_request_t xcb_out;
3545
3546    xcb_out.picture = picture;
3547    xcb_out.filter_len = filter_len;
3548    memset(xcb_out.pad0, 0, 2);
3549
3550    xcb_parts[2].iov_base = (char *) &xcb_out;
3551    xcb_parts[2].iov_len = sizeof(xcb_out);
3552    xcb_parts[3].iov_base = 0;
3553    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3554    xcb_parts[4].iov_base = (char *) filter;
3555    xcb_parts[4].iov_len = filter_len * sizeof(char);
3556    xcb_parts[5].iov_base = 0;
3557    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3558    xcb_parts[6].iov_base = (char *) values;
3559    xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t);
3560    xcb_parts[7].iov_base = 0;
3561    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
3562    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3563    return xcb_ret;
3564}
3565
3566
3567/*****************************************************************************
3568 **
3569 ** xcb_void_cookie_t xcb_render_set_picture_filter
3570 **
3571 ** @param xcb_connection_t         *c
3572 ** @param xcb_render_picture_t      picture
3573 ** @param uint16_t                  filter_len
3574 ** @param const char               *filter
3575 ** @param uint32_t                  values_len
3576 ** @param const xcb_render_fixed_t *values
3577 ** @returns xcb_void_cookie_t
3578 **
3579 *****************************************************************************/
3580
3581xcb_void_cookie_t
3582xcb_render_set_picture_filter (xcb_connection_t         *c  /**< */,
3583                               xcb_render_picture_t      picture  /**< */,
3584                               uint16_t                  filter_len  /**< */,
3585                               const char               *filter  /**< */,
3586                               uint32_t                  values_len  /**< */,
3587                               const xcb_render_fixed_t *values  /**< */)
3588{
3589    static const xcb_protocol_request_t xcb_req = {
3590        /* count */ 6,
3591        /* ext */ &xcb_render_id,
3592        /* opcode */ XCB_RENDER_SET_PICTURE_FILTER,
3593        /* isvoid */ 1
3594    };
3595
3596    struct iovec xcb_parts[8];
3597    xcb_void_cookie_t xcb_ret;
3598    xcb_render_set_picture_filter_request_t xcb_out;
3599
3600    xcb_out.picture = picture;
3601    xcb_out.filter_len = filter_len;
3602    memset(xcb_out.pad0, 0, 2);
3603
3604    xcb_parts[2].iov_base = (char *) &xcb_out;
3605    xcb_parts[2].iov_len = sizeof(xcb_out);
3606    xcb_parts[3].iov_base = 0;
3607    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3608    xcb_parts[4].iov_base = (char *) filter;
3609    xcb_parts[4].iov_len = filter_len * sizeof(char);
3610    xcb_parts[5].iov_base = 0;
3611    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3612    xcb_parts[6].iov_base = (char *) values;
3613    xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t);
3614    xcb_parts[7].iov_base = 0;
3615    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
3616    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3617    return xcb_ret;
3618}
3619
3620
3621/*****************************************************************************
3622 **
3623 ** void xcb_render_animcursorelt_next
3624 **
3625 ** @param xcb_render_animcursorelt_iterator_t *i
3626 ** @returns void
3627 **
3628 *****************************************************************************/
3629
3630void
3631xcb_render_animcursorelt_next (xcb_render_animcursorelt_iterator_t *i  /**< */)
3632{
3633    --i->rem;
3634    ++i->data;
3635    i->index += sizeof(xcb_render_animcursorelt_t);
3636}
3637
3638
3639/*****************************************************************************
3640 **
3641 ** xcb_generic_iterator_t xcb_render_animcursorelt_end
3642 **
3643 ** @param xcb_render_animcursorelt_iterator_t i
3644 ** @returns xcb_generic_iterator_t
3645 **
3646 *****************************************************************************/
3647
3648xcb_generic_iterator_t
3649xcb_render_animcursorelt_end (xcb_render_animcursorelt_iterator_t i  /**< */)
3650{
3651    xcb_generic_iterator_t ret;
3652    ret.data = i.data + i.rem;
3653    ret.index = i.index + ((char *) ret.data - (char *) i.data);
3654    ret.rem = 0;
3655    return ret;
3656}
3657
3658
3659/*****************************************************************************
3660 **
3661 ** xcb_void_cookie_t xcb_render_create_anim_cursor_checked
3662 **
3663 ** @param xcb_connection_t                 *c
3664 ** @param xcb_cursor_t                      cid
3665 ** @param uint32_t                          cursors_len
3666 ** @param const xcb_render_animcursorelt_t *cursors
3667 ** @returns xcb_void_cookie_t
3668 **
3669 *****************************************************************************/
3670
3671xcb_void_cookie_t
3672xcb_render_create_anim_cursor_checked (xcb_connection_t                 *c  /**< */,
3673                                       xcb_cursor_t                      cid  /**< */,
3674                                       uint32_t                          cursors_len  /**< */,
3675                                       const xcb_render_animcursorelt_t *cursors  /**< */)
3676{
3677    static const xcb_protocol_request_t xcb_req = {
3678        /* count */ 4,
3679        /* ext */ &xcb_render_id,
3680        /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR,
3681        /* isvoid */ 1
3682    };
3683
3684    struct iovec xcb_parts[6];
3685    xcb_void_cookie_t xcb_ret;
3686    xcb_render_create_anim_cursor_request_t xcb_out;
3687
3688    xcb_out.cid = cid;
3689
3690    xcb_parts[2].iov_base = (char *) &xcb_out;
3691    xcb_parts[2].iov_len = sizeof(xcb_out);
3692    xcb_parts[3].iov_base = 0;
3693    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3694    xcb_parts[4].iov_base = (char *) cursors;
3695    xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t);
3696    xcb_parts[5].iov_base = 0;
3697    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3698    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3699    return xcb_ret;
3700}
3701
3702
3703/*****************************************************************************
3704 **
3705 ** xcb_void_cookie_t xcb_render_create_anim_cursor
3706 **
3707 ** @param xcb_connection_t                 *c
3708 ** @param xcb_cursor_t                      cid
3709 ** @param uint32_t                          cursors_len
3710 ** @param const xcb_render_animcursorelt_t *cursors
3711 ** @returns xcb_void_cookie_t
3712 **
3713 *****************************************************************************/
3714
3715xcb_void_cookie_t
3716xcb_render_create_anim_cursor (xcb_connection_t                 *c  /**< */,
3717                               xcb_cursor_t                      cid  /**< */,
3718                               uint32_t                          cursors_len  /**< */,
3719                               const xcb_render_animcursorelt_t *cursors  /**< */)
3720{
3721    static const xcb_protocol_request_t xcb_req = {
3722        /* count */ 4,
3723        /* ext */ &xcb_render_id,
3724        /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR,
3725        /* isvoid */ 1
3726    };
3727
3728    struct iovec xcb_parts[6];
3729    xcb_void_cookie_t xcb_ret;
3730    xcb_render_create_anim_cursor_request_t xcb_out;
3731
3732    xcb_out.cid = cid;
3733
3734    xcb_parts[2].iov_base = (char *) &xcb_out;
3735    xcb_parts[2].iov_len = sizeof(xcb_out);
3736    xcb_parts[3].iov_base = 0;
3737    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3738    xcb_parts[4].iov_base = (char *) cursors;
3739    xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t);
3740    xcb_parts[5].iov_base = 0;
3741    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3742    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3743    return xcb_ret;
3744}
3745
3746
3747/*****************************************************************************
3748 **
3749 ** void xcb_render_spanfix_next
3750 **
3751 ** @param xcb_render_spanfix_iterator_t *i
3752 ** @returns void
3753 **
3754 *****************************************************************************/
3755
3756void
3757xcb_render_spanfix_next (xcb_render_spanfix_iterator_t *i  /**< */)
3758{
3759    --i->rem;
3760    ++i->data;
3761    i->index += sizeof(xcb_render_spanfix_t);
3762}
3763
3764
3765/*****************************************************************************
3766 **
3767 ** xcb_generic_iterator_t xcb_render_spanfix_end
3768 **
3769 ** @param xcb_render_spanfix_iterator_t i
3770 ** @returns xcb_generic_iterator_t
3771 **
3772 *****************************************************************************/
3773
3774xcb_generic_iterator_t
3775xcb_render_spanfix_end (xcb_render_spanfix_iterator_t i  /**< */)
3776{
3777    xcb_generic_iterator_t ret;
3778    ret.data = i.data + i.rem;
3779    ret.index = i.index + ((char *) ret.data - (char *) i.data);
3780    ret.rem = 0;
3781    return ret;
3782}
3783
3784
3785/*****************************************************************************
3786 **
3787 ** void xcb_render_trap_next
3788 **
3789 ** @param xcb_render_trap_iterator_t *i
3790 ** @returns void
3791 **
3792 *****************************************************************************/
3793
3794void
3795xcb_render_trap_next (xcb_render_trap_iterator_t *i  /**< */)
3796{
3797    --i->rem;
3798    ++i->data;
3799    i->index += sizeof(xcb_render_trap_t);
3800}
3801
3802
3803/*****************************************************************************
3804 **
3805 ** xcb_generic_iterator_t xcb_render_trap_end
3806 **
3807 ** @param xcb_render_trap_iterator_t i
3808 ** @returns xcb_generic_iterator_t
3809 **
3810 *****************************************************************************/
3811
3812xcb_generic_iterator_t
3813xcb_render_trap_end (xcb_render_trap_iterator_t i  /**< */)
3814{
3815    xcb_generic_iterator_t ret;
3816    ret.data = i.data + i.rem;
3817    ret.index = i.index + ((char *) ret.data - (char *) i.data);
3818    ret.rem = 0;
3819    return ret;
3820}
3821
3822
3823/*****************************************************************************
3824 **
3825 ** xcb_void_cookie_t xcb_render_add_traps_checked
3826 **
3827 ** @param xcb_connection_t        *c
3828 ** @param xcb_render_picture_t     picture
3829 ** @param int16_t                  x_off
3830 ** @param int16_t                  y_off
3831 ** @param uint32_t                 traps_len
3832 ** @param const xcb_render_trap_t *traps
3833 ** @returns xcb_void_cookie_t
3834 **
3835 *****************************************************************************/
3836
3837xcb_void_cookie_t
3838xcb_render_add_traps_checked (xcb_connection_t        *c  /**< */,
3839                              xcb_render_picture_t     picture  /**< */,
3840                              int16_t                  x_off  /**< */,
3841                              int16_t                  y_off  /**< */,
3842                              uint32_t                 traps_len  /**< */,
3843                              const xcb_render_trap_t *traps  /**< */)
3844{
3845    static const xcb_protocol_request_t xcb_req = {
3846        /* count */ 4,
3847        /* ext */ &xcb_render_id,
3848        /* opcode */ XCB_RENDER_ADD_TRAPS,
3849        /* isvoid */ 1
3850    };
3851
3852    struct iovec xcb_parts[6];
3853    xcb_void_cookie_t xcb_ret;
3854    xcb_render_add_traps_request_t xcb_out;
3855
3856    xcb_out.picture = picture;
3857    xcb_out.x_off = x_off;
3858    xcb_out.y_off = y_off;
3859
3860    xcb_parts[2].iov_base = (char *) &xcb_out;
3861    xcb_parts[2].iov_len = sizeof(xcb_out);
3862    xcb_parts[3].iov_base = 0;
3863    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3864    xcb_parts[4].iov_base = (char *) traps;
3865    xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t);
3866    xcb_parts[5].iov_base = 0;
3867    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3868    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3869    return xcb_ret;
3870}
3871
3872
3873/*****************************************************************************
3874 **
3875 ** xcb_void_cookie_t xcb_render_add_traps
3876 **
3877 ** @param xcb_connection_t        *c
3878 ** @param xcb_render_picture_t     picture
3879 ** @param int16_t                  x_off
3880 ** @param int16_t                  y_off
3881 ** @param uint32_t                 traps_len
3882 ** @param const xcb_render_trap_t *traps
3883 ** @returns xcb_void_cookie_t
3884 **
3885 *****************************************************************************/
3886
3887xcb_void_cookie_t
3888xcb_render_add_traps (xcb_connection_t        *c  /**< */,
3889                      xcb_render_picture_t     picture  /**< */,
3890                      int16_t                  x_off  /**< */,
3891                      int16_t                  y_off  /**< */,
3892                      uint32_t                 traps_len  /**< */,
3893                      const xcb_render_trap_t *traps  /**< */)
3894{
3895    static const xcb_protocol_request_t xcb_req = {
3896        /* count */ 4,
3897        /* ext */ &xcb_render_id,
3898        /* opcode */ XCB_RENDER_ADD_TRAPS,
3899        /* isvoid */ 1
3900    };
3901
3902    struct iovec xcb_parts[6];
3903    xcb_void_cookie_t xcb_ret;
3904    xcb_render_add_traps_request_t xcb_out;
3905
3906    xcb_out.picture = picture;
3907    xcb_out.x_off = x_off;
3908    xcb_out.y_off = y_off;
3909
3910    xcb_parts[2].iov_base = (char *) &xcb_out;
3911    xcb_parts[2].iov_len = sizeof(xcb_out);
3912    xcb_parts[3].iov_base = 0;
3913    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3914    xcb_parts[4].iov_base = (char *) traps;
3915    xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t);
3916    xcb_parts[5].iov_base = 0;
3917    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3918    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3919    return xcb_ret;
3920}
3921
3922
3923/*****************************************************************************
3924 **
3925 ** xcb_void_cookie_t xcb_render_create_solid_fill_checked
3926 **
3927 ** @param xcb_connection_t     *c
3928 ** @param xcb_render_picture_t  picture
3929 ** @param xcb_render_color_t    color
3930 ** @returns xcb_void_cookie_t
3931 **
3932 *****************************************************************************/
3933
3934xcb_void_cookie_t
3935xcb_render_create_solid_fill_checked (xcb_connection_t     *c  /**< */,
3936                                      xcb_render_picture_t  picture  /**< */,
3937                                      xcb_render_color_t    color  /**< */)
3938{
3939    static const xcb_protocol_request_t xcb_req = {
3940        /* count */ 2,
3941        /* ext */ &xcb_render_id,
3942        /* opcode */ XCB_RENDER_CREATE_SOLID_FILL,
3943        /* isvoid */ 1
3944    };
3945
3946    struct iovec xcb_parts[4];
3947    xcb_void_cookie_t xcb_ret;
3948    xcb_render_create_solid_fill_request_t xcb_out;
3949
3950    xcb_out.picture = picture;
3951    xcb_out.color = color;
3952
3953    xcb_parts[2].iov_base = (char *) &xcb_out;
3954    xcb_parts[2].iov_len = sizeof(xcb_out);
3955    xcb_parts[3].iov_base = 0;
3956    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3957    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3958    return xcb_ret;
3959}
3960
3961
3962/*****************************************************************************
3963 **
3964 ** xcb_void_cookie_t xcb_render_create_solid_fill
3965 **
3966 ** @param xcb_connection_t     *c
3967 ** @param xcb_render_picture_t  picture
3968 ** @param xcb_render_color_t    color
3969 ** @returns xcb_void_cookie_t
3970 **
3971 *****************************************************************************/
3972
3973xcb_void_cookie_t
3974xcb_render_create_solid_fill (xcb_connection_t     *c  /**< */,
3975                              xcb_render_picture_t  picture  /**< */,
3976                              xcb_render_color_t    color  /**< */)
3977{
3978    static const xcb_protocol_request_t xcb_req = {
3979        /* count */ 2,
3980        /* ext */ &xcb_render_id,
3981        /* opcode */ XCB_RENDER_CREATE_SOLID_FILL,
3982        /* isvoid */ 1
3983    };
3984
3985    struct iovec xcb_parts[4];
3986    xcb_void_cookie_t xcb_ret;
3987    xcb_render_create_solid_fill_request_t xcb_out;
3988
3989    xcb_out.picture = picture;
3990    xcb_out.color = color;
3991
3992    xcb_parts[2].iov_base = (char *) &xcb_out;
3993    xcb_parts[2].iov_len = sizeof(xcb_out);
3994    xcb_parts[3].iov_base = 0;
3995    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3996    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3997    return xcb_ret;
3998}
3999
4000
4001/*****************************************************************************
4002 **
4003 ** xcb_void_cookie_t xcb_render_create_linear_gradient_checked
4004 **
4005 ** @param xcb_connection_t         *c
4006 ** @param xcb_render_picture_t      picture
4007 ** @param xcb_render_pointfix_t     p1
4008 ** @param xcb_render_pointfix_t     p2
4009 ** @param uint32_t                  num_stops
4010 ** @param const xcb_render_fixed_t *stops
4011 ** @param const xcb_render_color_t *colors
4012 ** @returns xcb_void_cookie_t
4013 **
4014 *****************************************************************************/
4015
4016xcb_void_cookie_t
4017xcb_render_create_linear_gradient_checked (xcb_connection_t         *c  /**< */,
4018                                           xcb_render_picture_t      picture  /**< */,
4019                                           xcb_render_pointfix_t     p1  /**< */,
4020                                           xcb_render_pointfix_t     p2  /**< */,
4021                                           uint32_t                  num_stops  /**< */,
4022                                           const xcb_render_fixed_t *stops  /**< */,
4023                                           const xcb_render_color_t *colors  /**< */)
4024{
4025    static const xcb_protocol_request_t xcb_req = {
4026        /* count */ 6,
4027        /* ext */ &xcb_render_id,
4028        /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT,
4029        /* isvoid */ 1
4030    };
4031
4032    struct iovec xcb_parts[8];
4033    xcb_void_cookie_t xcb_ret;
4034    xcb_render_create_linear_gradient_request_t xcb_out;
4035
4036    xcb_out.picture = picture;
4037    xcb_out.p1 = p1;
4038    xcb_out.p2 = p2;
4039    xcb_out.num_stops = num_stops;
4040
4041    xcb_parts[2].iov_base = (char *) &xcb_out;
4042    xcb_parts[2].iov_len = sizeof(xcb_out);
4043    xcb_parts[3].iov_base = 0;
4044    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4045    xcb_parts[4].iov_base = (char *) stops;
4046    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4047    xcb_parts[5].iov_base = 0;
4048    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4049    xcb_parts[6].iov_base = (char *) colors;
4050    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4051    xcb_parts[7].iov_base = 0;
4052    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4053    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4054    return xcb_ret;
4055}
4056
4057
4058/*****************************************************************************
4059 **
4060 ** xcb_void_cookie_t xcb_render_create_linear_gradient
4061 **
4062 ** @param xcb_connection_t         *c
4063 ** @param xcb_render_picture_t      picture
4064 ** @param xcb_render_pointfix_t     p1
4065 ** @param xcb_render_pointfix_t     p2
4066 ** @param uint32_t                  num_stops
4067 ** @param const xcb_render_fixed_t *stops
4068 ** @param const xcb_render_color_t *colors
4069 ** @returns xcb_void_cookie_t
4070 **
4071 *****************************************************************************/
4072
4073xcb_void_cookie_t
4074xcb_render_create_linear_gradient (xcb_connection_t         *c  /**< */,
4075                                   xcb_render_picture_t      picture  /**< */,
4076                                   xcb_render_pointfix_t     p1  /**< */,
4077                                   xcb_render_pointfix_t     p2  /**< */,
4078                                   uint32_t                  num_stops  /**< */,
4079                                   const xcb_render_fixed_t *stops  /**< */,
4080                                   const xcb_render_color_t *colors  /**< */)
4081{
4082    static const xcb_protocol_request_t xcb_req = {
4083        /* count */ 6,
4084        /* ext */ &xcb_render_id,
4085        /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT,
4086        /* isvoid */ 1
4087    };
4088
4089    struct iovec xcb_parts[8];
4090    xcb_void_cookie_t xcb_ret;
4091    xcb_render_create_linear_gradient_request_t xcb_out;
4092
4093    xcb_out.picture = picture;
4094    xcb_out.p1 = p1;
4095    xcb_out.p2 = p2;
4096    xcb_out.num_stops = num_stops;
4097
4098    xcb_parts[2].iov_base = (char *) &xcb_out;
4099    xcb_parts[2].iov_len = sizeof(xcb_out);
4100    xcb_parts[3].iov_base = 0;
4101    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4102    xcb_parts[4].iov_base = (char *) stops;
4103    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4104    xcb_parts[5].iov_base = 0;
4105    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4106    xcb_parts[6].iov_base = (char *) colors;
4107    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4108    xcb_parts[7].iov_base = 0;
4109    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4110    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4111    return xcb_ret;
4112}
4113
4114
4115/*****************************************************************************
4116 **
4117 ** xcb_void_cookie_t xcb_render_create_radial_gradient_checked
4118 **
4119 ** @param xcb_connection_t         *c
4120 ** @param xcb_render_picture_t      picture
4121 ** @param xcb_render_pointfix_t     inner
4122 ** @param xcb_render_pointfix_t     outer
4123 ** @param xcb_render_fixed_t        inner_radius
4124 ** @param xcb_render_fixed_t        outer_radius
4125 ** @param uint32_t                  num_stops
4126 ** @param const xcb_render_fixed_t *stops
4127 ** @param const xcb_render_color_t *colors
4128 ** @returns xcb_void_cookie_t
4129 **
4130 *****************************************************************************/
4131
4132xcb_void_cookie_t
4133xcb_render_create_radial_gradient_checked (xcb_connection_t         *c  /**< */,
4134                                           xcb_render_picture_t      picture  /**< */,
4135                                           xcb_render_pointfix_t     inner  /**< */,
4136                                           xcb_render_pointfix_t     outer  /**< */,
4137                                           xcb_render_fixed_t        inner_radius  /**< */,
4138                                           xcb_render_fixed_t        outer_radius  /**< */,
4139                                           uint32_t                  num_stops  /**< */,
4140                                           const xcb_render_fixed_t *stops  /**< */,
4141                                           const xcb_render_color_t *colors  /**< */)
4142{
4143    static const xcb_protocol_request_t xcb_req = {
4144        /* count */ 6,
4145        /* ext */ &xcb_render_id,
4146        /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT,
4147        /* isvoid */ 1
4148    };
4149
4150    struct iovec xcb_parts[8];
4151    xcb_void_cookie_t xcb_ret;
4152    xcb_render_create_radial_gradient_request_t xcb_out;
4153
4154    xcb_out.picture = picture;
4155    xcb_out.inner = inner;
4156    xcb_out.outer = outer;
4157    xcb_out.inner_radius = inner_radius;
4158    xcb_out.outer_radius = outer_radius;
4159    xcb_out.num_stops = num_stops;
4160
4161    xcb_parts[2].iov_base = (char *) &xcb_out;
4162    xcb_parts[2].iov_len = sizeof(xcb_out);
4163    xcb_parts[3].iov_base = 0;
4164    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4165    xcb_parts[4].iov_base = (char *) stops;
4166    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4167    xcb_parts[5].iov_base = 0;
4168    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4169    xcb_parts[6].iov_base = (char *) colors;
4170    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4171    xcb_parts[7].iov_base = 0;
4172    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4173    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4174    return xcb_ret;
4175}
4176
4177
4178/*****************************************************************************
4179 **
4180 ** xcb_void_cookie_t xcb_render_create_radial_gradient
4181 **
4182 ** @param xcb_connection_t         *c
4183 ** @param xcb_render_picture_t      picture
4184 ** @param xcb_render_pointfix_t     inner
4185 ** @param xcb_render_pointfix_t     outer
4186 ** @param xcb_render_fixed_t        inner_radius
4187 ** @param xcb_render_fixed_t        outer_radius
4188 ** @param uint32_t                  num_stops
4189 ** @param const xcb_render_fixed_t *stops
4190 ** @param const xcb_render_color_t *colors
4191 ** @returns xcb_void_cookie_t
4192 **
4193 *****************************************************************************/
4194
4195xcb_void_cookie_t
4196xcb_render_create_radial_gradient (xcb_connection_t         *c  /**< */,
4197                                   xcb_render_picture_t      picture  /**< */,
4198                                   xcb_render_pointfix_t     inner  /**< */,
4199                                   xcb_render_pointfix_t     outer  /**< */,
4200                                   xcb_render_fixed_t        inner_radius  /**< */,
4201                                   xcb_render_fixed_t        outer_radius  /**< */,
4202                                   uint32_t                  num_stops  /**< */,
4203                                   const xcb_render_fixed_t *stops  /**< */,
4204                                   const xcb_render_color_t *colors  /**< */)
4205{
4206    static const xcb_protocol_request_t xcb_req = {
4207        /* count */ 6,
4208        /* ext */ &xcb_render_id,
4209        /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT,
4210        /* isvoid */ 1
4211    };
4212
4213    struct iovec xcb_parts[8];
4214    xcb_void_cookie_t xcb_ret;
4215    xcb_render_create_radial_gradient_request_t xcb_out;
4216
4217    xcb_out.picture = picture;
4218    xcb_out.inner = inner;
4219    xcb_out.outer = outer;
4220    xcb_out.inner_radius = inner_radius;
4221    xcb_out.outer_radius = outer_radius;
4222    xcb_out.num_stops = num_stops;
4223
4224    xcb_parts[2].iov_base = (char *) &xcb_out;
4225    xcb_parts[2].iov_len = sizeof(xcb_out);
4226    xcb_parts[3].iov_base = 0;
4227    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4228    xcb_parts[4].iov_base = (char *) stops;
4229    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4230    xcb_parts[5].iov_base = 0;
4231    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4232    xcb_parts[6].iov_base = (char *) colors;
4233    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4234    xcb_parts[7].iov_base = 0;
4235    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4236    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4237    return xcb_ret;
4238}
4239
4240
4241/*****************************************************************************
4242 **
4243 ** xcb_void_cookie_t xcb_render_create_conical_gradient_checked
4244 **
4245 ** @param xcb_connection_t         *c
4246 ** @param xcb_render_picture_t      picture
4247 ** @param xcb_render_pointfix_t     center
4248 ** @param xcb_render_fixed_t        angle
4249 ** @param uint32_t                  num_stops
4250 ** @param const xcb_render_fixed_t *stops
4251 ** @param const xcb_render_color_t *colors
4252 ** @returns xcb_void_cookie_t
4253 **
4254 *****************************************************************************/
4255
4256xcb_void_cookie_t
4257xcb_render_create_conical_gradient_checked (xcb_connection_t         *c  /**< */,
4258                                            xcb_render_picture_t      picture  /**< */,
4259                                            xcb_render_pointfix_t     center  /**< */,
4260                                            xcb_render_fixed_t        angle  /**< */,
4261                                            uint32_t                  num_stops  /**< */,
4262                                            const xcb_render_fixed_t *stops  /**< */,
4263                                            const xcb_render_color_t *colors  /**< */)
4264{
4265    static const xcb_protocol_request_t xcb_req = {
4266        /* count */ 6,
4267        /* ext */ &xcb_render_id,
4268        /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT,
4269        /* isvoid */ 1
4270    };
4271
4272    struct iovec xcb_parts[8];
4273    xcb_void_cookie_t xcb_ret;
4274    xcb_render_create_conical_gradient_request_t xcb_out;
4275
4276    xcb_out.picture = picture;
4277    xcb_out.center = center;
4278    xcb_out.angle = angle;
4279    xcb_out.num_stops = num_stops;
4280
4281    xcb_parts[2].iov_base = (char *) &xcb_out;
4282    xcb_parts[2].iov_len = sizeof(xcb_out);
4283    xcb_parts[3].iov_base = 0;
4284    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4285    xcb_parts[4].iov_base = (char *) stops;
4286    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4287    xcb_parts[5].iov_base = 0;
4288    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4289    xcb_parts[6].iov_base = (char *) colors;
4290    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4291    xcb_parts[7].iov_base = 0;
4292    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4293    xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4294    return xcb_ret;
4295}
4296
4297
4298/*****************************************************************************
4299 **
4300 ** xcb_void_cookie_t xcb_render_create_conical_gradient
4301 **
4302 ** @param xcb_connection_t         *c
4303 ** @param xcb_render_picture_t      picture
4304 ** @param xcb_render_pointfix_t     center
4305 ** @param xcb_render_fixed_t        angle
4306 ** @param uint32_t                  num_stops
4307 ** @param const xcb_render_fixed_t *stops
4308 ** @param const xcb_render_color_t *colors
4309 ** @returns xcb_void_cookie_t
4310 **
4311 *****************************************************************************/
4312
4313xcb_void_cookie_t
4314xcb_render_create_conical_gradient (xcb_connection_t         *c  /**< */,
4315                                    xcb_render_picture_t      picture  /**< */,
4316                                    xcb_render_pointfix_t     center  /**< */,
4317                                    xcb_render_fixed_t        angle  /**< */,
4318                                    uint32_t                  num_stops  /**< */,
4319                                    const xcb_render_fixed_t *stops  /**< */,
4320                                    const xcb_render_color_t *colors  /**< */)
4321{
4322    static const xcb_protocol_request_t xcb_req = {
4323        /* count */ 6,
4324        /* ext */ &xcb_render_id,
4325        /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT,
4326        /* isvoid */ 1
4327    };
4328
4329    struct iovec xcb_parts[8];
4330    xcb_void_cookie_t xcb_ret;
4331    xcb_render_create_conical_gradient_request_t xcb_out;
4332
4333    xcb_out.picture = picture;
4334    xcb_out.center = center;
4335    xcb_out.angle = angle;
4336    xcb_out.num_stops = num_stops;
4337
4338    xcb_parts[2].iov_base = (char *) &xcb_out;
4339    xcb_parts[2].iov_len = sizeof(xcb_out);
4340    xcb_parts[3].iov_base = 0;
4341    xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4342    xcb_parts[4].iov_base = (char *) stops;
4343    xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t);
4344    xcb_parts[5].iov_base = 0;
4345    xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4346    xcb_parts[6].iov_base = (char *) colors;
4347    xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t);
4348    xcb_parts[7].iov_base = 0;
4349    xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
4350    xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4351    return xcb_ret;
4352}
4353
4354