dri3.h revision 1.4 1 1.1 mrg /*
2 1.1 mrg * This file generated automatically from dri3.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 /**
7 1.1 mrg * @defgroup XCB_DRI3_API XCB DRI3 API
8 1.1 mrg * @brief DRI3 XCB Protocol Implementation.
9 1.1 mrg * @{
10 1.1 mrg **/
11 1.1 mrg
12 1.1 mrg #ifndef __DRI3_H
13 1.1 mrg #define __DRI3_H
14 1.1 mrg
15 1.1 mrg #include "xcb.h"
16 1.1 mrg #include "xproto.h"
17 1.1 mrg
18 1.1 mrg #ifdef __cplusplus
19 1.1 mrg extern "C" {
20 1.1 mrg #endif
21 1.1 mrg
22 1.1 mrg #define XCB_DRI3_MAJOR_VERSION 1
23 1.4 mrg #define XCB_DRI3_MINOR_VERSION 2
24 1.2 mrg
25 1.1 mrg extern xcb_extension_t xcb_dri3_id;
26 1.1 mrg
27 1.1 mrg /**
28 1.1 mrg * @brief xcb_dri3_query_version_cookie_t
29 1.1 mrg **/
30 1.1 mrg typedef struct xcb_dri3_query_version_cookie_t {
31 1.3 mrg unsigned int sequence;
32 1.1 mrg } xcb_dri3_query_version_cookie_t;
33 1.1 mrg
34 1.1 mrg /** Opcode for xcb_dri3_query_version. */
35 1.1 mrg #define XCB_DRI3_QUERY_VERSION 0
36 1.1 mrg
37 1.1 mrg /**
38 1.1 mrg * @brief xcb_dri3_query_version_request_t
39 1.1 mrg **/
40 1.1 mrg typedef struct xcb_dri3_query_version_request_t {
41 1.3 mrg uint8_t major_opcode;
42 1.3 mrg uint8_t minor_opcode;
43 1.3 mrg uint16_t length;
44 1.3 mrg uint32_t major_version;
45 1.3 mrg uint32_t minor_version;
46 1.1 mrg } xcb_dri3_query_version_request_t;
47 1.1 mrg
48 1.1 mrg /**
49 1.1 mrg * @brief xcb_dri3_query_version_reply_t
50 1.1 mrg **/
51 1.1 mrg typedef struct xcb_dri3_query_version_reply_t {
52 1.3 mrg uint8_t response_type;
53 1.3 mrg uint8_t pad0;
54 1.3 mrg uint16_t sequence;
55 1.3 mrg uint32_t length;
56 1.3 mrg uint32_t major_version;
57 1.3 mrg uint32_t minor_version;
58 1.1 mrg } xcb_dri3_query_version_reply_t;
59 1.1 mrg
60 1.1 mrg /**
61 1.1 mrg * @brief xcb_dri3_open_cookie_t
62 1.1 mrg **/
63 1.1 mrg typedef struct xcb_dri3_open_cookie_t {
64 1.3 mrg unsigned int sequence;
65 1.1 mrg } xcb_dri3_open_cookie_t;
66 1.1 mrg
67 1.1 mrg /** Opcode for xcb_dri3_open. */
68 1.1 mrg #define XCB_DRI3_OPEN 1
69 1.1 mrg
70 1.1 mrg /**
71 1.1 mrg * @brief xcb_dri3_open_request_t
72 1.1 mrg **/
73 1.1 mrg typedef struct xcb_dri3_open_request_t {
74 1.3 mrg uint8_t major_opcode;
75 1.3 mrg uint8_t minor_opcode;
76 1.3 mrg uint16_t length;
77 1.3 mrg xcb_drawable_t drawable;
78 1.3 mrg uint32_t provider;
79 1.1 mrg } xcb_dri3_open_request_t;
80 1.1 mrg
81 1.1 mrg /**
82 1.1 mrg * @brief xcb_dri3_open_reply_t
83 1.1 mrg **/
84 1.1 mrg typedef struct xcb_dri3_open_reply_t {
85 1.3 mrg uint8_t response_type;
86 1.3 mrg uint8_t nfd;
87 1.3 mrg uint16_t sequence;
88 1.3 mrg uint32_t length;
89 1.3 mrg uint8_t pad0[24];
90 1.1 mrg } xcb_dri3_open_reply_t;
91 1.1 mrg
92 1.1 mrg /** Opcode for xcb_dri3_pixmap_from_buffer. */
93 1.1 mrg #define XCB_DRI3_PIXMAP_FROM_BUFFER 2
94 1.1 mrg
95 1.1 mrg /**
96 1.1 mrg * @brief xcb_dri3_pixmap_from_buffer_request_t
97 1.1 mrg **/
98 1.1 mrg typedef struct xcb_dri3_pixmap_from_buffer_request_t {
99 1.3 mrg uint8_t major_opcode;
100 1.3 mrg uint8_t minor_opcode;
101 1.3 mrg uint16_t length;
102 1.3 mrg xcb_pixmap_t pixmap;
103 1.3 mrg xcb_drawable_t drawable;
104 1.3 mrg uint32_t size;
105 1.3 mrg uint16_t width;
106 1.3 mrg uint16_t height;
107 1.3 mrg uint16_t stride;
108 1.3 mrg uint8_t depth;
109 1.3 mrg uint8_t bpp;
110 1.1 mrg } xcb_dri3_pixmap_from_buffer_request_t;
111 1.1 mrg
112 1.1 mrg /**
113 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_cookie_t
114 1.1 mrg **/
115 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_cookie_t {
116 1.3 mrg unsigned int sequence;
117 1.1 mrg } xcb_dri3_buffer_from_pixmap_cookie_t;
118 1.1 mrg
119 1.1 mrg /** Opcode for xcb_dri3_buffer_from_pixmap. */
120 1.1 mrg #define XCB_DRI3_BUFFER_FROM_PIXMAP 3
121 1.1 mrg
122 1.1 mrg /**
123 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_request_t
124 1.1 mrg **/
125 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_request_t {
126 1.3 mrg uint8_t major_opcode;
127 1.3 mrg uint8_t minor_opcode;
128 1.3 mrg uint16_t length;
129 1.3 mrg xcb_pixmap_t pixmap;
130 1.1 mrg } xcb_dri3_buffer_from_pixmap_request_t;
131 1.1 mrg
132 1.1 mrg /**
133 1.1 mrg * @brief xcb_dri3_buffer_from_pixmap_reply_t
134 1.1 mrg **/
135 1.1 mrg typedef struct xcb_dri3_buffer_from_pixmap_reply_t {
136 1.3 mrg uint8_t response_type;
137 1.3 mrg uint8_t nfd;
138 1.3 mrg uint16_t sequence;
139 1.3 mrg uint32_t length;
140 1.3 mrg uint32_t size;
141 1.3 mrg uint16_t width;
142 1.3 mrg uint16_t height;
143 1.3 mrg uint16_t stride;
144 1.3 mrg uint8_t depth;
145 1.3 mrg uint8_t bpp;
146 1.3 mrg uint8_t pad0[12];
147 1.1 mrg } xcb_dri3_buffer_from_pixmap_reply_t;
148 1.1 mrg
149 1.1 mrg /** Opcode for xcb_dri3_fence_from_fd. */
150 1.1 mrg #define XCB_DRI3_FENCE_FROM_FD 4
151 1.1 mrg
152 1.1 mrg /**
153 1.1 mrg * @brief xcb_dri3_fence_from_fd_request_t
154 1.1 mrg **/
155 1.1 mrg typedef struct xcb_dri3_fence_from_fd_request_t {
156 1.3 mrg uint8_t major_opcode;
157 1.3 mrg uint8_t minor_opcode;
158 1.3 mrg uint16_t length;
159 1.3 mrg xcb_drawable_t drawable;
160 1.3 mrg uint32_t fence;
161 1.3 mrg uint8_t initially_triggered;
162 1.3 mrg uint8_t pad0[3];
163 1.1 mrg } xcb_dri3_fence_from_fd_request_t;
164 1.1 mrg
165 1.1 mrg /**
166 1.1 mrg * @brief xcb_dri3_fd_from_fence_cookie_t
167 1.1 mrg **/
168 1.1 mrg typedef struct xcb_dri3_fd_from_fence_cookie_t {
169 1.3 mrg unsigned int sequence;
170 1.1 mrg } xcb_dri3_fd_from_fence_cookie_t;
171 1.1 mrg
172 1.1 mrg /** Opcode for xcb_dri3_fd_from_fence. */
173 1.1 mrg #define XCB_DRI3_FD_FROM_FENCE 5
174 1.1 mrg
175 1.1 mrg /**
176 1.1 mrg * @brief xcb_dri3_fd_from_fence_request_t
177 1.1 mrg **/
178 1.1 mrg typedef struct xcb_dri3_fd_from_fence_request_t {
179 1.3 mrg uint8_t major_opcode;
180 1.3 mrg uint8_t minor_opcode;
181 1.3 mrg uint16_t length;
182 1.3 mrg xcb_drawable_t drawable;
183 1.3 mrg uint32_t fence;
184 1.1 mrg } xcb_dri3_fd_from_fence_request_t;
185 1.1 mrg
186 1.1 mrg /**
187 1.1 mrg * @brief xcb_dri3_fd_from_fence_reply_t
188 1.1 mrg **/
189 1.1 mrg typedef struct xcb_dri3_fd_from_fence_reply_t {
190 1.3 mrg uint8_t response_type;
191 1.3 mrg uint8_t nfd;
192 1.3 mrg uint16_t sequence;
193 1.3 mrg uint32_t length;
194 1.3 mrg uint8_t pad0[24];
195 1.1 mrg } xcb_dri3_fd_from_fence_reply_t;
196 1.1 mrg
197 1.1 mrg /**
198 1.4 mrg * @brief xcb_dri3_get_supported_modifiers_cookie_t
199 1.4 mrg **/
200 1.4 mrg typedef struct xcb_dri3_get_supported_modifiers_cookie_t {
201 1.4 mrg unsigned int sequence;
202 1.4 mrg } xcb_dri3_get_supported_modifiers_cookie_t;
203 1.4 mrg
204 1.4 mrg /** Opcode for xcb_dri3_get_supported_modifiers. */
205 1.4 mrg #define XCB_DRI3_GET_SUPPORTED_MODIFIERS 6
206 1.4 mrg
207 1.4 mrg /**
208 1.4 mrg * @brief xcb_dri3_get_supported_modifiers_request_t
209 1.4 mrg **/
210 1.4 mrg typedef struct xcb_dri3_get_supported_modifiers_request_t {
211 1.4 mrg uint8_t major_opcode;
212 1.4 mrg uint8_t minor_opcode;
213 1.4 mrg uint16_t length;
214 1.4 mrg uint32_t window;
215 1.4 mrg uint8_t depth;
216 1.4 mrg uint8_t bpp;
217 1.4 mrg uint8_t pad0[2];
218 1.4 mrg } xcb_dri3_get_supported_modifiers_request_t;
219 1.4 mrg
220 1.4 mrg /**
221 1.4 mrg * @brief xcb_dri3_get_supported_modifiers_reply_t
222 1.4 mrg **/
223 1.4 mrg typedef struct xcb_dri3_get_supported_modifiers_reply_t {
224 1.4 mrg uint8_t response_type;
225 1.4 mrg uint8_t pad0;
226 1.4 mrg uint16_t sequence;
227 1.4 mrg uint32_t length;
228 1.4 mrg uint32_t num_window_modifiers;
229 1.4 mrg uint32_t num_screen_modifiers;
230 1.4 mrg uint8_t pad1[16];
231 1.4 mrg } xcb_dri3_get_supported_modifiers_reply_t;
232 1.4 mrg
233 1.4 mrg /** Opcode for xcb_dri3_pixmap_from_buffers. */
234 1.4 mrg #define XCB_DRI3_PIXMAP_FROM_BUFFERS 7
235 1.4 mrg
236 1.4 mrg /**
237 1.4 mrg * @brief xcb_dri3_pixmap_from_buffers_request_t
238 1.4 mrg **/
239 1.4 mrg typedef struct xcb_dri3_pixmap_from_buffers_request_t {
240 1.4 mrg uint8_t major_opcode;
241 1.4 mrg uint8_t minor_opcode;
242 1.4 mrg uint16_t length;
243 1.4 mrg xcb_pixmap_t pixmap;
244 1.4 mrg xcb_window_t window;
245 1.4 mrg uint8_t num_buffers;
246 1.4 mrg uint8_t pad0[3];
247 1.4 mrg uint16_t width;
248 1.4 mrg uint16_t height;
249 1.4 mrg uint32_t stride0;
250 1.4 mrg uint32_t offset0;
251 1.4 mrg uint32_t stride1;
252 1.4 mrg uint32_t offset1;
253 1.4 mrg uint32_t stride2;
254 1.4 mrg uint32_t offset2;
255 1.4 mrg uint32_t stride3;
256 1.4 mrg uint32_t offset3;
257 1.4 mrg uint8_t depth;
258 1.4 mrg uint8_t bpp;
259 1.4 mrg uint8_t pad1[2];
260 1.4 mrg uint64_t modifier;
261 1.4 mrg } xcb_dri3_pixmap_from_buffers_request_t;
262 1.4 mrg
263 1.4 mrg /**
264 1.4 mrg * @brief xcb_dri3_buffers_from_pixmap_cookie_t
265 1.4 mrg **/
266 1.4 mrg typedef struct xcb_dri3_buffers_from_pixmap_cookie_t {
267 1.4 mrg unsigned int sequence;
268 1.4 mrg } xcb_dri3_buffers_from_pixmap_cookie_t;
269 1.4 mrg
270 1.4 mrg /** Opcode for xcb_dri3_buffers_from_pixmap. */
271 1.4 mrg #define XCB_DRI3_BUFFERS_FROM_PIXMAP 8
272 1.4 mrg
273 1.4 mrg /**
274 1.4 mrg * @brief xcb_dri3_buffers_from_pixmap_request_t
275 1.4 mrg **/
276 1.4 mrg typedef struct xcb_dri3_buffers_from_pixmap_request_t {
277 1.4 mrg uint8_t major_opcode;
278 1.4 mrg uint8_t minor_opcode;
279 1.4 mrg uint16_t length;
280 1.4 mrg xcb_pixmap_t pixmap;
281 1.4 mrg } xcb_dri3_buffers_from_pixmap_request_t;
282 1.4 mrg
283 1.4 mrg /**
284 1.4 mrg * @brief xcb_dri3_buffers_from_pixmap_reply_t
285 1.4 mrg **/
286 1.4 mrg typedef struct xcb_dri3_buffers_from_pixmap_reply_t {
287 1.4 mrg uint8_t response_type;
288 1.4 mrg uint8_t nfd;
289 1.4 mrg uint16_t sequence;
290 1.4 mrg uint32_t length;
291 1.4 mrg uint16_t width;
292 1.4 mrg uint16_t height;
293 1.4 mrg uint8_t pad0[4];
294 1.4 mrg uint64_t modifier;
295 1.4 mrg uint8_t depth;
296 1.4 mrg uint8_t bpp;
297 1.4 mrg uint8_t pad1[6];
298 1.4 mrg } xcb_dri3_buffers_from_pixmap_reply_t;
299 1.4 mrg
300 1.4 mrg /**
301 1.1 mrg *
302 1.1 mrg * @param c The connection
303 1.1 mrg * @return A cookie
304 1.1 mrg *
305 1.1 mrg * Delivers a request to the X server.
306 1.2 mrg *
307 1.1 mrg */
308 1.1 mrg xcb_dri3_query_version_cookie_t
309 1.3 mrg xcb_dri3_query_version (xcb_connection_t *c,
310 1.3 mrg uint32_t major_version,
311 1.3 mrg uint32_t minor_version);
312 1.1 mrg
313 1.1 mrg /**
314 1.1 mrg *
315 1.1 mrg * @param c The connection
316 1.1 mrg * @return A cookie
317 1.1 mrg *
318 1.1 mrg * Delivers a request to the X server.
319 1.2 mrg *
320 1.1 mrg * This form can be used only if the request will cause
321 1.1 mrg * a reply to be generated. Any returned error will be
322 1.1 mrg * placed in the event queue.
323 1.1 mrg */
324 1.1 mrg xcb_dri3_query_version_cookie_t
325 1.3 mrg xcb_dri3_query_version_unchecked (xcb_connection_t *c,
326 1.3 mrg uint32_t major_version,
327 1.3 mrg uint32_t minor_version);
328 1.1 mrg
329 1.1 mrg /**
330 1.1 mrg * Return the reply
331 1.1 mrg * @param c The connection
332 1.1 mrg * @param cookie The cookie
333 1.1 mrg * @param e The xcb_generic_error_t supplied
334 1.1 mrg *
335 1.1 mrg * Returns the reply of the request asked by
336 1.2 mrg *
337 1.1 mrg * The parameter @p e supplied to this function must be NULL if
338 1.1 mrg * xcb_dri3_query_version_unchecked(). is used.
339 1.1 mrg * Otherwise, it stores the error if any.
340 1.1 mrg *
341 1.1 mrg * The returned value must be freed by the caller using free().
342 1.1 mrg */
343 1.1 mrg xcb_dri3_query_version_reply_t *
344 1.3 mrg xcb_dri3_query_version_reply (xcb_connection_t *c,
345 1.1 mrg xcb_dri3_query_version_cookie_t cookie /**< */,
346 1.3 mrg xcb_generic_error_t **e);
347 1.1 mrg
348 1.1 mrg /**
349 1.1 mrg *
350 1.1 mrg * @param c The connection
351 1.1 mrg * @return A cookie
352 1.1 mrg *
353 1.1 mrg * Delivers a request to the X server.
354 1.2 mrg *
355 1.1 mrg */
356 1.1 mrg xcb_dri3_open_cookie_t
357 1.3 mrg xcb_dri3_open (xcb_connection_t *c,
358 1.3 mrg xcb_drawable_t drawable,
359 1.3 mrg uint32_t provider);
360 1.1 mrg
361 1.1 mrg /**
362 1.1 mrg *
363 1.1 mrg * @param c The connection
364 1.1 mrg * @return A cookie
365 1.1 mrg *
366 1.1 mrg * Delivers a request to the X server.
367 1.2 mrg *
368 1.1 mrg * This form can be used only if the request will cause
369 1.1 mrg * a reply to be generated. Any returned error will be
370 1.1 mrg * placed in the event queue.
371 1.1 mrg */
372 1.1 mrg xcb_dri3_open_cookie_t
373 1.3 mrg xcb_dri3_open_unchecked (xcb_connection_t *c,
374 1.3 mrg xcb_drawable_t drawable,
375 1.3 mrg uint32_t provider);
376 1.1 mrg
377 1.1 mrg /**
378 1.1 mrg * Return the reply
379 1.1 mrg * @param c The connection
380 1.1 mrg * @param cookie The cookie
381 1.1 mrg * @param e The xcb_generic_error_t supplied
382 1.1 mrg *
383 1.1 mrg * Returns the reply of the request asked by
384 1.2 mrg *
385 1.1 mrg * The parameter @p e supplied to this function must be NULL if
386 1.1 mrg * xcb_dri3_open_unchecked(). is used.
387 1.1 mrg * Otherwise, it stores the error if any.
388 1.1 mrg *
389 1.1 mrg * The returned value must be freed by the caller using free().
390 1.1 mrg */
391 1.1 mrg xcb_dri3_open_reply_t *
392 1.3 mrg xcb_dri3_open_reply (xcb_connection_t *c,
393 1.1 mrg xcb_dri3_open_cookie_t cookie /**< */,
394 1.3 mrg xcb_generic_error_t **e);
395 1.1 mrg
396 1.1 mrg /**
397 1.1 mrg * Return the reply fds
398 1.1 mrg * @param c The connection
399 1.1 mrg * @param reply The reply
400 1.1 mrg *
401 1.1 mrg * Returns the array of reply fds of the request asked by
402 1.2 mrg *
403 1.1 mrg * The returned value must be freed by the caller using free().
404 1.1 mrg */
405 1.1 mrg int *
406 1.1 mrg xcb_dri3_open_reply_fds (xcb_connection_t *c /**< */,
407 1.3 mrg xcb_dri3_open_reply_t *reply);
408 1.1 mrg
409 1.1 mrg /**
410 1.1 mrg *
411 1.1 mrg * @param c The connection
412 1.1 mrg * @return A cookie
413 1.1 mrg *
414 1.1 mrg * Delivers a request to the X server.
415 1.2 mrg *
416 1.1 mrg * This form can be used only if the request will not cause
417 1.1 mrg * a reply to be generated. Any returned error will be
418 1.1 mrg * saved for handling by xcb_request_check().
419 1.1 mrg */
420 1.1 mrg xcb_void_cookie_t
421 1.3 mrg xcb_dri3_pixmap_from_buffer_checked (xcb_connection_t *c,
422 1.3 mrg xcb_pixmap_t pixmap,
423 1.3 mrg xcb_drawable_t drawable,
424 1.3 mrg uint32_t size,
425 1.3 mrg uint16_t width,
426 1.3 mrg uint16_t height,
427 1.3 mrg uint16_t stride,
428 1.3 mrg uint8_t depth,
429 1.3 mrg uint8_t bpp,
430 1.3 mrg int32_t pixmap_fd);
431 1.1 mrg
432 1.1 mrg /**
433 1.1 mrg *
434 1.1 mrg * @param c The connection
435 1.1 mrg * @return A cookie
436 1.1 mrg *
437 1.1 mrg * Delivers a request to the X server.
438 1.2 mrg *
439 1.1 mrg */
440 1.1 mrg xcb_void_cookie_t
441 1.3 mrg xcb_dri3_pixmap_from_buffer (xcb_connection_t *c,
442 1.3 mrg xcb_pixmap_t pixmap,
443 1.3 mrg xcb_drawable_t drawable,
444 1.3 mrg uint32_t size,
445 1.3 mrg uint16_t width,
446 1.3 mrg uint16_t height,
447 1.3 mrg uint16_t stride,
448 1.3 mrg uint8_t depth,
449 1.3 mrg uint8_t bpp,
450 1.3 mrg int32_t pixmap_fd);
451 1.1 mrg
452 1.1 mrg /**
453 1.1 mrg *
454 1.1 mrg * @param c The connection
455 1.1 mrg * @return A cookie
456 1.1 mrg *
457 1.1 mrg * Delivers a request to the X server.
458 1.2 mrg *
459 1.1 mrg */
460 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t
461 1.3 mrg xcb_dri3_buffer_from_pixmap (xcb_connection_t *c,
462 1.3 mrg xcb_pixmap_t pixmap);
463 1.1 mrg
464 1.1 mrg /**
465 1.1 mrg *
466 1.1 mrg * @param c The connection
467 1.1 mrg * @return A cookie
468 1.1 mrg *
469 1.1 mrg * Delivers a request to the X server.
470 1.2 mrg *
471 1.1 mrg * This form can be used only if the request will cause
472 1.1 mrg * a reply to be generated. Any returned error will be
473 1.1 mrg * placed in the event queue.
474 1.1 mrg */
475 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t
476 1.3 mrg xcb_dri3_buffer_from_pixmap_unchecked (xcb_connection_t *c,
477 1.3 mrg xcb_pixmap_t pixmap);
478 1.1 mrg
479 1.1 mrg /**
480 1.1 mrg * Return the reply
481 1.1 mrg * @param c The connection
482 1.1 mrg * @param cookie The cookie
483 1.1 mrg * @param e The xcb_generic_error_t supplied
484 1.1 mrg *
485 1.1 mrg * Returns the reply of the request asked by
486 1.2 mrg *
487 1.1 mrg * The parameter @p e supplied to this function must be NULL if
488 1.1 mrg * xcb_dri3_buffer_from_pixmap_unchecked(). is used.
489 1.1 mrg * Otherwise, it stores the error if any.
490 1.1 mrg *
491 1.1 mrg * The returned value must be freed by the caller using free().
492 1.1 mrg */
493 1.1 mrg xcb_dri3_buffer_from_pixmap_reply_t *
494 1.3 mrg xcb_dri3_buffer_from_pixmap_reply (xcb_connection_t *c,
495 1.1 mrg xcb_dri3_buffer_from_pixmap_cookie_t cookie /**< */,
496 1.3 mrg xcb_generic_error_t **e);
497 1.1 mrg
498 1.1 mrg /**
499 1.1 mrg * Return the reply fds
500 1.1 mrg * @param c The connection
501 1.1 mrg * @param reply The reply
502 1.1 mrg *
503 1.1 mrg * Returns the array of reply fds of the request asked by
504 1.2 mrg *
505 1.1 mrg * The returned value must be freed by the caller using free().
506 1.1 mrg */
507 1.1 mrg int *
508 1.1 mrg xcb_dri3_buffer_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
509 1.3 mrg xcb_dri3_buffer_from_pixmap_reply_t *reply);
510 1.1 mrg
511 1.1 mrg /**
512 1.1 mrg *
513 1.1 mrg * @param c The connection
514 1.1 mrg * @return A cookie
515 1.1 mrg *
516 1.1 mrg * Delivers a request to the X server.
517 1.2 mrg *
518 1.1 mrg * This form can be used only if the request will not cause
519 1.1 mrg * a reply to be generated. Any returned error will be
520 1.1 mrg * saved for handling by xcb_request_check().
521 1.1 mrg */
522 1.1 mrg xcb_void_cookie_t
523 1.3 mrg xcb_dri3_fence_from_fd_checked (xcb_connection_t *c,
524 1.3 mrg xcb_drawable_t drawable,
525 1.3 mrg uint32_t fence,
526 1.3 mrg uint8_t initially_triggered,
527 1.3 mrg int32_t fence_fd);
528 1.1 mrg
529 1.1 mrg /**
530 1.1 mrg *
531 1.1 mrg * @param c The connection
532 1.1 mrg * @return A cookie
533 1.1 mrg *
534 1.1 mrg * Delivers a request to the X server.
535 1.2 mrg *
536 1.1 mrg */
537 1.1 mrg xcb_void_cookie_t
538 1.3 mrg xcb_dri3_fence_from_fd (xcb_connection_t *c,
539 1.3 mrg xcb_drawable_t drawable,
540 1.3 mrg uint32_t fence,
541 1.3 mrg uint8_t initially_triggered,
542 1.3 mrg int32_t fence_fd);
543 1.1 mrg
544 1.1 mrg /**
545 1.1 mrg *
546 1.1 mrg * @param c The connection
547 1.1 mrg * @return A cookie
548 1.1 mrg *
549 1.1 mrg * Delivers a request to the X server.
550 1.2 mrg *
551 1.1 mrg */
552 1.1 mrg xcb_dri3_fd_from_fence_cookie_t
553 1.3 mrg xcb_dri3_fd_from_fence (xcb_connection_t *c,
554 1.3 mrg xcb_drawable_t drawable,
555 1.3 mrg uint32_t fence);
556 1.1 mrg
557 1.1 mrg /**
558 1.1 mrg *
559 1.1 mrg * @param c The connection
560 1.1 mrg * @return A cookie
561 1.1 mrg *
562 1.1 mrg * Delivers a request to the X server.
563 1.2 mrg *
564 1.1 mrg * This form can be used only if the request will cause
565 1.1 mrg * a reply to be generated. Any returned error will be
566 1.1 mrg * placed in the event queue.
567 1.1 mrg */
568 1.1 mrg xcb_dri3_fd_from_fence_cookie_t
569 1.3 mrg xcb_dri3_fd_from_fence_unchecked (xcb_connection_t *c,
570 1.3 mrg xcb_drawable_t drawable,
571 1.3 mrg uint32_t fence);
572 1.1 mrg
573 1.1 mrg /**
574 1.1 mrg * Return the reply
575 1.1 mrg * @param c The connection
576 1.1 mrg * @param cookie The cookie
577 1.1 mrg * @param e The xcb_generic_error_t supplied
578 1.1 mrg *
579 1.1 mrg * Returns the reply of the request asked by
580 1.2 mrg *
581 1.1 mrg * The parameter @p e supplied to this function must be NULL if
582 1.1 mrg * xcb_dri3_fd_from_fence_unchecked(). is used.
583 1.1 mrg * Otherwise, it stores the error if any.
584 1.1 mrg *
585 1.1 mrg * The returned value must be freed by the caller using free().
586 1.1 mrg */
587 1.1 mrg xcb_dri3_fd_from_fence_reply_t *
588 1.3 mrg xcb_dri3_fd_from_fence_reply (xcb_connection_t *c,
589 1.1 mrg xcb_dri3_fd_from_fence_cookie_t cookie /**< */,
590 1.3 mrg xcb_generic_error_t **e);
591 1.1 mrg
592 1.1 mrg /**
593 1.1 mrg * Return the reply fds
594 1.1 mrg * @param c The connection
595 1.1 mrg * @param reply The reply
596 1.1 mrg *
597 1.1 mrg * Returns the array of reply fds of the request asked by
598 1.2 mrg *
599 1.1 mrg * The returned value must be freed by the caller using free().
600 1.1 mrg */
601 1.1 mrg int *
602 1.1 mrg xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t *c /**< */,
603 1.3 mrg xcb_dri3_fd_from_fence_reply_t *reply);
604 1.1 mrg
605 1.4 mrg int
606 1.4 mrg xcb_dri3_get_supported_modifiers_sizeof (const void *_buffer);
607 1.4 mrg
608 1.4 mrg /**
609 1.4 mrg *
610 1.4 mrg * @param c The connection
611 1.4 mrg * @return A cookie
612 1.4 mrg *
613 1.4 mrg * Delivers a request to the X server.
614 1.4 mrg *
615 1.4 mrg */
616 1.4 mrg xcb_dri3_get_supported_modifiers_cookie_t
617 1.4 mrg xcb_dri3_get_supported_modifiers (xcb_connection_t *c,
618 1.4 mrg uint32_t window,
619 1.4 mrg uint8_t depth,
620 1.4 mrg uint8_t bpp);
621 1.4 mrg
622 1.4 mrg /**
623 1.4 mrg *
624 1.4 mrg * @param c The connection
625 1.4 mrg * @return A cookie
626 1.4 mrg *
627 1.4 mrg * Delivers a request to the X server.
628 1.4 mrg *
629 1.4 mrg * This form can be used only if the request will cause
630 1.4 mrg * a reply to be generated. Any returned error will be
631 1.4 mrg * placed in the event queue.
632 1.4 mrg */
633 1.4 mrg xcb_dri3_get_supported_modifiers_cookie_t
634 1.4 mrg xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c,
635 1.4 mrg uint32_t window,
636 1.4 mrg uint8_t depth,
637 1.4 mrg uint8_t bpp);
638 1.4 mrg
639 1.4 mrg uint64_t *
640 1.4 mrg xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
641 1.4 mrg
642 1.4 mrg int
643 1.4 mrg xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
644 1.4 mrg
645 1.4 mrg xcb_generic_iterator_t
646 1.4 mrg xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
647 1.4 mrg
648 1.4 mrg uint64_t *
649 1.4 mrg xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
650 1.4 mrg
651 1.4 mrg int
652 1.4 mrg xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
653 1.4 mrg
654 1.4 mrg xcb_generic_iterator_t
655 1.4 mrg xcb_dri3_get_supported_modifiers_screen_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
656 1.4 mrg
657 1.4 mrg /**
658 1.4 mrg * Return the reply
659 1.4 mrg * @param c The connection
660 1.4 mrg * @param cookie The cookie
661 1.4 mrg * @param e The xcb_generic_error_t supplied
662 1.4 mrg *
663 1.4 mrg * Returns the reply of the request asked by
664 1.4 mrg *
665 1.4 mrg * The parameter @p e supplied to this function must be NULL if
666 1.4 mrg * xcb_dri3_get_supported_modifiers_unchecked(). is used.
667 1.4 mrg * Otherwise, it stores the error if any.
668 1.4 mrg *
669 1.4 mrg * The returned value must be freed by the caller using free().
670 1.4 mrg */
671 1.4 mrg xcb_dri3_get_supported_modifiers_reply_t *
672 1.4 mrg xcb_dri3_get_supported_modifiers_reply (xcb_connection_t *c,
673 1.4 mrg xcb_dri3_get_supported_modifiers_cookie_t cookie /**< */,
674 1.4 mrg xcb_generic_error_t **e);
675 1.4 mrg
676 1.4 mrg /**
677 1.4 mrg *
678 1.4 mrg * @param c The connection
679 1.4 mrg * @return A cookie
680 1.4 mrg *
681 1.4 mrg * Delivers a request to the X server.
682 1.4 mrg *
683 1.4 mrg * This form can be used only if the request will not cause
684 1.4 mrg * a reply to be generated. Any returned error will be
685 1.4 mrg * saved for handling by xcb_request_check().
686 1.4 mrg */
687 1.4 mrg xcb_void_cookie_t
688 1.4 mrg xcb_dri3_pixmap_from_buffers_checked (xcb_connection_t *c,
689 1.4 mrg xcb_pixmap_t pixmap,
690 1.4 mrg xcb_window_t window,
691 1.4 mrg uint8_t num_buffers,
692 1.4 mrg uint16_t width,
693 1.4 mrg uint16_t height,
694 1.4 mrg uint32_t stride0,
695 1.4 mrg uint32_t offset0,
696 1.4 mrg uint32_t stride1,
697 1.4 mrg uint32_t offset1,
698 1.4 mrg uint32_t stride2,
699 1.4 mrg uint32_t offset2,
700 1.4 mrg uint32_t stride3,
701 1.4 mrg uint32_t offset3,
702 1.4 mrg uint8_t depth,
703 1.4 mrg uint8_t bpp,
704 1.4 mrg uint64_t modifier,
705 1.4 mrg const int32_t *buffers);
706 1.4 mrg
707 1.4 mrg /**
708 1.4 mrg *
709 1.4 mrg * @param c The connection
710 1.4 mrg * @return A cookie
711 1.4 mrg *
712 1.4 mrg * Delivers a request to the X server.
713 1.4 mrg *
714 1.4 mrg */
715 1.4 mrg xcb_void_cookie_t
716 1.4 mrg xcb_dri3_pixmap_from_buffers (xcb_connection_t *c,
717 1.4 mrg xcb_pixmap_t pixmap,
718 1.4 mrg xcb_window_t window,
719 1.4 mrg uint8_t num_buffers,
720 1.4 mrg uint16_t width,
721 1.4 mrg uint16_t height,
722 1.4 mrg uint32_t stride0,
723 1.4 mrg uint32_t offset0,
724 1.4 mrg uint32_t stride1,
725 1.4 mrg uint32_t offset1,
726 1.4 mrg uint32_t stride2,
727 1.4 mrg uint32_t offset2,
728 1.4 mrg uint32_t stride3,
729 1.4 mrg uint32_t offset3,
730 1.4 mrg uint8_t depth,
731 1.4 mrg uint8_t bpp,
732 1.4 mrg uint64_t modifier,
733 1.4 mrg const int32_t *buffers);
734 1.4 mrg
735 1.4 mrg int
736 1.4 mrg xcb_dri3_buffers_from_pixmap_sizeof (const void *_buffer,
737 1.4 mrg int32_t buffers);
738 1.4 mrg
739 1.4 mrg /**
740 1.4 mrg *
741 1.4 mrg * @param c The connection
742 1.4 mrg * @return A cookie
743 1.4 mrg *
744 1.4 mrg * Delivers a request to the X server.
745 1.4 mrg *
746 1.4 mrg */
747 1.4 mrg xcb_dri3_buffers_from_pixmap_cookie_t
748 1.4 mrg xcb_dri3_buffers_from_pixmap (xcb_connection_t *c,
749 1.4 mrg xcb_pixmap_t pixmap);
750 1.4 mrg
751 1.4 mrg /**
752 1.4 mrg *
753 1.4 mrg * @param c The connection
754 1.4 mrg * @return A cookie
755 1.4 mrg *
756 1.4 mrg * Delivers a request to the X server.
757 1.4 mrg *
758 1.4 mrg * This form can be used only if the request will cause
759 1.4 mrg * a reply to be generated. Any returned error will be
760 1.4 mrg * placed in the event queue.
761 1.4 mrg */
762 1.4 mrg xcb_dri3_buffers_from_pixmap_cookie_t
763 1.4 mrg xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c,
764 1.4 mrg xcb_pixmap_t pixmap);
765 1.4 mrg
766 1.4 mrg uint32_t *
767 1.4 mrg xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R);
768 1.4 mrg
769 1.4 mrg int
770 1.4 mrg xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
771 1.4 mrg
772 1.4 mrg xcb_generic_iterator_t
773 1.4 mrg xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
774 1.4 mrg
775 1.4 mrg uint32_t *
776 1.4 mrg xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R);
777 1.4 mrg
778 1.4 mrg int
779 1.4 mrg xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
780 1.4 mrg
781 1.4 mrg xcb_generic_iterator_t
782 1.4 mrg xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
783 1.4 mrg
784 1.4 mrg int32_t *
785 1.4 mrg xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R);
786 1.4 mrg
787 1.4 mrg int
788 1.4 mrg xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
789 1.4 mrg
790 1.4 mrg xcb_generic_iterator_t
791 1.4 mrg xcb_dri3_buffers_from_pixmap_buffers_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
792 1.4 mrg
793 1.4 mrg /**
794 1.4 mrg * Return the reply
795 1.4 mrg * @param c The connection
796 1.4 mrg * @param cookie The cookie
797 1.4 mrg * @param e The xcb_generic_error_t supplied
798 1.4 mrg *
799 1.4 mrg * Returns the reply of the request asked by
800 1.4 mrg *
801 1.4 mrg * The parameter @p e supplied to this function must be NULL if
802 1.4 mrg * xcb_dri3_buffers_from_pixmap_unchecked(). is used.
803 1.4 mrg * Otherwise, it stores the error if any.
804 1.4 mrg *
805 1.4 mrg * The returned value must be freed by the caller using free().
806 1.4 mrg */
807 1.4 mrg xcb_dri3_buffers_from_pixmap_reply_t *
808 1.4 mrg xcb_dri3_buffers_from_pixmap_reply (xcb_connection_t *c,
809 1.4 mrg xcb_dri3_buffers_from_pixmap_cookie_t cookie /**< */,
810 1.4 mrg xcb_generic_error_t **e);
811 1.4 mrg
812 1.4 mrg /**
813 1.4 mrg * Return the reply fds
814 1.4 mrg * @param c The connection
815 1.4 mrg * @param reply The reply
816 1.4 mrg *
817 1.4 mrg * Returns the array of reply fds of the request asked by
818 1.4 mrg *
819 1.4 mrg * The returned value must be freed by the caller using free().
820 1.4 mrg */
821 1.4 mrg int *
822 1.4 mrg xcb_dri3_buffers_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
823 1.4 mrg xcb_dri3_buffers_from_pixmap_reply_t *reply);
824 1.4 mrg
825 1.1 mrg
826 1.1 mrg #ifdef __cplusplus
827 1.1 mrg }
828 1.1 mrg #endif
829 1.1 mrg
830 1.1 mrg #endif
831 1.1 mrg
832 1.1 mrg /**
833 1.1 mrg * @}
834 1.1 mrg */
835