shm.c revision 1.1 1 1.1 mrg /*
2 1.1 mrg * This file generated automatically from shm.xml by c_client.py.
3 1.1 mrg * Edit at your peril.
4 1.1 mrg */
5 1.1 mrg
6 1.1 mrg #include <string.h>
7 1.1 mrg #include <assert.h>
8 1.1 mrg #include "xcbext.h"
9 1.1 mrg #include "shm.h"
10 1.1 mrg #include "xproto.h"
11 1.1 mrg
12 1.1 mrg xcb_extension_t xcb_shm_id = { "MIT-SHM", 0 };
13 1.1 mrg
14 1.1 mrg
15 1.1 mrg /*****************************************************************************
16 1.1 mrg **
17 1.1 mrg ** void xcb_shm_seg_next
18 1.1 mrg **
19 1.1 mrg ** @param xcb_shm_seg_iterator_t *i
20 1.1 mrg ** @returns void
21 1.1 mrg **
22 1.1 mrg *****************************************************************************/
23 1.1 mrg
24 1.1 mrg void
25 1.1 mrg xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */)
26 1.1 mrg {
27 1.1 mrg --i->rem;
28 1.1 mrg ++i->data;
29 1.1 mrg i->index += sizeof(xcb_shm_seg_t);
30 1.1 mrg }
31 1.1 mrg
32 1.1 mrg
33 1.1 mrg /*****************************************************************************
34 1.1 mrg **
35 1.1 mrg ** xcb_generic_iterator_t xcb_shm_seg_end
36 1.1 mrg **
37 1.1 mrg ** @param xcb_shm_seg_iterator_t i
38 1.1 mrg ** @returns xcb_generic_iterator_t
39 1.1 mrg **
40 1.1 mrg *****************************************************************************/
41 1.1 mrg
42 1.1 mrg xcb_generic_iterator_t
43 1.1 mrg xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */)
44 1.1 mrg {
45 1.1 mrg xcb_generic_iterator_t ret;
46 1.1 mrg ret.data = i.data + i.rem;
47 1.1 mrg ret.index = i.index + ((char *) ret.data - (char *) i.data);
48 1.1 mrg ret.rem = 0;
49 1.1 mrg return ret;
50 1.1 mrg }
51 1.1 mrg
52 1.1 mrg
53 1.1 mrg /*****************************************************************************
54 1.1 mrg **
55 1.1 mrg ** xcb_shm_query_version_cookie_t xcb_shm_query_version
56 1.1 mrg **
57 1.1 mrg ** @param xcb_connection_t *c
58 1.1 mrg ** @returns xcb_shm_query_version_cookie_t
59 1.1 mrg **
60 1.1 mrg *****************************************************************************/
61 1.1 mrg
62 1.1 mrg xcb_shm_query_version_cookie_t
63 1.1 mrg xcb_shm_query_version (xcb_connection_t *c /**< */)
64 1.1 mrg {
65 1.1 mrg static const xcb_protocol_request_t xcb_req = {
66 1.1 mrg /* count */ 2,
67 1.1 mrg /* ext */ &xcb_shm_id,
68 1.1 mrg /* opcode */ XCB_SHM_QUERY_VERSION,
69 1.1 mrg /* isvoid */ 0
70 1.1 mrg };
71 1.1 mrg
72 1.1 mrg struct iovec xcb_parts[4];
73 1.1 mrg xcb_shm_query_version_cookie_t xcb_ret;
74 1.1 mrg xcb_shm_query_version_request_t xcb_out;
75 1.1 mrg
76 1.1 mrg
77 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
78 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
79 1.1 mrg xcb_parts[3].iov_base = 0;
80 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
81 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
82 1.1 mrg return xcb_ret;
83 1.1 mrg }
84 1.1 mrg
85 1.1 mrg
86 1.1 mrg /*****************************************************************************
87 1.1 mrg **
88 1.1 mrg ** xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked
89 1.1 mrg **
90 1.1 mrg ** @param xcb_connection_t *c
91 1.1 mrg ** @returns xcb_shm_query_version_cookie_t
92 1.1 mrg **
93 1.1 mrg *****************************************************************************/
94 1.1 mrg
95 1.1 mrg xcb_shm_query_version_cookie_t
96 1.1 mrg xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */)
97 1.1 mrg {
98 1.1 mrg static const xcb_protocol_request_t xcb_req = {
99 1.1 mrg /* count */ 2,
100 1.1 mrg /* ext */ &xcb_shm_id,
101 1.1 mrg /* opcode */ XCB_SHM_QUERY_VERSION,
102 1.1 mrg /* isvoid */ 0
103 1.1 mrg };
104 1.1 mrg
105 1.1 mrg struct iovec xcb_parts[4];
106 1.1 mrg xcb_shm_query_version_cookie_t xcb_ret;
107 1.1 mrg xcb_shm_query_version_request_t xcb_out;
108 1.1 mrg
109 1.1 mrg
110 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
111 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
112 1.1 mrg xcb_parts[3].iov_base = 0;
113 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
114 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
115 1.1 mrg return xcb_ret;
116 1.1 mrg }
117 1.1 mrg
118 1.1 mrg
119 1.1 mrg /*****************************************************************************
120 1.1 mrg **
121 1.1 mrg ** xcb_shm_query_version_reply_t * xcb_shm_query_version_reply
122 1.1 mrg **
123 1.1 mrg ** @param xcb_connection_t *c
124 1.1 mrg ** @param xcb_shm_query_version_cookie_t cookie
125 1.1 mrg ** @param xcb_generic_error_t **e
126 1.1 mrg ** @returns xcb_shm_query_version_reply_t *
127 1.1 mrg **
128 1.1 mrg *****************************************************************************/
129 1.1 mrg
130 1.1 mrg xcb_shm_query_version_reply_t *
131 1.1 mrg xcb_shm_query_version_reply (xcb_connection_t *c /**< */,
132 1.1 mrg xcb_shm_query_version_cookie_t cookie /**< */,
133 1.1 mrg xcb_generic_error_t **e /**< */)
134 1.1 mrg {
135 1.1 mrg return (xcb_shm_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
136 1.1 mrg }
137 1.1 mrg
138 1.1 mrg
139 1.1 mrg /*****************************************************************************
140 1.1 mrg **
141 1.1 mrg ** xcb_void_cookie_t xcb_shm_attach_checked
142 1.1 mrg **
143 1.1 mrg ** @param xcb_connection_t *c
144 1.1 mrg ** @param xcb_shm_seg_t shmseg
145 1.1 mrg ** @param uint32_t shmid
146 1.1 mrg ** @param uint8_t read_only
147 1.1 mrg ** @returns xcb_void_cookie_t
148 1.1 mrg **
149 1.1 mrg *****************************************************************************/
150 1.1 mrg
151 1.1 mrg xcb_void_cookie_t
152 1.1 mrg xcb_shm_attach_checked (xcb_connection_t *c /**< */,
153 1.1 mrg xcb_shm_seg_t shmseg /**< */,
154 1.1 mrg uint32_t shmid /**< */,
155 1.1 mrg uint8_t read_only /**< */)
156 1.1 mrg {
157 1.1 mrg static const xcb_protocol_request_t xcb_req = {
158 1.1 mrg /* count */ 2,
159 1.1 mrg /* ext */ &xcb_shm_id,
160 1.1 mrg /* opcode */ XCB_SHM_ATTACH,
161 1.1 mrg /* isvoid */ 1
162 1.1 mrg };
163 1.1 mrg
164 1.1 mrg struct iovec xcb_parts[4];
165 1.1 mrg xcb_void_cookie_t xcb_ret;
166 1.1 mrg xcb_shm_attach_request_t xcb_out;
167 1.1 mrg
168 1.1 mrg xcb_out.shmseg = shmseg;
169 1.1 mrg xcb_out.shmid = shmid;
170 1.1 mrg xcb_out.read_only = read_only;
171 1.1 mrg memset(xcb_out.pad0, 0, 3);
172 1.1 mrg
173 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
174 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
175 1.1 mrg xcb_parts[3].iov_base = 0;
176 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
177 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
178 1.1 mrg return xcb_ret;
179 1.1 mrg }
180 1.1 mrg
181 1.1 mrg
182 1.1 mrg /*****************************************************************************
183 1.1 mrg **
184 1.1 mrg ** xcb_void_cookie_t xcb_shm_attach
185 1.1 mrg **
186 1.1 mrg ** @param xcb_connection_t *c
187 1.1 mrg ** @param xcb_shm_seg_t shmseg
188 1.1 mrg ** @param uint32_t shmid
189 1.1 mrg ** @param uint8_t read_only
190 1.1 mrg ** @returns xcb_void_cookie_t
191 1.1 mrg **
192 1.1 mrg *****************************************************************************/
193 1.1 mrg
194 1.1 mrg xcb_void_cookie_t
195 1.1 mrg xcb_shm_attach (xcb_connection_t *c /**< */,
196 1.1 mrg xcb_shm_seg_t shmseg /**< */,
197 1.1 mrg uint32_t shmid /**< */,
198 1.1 mrg uint8_t read_only /**< */)
199 1.1 mrg {
200 1.1 mrg static const xcb_protocol_request_t xcb_req = {
201 1.1 mrg /* count */ 2,
202 1.1 mrg /* ext */ &xcb_shm_id,
203 1.1 mrg /* opcode */ XCB_SHM_ATTACH,
204 1.1 mrg /* isvoid */ 1
205 1.1 mrg };
206 1.1 mrg
207 1.1 mrg struct iovec xcb_parts[4];
208 1.1 mrg xcb_void_cookie_t xcb_ret;
209 1.1 mrg xcb_shm_attach_request_t xcb_out;
210 1.1 mrg
211 1.1 mrg xcb_out.shmseg = shmseg;
212 1.1 mrg xcb_out.shmid = shmid;
213 1.1 mrg xcb_out.read_only = read_only;
214 1.1 mrg memset(xcb_out.pad0, 0, 3);
215 1.1 mrg
216 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
217 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
218 1.1 mrg xcb_parts[3].iov_base = 0;
219 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
220 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
221 1.1 mrg return xcb_ret;
222 1.1 mrg }
223 1.1 mrg
224 1.1 mrg
225 1.1 mrg /*****************************************************************************
226 1.1 mrg **
227 1.1 mrg ** xcb_void_cookie_t xcb_shm_detach_checked
228 1.1 mrg **
229 1.1 mrg ** @param xcb_connection_t *c
230 1.1 mrg ** @param xcb_shm_seg_t shmseg
231 1.1 mrg ** @returns xcb_void_cookie_t
232 1.1 mrg **
233 1.1 mrg *****************************************************************************/
234 1.1 mrg
235 1.1 mrg xcb_void_cookie_t
236 1.1 mrg xcb_shm_detach_checked (xcb_connection_t *c /**< */,
237 1.1 mrg xcb_shm_seg_t shmseg /**< */)
238 1.1 mrg {
239 1.1 mrg static const xcb_protocol_request_t xcb_req = {
240 1.1 mrg /* count */ 2,
241 1.1 mrg /* ext */ &xcb_shm_id,
242 1.1 mrg /* opcode */ XCB_SHM_DETACH,
243 1.1 mrg /* isvoid */ 1
244 1.1 mrg };
245 1.1 mrg
246 1.1 mrg struct iovec xcb_parts[4];
247 1.1 mrg xcb_void_cookie_t xcb_ret;
248 1.1 mrg xcb_shm_detach_request_t xcb_out;
249 1.1 mrg
250 1.1 mrg xcb_out.shmseg = shmseg;
251 1.1 mrg
252 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
253 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
254 1.1 mrg xcb_parts[3].iov_base = 0;
255 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
256 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
257 1.1 mrg return xcb_ret;
258 1.1 mrg }
259 1.1 mrg
260 1.1 mrg
261 1.1 mrg /*****************************************************************************
262 1.1 mrg **
263 1.1 mrg ** xcb_void_cookie_t xcb_shm_detach
264 1.1 mrg **
265 1.1 mrg ** @param xcb_connection_t *c
266 1.1 mrg ** @param xcb_shm_seg_t shmseg
267 1.1 mrg ** @returns xcb_void_cookie_t
268 1.1 mrg **
269 1.1 mrg *****************************************************************************/
270 1.1 mrg
271 1.1 mrg xcb_void_cookie_t
272 1.1 mrg xcb_shm_detach (xcb_connection_t *c /**< */,
273 1.1 mrg xcb_shm_seg_t shmseg /**< */)
274 1.1 mrg {
275 1.1 mrg static const xcb_protocol_request_t xcb_req = {
276 1.1 mrg /* count */ 2,
277 1.1 mrg /* ext */ &xcb_shm_id,
278 1.1 mrg /* opcode */ XCB_SHM_DETACH,
279 1.1 mrg /* isvoid */ 1
280 1.1 mrg };
281 1.1 mrg
282 1.1 mrg struct iovec xcb_parts[4];
283 1.1 mrg xcb_void_cookie_t xcb_ret;
284 1.1 mrg xcb_shm_detach_request_t xcb_out;
285 1.1 mrg
286 1.1 mrg xcb_out.shmseg = shmseg;
287 1.1 mrg
288 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
289 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
290 1.1 mrg xcb_parts[3].iov_base = 0;
291 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
292 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
293 1.1 mrg return xcb_ret;
294 1.1 mrg }
295 1.1 mrg
296 1.1 mrg
297 1.1 mrg /*****************************************************************************
298 1.1 mrg **
299 1.1 mrg ** xcb_void_cookie_t xcb_shm_put_image_checked
300 1.1 mrg **
301 1.1 mrg ** @param xcb_connection_t *c
302 1.1 mrg ** @param xcb_drawable_t drawable
303 1.1 mrg ** @param xcb_gcontext_t gc
304 1.1 mrg ** @param uint16_t total_width
305 1.1 mrg ** @param uint16_t total_height
306 1.1 mrg ** @param uint16_t src_x
307 1.1 mrg ** @param uint16_t src_y
308 1.1 mrg ** @param uint16_t src_width
309 1.1 mrg ** @param uint16_t src_height
310 1.1 mrg ** @param int16_t dst_x
311 1.1 mrg ** @param int16_t dst_y
312 1.1 mrg ** @param uint8_t depth
313 1.1 mrg ** @param uint8_t format
314 1.1 mrg ** @param uint8_t send_event
315 1.1 mrg ** @param xcb_shm_seg_t shmseg
316 1.1 mrg ** @param uint32_t offset
317 1.1 mrg ** @returns xcb_void_cookie_t
318 1.1 mrg **
319 1.1 mrg *****************************************************************************/
320 1.1 mrg
321 1.1 mrg xcb_void_cookie_t
322 1.1 mrg xcb_shm_put_image_checked (xcb_connection_t *c /**< */,
323 1.1 mrg xcb_drawable_t drawable /**< */,
324 1.1 mrg xcb_gcontext_t gc /**< */,
325 1.1 mrg uint16_t total_width /**< */,
326 1.1 mrg uint16_t total_height /**< */,
327 1.1 mrg uint16_t src_x /**< */,
328 1.1 mrg uint16_t src_y /**< */,
329 1.1 mrg uint16_t src_width /**< */,
330 1.1 mrg uint16_t src_height /**< */,
331 1.1 mrg int16_t dst_x /**< */,
332 1.1 mrg int16_t dst_y /**< */,
333 1.1 mrg uint8_t depth /**< */,
334 1.1 mrg uint8_t format /**< */,
335 1.1 mrg uint8_t send_event /**< */,
336 1.1 mrg xcb_shm_seg_t shmseg /**< */,
337 1.1 mrg uint32_t offset /**< */)
338 1.1 mrg {
339 1.1 mrg static const xcb_protocol_request_t xcb_req = {
340 1.1 mrg /* count */ 2,
341 1.1 mrg /* ext */ &xcb_shm_id,
342 1.1 mrg /* opcode */ XCB_SHM_PUT_IMAGE,
343 1.1 mrg /* isvoid */ 1
344 1.1 mrg };
345 1.1 mrg
346 1.1 mrg struct iovec xcb_parts[4];
347 1.1 mrg xcb_void_cookie_t xcb_ret;
348 1.1 mrg xcb_shm_put_image_request_t xcb_out;
349 1.1 mrg
350 1.1 mrg xcb_out.drawable = drawable;
351 1.1 mrg xcb_out.gc = gc;
352 1.1 mrg xcb_out.total_width = total_width;
353 1.1 mrg xcb_out.total_height = total_height;
354 1.1 mrg xcb_out.src_x = src_x;
355 1.1 mrg xcb_out.src_y = src_y;
356 1.1 mrg xcb_out.src_width = src_width;
357 1.1 mrg xcb_out.src_height = src_height;
358 1.1 mrg xcb_out.dst_x = dst_x;
359 1.1 mrg xcb_out.dst_y = dst_y;
360 1.1 mrg xcb_out.depth = depth;
361 1.1 mrg xcb_out.format = format;
362 1.1 mrg xcb_out.send_event = send_event;
363 1.1 mrg xcb_out.pad0 = 0;
364 1.1 mrg xcb_out.shmseg = shmseg;
365 1.1 mrg xcb_out.offset = offset;
366 1.1 mrg
367 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
368 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
369 1.1 mrg xcb_parts[3].iov_base = 0;
370 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
371 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
372 1.1 mrg return xcb_ret;
373 1.1 mrg }
374 1.1 mrg
375 1.1 mrg
376 1.1 mrg /*****************************************************************************
377 1.1 mrg **
378 1.1 mrg ** xcb_void_cookie_t xcb_shm_put_image
379 1.1 mrg **
380 1.1 mrg ** @param xcb_connection_t *c
381 1.1 mrg ** @param xcb_drawable_t drawable
382 1.1 mrg ** @param xcb_gcontext_t gc
383 1.1 mrg ** @param uint16_t total_width
384 1.1 mrg ** @param uint16_t total_height
385 1.1 mrg ** @param uint16_t src_x
386 1.1 mrg ** @param uint16_t src_y
387 1.1 mrg ** @param uint16_t src_width
388 1.1 mrg ** @param uint16_t src_height
389 1.1 mrg ** @param int16_t dst_x
390 1.1 mrg ** @param int16_t dst_y
391 1.1 mrg ** @param uint8_t depth
392 1.1 mrg ** @param uint8_t format
393 1.1 mrg ** @param uint8_t send_event
394 1.1 mrg ** @param xcb_shm_seg_t shmseg
395 1.1 mrg ** @param uint32_t offset
396 1.1 mrg ** @returns xcb_void_cookie_t
397 1.1 mrg **
398 1.1 mrg *****************************************************************************/
399 1.1 mrg
400 1.1 mrg xcb_void_cookie_t
401 1.1 mrg xcb_shm_put_image (xcb_connection_t *c /**< */,
402 1.1 mrg xcb_drawable_t drawable /**< */,
403 1.1 mrg xcb_gcontext_t gc /**< */,
404 1.1 mrg uint16_t total_width /**< */,
405 1.1 mrg uint16_t total_height /**< */,
406 1.1 mrg uint16_t src_x /**< */,
407 1.1 mrg uint16_t src_y /**< */,
408 1.1 mrg uint16_t src_width /**< */,
409 1.1 mrg uint16_t src_height /**< */,
410 1.1 mrg int16_t dst_x /**< */,
411 1.1 mrg int16_t dst_y /**< */,
412 1.1 mrg uint8_t depth /**< */,
413 1.1 mrg uint8_t format /**< */,
414 1.1 mrg uint8_t send_event /**< */,
415 1.1 mrg xcb_shm_seg_t shmseg /**< */,
416 1.1 mrg uint32_t offset /**< */)
417 1.1 mrg {
418 1.1 mrg static const xcb_protocol_request_t xcb_req = {
419 1.1 mrg /* count */ 2,
420 1.1 mrg /* ext */ &xcb_shm_id,
421 1.1 mrg /* opcode */ XCB_SHM_PUT_IMAGE,
422 1.1 mrg /* isvoid */ 1
423 1.1 mrg };
424 1.1 mrg
425 1.1 mrg struct iovec xcb_parts[4];
426 1.1 mrg xcb_void_cookie_t xcb_ret;
427 1.1 mrg xcb_shm_put_image_request_t xcb_out;
428 1.1 mrg
429 1.1 mrg xcb_out.drawable = drawable;
430 1.1 mrg xcb_out.gc = gc;
431 1.1 mrg xcb_out.total_width = total_width;
432 1.1 mrg xcb_out.total_height = total_height;
433 1.1 mrg xcb_out.src_x = src_x;
434 1.1 mrg xcb_out.src_y = src_y;
435 1.1 mrg xcb_out.src_width = src_width;
436 1.1 mrg xcb_out.src_height = src_height;
437 1.1 mrg xcb_out.dst_x = dst_x;
438 1.1 mrg xcb_out.dst_y = dst_y;
439 1.1 mrg xcb_out.depth = depth;
440 1.1 mrg xcb_out.format = format;
441 1.1 mrg xcb_out.send_event = send_event;
442 1.1 mrg xcb_out.pad0 = 0;
443 1.1 mrg xcb_out.shmseg = shmseg;
444 1.1 mrg xcb_out.offset = offset;
445 1.1 mrg
446 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
447 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
448 1.1 mrg xcb_parts[3].iov_base = 0;
449 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
450 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
451 1.1 mrg return xcb_ret;
452 1.1 mrg }
453 1.1 mrg
454 1.1 mrg
455 1.1 mrg /*****************************************************************************
456 1.1 mrg **
457 1.1 mrg ** xcb_shm_get_image_cookie_t xcb_shm_get_image
458 1.1 mrg **
459 1.1 mrg ** @param xcb_connection_t *c
460 1.1 mrg ** @param xcb_drawable_t drawable
461 1.1 mrg ** @param int16_t x
462 1.1 mrg ** @param int16_t y
463 1.1 mrg ** @param uint16_t width
464 1.1 mrg ** @param uint16_t height
465 1.1 mrg ** @param uint32_t plane_mask
466 1.1 mrg ** @param uint8_t format
467 1.1 mrg ** @param xcb_shm_seg_t shmseg
468 1.1 mrg ** @param uint32_t offset
469 1.1 mrg ** @returns xcb_shm_get_image_cookie_t
470 1.1 mrg **
471 1.1 mrg *****************************************************************************/
472 1.1 mrg
473 1.1 mrg xcb_shm_get_image_cookie_t
474 1.1 mrg xcb_shm_get_image (xcb_connection_t *c /**< */,
475 1.1 mrg xcb_drawable_t drawable /**< */,
476 1.1 mrg int16_t x /**< */,
477 1.1 mrg int16_t y /**< */,
478 1.1 mrg uint16_t width /**< */,
479 1.1 mrg uint16_t height /**< */,
480 1.1 mrg uint32_t plane_mask /**< */,
481 1.1 mrg uint8_t format /**< */,
482 1.1 mrg xcb_shm_seg_t shmseg /**< */,
483 1.1 mrg uint32_t offset /**< */)
484 1.1 mrg {
485 1.1 mrg static const xcb_protocol_request_t xcb_req = {
486 1.1 mrg /* count */ 2,
487 1.1 mrg /* ext */ &xcb_shm_id,
488 1.1 mrg /* opcode */ XCB_SHM_GET_IMAGE,
489 1.1 mrg /* isvoid */ 0
490 1.1 mrg };
491 1.1 mrg
492 1.1 mrg struct iovec xcb_parts[4];
493 1.1 mrg xcb_shm_get_image_cookie_t xcb_ret;
494 1.1 mrg xcb_shm_get_image_request_t xcb_out;
495 1.1 mrg
496 1.1 mrg xcb_out.drawable = drawable;
497 1.1 mrg xcb_out.x = x;
498 1.1 mrg xcb_out.y = y;
499 1.1 mrg xcb_out.width = width;
500 1.1 mrg xcb_out.height = height;
501 1.1 mrg xcb_out.plane_mask = plane_mask;
502 1.1 mrg xcb_out.format = format;
503 1.1 mrg memset(xcb_out.pad0, 0, 3);
504 1.1 mrg xcb_out.shmseg = shmseg;
505 1.1 mrg xcb_out.offset = offset;
506 1.1 mrg
507 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
508 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
509 1.1 mrg xcb_parts[3].iov_base = 0;
510 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
511 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
512 1.1 mrg return xcb_ret;
513 1.1 mrg }
514 1.1 mrg
515 1.1 mrg
516 1.1 mrg /*****************************************************************************
517 1.1 mrg **
518 1.1 mrg ** xcb_shm_get_image_cookie_t xcb_shm_get_image_unchecked
519 1.1 mrg **
520 1.1 mrg ** @param xcb_connection_t *c
521 1.1 mrg ** @param xcb_drawable_t drawable
522 1.1 mrg ** @param int16_t x
523 1.1 mrg ** @param int16_t y
524 1.1 mrg ** @param uint16_t width
525 1.1 mrg ** @param uint16_t height
526 1.1 mrg ** @param uint32_t plane_mask
527 1.1 mrg ** @param uint8_t format
528 1.1 mrg ** @param xcb_shm_seg_t shmseg
529 1.1 mrg ** @param uint32_t offset
530 1.1 mrg ** @returns xcb_shm_get_image_cookie_t
531 1.1 mrg **
532 1.1 mrg *****************************************************************************/
533 1.1 mrg
534 1.1 mrg xcb_shm_get_image_cookie_t
535 1.1 mrg xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */,
536 1.1 mrg xcb_drawable_t drawable /**< */,
537 1.1 mrg int16_t x /**< */,
538 1.1 mrg int16_t y /**< */,
539 1.1 mrg uint16_t width /**< */,
540 1.1 mrg uint16_t height /**< */,
541 1.1 mrg uint32_t plane_mask /**< */,
542 1.1 mrg uint8_t format /**< */,
543 1.1 mrg xcb_shm_seg_t shmseg /**< */,
544 1.1 mrg uint32_t offset /**< */)
545 1.1 mrg {
546 1.1 mrg static const xcb_protocol_request_t xcb_req = {
547 1.1 mrg /* count */ 2,
548 1.1 mrg /* ext */ &xcb_shm_id,
549 1.1 mrg /* opcode */ XCB_SHM_GET_IMAGE,
550 1.1 mrg /* isvoid */ 0
551 1.1 mrg };
552 1.1 mrg
553 1.1 mrg struct iovec xcb_parts[4];
554 1.1 mrg xcb_shm_get_image_cookie_t xcb_ret;
555 1.1 mrg xcb_shm_get_image_request_t xcb_out;
556 1.1 mrg
557 1.1 mrg xcb_out.drawable = drawable;
558 1.1 mrg xcb_out.x = x;
559 1.1 mrg xcb_out.y = y;
560 1.1 mrg xcb_out.width = width;
561 1.1 mrg xcb_out.height = height;
562 1.1 mrg xcb_out.plane_mask = plane_mask;
563 1.1 mrg xcb_out.format = format;
564 1.1 mrg memset(xcb_out.pad0, 0, 3);
565 1.1 mrg xcb_out.shmseg = shmseg;
566 1.1 mrg xcb_out.offset = offset;
567 1.1 mrg
568 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
569 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
570 1.1 mrg xcb_parts[3].iov_base = 0;
571 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
572 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
573 1.1 mrg return xcb_ret;
574 1.1 mrg }
575 1.1 mrg
576 1.1 mrg
577 1.1 mrg /*****************************************************************************
578 1.1 mrg **
579 1.1 mrg ** xcb_shm_get_image_reply_t * xcb_shm_get_image_reply
580 1.1 mrg **
581 1.1 mrg ** @param xcb_connection_t *c
582 1.1 mrg ** @param xcb_shm_get_image_cookie_t cookie
583 1.1 mrg ** @param xcb_generic_error_t **e
584 1.1 mrg ** @returns xcb_shm_get_image_reply_t *
585 1.1 mrg **
586 1.1 mrg *****************************************************************************/
587 1.1 mrg
588 1.1 mrg xcb_shm_get_image_reply_t *
589 1.1 mrg xcb_shm_get_image_reply (xcb_connection_t *c /**< */,
590 1.1 mrg xcb_shm_get_image_cookie_t cookie /**< */,
591 1.1 mrg xcb_generic_error_t **e /**< */)
592 1.1 mrg {
593 1.1 mrg return (xcb_shm_get_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
594 1.1 mrg }
595 1.1 mrg
596 1.1 mrg
597 1.1 mrg /*****************************************************************************
598 1.1 mrg **
599 1.1 mrg ** xcb_void_cookie_t xcb_shm_create_pixmap_checked
600 1.1 mrg **
601 1.1 mrg ** @param xcb_connection_t *c
602 1.1 mrg ** @param xcb_pixmap_t pid
603 1.1 mrg ** @param xcb_drawable_t drawable
604 1.1 mrg ** @param uint16_t width
605 1.1 mrg ** @param uint16_t height
606 1.1 mrg ** @param uint8_t depth
607 1.1 mrg ** @param xcb_shm_seg_t shmseg
608 1.1 mrg ** @param uint32_t offset
609 1.1 mrg ** @returns xcb_void_cookie_t
610 1.1 mrg **
611 1.1 mrg *****************************************************************************/
612 1.1 mrg
613 1.1 mrg xcb_void_cookie_t
614 1.1 mrg xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */,
615 1.1 mrg xcb_pixmap_t pid /**< */,
616 1.1 mrg xcb_drawable_t drawable /**< */,
617 1.1 mrg uint16_t width /**< */,
618 1.1 mrg uint16_t height /**< */,
619 1.1 mrg uint8_t depth /**< */,
620 1.1 mrg xcb_shm_seg_t shmseg /**< */,
621 1.1 mrg uint32_t offset /**< */)
622 1.1 mrg {
623 1.1 mrg static const xcb_protocol_request_t xcb_req = {
624 1.1 mrg /* count */ 2,
625 1.1 mrg /* ext */ &xcb_shm_id,
626 1.1 mrg /* opcode */ XCB_SHM_CREATE_PIXMAP,
627 1.1 mrg /* isvoid */ 1
628 1.1 mrg };
629 1.1 mrg
630 1.1 mrg struct iovec xcb_parts[4];
631 1.1 mrg xcb_void_cookie_t xcb_ret;
632 1.1 mrg xcb_shm_create_pixmap_request_t xcb_out;
633 1.1 mrg
634 1.1 mrg xcb_out.pid = pid;
635 1.1 mrg xcb_out.drawable = drawable;
636 1.1 mrg xcb_out.width = width;
637 1.1 mrg xcb_out.height = height;
638 1.1 mrg xcb_out.depth = depth;
639 1.1 mrg memset(xcb_out.pad0, 0, 3);
640 1.1 mrg xcb_out.shmseg = shmseg;
641 1.1 mrg xcb_out.offset = offset;
642 1.1 mrg
643 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
644 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
645 1.1 mrg xcb_parts[3].iov_base = 0;
646 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
647 1.1 mrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
648 1.1 mrg return xcb_ret;
649 1.1 mrg }
650 1.1 mrg
651 1.1 mrg
652 1.1 mrg /*****************************************************************************
653 1.1 mrg **
654 1.1 mrg ** xcb_void_cookie_t xcb_shm_create_pixmap
655 1.1 mrg **
656 1.1 mrg ** @param xcb_connection_t *c
657 1.1 mrg ** @param xcb_pixmap_t pid
658 1.1 mrg ** @param xcb_drawable_t drawable
659 1.1 mrg ** @param uint16_t width
660 1.1 mrg ** @param uint16_t height
661 1.1 mrg ** @param uint8_t depth
662 1.1 mrg ** @param xcb_shm_seg_t shmseg
663 1.1 mrg ** @param uint32_t offset
664 1.1 mrg ** @returns xcb_void_cookie_t
665 1.1 mrg **
666 1.1 mrg *****************************************************************************/
667 1.1 mrg
668 1.1 mrg xcb_void_cookie_t
669 1.1 mrg xcb_shm_create_pixmap (xcb_connection_t *c /**< */,
670 1.1 mrg xcb_pixmap_t pid /**< */,
671 1.1 mrg xcb_drawable_t drawable /**< */,
672 1.1 mrg uint16_t width /**< */,
673 1.1 mrg uint16_t height /**< */,
674 1.1 mrg uint8_t depth /**< */,
675 1.1 mrg xcb_shm_seg_t shmseg /**< */,
676 1.1 mrg uint32_t offset /**< */)
677 1.1 mrg {
678 1.1 mrg static const xcb_protocol_request_t xcb_req = {
679 1.1 mrg /* count */ 2,
680 1.1 mrg /* ext */ &xcb_shm_id,
681 1.1 mrg /* opcode */ XCB_SHM_CREATE_PIXMAP,
682 1.1 mrg /* isvoid */ 1
683 1.1 mrg };
684 1.1 mrg
685 1.1 mrg struct iovec xcb_parts[4];
686 1.1 mrg xcb_void_cookie_t xcb_ret;
687 1.1 mrg xcb_shm_create_pixmap_request_t xcb_out;
688 1.1 mrg
689 1.1 mrg xcb_out.pid = pid;
690 1.1 mrg xcb_out.drawable = drawable;
691 1.1 mrg xcb_out.width = width;
692 1.1 mrg xcb_out.height = height;
693 1.1 mrg xcb_out.depth = depth;
694 1.1 mrg memset(xcb_out.pad0, 0, 3);
695 1.1 mrg xcb_out.shmseg = shmseg;
696 1.1 mrg xcb_out.offset = offset;
697 1.1 mrg
698 1.1 mrg xcb_parts[2].iov_base = (char *) &xcb_out;
699 1.1 mrg xcb_parts[2].iov_len = sizeof(xcb_out);
700 1.1 mrg xcb_parts[3].iov_base = 0;
701 1.1 mrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
702 1.1 mrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
703 1.1 mrg return xcb_ret;
704 1.1 mrg }
705 1.1 mrg
706