jpayne@69
|
1 /*
|
jpayne@69
|
2 * This file generated automatically from dbe.xml by c_client.py.
|
jpayne@69
|
3 * Edit at your peril.
|
jpayne@69
|
4 */
|
jpayne@69
|
5
|
jpayne@69
|
6 /**
|
jpayne@69
|
7 * @defgroup XCB_Dbe_API XCB Dbe API
|
jpayne@69
|
8 * @brief Dbe XCB Protocol Implementation.
|
jpayne@69
|
9 * @{
|
jpayne@69
|
10 **/
|
jpayne@69
|
11
|
jpayne@69
|
12 #ifndef __DBE_H
|
jpayne@69
|
13 #define __DBE_H
|
jpayne@69
|
14
|
jpayne@69
|
15 #include "xcb.h"
|
jpayne@69
|
16 #include "xproto.h"
|
jpayne@69
|
17
|
jpayne@69
|
18 #ifdef __cplusplus
|
jpayne@69
|
19 extern "C" {
|
jpayne@69
|
20 #endif
|
jpayne@69
|
21
|
jpayne@69
|
22 #define XCB_DBE_MAJOR_VERSION 1
|
jpayne@69
|
23 #define XCB_DBE_MINOR_VERSION 0
|
jpayne@69
|
24
|
jpayne@69
|
25 extern xcb_extension_t xcb_dbe_id;
|
jpayne@69
|
26
|
jpayne@69
|
27 typedef uint32_t xcb_dbe_back_buffer_t;
|
jpayne@69
|
28
|
jpayne@69
|
29 /**
|
jpayne@69
|
30 * @brief xcb_dbe_back_buffer_iterator_t
|
jpayne@69
|
31 **/
|
jpayne@69
|
32 typedef struct xcb_dbe_back_buffer_iterator_t {
|
jpayne@69
|
33 xcb_dbe_back_buffer_t *data;
|
jpayne@69
|
34 int rem;
|
jpayne@69
|
35 int index;
|
jpayne@69
|
36 } xcb_dbe_back_buffer_iterator_t;
|
jpayne@69
|
37
|
jpayne@69
|
38 typedef enum xcb_dbe_swap_action_t {
|
jpayne@69
|
39 XCB_DBE_SWAP_ACTION_UNDEFINED = 0,
|
jpayne@69
|
40 /**< Discard the buffer. The buffer may be reallocated and end up with random VRAM content. */
|
jpayne@69
|
41
|
jpayne@69
|
42 XCB_DBE_SWAP_ACTION_BACKGROUND = 1,
|
jpayne@69
|
43 /**< Erase with window background. */
|
jpayne@69
|
44
|
jpayne@69
|
45 XCB_DBE_SWAP_ACTION_UNTOUCHED = 2,
|
jpayne@69
|
46 /**< Leave untouched. */
|
jpayne@69
|
47
|
jpayne@69
|
48 XCB_DBE_SWAP_ACTION_COPIED = 3
|
jpayne@69
|
49 /**< Copy the newly displayed front buffer. */
|
jpayne@69
|
50
|
jpayne@69
|
51 } xcb_dbe_swap_action_t;
|
jpayne@69
|
52
|
jpayne@69
|
53 /**
|
jpayne@69
|
54 * @brief xcb_dbe_swap_info_t
|
jpayne@69
|
55 **/
|
jpayne@69
|
56 typedef struct xcb_dbe_swap_info_t {
|
jpayne@69
|
57 xcb_window_t window;
|
jpayne@69
|
58 uint8_t swap_action;
|
jpayne@69
|
59 uint8_t pad0[3];
|
jpayne@69
|
60 } xcb_dbe_swap_info_t;
|
jpayne@69
|
61
|
jpayne@69
|
62 /**
|
jpayne@69
|
63 * @brief xcb_dbe_swap_info_iterator_t
|
jpayne@69
|
64 **/
|
jpayne@69
|
65 typedef struct xcb_dbe_swap_info_iterator_t {
|
jpayne@69
|
66 xcb_dbe_swap_info_t *data;
|
jpayne@69
|
67 int rem;
|
jpayne@69
|
68 int index;
|
jpayne@69
|
69 } xcb_dbe_swap_info_iterator_t;
|
jpayne@69
|
70
|
jpayne@69
|
71 /**
|
jpayne@69
|
72 * @brief xcb_dbe_buffer_attributes_t
|
jpayne@69
|
73 **/
|
jpayne@69
|
74 typedef struct xcb_dbe_buffer_attributes_t {
|
jpayne@69
|
75 xcb_window_t window;
|
jpayne@69
|
76 } xcb_dbe_buffer_attributes_t;
|
jpayne@69
|
77
|
jpayne@69
|
78 /**
|
jpayne@69
|
79 * @brief xcb_dbe_buffer_attributes_iterator_t
|
jpayne@69
|
80 **/
|
jpayne@69
|
81 typedef struct xcb_dbe_buffer_attributes_iterator_t {
|
jpayne@69
|
82 xcb_dbe_buffer_attributes_t *data;
|
jpayne@69
|
83 int rem;
|
jpayne@69
|
84 int index;
|
jpayne@69
|
85 } xcb_dbe_buffer_attributes_iterator_t;
|
jpayne@69
|
86
|
jpayne@69
|
87 /**
|
jpayne@69
|
88 * @brief xcb_dbe_visual_info_t
|
jpayne@69
|
89 **/
|
jpayne@69
|
90 typedef struct xcb_dbe_visual_info_t {
|
jpayne@69
|
91 xcb_visualid_t visual_id;
|
jpayne@69
|
92 uint8_t depth;
|
jpayne@69
|
93 uint8_t perf_level;
|
jpayne@69
|
94 uint8_t pad0[2];
|
jpayne@69
|
95 } xcb_dbe_visual_info_t;
|
jpayne@69
|
96
|
jpayne@69
|
97 /**
|
jpayne@69
|
98 * @brief xcb_dbe_visual_info_iterator_t
|
jpayne@69
|
99 **/
|
jpayne@69
|
100 typedef struct xcb_dbe_visual_info_iterator_t {
|
jpayne@69
|
101 xcb_dbe_visual_info_t *data;
|
jpayne@69
|
102 int rem;
|
jpayne@69
|
103 int index;
|
jpayne@69
|
104 } xcb_dbe_visual_info_iterator_t;
|
jpayne@69
|
105
|
jpayne@69
|
106 /**
|
jpayne@69
|
107 * @brief xcb_dbe_visual_infos_t
|
jpayne@69
|
108 **/
|
jpayne@69
|
109 typedef struct xcb_dbe_visual_infos_t {
|
jpayne@69
|
110 uint32_t n_infos;
|
jpayne@69
|
111 } xcb_dbe_visual_infos_t;
|
jpayne@69
|
112
|
jpayne@69
|
113 /**
|
jpayne@69
|
114 * @brief xcb_dbe_visual_infos_iterator_t
|
jpayne@69
|
115 **/
|
jpayne@69
|
116 typedef struct xcb_dbe_visual_infos_iterator_t {
|
jpayne@69
|
117 xcb_dbe_visual_infos_t *data;
|
jpayne@69
|
118 int rem;
|
jpayne@69
|
119 int index;
|
jpayne@69
|
120 } xcb_dbe_visual_infos_iterator_t;
|
jpayne@69
|
121
|
jpayne@69
|
122 /** Opcode for xcb_dbe_bad_buffer. */
|
jpayne@69
|
123 #define XCB_DBE_BAD_BUFFER 0
|
jpayne@69
|
124
|
jpayne@69
|
125 /**
|
jpayne@69
|
126 * @brief xcb_dbe_bad_buffer_error_t
|
jpayne@69
|
127 **/
|
jpayne@69
|
128 typedef struct xcb_dbe_bad_buffer_error_t {
|
jpayne@69
|
129 uint8_t response_type;
|
jpayne@69
|
130 uint8_t error_code;
|
jpayne@69
|
131 uint16_t sequence;
|
jpayne@69
|
132 xcb_dbe_back_buffer_t bad_buffer;
|
jpayne@69
|
133 uint16_t minor_opcode;
|
jpayne@69
|
134 uint8_t major_opcode;
|
jpayne@69
|
135 } xcb_dbe_bad_buffer_error_t;
|
jpayne@69
|
136
|
jpayne@69
|
137 /**
|
jpayne@69
|
138 * @brief xcb_dbe_query_version_cookie_t
|
jpayne@69
|
139 **/
|
jpayne@69
|
140 typedef struct xcb_dbe_query_version_cookie_t {
|
jpayne@69
|
141 unsigned int sequence;
|
jpayne@69
|
142 } xcb_dbe_query_version_cookie_t;
|
jpayne@69
|
143
|
jpayne@69
|
144 /** Opcode for xcb_dbe_query_version. */
|
jpayne@69
|
145 #define XCB_DBE_QUERY_VERSION 0
|
jpayne@69
|
146
|
jpayne@69
|
147 /**
|
jpayne@69
|
148 * @brief xcb_dbe_query_version_request_t
|
jpayne@69
|
149 **/
|
jpayne@69
|
150 typedef struct xcb_dbe_query_version_request_t {
|
jpayne@69
|
151 uint8_t major_opcode;
|
jpayne@69
|
152 uint8_t minor_opcode;
|
jpayne@69
|
153 uint16_t length;
|
jpayne@69
|
154 uint8_t major_version;
|
jpayne@69
|
155 uint8_t minor_version;
|
jpayne@69
|
156 uint8_t pad0[2];
|
jpayne@69
|
157 } xcb_dbe_query_version_request_t;
|
jpayne@69
|
158
|
jpayne@69
|
159 /**
|
jpayne@69
|
160 * @brief xcb_dbe_query_version_reply_t
|
jpayne@69
|
161 **/
|
jpayne@69
|
162 typedef struct xcb_dbe_query_version_reply_t {
|
jpayne@69
|
163 uint8_t response_type;
|
jpayne@69
|
164 uint8_t pad0;
|
jpayne@69
|
165 uint16_t sequence;
|
jpayne@69
|
166 uint32_t length;
|
jpayne@69
|
167 uint8_t major_version;
|
jpayne@69
|
168 uint8_t minor_version;
|
jpayne@69
|
169 uint8_t pad1[22];
|
jpayne@69
|
170 } xcb_dbe_query_version_reply_t;
|
jpayne@69
|
171
|
jpayne@69
|
172 /** Opcode for xcb_dbe_allocate_back_buffer. */
|
jpayne@69
|
173 #define XCB_DBE_ALLOCATE_BACK_BUFFER 1
|
jpayne@69
|
174
|
jpayne@69
|
175 /**
|
jpayne@69
|
176 * @brief xcb_dbe_allocate_back_buffer_request_t
|
jpayne@69
|
177 **/
|
jpayne@69
|
178 typedef struct xcb_dbe_allocate_back_buffer_request_t {
|
jpayne@69
|
179 uint8_t major_opcode;
|
jpayne@69
|
180 uint8_t minor_opcode;
|
jpayne@69
|
181 uint16_t length;
|
jpayne@69
|
182 xcb_window_t window;
|
jpayne@69
|
183 xcb_dbe_back_buffer_t buffer;
|
jpayne@69
|
184 uint8_t swap_action;
|
jpayne@69
|
185 uint8_t pad0[3];
|
jpayne@69
|
186 } xcb_dbe_allocate_back_buffer_request_t;
|
jpayne@69
|
187
|
jpayne@69
|
188 /** Opcode for xcb_dbe_deallocate_back_buffer. */
|
jpayne@69
|
189 #define XCB_DBE_DEALLOCATE_BACK_BUFFER 2
|
jpayne@69
|
190
|
jpayne@69
|
191 /**
|
jpayne@69
|
192 * @brief xcb_dbe_deallocate_back_buffer_request_t
|
jpayne@69
|
193 **/
|
jpayne@69
|
194 typedef struct xcb_dbe_deallocate_back_buffer_request_t {
|
jpayne@69
|
195 uint8_t major_opcode;
|
jpayne@69
|
196 uint8_t minor_opcode;
|
jpayne@69
|
197 uint16_t length;
|
jpayne@69
|
198 xcb_dbe_back_buffer_t buffer;
|
jpayne@69
|
199 } xcb_dbe_deallocate_back_buffer_request_t;
|
jpayne@69
|
200
|
jpayne@69
|
201 /** Opcode for xcb_dbe_swap_buffers. */
|
jpayne@69
|
202 #define XCB_DBE_SWAP_BUFFERS 3
|
jpayne@69
|
203
|
jpayne@69
|
204 /**
|
jpayne@69
|
205 * @brief xcb_dbe_swap_buffers_request_t
|
jpayne@69
|
206 **/
|
jpayne@69
|
207 typedef struct xcb_dbe_swap_buffers_request_t {
|
jpayne@69
|
208 uint8_t major_opcode;
|
jpayne@69
|
209 uint8_t minor_opcode;
|
jpayne@69
|
210 uint16_t length;
|
jpayne@69
|
211 uint32_t n_actions;
|
jpayne@69
|
212 } xcb_dbe_swap_buffers_request_t;
|
jpayne@69
|
213
|
jpayne@69
|
214 /** Opcode for xcb_dbe_begin_idiom. */
|
jpayne@69
|
215 #define XCB_DBE_BEGIN_IDIOM 4
|
jpayne@69
|
216
|
jpayne@69
|
217 /**
|
jpayne@69
|
218 * @brief xcb_dbe_begin_idiom_request_t
|
jpayne@69
|
219 **/
|
jpayne@69
|
220 typedef struct xcb_dbe_begin_idiom_request_t {
|
jpayne@69
|
221 uint8_t major_opcode;
|
jpayne@69
|
222 uint8_t minor_opcode;
|
jpayne@69
|
223 uint16_t length;
|
jpayne@69
|
224 } xcb_dbe_begin_idiom_request_t;
|
jpayne@69
|
225
|
jpayne@69
|
226 /** Opcode for xcb_dbe_end_idiom. */
|
jpayne@69
|
227 #define XCB_DBE_END_IDIOM 5
|
jpayne@69
|
228
|
jpayne@69
|
229 /**
|
jpayne@69
|
230 * @brief xcb_dbe_end_idiom_request_t
|
jpayne@69
|
231 **/
|
jpayne@69
|
232 typedef struct xcb_dbe_end_idiom_request_t {
|
jpayne@69
|
233 uint8_t major_opcode;
|
jpayne@69
|
234 uint8_t minor_opcode;
|
jpayne@69
|
235 uint16_t length;
|
jpayne@69
|
236 } xcb_dbe_end_idiom_request_t;
|
jpayne@69
|
237
|
jpayne@69
|
238 /**
|
jpayne@69
|
239 * @brief xcb_dbe_get_visual_info_cookie_t
|
jpayne@69
|
240 **/
|
jpayne@69
|
241 typedef struct xcb_dbe_get_visual_info_cookie_t {
|
jpayne@69
|
242 unsigned int sequence;
|
jpayne@69
|
243 } xcb_dbe_get_visual_info_cookie_t;
|
jpayne@69
|
244
|
jpayne@69
|
245 /** Opcode for xcb_dbe_get_visual_info. */
|
jpayne@69
|
246 #define XCB_DBE_GET_VISUAL_INFO 6
|
jpayne@69
|
247
|
jpayne@69
|
248 /**
|
jpayne@69
|
249 * @brief xcb_dbe_get_visual_info_request_t
|
jpayne@69
|
250 **/
|
jpayne@69
|
251 typedef struct xcb_dbe_get_visual_info_request_t {
|
jpayne@69
|
252 uint8_t major_opcode;
|
jpayne@69
|
253 uint8_t minor_opcode;
|
jpayne@69
|
254 uint16_t length;
|
jpayne@69
|
255 uint32_t n_drawables;
|
jpayne@69
|
256 } xcb_dbe_get_visual_info_request_t;
|
jpayne@69
|
257
|
jpayne@69
|
258 /**
|
jpayne@69
|
259 * @brief xcb_dbe_get_visual_info_reply_t
|
jpayne@69
|
260 **/
|
jpayne@69
|
261 typedef struct xcb_dbe_get_visual_info_reply_t {
|
jpayne@69
|
262 uint8_t response_type;
|
jpayne@69
|
263 uint8_t pad0;
|
jpayne@69
|
264 uint16_t sequence;
|
jpayne@69
|
265 uint32_t length;
|
jpayne@69
|
266 uint32_t n_supported_visuals;
|
jpayne@69
|
267 uint8_t pad1[20];
|
jpayne@69
|
268 } xcb_dbe_get_visual_info_reply_t;
|
jpayne@69
|
269
|
jpayne@69
|
270 /**
|
jpayne@69
|
271 * @brief xcb_dbe_get_back_buffer_attributes_cookie_t
|
jpayne@69
|
272 **/
|
jpayne@69
|
273 typedef struct xcb_dbe_get_back_buffer_attributes_cookie_t {
|
jpayne@69
|
274 unsigned int sequence;
|
jpayne@69
|
275 } xcb_dbe_get_back_buffer_attributes_cookie_t;
|
jpayne@69
|
276
|
jpayne@69
|
277 /** Opcode for xcb_dbe_get_back_buffer_attributes. */
|
jpayne@69
|
278 #define XCB_DBE_GET_BACK_BUFFER_ATTRIBUTES 7
|
jpayne@69
|
279
|
jpayne@69
|
280 /**
|
jpayne@69
|
281 * @brief xcb_dbe_get_back_buffer_attributes_request_t
|
jpayne@69
|
282 **/
|
jpayne@69
|
283 typedef struct xcb_dbe_get_back_buffer_attributes_request_t {
|
jpayne@69
|
284 uint8_t major_opcode;
|
jpayne@69
|
285 uint8_t minor_opcode;
|
jpayne@69
|
286 uint16_t length;
|
jpayne@69
|
287 xcb_dbe_back_buffer_t buffer;
|
jpayne@69
|
288 } xcb_dbe_get_back_buffer_attributes_request_t;
|
jpayne@69
|
289
|
jpayne@69
|
290 /**
|
jpayne@69
|
291 * @brief xcb_dbe_get_back_buffer_attributes_reply_t
|
jpayne@69
|
292 **/
|
jpayne@69
|
293 typedef struct xcb_dbe_get_back_buffer_attributes_reply_t {
|
jpayne@69
|
294 uint8_t response_type;
|
jpayne@69
|
295 uint8_t pad0;
|
jpayne@69
|
296 uint16_t sequence;
|
jpayne@69
|
297 uint32_t length;
|
jpayne@69
|
298 xcb_dbe_buffer_attributes_t attributes;
|
jpayne@69
|
299 uint8_t pad1[20];
|
jpayne@69
|
300 } xcb_dbe_get_back_buffer_attributes_reply_t;
|
jpayne@69
|
301
|
jpayne@69
|
302 /**
|
jpayne@69
|
303 * Get the next element of the iterator
|
jpayne@69
|
304 * @param i Pointer to a xcb_dbe_back_buffer_iterator_t
|
jpayne@69
|
305 *
|
jpayne@69
|
306 * Get the next element in the iterator. The member rem is
|
jpayne@69
|
307 * decreased by one. The member data points to the next
|
jpayne@69
|
308 * element. The member index is increased by sizeof(xcb_dbe_back_buffer_t)
|
jpayne@69
|
309 */
|
jpayne@69
|
310 void
|
jpayne@69
|
311 xcb_dbe_back_buffer_next (xcb_dbe_back_buffer_iterator_t *i);
|
jpayne@69
|
312
|
jpayne@69
|
313 /**
|
jpayne@69
|
314 * Return the iterator pointing to the last element
|
jpayne@69
|
315 * @param i An xcb_dbe_back_buffer_iterator_t
|
jpayne@69
|
316 * @return The iterator pointing to the last element
|
jpayne@69
|
317 *
|
jpayne@69
|
318 * Set the current element in the iterator to the last element.
|
jpayne@69
|
319 * The member rem is set to 0. The member data points to the
|
jpayne@69
|
320 * last element.
|
jpayne@69
|
321 */
|
jpayne@69
|
322 xcb_generic_iterator_t
|
jpayne@69
|
323 xcb_dbe_back_buffer_end (xcb_dbe_back_buffer_iterator_t i);
|
jpayne@69
|
324
|
jpayne@69
|
325 /**
|
jpayne@69
|
326 * Get the next element of the iterator
|
jpayne@69
|
327 * @param i Pointer to a xcb_dbe_swap_info_iterator_t
|
jpayne@69
|
328 *
|
jpayne@69
|
329 * Get the next element in the iterator. The member rem is
|
jpayne@69
|
330 * decreased by one. The member data points to the next
|
jpayne@69
|
331 * element. The member index is increased by sizeof(xcb_dbe_swap_info_t)
|
jpayne@69
|
332 */
|
jpayne@69
|
333 void
|
jpayne@69
|
334 xcb_dbe_swap_info_next (xcb_dbe_swap_info_iterator_t *i);
|
jpayne@69
|
335
|
jpayne@69
|
336 /**
|
jpayne@69
|
337 * Return the iterator pointing to the last element
|
jpayne@69
|
338 * @param i An xcb_dbe_swap_info_iterator_t
|
jpayne@69
|
339 * @return The iterator pointing to the last element
|
jpayne@69
|
340 *
|
jpayne@69
|
341 * Set the current element in the iterator to the last element.
|
jpayne@69
|
342 * The member rem is set to 0. The member data points to the
|
jpayne@69
|
343 * last element.
|
jpayne@69
|
344 */
|
jpayne@69
|
345 xcb_generic_iterator_t
|
jpayne@69
|
346 xcb_dbe_swap_info_end (xcb_dbe_swap_info_iterator_t i);
|
jpayne@69
|
347
|
jpayne@69
|
348 /**
|
jpayne@69
|
349 * Get the next element of the iterator
|
jpayne@69
|
350 * @param i Pointer to a xcb_dbe_buffer_attributes_iterator_t
|
jpayne@69
|
351 *
|
jpayne@69
|
352 * Get the next element in the iterator. The member rem is
|
jpayne@69
|
353 * decreased by one. The member data points to the next
|
jpayne@69
|
354 * element. The member index is increased by sizeof(xcb_dbe_buffer_attributes_t)
|
jpayne@69
|
355 */
|
jpayne@69
|
356 void
|
jpayne@69
|
357 xcb_dbe_buffer_attributes_next (xcb_dbe_buffer_attributes_iterator_t *i);
|
jpayne@69
|
358
|
jpayne@69
|
359 /**
|
jpayne@69
|
360 * Return the iterator pointing to the last element
|
jpayne@69
|
361 * @param i An xcb_dbe_buffer_attributes_iterator_t
|
jpayne@69
|
362 * @return The iterator pointing to the last element
|
jpayne@69
|
363 *
|
jpayne@69
|
364 * Set the current element in the iterator to the last element.
|
jpayne@69
|
365 * The member rem is set to 0. The member data points to the
|
jpayne@69
|
366 * last element.
|
jpayne@69
|
367 */
|
jpayne@69
|
368 xcb_generic_iterator_t
|
jpayne@69
|
369 xcb_dbe_buffer_attributes_end (xcb_dbe_buffer_attributes_iterator_t i);
|
jpayne@69
|
370
|
jpayne@69
|
371 /**
|
jpayne@69
|
372 * Get the next element of the iterator
|
jpayne@69
|
373 * @param i Pointer to a xcb_dbe_visual_info_iterator_t
|
jpayne@69
|
374 *
|
jpayne@69
|
375 * Get the next element in the iterator. The member rem is
|
jpayne@69
|
376 * decreased by one. The member data points to the next
|
jpayne@69
|
377 * element. The member index is increased by sizeof(xcb_dbe_visual_info_t)
|
jpayne@69
|
378 */
|
jpayne@69
|
379 void
|
jpayne@69
|
380 xcb_dbe_visual_info_next (xcb_dbe_visual_info_iterator_t *i);
|
jpayne@69
|
381
|
jpayne@69
|
382 /**
|
jpayne@69
|
383 * Return the iterator pointing to the last element
|
jpayne@69
|
384 * @param i An xcb_dbe_visual_info_iterator_t
|
jpayne@69
|
385 * @return The iterator pointing to the last element
|
jpayne@69
|
386 *
|
jpayne@69
|
387 * Set the current element in the iterator to the last element.
|
jpayne@69
|
388 * The member rem is set to 0. The member data points to the
|
jpayne@69
|
389 * last element.
|
jpayne@69
|
390 */
|
jpayne@69
|
391 xcb_generic_iterator_t
|
jpayne@69
|
392 xcb_dbe_visual_info_end (xcb_dbe_visual_info_iterator_t i);
|
jpayne@69
|
393
|
jpayne@69
|
394 int
|
jpayne@69
|
395 xcb_dbe_visual_infos_sizeof (const void *_buffer);
|
jpayne@69
|
396
|
jpayne@69
|
397 xcb_dbe_visual_info_t *
|
jpayne@69
|
398 xcb_dbe_visual_infos_infos (const xcb_dbe_visual_infos_t *R);
|
jpayne@69
|
399
|
jpayne@69
|
400 int
|
jpayne@69
|
401 xcb_dbe_visual_infos_infos_length (const xcb_dbe_visual_infos_t *R);
|
jpayne@69
|
402
|
jpayne@69
|
403 xcb_dbe_visual_info_iterator_t
|
jpayne@69
|
404 xcb_dbe_visual_infos_infos_iterator (const xcb_dbe_visual_infos_t *R);
|
jpayne@69
|
405
|
jpayne@69
|
406 /**
|
jpayne@69
|
407 * Get the next element of the iterator
|
jpayne@69
|
408 * @param i Pointer to a xcb_dbe_visual_infos_iterator_t
|
jpayne@69
|
409 *
|
jpayne@69
|
410 * Get the next element in the iterator. The member rem is
|
jpayne@69
|
411 * decreased by one. The member data points to the next
|
jpayne@69
|
412 * element. The member index is increased by sizeof(xcb_dbe_visual_infos_t)
|
jpayne@69
|
413 */
|
jpayne@69
|
414 void
|
jpayne@69
|
415 xcb_dbe_visual_infos_next (xcb_dbe_visual_infos_iterator_t *i);
|
jpayne@69
|
416
|
jpayne@69
|
417 /**
|
jpayne@69
|
418 * Return the iterator pointing to the last element
|
jpayne@69
|
419 * @param i An xcb_dbe_visual_infos_iterator_t
|
jpayne@69
|
420 * @return The iterator pointing to the last element
|
jpayne@69
|
421 *
|
jpayne@69
|
422 * Set the current element in the iterator to the last element.
|
jpayne@69
|
423 * The member rem is set to 0. The member data points to the
|
jpayne@69
|
424 * last element.
|
jpayne@69
|
425 */
|
jpayne@69
|
426 xcb_generic_iterator_t
|
jpayne@69
|
427 xcb_dbe_visual_infos_end (xcb_dbe_visual_infos_iterator_t i);
|
jpayne@69
|
428
|
jpayne@69
|
429 /**
|
jpayne@69
|
430 * @brief Queries the version of this extension
|
jpayne@69
|
431 *
|
jpayne@69
|
432 * @param c The connection
|
jpayne@69
|
433 * @param major_version The major version of the extension. Check that it is compatible with the XCB_DBE_MAJOR_VERSION that your code is compiled with.
|
jpayne@69
|
434 * @param minor_version The minor version of the extension. Check that it is compatible with the XCB_DBE_MINOR_VERSION that your code is compiled with.
|
jpayne@69
|
435 * @return A cookie
|
jpayne@69
|
436 *
|
jpayne@69
|
437 * Queries the version of this extension. You must do this before using any functionality it provides.
|
jpayne@69
|
438 *
|
jpayne@69
|
439 */
|
jpayne@69
|
440 xcb_dbe_query_version_cookie_t
|
jpayne@69
|
441 xcb_dbe_query_version (xcb_connection_t *c,
|
jpayne@69
|
442 uint8_t major_version,
|
jpayne@69
|
443 uint8_t minor_version);
|
jpayne@69
|
444
|
jpayne@69
|
445 /**
|
jpayne@69
|
446 * @brief Queries the version of this extension
|
jpayne@69
|
447 *
|
jpayne@69
|
448 * @param c The connection
|
jpayne@69
|
449 * @param major_version The major version of the extension. Check that it is compatible with the XCB_DBE_MAJOR_VERSION that your code is compiled with.
|
jpayne@69
|
450 * @param minor_version The minor version of the extension. Check that it is compatible with the XCB_DBE_MINOR_VERSION that your code is compiled with.
|
jpayne@69
|
451 * @return A cookie
|
jpayne@69
|
452 *
|
jpayne@69
|
453 * Queries the version of this extension. You must do this before using any functionality it provides.
|
jpayne@69
|
454 *
|
jpayne@69
|
455 * This form can be used only if the request will cause
|
jpayne@69
|
456 * a reply to be generated. Any returned error will be
|
jpayne@69
|
457 * placed in the event queue.
|
jpayne@69
|
458 */
|
jpayne@69
|
459 xcb_dbe_query_version_cookie_t
|
jpayne@69
|
460 xcb_dbe_query_version_unchecked (xcb_connection_t *c,
|
jpayne@69
|
461 uint8_t major_version,
|
jpayne@69
|
462 uint8_t minor_version);
|
jpayne@69
|
463
|
jpayne@69
|
464 /**
|
jpayne@69
|
465 * Return the reply
|
jpayne@69
|
466 * @param c The connection
|
jpayne@69
|
467 * @param cookie The cookie
|
jpayne@69
|
468 * @param e The xcb_generic_error_t supplied
|
jpayne@69
|
469 *
|
jpayne@69
|
470 * Returns the reply of the request asked by
|
jpayne@69
|
471 *
|
jpayne@69
|
472 * The parameter @p e supplied to this function must be NULL if
|
jpayne@69
|
473 * xcb_dbe_query_version_unchecked(). is used.
|
jpayne@69
|
474 * Otherwise, it stores the error if any.
|
jpayne@69
|
475 *
|
jpayne@69
|
476 * The returned value must be freed by the caller using free().
|
jpayne@69
|
477 */
|
jpayne@69
|
478 xcb_dbe_query_version_reply_t *
|
jpayne@69
|
479 xcb_dbe_query_version_reply (xcb_connection_t *c,
|
jpayne@69
|
480 xcb_dbe_query_version_cookie_t cookie /**< */,
|
jpayne@69
|
481 xcb_generic_error_t **e);
|
jpayne@69
|
482
|
jpayne@69
|
483 /**
|
jpayne@69
|
484 * @brief Allocates a back buffer
|
jpayne@69
|
485 *
|
jpayne@69
|
486 * @param c The connection
|
jpayne@69
|
487 * @param window The window to which to add the back buffer.
|
jpayne@69
|
488 * @param buffer The buffer id to associate with the back buffer.
|
jpayne@69
|
489 * @param swap_action The swap action most likely to be used to present this back buffer. This is only a hint, and does not preclude the use of other swap actions.
|
jpayne@69
|
490 * @return A cookie
|
jpayne@69
|
491 *
|
jpayne@69
|
492 * Associates \a buffer with the back buffer of \a window. Multiple ids may be associated with the back buffer, which is created by the first allocate call and destroyed by the last deallocate.
|
jpayne@69
|
493 *
|
jpayne@69
|
494 * This form can be used only if the request will not cause
|
jpayne@69
|
495 * a reply to be generated. Any returned error will be
|
jpayne@69
|
496 * saved for handling by xcb_request_check().
|
jpayne@69
|
497 */
|
jpayne@69
|
498 xcb_void_cookie_t
|
jpayne@69
|
499 xcb_dbe_allocate_back_buffer_checked (xcb_connection_t *c,
|
jpayne@69
|
500 xcb_window_t window,
|
jpayne@69
|
501 xcb_dbe_back_buffer_t buffer,
|
jpayne@69
|
502 uint8_t swap_action);
|
jpayne@69
|
503
|
jpayne@69
|
504 /**
|
jpayne@69
|
505 * @brief Allocates a back buffer
|
jpayne@69
|
506 *
|
jpayne@69
|
507 * @param c The connection
|
jpayne@69
|
508 * @param window The window to which to add the back buffer.
|
jpayne@69
|
509 * @param buffer The buffer id to associate with the back buffer.
|
jpayne@69
|
510 * @param swap_action The swap action most likely to be used to present this back buffer. This is only a hint, and does not preclude the use of other swap actions.
|
jpayne@69
|
511 * @return A cookie
|
jpayne@69
|
512 *
|
jpayne@69
|
513 * Associates \a buffer with the back buffer of \a window. Multiple ids may be associated with the back buffer, which is created by the first allocate call and destroyed by the last deallocate.
|
jpayne@69
|
514 *
|
jpayne@69
|
515 */
|
jpayne@69
|
516 xcb_void_cookie_t
|
jpayne@69
|
517 xcb_dbe_allocate_back_buffer (xcb_connection_t *c,
|
jpayne@69
|
518 xcb_window_t window,
|
jpayne@69
|
519 xcb_dbe_back_buffer_t buffer,
|
jpayne@69
|
520 uint8_t swap_action);
|
jpayne@69
|
521
|
jpayne@69
|
522 /**
|
jpayne@69
|
523 * @brief Deallocates a back buffer
|
jpayne@69
|
524 *
|
jpayne@69
|
525 * @param c The connection
|
jpayne@69
|
526 * @param buffer The back buffer to deallocate.
|
jpayne@69
|
527 * @return A cookie
|
jpayne@69
|
528 *
|
jpayne@69
|
529 * Deallocates the given \a buffer. If \a buffer is an invalid id, a `BadBuffer` error is returned. Because a window may have allocated multiple back buffer ids, the back buffer itself is not deleted until all these ids are deallocated by this call.
|
jpayne@69
|
530 *
|
jpayne@69
|
531 * This form can be used only if the request will not cause
|
jpayne@69
|
532 * a reply to be generated. Any returned error will be
|
jpayne@69
|
533 * saved for handling by xcb_request_check().
|
jpayne@69
|
534 */
|
jpayne@69
|
535 xcb_void_cookie_t
|
jpayne@69
|
536 xcb_dbe_deallocate_back_buffer_checked (xcb_connection_t *c,
|
jpayne@69
|
537 xcb_dbe_back_buffer_t buffer);
|
jpayne@69
|
538
|
jpayne@69
|
539 /**
|
jpayne@69
|
540 * @brief Deallocates a back buffer
|
jpayne@69
|
541 *
|
jpayne@69
|
542 * @param c The connection
|
jpayne@69
|
543 * @param buffer The back buffer to deallocate.
|
jpayne@69
|
544 * @return A cookie
|
jpayne@69
|
545 *
|
jpayne@69
|
546 * Deallocates the given \a buffer. If \a buffer is an invalid id, a `BadBuffer` error is returned. Because a window may have allocated multiple back buffer ids, the back buffer itself is not deleted until all these ids are deallocated by this call.
|
jpayne@69
|
547 *
|
jpayne@69
|
548 */
|
jpayne@69
|
549 xcb_void_cookie_t
|
jpayne@69
|
550 xcb_dbe_deallocate_back_buffer (xcb_connection_t *c,
|
jpayne@69
|
551 xcb_dbe_back_buffer_t buffer);
|
jpayne@69
|
552
|
jpayne@69
|
553 int
|
jpayne@69
|
554 xcb_dbe_swap_buffers_sizeof (const void *_buffer);
|
jpayne@69
|
555
|
jpayne@69
|
556 /**
|
jpayne@69
|
557 * @brief Swaps front and back buffers
|
jpayne@69
|
558 *
|
jpayne@69
|
559 * @param c The connection
|
jpayne@69
|
560 * @param n_actions Number of swap actions in \a actions.
|
jpayne@69
|
561 * @param actions List of windows on which to swap buffers.
|
jpayne@69
|
562 * @return A cookie
|
jpayne@69
|
563 *
|
jpayne@69
|
564 * Swaps the front and back buffers on the specified windows. The front and back buffers retain their ids, so that the window id continues to refer to the front buffer, while the back buffer id created by this extension continues to refer to the back buffer. Back buffer contents is moved to the front buffer. Back buffer contents after the operation depends on the given swap action. The optimal swap action depends on how each frame is rendered. For example, if the buffer is cleared and fully overwritten on every frame, the "untouched" action, which throws away the buffer contents, would provide the best performance. To eliminate visual artifacts, the swap will occure during the monitor VSync, if the X server supports detecting it.
|
jpayne@69
|
565 *
|
jpayne@69
|
566 * This form can be used only if the request will not cause
|
jpayne@69
|
567 * a reply to be generated. Any returned error will be
|
jpayne@69
|
568 * saved for handling by xcb_request_check().
|
jpayne@69
|
569 */
|
jpayne@69
|
570 xcb_void_cookie_t
|
jpayne@69
|
571 xcb_dbe_swap_buffers_checked (xcb_connection_t *c,
|
jpayne@69
|
572 uint32_t n_actions,
|
jpayne@69
|
573 const xcb_dbe_swap_info_t *actions);
|
jpayne@69
|
574
|
jpayne@69
|
575 /**
|
jpayne@69
|
576 * @brief Swaps front and back buffers
|
jpayne@69
|
577 *
|
jpayne@69
|
578 * @param c The connection
|
jpayne@69
|
579 * @param n_actions Number of swap actions in \a actions.
|
jpayne@69
|
580 * @param actions List of windows on which to swap buffers.
|
jpayne@69
|
581 * @return A cookie
|
jpayne@69
|
582 *
|
jpayne@69
|
583 * Swaps the front and back buffers on the specified windows. The front and back buffers retain their ids, so that the window id continues to refer to the front buffer, while the back buffer id created by this extension continues to refer to the back buffer. Back buffer contents is moved to the front buffer. Back buffer contents after the operation depends on the given swap action. The optimal swap action depends on how each frame is rendered. For example, if the buffer is cleared and fully overwritten on every frame, the "untouched" action, which throws away the buffer contents, would provide the best performance. To eliminate visual artifacts, the swap will occure during the monitor VSync, if the X server supports detecting it.
|
jpayne@69
|
584 *
|
jpayne@69
|
585 */
|
jpayne@69
|
586 xcb_void_cookie_t
|
jpayne@69
|
587 xcb_dbe_swap_buffers (xcb_connection_t *c,
|
jpayne@69
|
588 uint32_t n_actions,
|
jpayne@69
|
589 const xcb_dbe_swap_info_t *actions);
|
jpayne@69
|
590
|
jpayne@69
|
591 xcb_dbe_swap_info_t *
|
jpayne@69
|
592 xcb_dbe_swap_buffers_actions (const xcb_dbe_swap_buffers_request_t *R);
|
jpayne@69
|
593
|
jpayne@69
|
594 int
|
jpayne@69
|
595 xcb_dbe_swap_buffers_actions_length (const xcb_dbe_swap_buffers_request_t *R);
|
jpayne@69
|
596
|
jpayne@69
|
597 xcb_dbe_swap_info_iterator_t
|
jpayne@69
|
598 xcb_dbe_swap_buffers_actions_iterator (const xcb_dbe_swap_buffers_request_t *R);
|
jpayne@69
|
599
|
jpayne@69
|
600 /**
|
jpayne@69
|
601 * @brief Begins a logical swap block
|
jpayne@69
|
602 *
|
jpayne@69
|
603 * @param c The connection
|
jpayne@69
|
604 * @return A cookie
|
jpayne@69
|
605 *
|
jpayne@69
|
606 * Creates a block of operations intended to occur together. This may be needed if window presentation requires changing buffers unknown to this extension, such as depth or stencil buffers.
|
jpayne@69
|
607 *
|
jpayne@69
|
608 * This form can be used only if the request will not cause
|
jpayne@69
|
609 * a reply to be generated. Any returned error will be
|
jpayne@69
|
610 * saved for handling by xcb_request_check().
|
jpayne@69
|
611 */
|
jpayne@69
|
612 xcb_void_cookie_t
|
jpayne@69
|
613 xcb_dbe_begin_idiom_checked (xcb_connection_t *c);
|
jpayne@69
|
614
|
jpayne@69
|
615 /**
|
jpayne@69
|
616 * @brief Begins a logical swap block
|
jpayne@69
|
617 *
|
jpayne@69
|
618 * @param c The connection
|
jpayne@69
|
619 * @return A cookie
|
jpayne@69
|
620 *
|
jpayne@69
|
621 * Creates a block of operations intended to occur together. This may be needed if window presentation requires changing buffers unknown to this extension, such as depth or stencil buffers.
|
jpayne@69
|
622 *
|
jpayne@69
|
623 */
|
jpayne@69
|
624 xcb_void_cookie_t
|
jpayne@69
|
625 xcb_dbe_begin_idiom (xcb_connection_t *c);
|
jpayne@69
|
626
|
jpayne@69
|
627 /**
|
jpayne@69
|
628 * @brief Ends a logical swap block
|
jpayne@69
|
629 *
|
jpayne@69
|
630 * @param c The connection
|
jpayne@69
|
631 * @return A cookie
|
jpayne@69
|
632 *
|
jpayne@69
|
633 * No description yet
|
jpayne@69
|
634 *
|
jpayne@69
|
635 * This form can be used only if the request will not cause
|
jpayne@69
|
636 * a reply to be generated. Any returned error will be
|
jpayne@69
|
637 * saved for handling by xcb_request_check().
|
jpayne@69
|
638 */
|
jpayne@69
|
639 xcb_void_cookie_t
|
jpayne@69
|
640 xcb_dbe_end_idiom_checked (xcb_connection_t *c);
|
jpayne@69
|
641
|
jpayne@69
|
642 /**
|
jpayne@69
|
643 * @brief Ends a logical swap block
|
jpayne@69
|
644 *
|
jpayne@69
|
645 * @param c The connection
|
jpayne@69
|
646 * @return A cookie
|
jpayne@69
|
647 *
|
jpayne@69
|
648 * No description yet
|
jpayne@69
|
649 *
|
jpayne@69
|
650 */
|
jpayne@69
|
651 xcb_void_cookie_t
|
jpayne@69
|
652 xcb_dbe_end_idiom (xcb_connection_t *c);
|
jpayne@69
|
653
|
jpayne@69
|
654 int
|
jpayne@69
|
655 xcb_dbe_get_visual_info_sizeof (const void *_buffer);
|
jpayne@69
|
656
|
jpayne@69
|
657 /**
|
jpayne@69
|
658 * @brief Requests visuals that support double buffering
|
jpayne@69
|
659 *
|
jpayne@69
|
660 * @param c The connection
|
jpayne@69
|
661 * @return A cookie
|
jpayne@69
|
662 *
|
jpayne@69
|
663 * No description yet
|
jpayne@69
|
664 *
|
jpayne@69
|
665 */
|
jpayne@69
|
666 xcb_dbe_get_visual_info_cookie_t
|
jpayne@69
|
667 xcb_dbe_get_visual_info (xcb_connection_t *c,
|
jpayne@69
|
668 uint32_t n_drawables,
|
jpayne@69
|
669 const xcb_drawable_t *drawables);
|
jpayne@69
|
670
|
jpayne@69
|
671 /**
|
jpayne@69
|
672 * @brief Requests visuals that support double buffering
|
jpayne@69
|
673 *
|
jpayne@69
|
674 * @param c The connection
|
jpayne@69
|
675 * @return A cookie
|
jpayne@69
|
676 *
|
jpayne@69
|
677 * No description yet
|
jpayne@69
|
678 *
|
jpayne@69
|
679 * This form can be used only if the request will cause
|
jpayne@69
|
680 * a reply to be generated. Any returned error will be
|
jpayne@69
|
681 * placed in the event queue.
|
jpayne@69
|
682 */
|
jpayne@69
|
683 xcb_dbe_get_visual_info_cookie_t
|
jpayne@69
|
684 xcb_dbe_get_visual_info_unchecked (xcb_connection_t *c,
|
jpayne@69
|
685 uint32_t n_drawables,
|
jpayne@69
|
686 const xcb_drawable_t *drawables);
|
jpayne@69
|
687
|
jpayne@69
|
688 int
|
jpayne@69
|
689 xcb_dbe_get_visual_info_supported_visuals_length (const xcb_dbe_get_visual_info_reply_t *R);
|
jpayne@69
|
690
|
jpayne@69
|
691 xcb_dbe_visual_infos_iterator_t
|
jpayne@69
|
692 xcb_dbe_get_visual_info_supported_visuals_iterator (const xcb_dbe_get_visual_info_reply_t *R);
|
jpayne@69
|
693
|
jpayne@69
|
694 /**
|
jpayne@69
|
695 * Return the reply
|
jpayne@69
|
696 * @param c The connection
|
jpayne@69
|
697 * @param cookie The cookie
|
jpayne@69
|
698 * @param e The xcb_generic_error_t supplied
|
jpayne@69
|
699 *
|
jpayne@69
|
700 * Returns the reply of the request asked by
|
jpayne@69
|
701 *
|
jpayne@69
|
702 * The parameter @p e supplied to this function must be NULL if
|
jpayne@69
|
703 * xcb_dbe_get_visual_info_unchecked(). is used.
|
jpayne@69
|
704 * Otherwise, it stores the error if any.
|
jpayne@69
|
705 *
|
jpayne@69
|
706 * The returned value must be freed by the caller using free().
|
jpayne@69
|
707 */
|
jpayne@69
|
708 xcb_dbe_get_visual_info_reply_t *
|
jpayne@69
|
709 xcb_dbe_get_visual_info_reply (xcb_connection_t *c,
|
jpayne@69
|
710 xcb_dbe_get_visual_info_cookie_t cookie /**< */,
|
jpayne@69
|
711 xcb_generic_error_t **e);
|
jpayne@69
|
712
|
jpayne@69
|
713 /**
|
jpayne@69
|
714 * @brief Gets back buffer attributes
|
jpayne@69
|
715 *
|
jpayne@69
|
716 * @param c The connection
|
jpayne@69
|
717 * @param buffer The back buffer to query.
|
jpayne@69
|
718 * @return A cookie
|
jpayne@69
|
719 *
|
jpayne@69
|
720 * Returns the attributes of the specified \a buffer.
|
jpayne@69
|
721 *
|
jpayne@69
|
722 */
|
jpayne@69
|
723 xcb_dbe_get_back_buffer_attributes_cookie_t
|
jpayne@69
|
724 xcb_dbe_get_back_buffer_attributes (xcb_connection_t *c,
|
jpayne@69
|
725 xcb_dbe_back_buffer_t buffer);
|
jpayne@69
|
726
|
jpayne@69
|
727 /**
|
jpayne@69
|
728 * @brief Gets back buffer attributes
|
jpayne@69
|
729 *
|
jpayne@69
|
730 * @param c The connection
|
jpayne@69
|
731 * @param buffer The back buffer to query.
|
jpayne@69
|
732 * @return A cookie
|
jpayne@69
|
733 *
|
jpayne@69
|
734 * Returns the attributes of the specified \a buffer.
|
jpayne@69
|
735 *
|
jpayne@69
|
736 * This form can be used only if the request will cause
|
jpayne@69
|
737 * a reply to be generated. Any returned error will be
|
jpayne@69
|
738 * placed in the event queue.
|
jpayne@69
|
739 */
|
jpayne@69
|
740 xcb_dbe_get_back_buffer_attributes_cookie_t
|
jpayne@69
|
741 xcb_dbe_get_back_buffer_attributes_unchecked (xcb_connection_t *c,
|
jpayne@69
|
742 xcb_dbe_back_buffer_t buffer);
|
jpayne@69
|
743
|
jpayne@69
|
744 /**
|
jpayne@69
|
745 * Return the reply
|
jpayne@69
|
746 * @param c The connection
|
jpayne@69
|
747 * @param cookie The cookie
|
jpayne@69
|
748 * @param e The xcb_generic_error_t supplied
|
jpayne@69
|
749 *
|
jpayne@69
|
750 * Returns the reply of the request asked by
|
jpayne@69
|
751 *
|
jpayne@69
|
752 * The parameter @p e supplied to this function must be NULL if
|
jpayne@69
|
753 * xcb_dbe_get_back_buffer_attributes_unchecked(). is used.
|
jpayne@69
|
754 * Otherwise, it stores the error if any.
|
jpayne@69
|
755 *
|
jpayne@69
|
756 * The returned value must be freed by the caller using free().
|
jpayne@69
|
757 */
|
jpayne@69
|
758 xcb_dbe_get_back_buffer_attributes_reply_t *
|
jpayne@69
|
759 xcb_dbe_get_back_buffer_attributes_reply (xcb_connection_t *c,
|
jpayne@69
|
760 xcb_dbe_get_back_buffer_attributes_cookie_t cookie /**< */,
|
jpayne@69
|
761 xcb_generic_error_t **e);
|
jpayne@69
|
762
|
jpayne@69
|
763
|
jpayne@69
|
764 #ifdef __cplusplus
|
jpayne@69
|
765 }
|
jpayne@69
|
766 #endif
|
jpayne@69
|
767
|
jpayne@69
|
768 #endif
|
jpayne@69
|
769
|
jpayne@69
|
770 /**
|
jpayne@69
|
771 * @}
|
jpayne@69
|
772 */
|