xref: /netbsd/external/mit/xorg/lib/libxcb/files/render.c (revision 6550d01e)
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 
12 xcb_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 
24 void
25 xcb_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 
42 xcb_generic_iterator_t
43 xcb_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 
62 void
63 xcb_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 
80 xcb_generic_iterator_t
81 xcb_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 
100 void
101 xcb_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 
118 xcb_generic_iterator_t
119 xcb_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 
138 void
139 xcb_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 
156 xcb_generic_iterator_t
157 xcb_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 
176 void
177 xcb_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 
194 xcb_generic_iterator_t
195 xcb_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 
214 void
215 xcb_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 
232 xcb_generic_iterator_t
233 xcb_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 
252 void
253 xcb_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 
270 xcb_generic_iterator_t
271 xcb_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 
290 void
291 xcb_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 
308 xcb_generic_iterator_t
309 xcb_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 
328 xcb_render_pictvisual_t *
329 xcb_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 
344 int
345 xcb_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 
360 xcb_render_pictvisual_iterator_t
361 xcb_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 
380 void
381 xcb_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 
400 xcb_generic_iterator_t
401 xcb_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 
422 int
423 xcb_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 
438 xcb_render_pictdepth_iterator_t
439 xcb_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 
458 void
459 xcb_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 
478 xcb_generic_iterator_t
479 xcb_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 
500 void
501 xcb_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 
518 xcb_generic_iterator_t
519 xcb_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 
538 void
539 xcb_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 
556 xcb_generic_iterator_t
557 xcb_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 
576 void
577 xcb_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 
594 xcb_generic_iterator_t
595 xcb_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 
614 void
615 xcb_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 
632 xcb_generic_iterator_t
633 xcb_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 
652 void
653 xcb_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 
670 xcb_generic_iterator_t
671 xcb_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 
690 void
691 xcb_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 
708 xcb_generic_iterator_t
709 xcb_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 
728 void
729 xcb_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 
746 xcb_generic_iterator_t
747 xcb_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 
768 xcb_render_query_version_cookie_t
769 xcb_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 
807 xcb_render_query_version_cookie_t
808 xcb_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 
846 xcb_render_query_version_reply_t *
847 xcb_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 
864 xcb_render_query_pict_formats_cookie_t
865 xcb_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 
897 xcb_render_query_pict_formats_cookie_t
898 xcb_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 
930 xcb_render_pictforminfo_t *
931 xcb_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 
946 int
947 xcb_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 
962 xcb_render_pictforminfo_iterator_t
963 xcb_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 
982 int
983 xcb_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 
998 xcb_render_pictscreen_iterator_t
999 xcb_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 
1019 uint32_t *
1020 xcb_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 
1036 int
1037 xcb_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 
1052 xcb_generic_iterator_t
1053 xcb_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 
1075 xcb_render_query_pict_formats_reply_t *
1076 xcb_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 
1094 xcb_render_query_pict_index_values_cookie_t
1095 xcb_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 
1130 xcb_render_query_pict_index_values_cookie_t
1131 xcb_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 
1165 xcb_render_indexvalue_t *
1166 xcb_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 
1181 int
1182 xcb_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 
1197 xcb_render_indexvalue_iterator_t
1198 xcb_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 
1219 xcb_render_query_pict_index_values_reply_t *
1220 xcb_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 
1242 xcb_void_cookie_t
1243 xcb_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 
1293 xcb_void_cookie_t
1294 xcb_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 
1342 xcb_void_cookie_t
1343 xcb_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 
1387 xcb_void_cookie_t
1388 xcb_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 
1434 xcb_void_cookie_t
1435 xcb_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 
1484 xcb_void_cookie_t
1485 xcb_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 
1530 xcb_void_cookie_t
1531 xcb_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 
1566 xcb_void_cookie_t
1567 xcb_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 
1613 xcb_void_cookie_t
1614 xcb_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 
1683 xcb_void_cookie_t
1684 xcb_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 
1749 xcb_void_cookie_t
1750 xcb_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 
1809 xcb_void_cookie_t
1810 xcb_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 
1869 xcb_void_cookie_t
1870 xcb_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 
1929 xcb_void_cookie_t
1930 xcb_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 
1989 xcb_void_cookie_t
1990 xcb_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 
2049 xcb_void_cookie_t
2050 xcb_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 
2109 xcb_void_cookie_t
2110 xcb_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 
2169 xcb_void_cookie_t
2170 xcb_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 
2223 xcb_void_cookie_t
2224 xcb_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 
2262 xcb_void_cookie_t
2263 xcb_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 
2301 xcb_void_cookie_t
2302 xcb_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 
2340 xcb_void_cookie_t
2341 xcb_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 
2378 xcb_void_cookie_t
2379 xcb_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 
2414 xcb_void_cookie_t
2415 xcb_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 
2455 xcb_void_cookie_t
2456 xcb_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 
2514 xcb_void_cookie_t
2515 xcb_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 
2570 xcb_void_cookie_t
2571 xcb_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 
2614 xcb_void_cookie_t
2615 xcb_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 
2664 xcb_void_cookie_t
2665 xcb_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 
2727 xcb_void_cookie_t
2728 xcb_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 
2790 xcb_void_cookie_t
2791 xcb_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 
2853 xcb_void_cookie_t
2854 xcb_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 
2916 xcb_void_cookie_t
2917 xcb_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 
2979 xcb_void_cookie_t
2980 xcb_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 
3038 xcb_void_cookie_t
3039 xcb_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 
3089 xcb_void_cookie_t
3090 xcb_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 
3139 xcb_void_cookie_t
3140 xcb_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 
3184 xcb_void_cookie_t
3185 xcb_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 
3225 void
3226 xcb_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 
3243 xcb_generic_iterator_t
3244 xcb_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 
3265 xcb_void_cookie_t
3266 xcb_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 
3304 xcb_void_cookie_t
3305 xcb_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 
3342 xcb_render_query_filters_cookie_t
3343 xcb_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 
3378 xcb_render_query_filters_cookie_t
3379 xcb_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 
3413 uint16_t *
3414 xcb_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 
3429 int
3430 xcb_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 
3445 xcb_generic_iterator_t
3446 xcb_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 
3465 int
3466 xcb_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 
3481 xcb_str_iterator_t
3482 xcb_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 
3504 xcb_render_query_filters_reply_t *
3505 xcb_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 
3527 xcb_void_cookie_t
3528 xcb_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 
3581 xcb_void_cookie_t
3582 xcb_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 
3630 void
3631 xcb_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 
3648 xcb_generic_iterator_t
3649 xcb_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 
3671 xcb_void_cookie_t
3672 xcb_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 
3715 xcb_void_cookie_t
3716 xcb_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 
3756 void
3757 xcb_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 
3774 xcb_generic_iterator_t
3775 xcb_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 
3794 void
3795 xcb_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 
3812 xcb_generic_iterator_t
3813 xcb_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 
3837 xcb_void_cookie_t
3838 xcb_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 
3887 xcb_void_cookie_t
3888 xcb_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 
3934 xcb_void_cookie_t
3935 xcb_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 
3973 xcb_void_cookie_t
3974 xcb_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 
4016 xcb_void_cookie_t
4017 xcb_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 
4073 xcb_void_cookie_t
4074 xcb_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 
4132 xcb_void_cookie_t
4133 xcb_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 
4195 xcb_void_cookie_t
4196 xcb_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 
4256 xcb_void_cookie_t
4257 xcb_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 
4313 xcb_void_cookie_t
4314 xcb_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