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