comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/xcb/damage.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 69:33d812a61356
1 /*
2 * This file generated automatically from damage.xml by c_client.py.
3 * Edit at your peril.
4 */
5
6 /**
7 * @defgroup XCB_Damage_API XCB Damage API
8 * @brief Damage XCB Protocol Implementation.
9 * @{
10 **/
11
12 #ifndef __DAMAGE_H
13 #define __DAMAGE_H
14
15 #include "xcb.h"
16 #include "xproto.h"
17 #include "xfixes.h"
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 #define XCB_DAMAGE_MAJOR_VERSION 1
24 #define XCB_DAMAGE_MINOR_VERSION 1
25
26 extern xcb_extension_t xcb_damage_id;
27
28 typedef uint32_t xcb_damage_damage_t;
29
30 /**
31 * @brief xcb_damage_damage_iterator_t
32 **/
33 typedef struct xcb_damage_damage_iterator_t {
34 xcb_damage_damage_t *data;
35 int rem;
36 int index;
37 } xcb_damage_damage_iterator_t;
38
39 typedef enum xcb_damage_report_level_t {
40 XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0,
41 XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1,
42 XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2,
43 XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3
44 } xcb_damage_report_level_t;
45
46 /** Opcode for xcb_damage_bad_damage. */
47 #define XCB_DAMAGE_BAD_DAMAGE 0
48
49 /**
50 * @brief xcb_damage_bad_damage_error_t
51 **/
52 typedef struct xcb_damage_bad_damage_error_t {
53 uint8_t response_type;
54 uint8_t error_code;
55 uint16_t sequence;
56 uint32_t bad_value;
57 uint16_t minor_opcode;
58 uint8_t major_opcode;
59 } xcb_damage_bad_damage_error_t;
60
61 /**
62 * @brief xcb_damage_query_version_cookie_t
63 **/
64 typedef struct xcb_damage_query_version_cookie_t {
65 unsigned int sequence;
66 } xcb_damage_query_version_cookie_t;
67
68 /** Opcode for xcb_damage_query_version. */
69 #define XCB_DAMAGE_QUERY_VERSION 0
70
71 /**
72 * @brief xcb_damage_query_version_request_t
73 **/
74 typedef struct xcb_damage_query_version_request_t {
75 uint8_t major_opcode;
76 uint8_t minor_opcode;
77 uint16_t length;
78 uint32_t client_major_version;
79 uint32_t client_minor_version;
80 } xcb_damage_query_version_request_t;
81
82 /**
83 * @brief xcb_damage_query_version_reply_t
84 **/
85 typedef struct xcb_damage_query_version_reply_t {
86 uint8_t response_type;
87 uint8_t pad0;
88 uint16_t sequence;
89 uint32_t length;
90 uint32_t major_version;
91 uint32_t minor_version;
92 uint8_t pad1[16];
93 } xcb_damage_query_version_reply_t;
94
95 /** Opcode for xcb_damage_create. */
96 #define XCB_DAMAGE_CREATE 1
97
98 /**
99 * @brief xcb_damage_create_request_t
100 **/
101 typedef struct xcb_damage_create_request_t {
102 uint8_t major_opcode;
103 uint8_t minor_opcode;
104 uint16_t length;
105 xcb_damage_damage_t damage;
106 xcb_drawable_t drawable;
107 uint8_t level;
108 uint8_t pad0[3];
109 } xcb_damage_create_request_t;
110
111 /** Opcode for xcb_damage_destroy. */
112 #define XCB_DAMAGE_DESTROY 2
113
114 /**
115 * @brief xcb_damage_destroy_request_t
116 **/
117 typedef struct xcb_damage_destroy_request_t {
118 uint8_t major_opcode;
119 uint8_t minor_opcode;
120 uint16_t length;
121 xcb_damage_damage_t damage;
122 } xcb_damage_destroy_request_t;
123
124 /** Opcode for xcb_damage_subtract. */
125 #define XCB_DAMAGE_SUBTRACT 3
126
127 /**
128 * @brief xcb_damage_subtract_request_t
129 **/
130 typedef struct xcb_damage_subtract_request_t {
131 uint8_t major_opcode;
132 uint8_t minor_opcode;
133 uint16_t length;
134 xcb_damage_damage_t damage;
135 xcb_xfixes_region_t repair;
136 xcb_xfixes_region_t parts;
137 } xcb_damage_subtract_request_t;
138
139 /** Opcode for xcb_damage_add. */
140 #define XCB_DAMAGE_ADD 4
141
142 /**
143 * @brief xcb_damage_add_request_t
144 **/
145 typedef struct xcb_damage_add_request_t {
146 uint8_t major_opcode;
147 uint8_t minor_opcode;
148 uint16_t length;
149 xcb_drawable_t drawable;
150 xcb_xfixes_region_t region;
151 } xcb_damage_add_request_t;
152
153 /** Opcode for xcb_damage_notify. */
154 #define XCB_DAMAGE_NOTIFY 0
155
156 /**
157 * @brief xcb_damage_notify_event_t
158 **/
159 typedef struct xcb_damage_notify_event_t {
160 uint8_t response_type;
161 uint8_t level;
162 uint16_t sequence;
163 xcb_drawable_t drawable;
164 xcb_damage_damage_t damage;
165 xcb_timestamp_t timestamp;
166 xcb_rectangle_t area;
167 xcb_rectangle_t geometry;
168 } xcb_damage_notify_event_t;
169
170 /**
171 * Get the next element of the iterator
172 * @param i Pointer to a xcb_damage_damage_iterator_t
173 *
174 * Get the next element in the iterator. The member rem is
175 * decreased by one. The member data points to the next
176 * element. The member index is increased by sizeof(xcb_damage_damage_t)
177 */
178 void
179 xcb_damage_damage_next (xcb_damage_damage_iterator_t *i);
180
181 /**
182 * Return the iterator pointing to the last element
183 * @param i An xcb_damage_damage_iterator_t
184 * @return The iterator pointing to the last element
185 *
186 * Set the current element in the iterator to the last element.
187 * The member rem is set to 0. The member data points to the
188 * last element.
189 */
190 xcb_generic_iterator_t
191 xcb_damage_damage_end (xcb_damage_damage_iterator_t i);
192
193 /**
194 * @brief Negotiate the version of the DAMAGE extension
195 *
196 * @param c The connection
197 * @param client_major_version The major version supported by the client.
198 * @param client_minor_version The minor version supported by the client.
199 * @return A cookie
200 *
201 * This negotiates the version of the DAMAGE extension. It must precede any other
202 * request using the DAMAGE extension. Failure to do so will cause a BadRequest
203 * error for those requests.
204 *
205 */
206 xcb_damage_query_version_cookie_t
207 xcb_damage_query_version (xcb_connection_t *c,
208 uint32_t client_major_version,
209 uint32_t client_minor_version);
210
211 /**
212 * @brief Negotiate the version of the DAMAGE extension
213 *
214 * @param c The connection
215 * @param client_major_version The major version supported by the client.
216 * @param client_minor_version The minor version supported by the client.
217 * @return A cookie
218 *
219 * This negotiates the version of the DAMAGE extension. It must precede any other
220 * request using the DAMAGE extension. Failure to do so will cause a BadRequest
221 * error for those requests.
222 *
223 * This form can be used only if the request will cause
224 * a reply to be generated. Any returned error will be
225 * placed in the event queue.
226 */
227 xcb_damage_query_version_cookie_t
228 xcb_damage_query_version_unchecked (xcb_connection_t *c,
229 uint32_t client_major_version,
230 uint32_t client_minor_version);
231
232 /**
233 * Return the reply
234 * @param c The connection
235 * @param cookie The cookie
236 * @param e The xcb_generic_error_t supplied
237 *
238 * Returns the reply of the request asked by
239 *
240 * The parameter @p e supplied to this function must be NULL if
241 * xcb_damage_query_version_unchecked(). is used.
242 * Otherwise, it stores the error if any.
243 *
244 * The returned value must be freed by the caller using free().
245 */
246 xcb_damage_query_version_reply_t *
247 xcb_damage_query_version_reply (xcb_connection_t *c,
248 xcb_damage_query_version_cookie_t cookie /**< */,
249 xcb_generic_error_t **e);
250
251 /**
252 * @brief Creates a Damage object to monitor changes to a drawable.
253 *
254 * @param c The connection
255 * @param damage The ID with which you will refer to the new Damage object, created by
256 * `xcb_generate_id`.
257 * @param drawable The ID of the drawable to be monitored.
258 * @param level A bitmask of #xcb_damage_report_level_t values.
259 * @param level The level of detail to be provided in Damage events.
260 * @return A cookie
261 *
262 * This creates a Damage object to monitor changes to a drawable, and specifies
263 * the level of detail to be reported for changes.
264 *
265 * We call changes made to pixel contents of windows and pixmaps 'damage'
266 * throughout this extension.
267 *
268 * Damage accumulates as drawing occurs in the drawable. Each drawing operation
269 * 'damages' one or more rectangular areas within the drawable. The rectangles
270 * are guaranteed to include the set of pixels modified by each operation, but
271 * may include significantly more than just those pixels. The desire is for
272 * the damage to strike a balance between the number of rectangles reported and
273 * the extraneous area included. A reasonable goal is for each primitive
274 * object drawn (line, string, rectangle) to be represented as a single
275 * rectangle and for the damage area of the operation to be the union of these
276 * rectangles.
277 *
278 * The DAMAGE extension allows applications to either receive the raw
279 * rectangles as a stream of events, or to have them partially processed within
280 * the X server to reduce the amount of data transmitted as well as reduce the
281 * processing latency once the repaint operation has started.
282 *
283 * The Damage object holds any accumulated damage region and reflects the
284 * relationship between the drawable selected for damage notification and the
285 * drawable for which damage is tracked.
286 *
287 * This form can be used only if the request will not cause
288 * a reply to be generated. Any returned error will be
289 * saved for handling by xcb_request_check().
290 */
291 xcb_void_cookie_t
292 xcb_damage_create_checked (xcb_connection_t *c,
293 xcb_damage_damage_t damage,
294 xcb_drawable_t drawable,
295 uint8_t level);
296
297 /**
298 * @brief Creates a Damage object to monitor changes to a drawable.
299 *
300 * @param c The connection
301 * @param damage The ID with which you will refer to the new Damage object, created by
302 * `xcb_generate_id`.
303 * @param drawable The ID of the drawable to be monitored.
304 * @param level A bitmask of #xcb_damage_report_level_t values.
305 * @param level The level of detail to be provided in Damage events.
306 * @return A cookie
307 *
308 * This creates a Damage object to monitor changes to a drawable, and specifies
309 * the level of detail to be reported for changes.
310 *
311 * We call changes made to pixel contents of windows and pixmaps 'damage'
312 * throughout this extension.
313 *
314 * Damage accumulates as drawing occurs in the drawable. Each drawing operation
315 * 'damages' one or more rectangular areas within the drawable. The rectangles
316 * are guaranteed to include the set of pixels modified by each operation, but
317 * may include significantly more than just those pixels. The desire is for
318 * the damage to strike a balance between the number of rectangles reported and
319 * the extraneous area included. A reasonable goal is for each primitive
320 * object drawn (line, string, rectangle) to be represented as a single
321 * rectangle and for the damage area of the operation to be the union of these
322 * rectangles.
323 *
324 * The DAMAGE extension allows applications to either receive the raw
325 * rectangles as a stream of events, or to have them partially processed within
326 * the X server to reduce the amount of data transmitted as well as reduce the
327 * processing latency once the repaint operation has started.
328 *
329 * The Damage object holds any accumulated damage region and reflects the
330 * relationship between the drawable selected for damage notification and the
331 * drawable for which damage is tracked.
332 *
333 */
334 xcb_void_cookie_t
335 xcb_damage_create (xcb_connection_t *c,
336 xcb_damage_damage_t damage,
337 xcb_drawable_t drawable,
338 uint8_t level);
339
340 /**
341 * @brief Destroys a previously created Damage object.
342 *
343 * @param c The connection
344 * @param damage The ID you provided to `xcb_create_damage`.
345 * @return A cookie
346 *
347 * This destroys a Damage object and requests the X server stop reporting
348 * the changes it was tracking.
349 *
350 * This form can be used only if the request will not cause
351 * a reply to be generated. Any returned error will be
352 * saved for handling by xcb_request_check().
353 */
354 xcb_void_cookie_t
355 xcb_damage_destroy_checked (xcb_connection_t *c,
356 xcb_damage_damage_t damage);
357
358 /**
359 * @brief Destroys a previously created Damage object.
360 *
361 * @param c The connection
362 * @param damage The ID you provided to `xcb_create_damage`.
363 * @return A cookie
364 *
365 * This destroys a Damage object and requests the X server stop reporting
366 * the changes it was tracking.
367 *
368 */
369 xcb_void_cookie_t
370 xcb_damage_destroy (xcb_connection_t *c,
371 xcb_damage_damage_t damage);
372
373 /**
374 * @brief Remove regions from a previously created Damage object.
375 *
376 * @param c The connection
377 * @param damage The ID you provided to `xcb_create_damage`.
378 * @return A cookie
379 *
380 * This updates the regions of damage recorded in a a Damage object.
381 * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt
382 * for details.
383 *
384 * This form can be used only if the request will not cause
385 * a reply to be generated. Any returned error will be
386 * saved for handling by xcb_request_check().
387 */
388 xcb_void_cookie_t
389 xcb_damage_subtract_checked (xcb_connection_t *c,
390 xcb_damage_damage_t damage,
391 xcb_xfixes_region_t repair,
392 xcb_xfixes_region_t parts);
393
394 /**
395 * @brief Remove regions from a previously created Damage object.
396 *
397 * @param c The connection
398 * @param damage The ID you provided to `xcb_create_damage`.
399 * @return A cookie
400 *
401 * This updates the regions of damage recorded in a a Damage object.
402 * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt
403 * for details.
404 *
405 */
406 xcb_void_cookie_t
407 xcb_damage_subtract (xcb_connection_t *c,
408 xcb_damage_damage_t damage,
409 xcb_xfixes_region_t repair,
410 xcb_xfixes_region_t parts);
411
412 /**
413 * @brief Add a region to a previously created Damage object.
414 *
415 * @param c The connection
416 * @return A cookie
417 *
418 * This updates the regions of damage recorded in a a Damage object.
419 * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt
420 * for details.
421 *
422 * This form can be used only if the request will not cause
423 * a reply to be generated. Any returned error will be
424 * saved for handling by xcb_request_check().
425 */
426 xcb_void_cookie_t
427 xcb_damage_add_checked (xcb_connection_t *c,
428 xcb_drawable_t drawable,
429 xcb_xfixes_region_t region);
430
431 /**
432 * @brief Add a region to a previously created Damage object.
433 *
434 * @param c The connection
435 * @return A cookie
436 *
437 * This updates the regions of damage recorded in a a Damage object.
438 * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt
439 * for details.
440 *
441 */
442 xcb_void_cookie_t
443 xcb_damage_add (xcb_connection_t *c,
444 xcb_drawable_t drawable,
445 xcb_xfixes_region_t region);
446
447
448 #ifdef __cplusplus
449 }
450 #endif
451
452 #endif
453
454 /**
455 * @}
456 */