10d429e5bSmrg /*
20d429e5bSmrg * This file generated automatically from shape.xml by c_client.py.
30d429e5bSmrg * Edit at your peril.
40d429e5bSmrg */
50d429e5bSmrg
6ed2038faSmrg #ifdef HAVE_CONFIG_H
7ed2038faSmrg #include "config.h"
8ed2038faSmrg #endif
9ed2038faSmrg #include <stdlib.h>
100d429e5bSmrg #include <string.h>
110d429e5bSmrg #include <assert.h>
12ed2038faSmrg #include <stddef.h> /* for offsetof() */
130d429e5bSmrg #include "xcbext.h"
140d429e5bSmrg #include "shape.h"
15ed2038faSmrg
16ed2038faSmrg #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
170d429e5bSmrg #include "xproto.h"
180d429e5bSmrg
190d429e5bSmrg xcb_extension_t xcb_shape_id = { "SHAPE", 0 };
200d429e5bSmrg
210d429e5bSmrg void
xcb_shape_op_next(xcb_shape_op_iterator_t * i)22*ba6321feSmrg xcb_shape_op_next (xcb_shape_op_iterator_t *i)
230d429e5bSmrg {
240d429e5bSmrg --i->rem;
250d429e5bSmrg ++i->data;
260d429e5bSmrg i->index += sizeof(xcb_shape_op_t);
270d429e5bSmrg }
280d429e5bSmrg
290d429e5bSmrg xcb_generic_iterator_t
xcb_shape_op_end(xcb_shape_op_iterator_t i)30*ba6321feSmrg xcb_shape_op_end (xcb_shape_op_iterator_t i)
310d429e5bSmrg {
320d429e5bSmrg xcb_generic_iterator_t ret;
330d429e5bSmrg ret.data = i.data + i.rem;
340d429e5bSmrg ret.index = i.index + ((char *) ret.data - (char *) i.data);
350d429e5bSmrg ret.rem = 0;
360d429e5bSmrg return ret;
370d429e5bSmrg }
380d429e5bSmrg
390d429e5bSmrg void
xcb_shape_kind_next(xcb_shape_kind_iterator_t * i)40*ba6321feSmrg xcb_shape_kind_next (xcb_shape_kind_iterator_t *i)
410d429e5bSmrg {
420d429e5bSmrg --i->rem;
430d429e5bSmrg ++i->data;
440d429e5bSmrg i->index += sizeof(xcb_shape_kind_t);
450d429e5bSmrg }
460d429e5bSmrg
470d429e5bSmrg xcb_generic_iterator_t
xcb_shape_kind_end(xcb_shape_kind_iterator_t i)48*ba6321feSmrg xcb_shape_kind_end (xcb_shape_kind_iterator_t i)
490d429e5bSmrg {
500d429e5bSmrg xcb_generic_iterator_t ret;
510d429e5bSmrg ret.data = i.data + i.rem;
520d429e5bSmrg ret.index = i.index + ((char *) ret.data - (char *) i.data);
530d429e5bSmrg ret.rem = 0;
540d429e5bSmrg return ret;
550d429e5bSmrg }
560d429e5bSmrg
570d429e5bSmrg xcb_shape_query_version_cookie_t
xcb_shape_query_version(xcb_connection_t * c)58*ba6321feSmrg xcb_shape_query_version (xcb_connection_t *c)
590d429e5bSmrg {
600d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
61*ba6321feSmrg .count = 2,
62*ba6321feSmrg .ext = &xcb_shape_id,
63*ba6321feSmrg .opcode = XCB_SHAPE_QUERY_VERSION,
64*ba6321feSmrg .isvoid = 0
650d429e5bSmrg };
660d429e5bSmrg
670d429e5bSmrg struct iovec xcb_parts[4];
680d429e5bSmrg xcb_shape_query_version_cookie_t xcb_ret;
690d429e5bSmrg xcb_shape_query_version_request_t xcb_out;
700d429e5bSmrg
710d429e5bSmrg
720d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
730d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
740d429e5bSmrg xcb_parts[3].iov_base = 0;
750d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
76ed2038faSmrg
770d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
780d429e5bSmrg return xcb_ret;
790d429e5bSmrg }
800d429e5bSmrg
810d429e5bSmrg xcb_shape_query_version_cookie_t
xcb_shape_query_version_unchecked(xcb_connection_t * c)82*ba6321feSmrg xcb_shape_query_version_unchecked (xcb_connection_t *c)
830d429e5bSmrg {
840d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
85*ba6321feSmrg .count = 2,
86*ba6321feSmrg .ext = &xcb_shape_id,
87*ba6321feSmrg .opcode = XCB_SHAPE_QUERY_VERSION,
88*ba6321feSmrg .isvoid = 0
890d429e5bSmrg };
900d429e5bSmrg
910d429e5bSmrg struct iovec xcb_parts[4];
920d429e5bSmrg xcb_shape_query_version_cookie_t xcb_ret;
930d429e5bSmrg xcb_shape_query_version_request_t xcb_out;
940d429e5bSmrg
950d429e5bSmrg
960d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
970d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
980d429e5bSmrg xcb_parts[3].iov_base = 0;
990d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
100ed2038faSmrg
1010d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1020d429e5bSmrg return xcb_ret;
1030d429e5bSmrg }
1040d429e5bSmrg
1050d429e5bSmrg xcb_shape_query_version_reply_t *
xcb_shape_query_version_reply(xcb_connection_t * c,xcb_shape_query_version_cookie_t cookie,xcb_generic_error_t ** e)106*ba6321feSmrg xcb_shape_query_version_reply (xcb_connection_t *c,
1070d429e5bSmrg xcb_shape_query_version_cookie_t cookie /**< */,
108*ba6321feSmrg xcb_generic_error_t **e)
1090d429e5bSmrg {
1100d429e5bSmrg return (xcb_shape_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1110d429e5bSmrg }
1120d429e5bSmrg
113ed2038faSmrg int
xcb_shape_rectangles_sizeof(const void * _buffer,uint32_t rectangles_len)114*ba6321feSmrg xcb_shape_rectangles_sizeof (const void *_buffer,
115*ba6321feSmrg uint32_t rectangles_len)
116ed2038faSmrg {
117ed2038faSmrg char *xcb_tmp = (char *)_buffer;
118ed2038faSmrg unsigned int xcb_buffer_len = 0;
119ed2038faSmrg unsigned int xcb_block_len = 0;
120ed2038faSmrg unsigned int xcb_pad = 0;
1216f16f8b8Smrg unsigned int xcb_align_to = 0;
122ed2038faSmrg
123ed2038faSmrg
124ed2038faSmrg xcb_block_len += sizeof(xcb_shape_rectangles_request_t);
125ed2038faSmrg xcb_tmp += xcb_block_len;
1266f16f8b8Smrg xcb_buffer_len += xcb_block_len;
1276f16f8b8Smrg xcb_block_len = 0;
128ed2038faSmrg /* rectangles */
129ed2038faSmrg xcb_block_len += rectangles_len * sizeof(xcb_rectangle_t);
130ed2038faSmrg xcb_tmp += xcb_block_len;
131ed2038faSmrg xcb_align_to = ALIGNOF(xcb_rectangle_t);
132ed2038faSmrg /* insert padding */
133ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
134ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
135ed2038faSmrg if (0 != xcb_pad) {
136ed2038faSmrg xcb_tmp += xcb_pad;
137ed2038faSmrg xcb_pad = 0;
138ed2038faSmrg }
139ed2038faSmrg xcb_block_len = 0;
140ed2038faSmrg
141ed2038faSmrg return xcb_buffer_len;
142ed2038faSmrg }
143ed2038faSmrg
1440d429e5bSmrg xcb_void_cookie_t
xcb_shape_rectangles_checked(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,uint8_t ordering,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,uint32_t rectangles_len,const xcb_rectangle_t * rectangles)145*ba6321feSmrg xcb_shape_rectangles_checked (xcb_connection_t *c,
146*ba6321feSmrg xcb_shape_op_t operation,
147*ba6321feSmrg xcb_shape_kind_t destination_kind,
148*ba6321feSmrg uint8_t ordering,
149*ba6321feSmrg xcb_window_t destination_window,
150*ba6321feSmrg int16_t x_offset,
151*ba6321feSmrg int16_t y_offset,
152*ba6321feSmrg uint32_t rectangles_len,
153*ba6321feSmrg const xcb_rectangle_t *rectangles)
1540d429e5bSmrg {
1550d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
156*ba6321feSmrg .count = 4,
157*ba6321feSmrg .ext = &xcb_shape_id,
158*ba6321feSmrg .opcode = XCB_SHAPE_RECTANGLES,
159*ba6321feSmrg .isvoid = 1
1600d429e5bSmrg };
1610d429e5bSmrg
1620d429e5bSmrg struct iovec xcb_parts[6];
1630d429e5bSmrg xcb_void_cookie_t xcb_ret;
1640d429e5bSmrg xcb_shape_rectangles_request_t xcb_out;
1650d429e5bSmrg
1660d429e5bSmrg xcb_out.operation = operation;
1670d429e5bSmrg xcb_out.destination_kind = destination_kind;
1680d429e5bSmrg xcb_out.ordering = ordering;
1690d429e5bSmrg xcb_out.pad0 = 0;
1700d429e5bSmrg xcb_out.destination_window = destination_window;
1710d429e5bSmrg xcb_out.x_offset = x_offset;
1720d429e5bSmrg xcb_out.y_offset = y_offset;
1730d429e5bSmrg
1740d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1750d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1760d429e5bSmrg xcb_parts[3].iov_base = 0;
1770d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
178ed2038faSmrg /* xcb_rectangle_t rectangles */
1790d429e5bSmrg xcb_parts[4].iov_base = (char *) rectangles;
1800d429e5bSmrg xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
1810d429e5bSmrg xcb_parts[5].iov_base = 0;
1820d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
183ed2038faSmrg
1840d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1850d429e5bSmrg return xcb_ret;
1860d429e5bSmrg }
1870d429e5bSmrg
1880d429e5bSmrg xcb_void_cookie_t
xcb_shape_rectangles(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,uint8_t ordering,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,uint32_t rectangles_len,const xcb_rectangle_t * rectangles)189*ba6321feSmrg xcb_shape_rectangles (xcb_connection_t *c,
190*ba6321feSmrg xcb_shape_op_t operation,
191*ba6321feSmrg xcb_shape_kind_t destination_kind,
192*ba6321feSmrg uint8_t ordering,
193*ba6321feSmrg xcb_window_t destination_window,
194*ba6321feSmrg int16_t x_offset,
195*ba6321feSmrg int16_t y_offset,
196*ba6321feSmrg uint32_t rectangles_len,
197*ba6321feSmrg const xcb_rectangle_t *rectangles)
1980d429e5bSmrg {
1990d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
200*ba6321feSmrg .count = 4,
201*ba6321feSmrg .ext = &xcb_shape_id,
202*ba6321feSmrg .opcode = XCB_SHAPE_RECTANGLES,
203*ba6321feSmrg .isvoid = 1
2040d429e5bSmrg };
2050d429e5bSmrg
2060d429e5bSmrg struct iovec xcb_parts[6];
2070d429e5bSmrg xcb_void_cookie_t xcb_ret;
2080d429e5bSmrg xcb_shape_rectangles_request_t xcb_out;
2090d429e5bSmrg
2100d429e5bSmrg xcb_out.operation = operation;
2110d429e5bSmrg xcb_out.destination_kind = destination_kind;
2120d429e5bSmrg xcb_out.ordering = ordering;
2130d429e5bSmrg xcb_out.pad0 = 0;
2140d429e5bSmrg xcb_out.destination_window = destination_window;
2150d429e5bSmrg xcb_out.x_offset = x_offset;
2160d429e5bSmrg xcb_out.y_offset = y_offset;
2170d429e5bSmrg
2180d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2190d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2200d429e5bSmrg xcb_parts[3].iov_base = 0;
2210d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
222ed2038faSmrg /* xcb_rectangle_t rectangles */
2230d429e5bSmrg xcb_parts[4].iov_base = (char *) rectangles;
2240d429e5bSmrg xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t);
2250d429e5bSmrg xcb_parts[5].iov_base = 0;
2260d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
227ed2038faSmrg
2280d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2290d429e5bSmrg return xcb_ret;
2300d429e5bSmrg }
2310d429e5bSmrg
232*ba6321feSmrg xcb_rectangle_t *
xcb_shape_rectangles_rectangles(const xcb_shape_rectangles_request_t * R)233*ba6321feSmrg xcb_shape_rectangles_rectangles (const xcb_shape_rectangles_request_t *R)
234*ba6321feSmrg {
235*ba6321feSmrg return (xcb_rectangle_t *) (R + 1);
236*ba6321feSmrg }
237*ba6321feSmrg
238*ba6321feSmrg int
xcb_shape_rectangles_rectangles_length(const xcb_shape_rectangles_request_t * R)239*ba6321feSmrg xcb_shape_rectangles_rectangles_length (const xcb_shape_rectangles_request_t *R)
240*ba6321feSmrg {
241*ba6321feSmrg return (((R->length * 4) - sizeof(xcb_shape_rectangles_request_t))/sizeof(xcb_rectangle_t));
242*ba6321feSmrg }
243*ba6321feSmrg
244*ba6321feSmrg xcb_rectangle_iterator_t
xcb_shape_rectangles_rectangles_iterator(const xcb_shape_rectangles_request_t * R)245*ba6321feSmrg xcb_shape_rectangles_rectangles_iterator (const xcb_shape_rectangles_request_t *R)
246*ba6321feSmrg {
247*ba6321feSmrg xcb_rectangle_iterator_t i;
248*ba6321feSmrg i.data = (xcb_rectangle_t *) (R + 1);
249*ba6321feSmrg i.rem = (((R->length * 4) - sizeof(xcb_shape_rectangles_request_t))/sizeof(xcb_rectangle_t));
250*ba6321feSmrg i.index = (char *) i.data - (char *) R;
251*ba6321feSmrg return i;
252*ba6321feSmrg }
253*ba6321feSmrg
2540d429e5bSmrg xcb_void_cookie_t
xcb_shape_mask_checked(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,xcb_pixmap_t source_bitmap)255*ba6321feSmrg xcb_shape_mask_checked (xcb_connection_t *c,
256*ba6321feSmrg xcb_shape_op_t operation,
257*ba6321feSmrg xcb_shape_kind_t destination_kind,
258*ba6321feSmrg xcb_window_t destination_window,
259*ba6321feSmrg int16_t x_offset,
260*ba6321feSmrg int16_t y_offset,
261*ba6321feSmrg xcb_pixmap_t source_bitmap)
2620d429e5bSmrg {
2630d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
264*ba6321feSmrg .count = 2,
265*ba6321feSmrg .ext = &xcb_shape_id,
266*ba6321feSmrg .opcode = XCB_SHAPE_MASK,
267*ba6321feSmrg .isvoid = 1
2680d429e5bSmrg };
2690d429e5bSmrg
2700d429e5bSmrg struct iovec xcb_parts[4];
2710d429e5bSmrg xcb_void_cookie_t xcb_ret;
2720d429e5bSmrg xcb_shape_mask_request_t xcb_out;
2730d429e5bSmrg
2740d429e5bSmrg xcb_out.operation = operation;
2750d429e5bSmrg xcb_out.destination_kind = destination_kind;
2760d429e5bSmrg memset(xcb_out.pad0, 0, 2);
2770d429e5bSmrg xcb_out.destination_window = destination_window;
2780d429e5bSmrg xcb_out.x_offset = x_offset;
2790d429e5bSmrg xcb_out.y_offset = y_offset;
2800d429e5bSmrg xcb_out.source_bitmap = source_bitmap;
2810d429e5bSmrg
2820d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2830d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2840d429e5bSmrg xcb_parts[3].iov_base = 0;
2850d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
286ed2038faSmrg
2870d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2880d429e5bSmrg return xcb_ret;
2890d429e5bSmrg }
2900d429e5bSmrg
2910d429e5bSmrg xcb_void_cookie_t
xcb_shape_mask(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,xcb_pixmap_t source_bitmap)292*ba6321feSmrg xcb_shape_mask (xcb_connection_t *c,
293*ba6321feSmrg xcb_shape_op_t operation,
294*ba6321feSmrg xcb_shape_kind_t destination_kind,
295*ba6321feSmrg xcb_window_t destination_window,
296*ba6321feSmrg int16_t x_offset,
297*ba6321feSmrg int16_t y_offset,
298*ba6321feSmrg xcb_pixmap_t source_bitmap)
2990d429e5bSmrg {
3000d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
301*ba6321feSmrg .count = 2,
302*ba6321feSmrg .ext = &xcb_shape_id,
303*ba6321feSmrg .opcode = XCB_SHAPE_MASK,
304*ba6321feSmrg .isvoid = 1
3050d429e5bSmrg };
3060d429e5bSmrg
3070d429e5bSmrg struct iovec xcb_parts[4];
3080d429e5bSmrg xcb_void_cookie_t xcb_ret;
3090d429e5bSmrg xcb_shape_mask_request_t xcb_out;
3100d429e5bSmrg
3110d429e5bSmrg xcb_out.operation = operation;
3120d429e5bSmrg xcb_out.destination_kind = destination_kind;
3130d429e5bSmrg memset(xcb_out.pad0, 0, 2);
3140d429e5bSmrg xcb_out.destination_window = destination_window;
3150d429e5bSmrg xcb_out.x_offset = x_offset;
3160d429e5bSmrg xcb_out.y_offset = y_offset;
3170d429e5bSmrg xcb_out.source_bitmap = source_bitmap;
3180d429e5bSmrg
3190d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
3200d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
3210d429e5bSmrg xcb_parts[3].iov_base = 0;
3220d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
323ed2038faSmrg
3240d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3250d429e5bSmrg return xcb_ret;
3260d429e5bSmrg }
3270d429e5bSmrg
3280d429e5bSmrg xcb_void_cookie_t
xcb_shape_combine_checked(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,xcb_shape_kind_t source_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,xcb_window_t source_window)329*ba6321feSmrg xcb_shape_combine_checked (xcb_connection_t *c,
330*ba6321feSmrg xcb_shape_op_t operation,
331*ba6321feSmrg xcb_shape_kind_t destination_kind,
332*ba6321feSmrg xcb_shape_kind_t source_kind,
333*ba6321feSmrg xcb_window_t destination_window,
334*ba6321feSmrg int16_t x_offset,
335*ba6321feSmrg int16_t y_offset,
336*ba6321feSmrg xcb_window_t source_window)
3370d429e5bSmrg {
3380d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
339*ba6321feSmrg .count = 2,
340*ba6321feSmrg .ext = &xcb_shape_id,
341*ba6321feSmrg .opcode = XCB_SHAPE_COMBINE,
342*ba6321feSmrg .isvoid = 1
3430d429e5bSmrg };
3440d429e5bSmrg
3450d429e5bSmrg struct iovec xcb_parts[4];
3460d429e5bSmrg xcb_void_cookie_t xcb_ret;
3470d429e5bSmrg xcb_shape_combine_request_t xcb_out;
3480d429e5bSmrg
3490d429e5bSmrg xcb_out.operation = operation;
3500d429e5bSmrg xcb_out.destination_kind = destination_kind;
3510d429e5bSmrg xcb_out.source_kind = source_kind;
3520d429e5bSmrg xcb_out.pad0 = 0;
3530d429e5bSmrg xcb_out.destination_window = destination_window;
3540d429e5bSmrg xcb_out.x_offset = x_offset;
3550d429e5bSmrg xcb_out.y_offset = y_offset;
3560d429e5bSmrg xcb_out.source_window = source_window;
3570d429e5bSmrg
3580d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
3590d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
3600d429e5bSmrg xcb_parts[3].iov_base = 0;
3610d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
362ed2038faSmrg
3630d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3640d429e5bSmrg return xcb_ret;
3650d429e5bSmrg }
3660d429e5bSmrg
3670d429e5bSmrg xcb_void_cookie_t
xcb_shape_combine(xcb_connection_t * c,xcb_shape_op_t operation,xcb_shape_kind_t destination_kind,xcb_shape_kind_t source_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset,xcb_window_t source_window)368*ba6321feSmrg xcb_shape_combine (xcb_connection_t *c,
369*ba6321feSmrg xcb_shape_op_t operation,
370*ba6321feSmrg xcb_shape_kind_t destination_kind,
371*ba6321feSmrg xcb_shape_kind_t source_kind,
372*ba6321feSmrg xcb_window_t destination_window,
373*ba6321feSmrg int16_t x_offset,
374*ba6321feSmrg int16_t y_offset,
375*ba6321feSmrg xcb_window_t source_window)
3760d429e5bSmrg {
3770d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
378*ba6321feSmrg .count = 2,
379*ba6321feSmrg .ext = &xcb_shape_id,
380*ba6321feSmrg .opcode = XCB_SHAPE_COMBINE,
381*ba6321feSmrg .isvoid = 1
3820d429e5bSmrg };
3830d429e5bSmrg
3840d429e5bSmrg struct iovec xcb_parts[4];
3850d429e5bSmrg xcb_void_cookie_t xcb_ret;
3860d429e5bSmrg xcb_shape_combine_request_t xcb_out;
3870d429e5bSmrg
3880d429e5bSmrg xcb_out.operation = operation;
3890d429e5bSmrg xcb_out.destination_kind = destination_kind;
3900d429e5bSmrg xcb_out.source_kind = source_kind;
3910d429e5bSmrg xcb_out.pad0 = 0;
3920d429e5bSmrg xcb_out.destination_window = destination_window;
3930d429e5bSmrg xcb_out.x_offset = x_offset;
3940d429e5bSmrg xcb_out.y_offset = y_offset;
3950d429e5bSmrg xcb_out.source_window = source_window;
3960d429e5bSmrg
3970d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
3980d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
3990d429e5bSmrg xcb_parts[3].iov_base = 0;
4000d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
401ed2038faSmrg
4020d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4030d429e5bSmrg return xcb_ret;
4040d429e5bSmrg }
4050d429e5bSmrg
4060d429e5bSmrg xcb_void_cookie_t
xcb_shape_offset_checked(xcb_connection_t * c,xcb_shape_kind_t destination_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset)407*ba6321feSmrg xcb_shape_offset_checked (xcb_connection_t *c,
408*ba6321feSmrg xcb_shape_kind_t destination_kind,
409*ba6321feSmrg xcb_window_t destination_window,
410*ba6321feSmrg int16_t x_offset,
411*ba6321feSmrg int16_t y_offset)
4120d429e5bSmrg {
4130d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
414*ba6321feSmrg .count = 2,
415*ba6321feSmrg .ext = &xcb_shape_id,
416*ba6321feSmrg .opcode = XCB_SHAPE_OFFSET,
417*ba6321feSmrg .isvoid = 1
4180d429e5bSmrg };
4190d429e5bSmrg
4200d429e5bSmrg struct iovec xcb_parts[4];
4210d429e5bSmrg xcb_void_cookie_t xcb_ret;
4220d429e5bSmrg xcb_shape_offset_request_t xcb_out;
4230d429e5bSmrg
4240d429e5bSmrg xcb_out.destination_kind = destination_kind;
4250d429e5bSmrg memset(xcb_out.pad0, 0, 3);
4260d429e5bSmrg xcb_out.destination_window = destination_window;
4270d429e5bSmrg xcb_out.x_offset = x_offset;
4280d429e5bSmrg xcb_out.y_offset = y_offset;
4290d429e5bSmrg
4300d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
4310d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
4320d429e5bSmrg xcb_parts[3].iov_base = 0;
4330d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
434ed2038faSmrg
4350d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4360d429e5bSmrg return xcb_ret;
4370d429e5bSmrg }
4380d429e5bSmrg
4390d429e5bSmrg xcb_void_cookie_t
xcb_shape_offset(xcb_connection_t * c,xcb_shape_kind_t destination_kind,xcb_window_t destination_window,int16_t x_offset,int16_t y_offset)440*ba6321feSmrg xcb_shape_offset (xcb_connection_t *c,
441*ba6321feSmrg xcb_shape_kind_t destination_kind,
442*ba6321feSmrg xcb_window_t destination_window,
443*ba6321feSmrg int16_t x_offset,
444*ba6321feSmrg int16_t y_offset)
4450d429e5bSmrg {
4460d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
447*ba6321feSmrg .count = 2,
448*ba6321feSmrg .ext = &xcb_shape_id,
449*ba6321feSmrg .opcode = XCB_SHAPE_OFFSET,
450*ba6321feSmrg .isvoid = 1
4510d429e5bSmrg };
4520d429e5bSmrg
4530d429e5bSmrg struct iovec xcb_parts[4];
4540d429e5bSmrg xcb_void_cookie_t xcb_ret;
4550d429e5bSmrg xcb_shape_offset_request_t xcb_out;
4560d429e5bSmrg
4570d429e5bSmrg xcb_out.destination_kind = destination_kind;
4580d429e5bSmrg memset(xcb_out.pad0, 0, 3);
4590d429e5bSmrg xcb_out.destination_window = destination_window;
4600d429e5bSmrg xcb_out.x_offset = x_offset;
4610d429e5bSmrg xcb_out.y_offset = y_offset;
4620d429e5bSmrg
4630d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
4640d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
4650d429e5bSmrg xcb_parts[3].iov_base = 0;
4660d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
467ed2038faSmrg
4680d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4690d429e5bSmrg return xcb_ret;
4700d429e5bSmrg }
4710d429e5bSmrg
4720d429e5bSmrg xcb_shape_query_extents_cookie_t
xcb_shape_query_extents(xcb_connection_t * c,xcb_window_t destination_window)473*ba6321feSmrg xcb_shape_query_extents (xcb_connection_t *c,
474*ba6321feSmrg xcb_window_t destination_window)
4750d429e5bSmrg {
4760d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
477*ba6321feSmrg .count = 2,
478*ba6321feSmrg .ext = &xcb_shape_id,
479*ba6321feSmrg .opcode = XCB_SHAPE_QUERY_EXTENTS,
480*ba6321feSmrg .isvoid = 0
4810d429e5bSmrg };
4820d429e5bSmrg
4830d429e5bSmrg struct iovec xcb_parts[4];
4840d429e5bSmrg xcb_shape_query_extents_cookie_t xcb_ret;
4850d429e5bSmrg xcb_shape_query_extents_request_t xcb_out;
4860d429e5bSmrg
4870d429e5bSmrg xcb_out.destination_window = destination_window;
4880d429e5bSmrg
4890d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
4900d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
4910d429e5bSmrg xcb_parts[3].iov_base = 0;
4920d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
493ed2038faSmrg
4940d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4950d429e5bSmrg return xcb_ret;
4960d429e5bSmrg }
4970d429e5bSmrg
4980d429e5bSmrg xcb_shape_query_extents_cookie_t
xcb_shape_query_extents_unchecked(xcb_connection_t * c,xcb_window_t destination_window)499*ba6321feSmrg xcb_shape_query_extents_unchecked (xcb_connection_t *c,
500*ba6321feSmrg xcb_window_t destination_window)
5010d429e5bSmrg {
5020d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
503*ba6321feSmrg .count = 2,
504*ba6321feSmrg .ext = &xcb_shape_id,
505*ba6321feSmrg .opcode = XCB_SHAPE_QUERY_EXTENTS,
506*ba6321feSmrg .isvoid = 0
5070d429e5bSmrg };
5080d429e5bSmrg
5090d429e5bSmrg struct iovec xcb_parts[4];
5100d429e5bSmrg xcb_shape_query_extents_cookie_t xcb_ret;
5110d429e5bSmrg xcb_shape_query_extents_request_t xcb_out;
5120d429e5bSmrg
5130d429e5bSmrg xcb_out.destination_window = destination_window;
5140d429e5bSmrg
5150d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
5160d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
5170d429e5bSmrg xcb_parts[3].iov_base = 0;
5180d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
519ed2038faSmrg
5200d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5210d429e5bSmrg return xcb_ret;
5220d429e5bSmrg }
5230d429e5bSmrg
5240d429e5bSmrg xcb_shape_query_extents_reply_t *
xcb_shape_query_extents_reply(xcb_connection_t * c,xcb_shape_query_extents_cookie_t cookie,xcb_generic_error_t ** e)525*ba6321feSmrg xcb_shape_query_extents_reply (xcb_connection_t *c,
5260d429e5bSmrg xcb_shape_query_extents_cookie_t cookie /**< */,
527*ba6321feSmrg xcb_generic_error_t **e)
5280d429e5bSmrg {
5290d429e5bSmrg return (xcb_shape_query_extents_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5300d429e5bSmrg }
5310d429e5bSmrg
5320d429e5bSmrg xcb_void_cookie_t
xcb_shape_select_input_checked(xcb_connection_t * c,xcb_window_t destination_window,uint8_t enable)533*ba6321feSmrg xcb_shape_select_input_checked (xcb_connection_t *c,
534*ba6321feSmrg xcb_window_t destination_window,
535*ba6321feSmrg uint8_t enable)
5360d429e5bSmrg {
5370d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
538*ba6321feSmrg .count = 2,
539*ba6321feSmrg .ext = &xcb_shape_id,
540*ba6321feSmrg .opcode = XCB_SHAPE_SELECT_INPUT,
541*ba6321feSmrg .isvoid = 1
5420d429e5bSmrg };
5430d429e5bSmrg
5440d429e5bSmrg struct iovec xcb_parts[4];
5450d429e5bSmrg xcb_void_cookie_t xcb_ret;
5460d429e5bSmrg xcb_shape_select_input_request_t xcb_out;
5470d429e5bSmrg
5480d429e5bSmrg xcb_out.destination_window = destination_window;
5490d429e5bSmrg xcb_out.enable = enable;
5500d429e5bSmrg memset(xcb_out.pad0, 0, 3);
5510d429e5bSmrg
5520d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
5530d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
5540d429e5bSmrg xcb_parts[3].iov_base = 0;
5550d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
556ed2038faSmrg
5570d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5580d429e5bSmrg return xcb_ret;
5590d429e5bSmrg }
5600d429e5bSmrg
5610d429e5bSmrg xcb_void_cookie_t
xcb_shape_select_input(xcb_connection_t * c,xcb_window_t destination_window,uint8_t enable)562*ba6321feSmrg xcb_shape_select_input (xcb_connection_t *c,
563*ba6321feSmrg xcb_window_t destination_window,
564*ba6321feSmrg uint8_t enable)
5650d429e5bSmrg {
5660d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
567*ba6321feSmrg .count = 2,
568*ba6321feSmrg .ext = &xcb_shape_id,
569*ba6321feSmrg .opcode = XCB_SHAPE_SELECT_INPUT,
570*ba6321feSmrg .isvoid = 1
5710d429e5bSmrg };
5720d429e5bSmrg
5730d429e5bSmrg struct iovec xcb_parts[4];
5740d429e5bSmrg xcb_void_cookie_t xcb_ret;
5750d429e5bSmrg xcb_shape_select_input_request_t xcb_out;
5760d429e5bSmrg
5770d429e5bSmrg xcb_out.destination_window = destination_window;
5780d429e5bSmrg xcb_out.enable = enable;
5790d429e5bSmrg memset(xcb_out.pad0, 0, 3);
5800d429e5bSmrg
5810d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
5820d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
5830d429e5bSmrg xcb_parts[3].iov_base = 0;
5840d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
585ed2038faSmrg
5860d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5870d429e5bSmrg return xcb_ret;
5880d429e5bSmrg }
5890d429e5bSmrg
5900d429e5bSmrg xcb_shape_input_selected_cookie_t
xcb_shape_input_selected(xcb_connection_t * c,xcb_window_t destination_window)591*ba6321feSmrg xcb_shape_input_selected (xcb_connection_t *c,
592*ba6321feSmrg xcb_window_t destination_window)
5930d429e5bSmrg {
5940d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
595*ba6321feSmrg .count = 2,
596*ba6321feSmrg .ext = &xcb_shape_id,
597*ba6321feSmrg .opcode = XCB_SHAPE_INPUT_SELECTED,
598*ba6321feSmrg .isvoid = 0
5990d429e5bSmrg };
6000d429e5bSmrg
6010d429e5bSmrg struct iovec xcb_parts[4];
6020d429e5bSmrg xcb_shape_input_selected_cookie_t xcb_ret;
6030d429e5bSmrg xcb_shape_input_selected_request_t xcb_out;
6040d429e5bSmrg
6050d429e5bSmrg xcb_out.destination_window = destination_window;
6060d429e5bSmrg
6070d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
6080d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
6090d429e5bSmrg xcb_parts[3].iov_base = 0;
6100d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
611ed2038faSmrg
6120d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6130d429e5bSmrg return xcb_ret;
6140d429e5bSmrg }
6150d429e5bSmrg
6160d429e5bSmrg xcb_shape_input_selected_cookie_t
xcb_shape_input_selected_unchecked(xcb_connection_t * c,xcb_window_t destination_window)617*ba6321feSmrg xcb_shape_input_selected_unchecked (xcb_connection_t *c,
618*ba6321feSmrg xcb_window_t destination_window)
6190d429e5bSmrg {
6200d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
621*ba6321feSmrg .count = 2,
622*ba6321feSmrg .ext = &xcb_shape_id,
623*ba6321feSmrg .opcode = XCB_SHAPE_INPUT_SELECTED,
624*ba6321feSmrg .isvoid = 0
6250d429e5bSmrg };
6260d429e5bSmrg
6270d429e5bSmrg struct iovec xcb_parts[4];
6280d429e5bSmrg xcb_shape_input_selected_cookie_t xcb_ret;
6290d429e5bSmrg xcb_shape_input_selected_request_t xcb_out;
6300d429e5bSmrg
6310d429e5bSmrg xcb_out.destination_window = destination_window;
6320d429e5bSmrg
6330d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
6340d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
6350d429e5bSmrg xcb_parts[3].iov_base = 0;
6360d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
637ed2038faSmrg
6380d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6390d429e5bSmrg return xcb_ret;
6400d429e5bSmrg }
6410d429e5bSmrg
6420d429e5bSmrg xcb_shape_input_selected_reply_t *
xcb_shape_input_selected_reply(xcb_connection_t * c,xcb_shape_input_selected_cookie_t cookie,xcb_generic_error_t ** e)643*ba6321feSmrg xcb_shape_input_selected_reply (xcb_connection_t *c,
6440d429e5bSmrg xcb_shape_input_selected_cookie_t cookie /**< */,
645*ba6321feSmrg xcb_generic_error_t **e)
6460d429e5bSmrg {
6470d429e5bSmrg return (xcb_shape_input_selected_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
6480d429e5bSmrg }
6490d429e5bSmrg
650ed2038faSmrg int
xcb_shape_get_rectangles_sizeof(const void * _buffer)651*ba6321feSmrg xcb_shape_get_rectangles_sizeof (const void *_buffer)
652ed2038faSmrg {
653ed2038faSmrg char *xcb_tmp = (char *)_buffer;
654ed2038faSmrg const xcb_shape_get_rectangles_reply_t *_aux = (xcb_shape_get_rectangles_reply_t *)_buffer;
655ed2038faSmrg unsigned int xcb_buffer_len = 0;
656ed2038faSmrg unsigned int xcb_block_len = 0;
657ed2038faSmrg unsigned int xcb_pad = 0;
6586f16f8b8Smrg unsigned int xcb_align_to = 0;
659ed2038faSmrg
660ed2038faSmrg
661ed2038faSmrg xcb_block_len += sizeof(xcb_shape_get_rectangles_reply_t);
662ed2038faSmrg xcb_tmp += xcb_block_len;
6636f16f8b8Smrg xcb_buffer_len += xcb_block_len;
6646f16f8b8Smrg xcb_block_len = 0;
665ed2038faSmrg /* rectangles */
666ed2038faSmrg xcb_block_len += _aux->rectangles_len * sizeof(xcb_rectangle_t);
667ed2038faSmrg xcb_tmp += xcb_block_len;
668ed2038faSmrg xcb_align_to = ALIGNOF(xcb_rectangle_t);
669ed2038faSmrg /* insert padding */
670ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
671ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
672ed2038faSmrg if (0 != xcb_pad) {
673ed2038faSmrg xcb_tmp += xcb_pad;
674ed2038faSmrg xcb_pad = 0;
675ed2038faSmrg }
676ed2038faSmrg xcb_block_len = 0;
677ed2038faSmrg
678ed2038faSmrg return xcb_buffer_len;
679ed2038faSmrg }
680ed2038faSmrg
6810d429e5bSmrg xcb_shape_get_rectangles_cookie_t
xcb_shape_get_rectangles(xcb_connection_t * c,xcb_window_t window,xcb_shape_kind_t source_kind)682*ba6321feSmrg xcb_shape_get_rectangles (xcb_connection_t *c,
683*ba6321feSmrg xcb_window_t window,
684*ba6321feSmrg xcb_shape_kind_t source_kind)
6850d429e5bSmrg {
6860d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
687*ba6321feSmrg .count = 2,
688*ba6321feSmrg .ext = &xcb_shape_id,
689*ba6321feSmrg .opcode = XCB_SHAPE_GET_RECTANGLES,
690*ba6321feSmrg .isvoid = 0
6910d429e5bSmrg };
6920d429e5bSmrg
6930d429e5bSmrg struct iovec xcb_parts[4];
6940d429e5bSmrg xcb_shape_get_rectangles_cookie_t xcb_ret;
6950d429e5bSmrg xcb_shape_get_rectangles_request_t xcb_out;
6960d429e5bSmrg
6970d429e5bSmrg xcb_out.window = window;
6980d429e5bSmrg xcb_out.source_kind = source_kind;
6990d429e5bSmrg memset(xcb_out.pad0, 0, 3);
7000d429e5bSmrg
7010d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
7020d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
7030d429e5bSmrg xcb_parts[3].iov_base = 0;
7040d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
705ed2038faSmrg
7060d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7070d429e5bSmrg return xcb_ret;
7080d429e5bSmrg }
7090d429e5bSmrg
7100d429e5bSmrg xcb_shape_get_rectangles_cookie_t
xcb_shape_get_rectangles_unchecked(xcb_connection_t * c,xcb_window_t window,xcb_shape_kind_t source_kind)711*ba6321feSmrg xcb_shape_get_rectangles_unchecked (xcb_connection_t *c,
712*ba6321feSmrg xcb_window_t window,
713*ba6321feSmrg xcb_shape_kind_t source_kind)
7140d429e5bSmrg {
7150d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
716*ba6321feSmrg .count = 2,
717*ba6321feSmrg .ext = &xcb_shape_id,
718*ba6321feSmrg .opcode = XCB_SHAPE_GET_RECTANGLES,
719*ba6321feSmrg .isvoid = 0
7200d429e5bSmrg };
7210d429e5bSmrg
7220d429e5bSmrg struct iovec xcb_parts[4];
7230d429e5bSmrg xcb_shape_get_rectangles_cookie_t xcb_ret;
7240d429e5bSmrg xcb_shape_get_rectangles_request_t xcb_out;
7250d429e5bSmrg
7260d429e5bSmrg xcb_out.window = window;
7270d429e5bSmrg xcb_out.source_kind = source_kind;
7280d429e5bSmrg memset(xcb_out.pad0, 0, 3);
7290d429e5bSmrg
7300d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
7310d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
7320d429e5bSmrg xcb_parts[3].iov_base = 0;
7330d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
734ed2038faSmrg
7350d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7360d429e5bSmrg return xcb_ret;
7370d429e5bSmrg }
7380d429e5bSmrg
7390d429e5bSmrg xcb_rectangle_t *
xcb_shape_get_rectangles_rectangles(const xcb_shape_get_rectangles_reply_t * R)740*ba6321feSmrg xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R)
7410d429e5bSmrg {
7420d429e5bSmrg return (xcb_rectangle_t *) (R + 1);
7430d429e5bSmrg }
7440d429e5bSmrg
7450d429e5bSmrg int
xcb_shape_get_rectangles_rectangles_length(const xcb_shape_get_rectangles_reply_t * R)746*ba6321feSmrg xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R)
7470d429e5bSmrg {
7480d429e5bSmrg return R->rectangles_len;
7490d429e5bSmrg }
7500d429e5bSmrg
7510d429e5bSmrg xcb_rectangle_iterator_t
xcb_shape_get_rectangles_rectangles_iterator(const xcb_shape_get_rectangles_reply_t * R)752*ba6321feSmrg xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R)
7530d429e5bSmrg {
7540d429e5bSmrg xcb_rectangle_iterator_t i;
7550d429e5bSmrg i.data = (xcb_rectangle_t *) (R + 1);
7560d429e5bSmrg i.rem = R->rectangles_len;
7570d429e5bSmrg i.index = (char *) i.data - (char *) R;
7580d429e5bSmrg return i;
7590d429e5bSmrg }
7600d429e5bSmrg
7610d429e5bSmrg xcb_shape_get_rectangles_reply_t *
xcb_shape_get_rectangles_reply(xcb_connection_t * c,xcb_shape_get_rectangles_cookie_t cookie,xcb_generic_error_t ** e)762*ba6321feSmrg xcb_shape_get_rectangles_reply (xcb_connection_t *c,
7630d429e5bSmrg xcb_shape_get_rectangles_cookie_t cookie /**< */,
764*ba6321feSmrg xcb_generic_error_t **e)
7650d429e5bSmrg {
7660d429e5bSmrg return (xcb_shape_get_rectangles_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7670d429e5bSmrg }
7680d429e5bSmrg
769