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 "render.h"
18#include "shape.h"
19#include "xfixes.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#define XCB_DAMAGE_MAJOR_VERSION 1
26#define XCB_DAMAGE_MINOR_VERSION 1
27
28extern xcb_extension_t xcb_damage_id;
29
30typedef uint32_t xcb_damage_damage_t;
31
32/**
33 * @brief xcb_damage_damage_iterator_t
34 **/
35typedef struct xcb_damage_damage_iterator_t {
36    xcb_damage_damage_t *data; /**<  */
37    int                  rem; /**<  */
38    int                  index; /**<  */
39} xcb_damage_damage_iterator_t;
40
41typedef enum xcb_damage_report_level_t {
42    XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES,
43    XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES,
44    XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX,
45    XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY
46} xcb_damage_report_level_t;
47
48/** Opcode for xcb_damage_bad_damage. */
49#define XCB_DAMAGE_BAD_DAMAGE 0
50
51/**
52 * @brief xcb_damage_bad_damage_error_t
53 **/
54typedef struct xcb_damage_bad_damage_error_t {
55    uint8_t  response_type; /**<  */
56    uint8_t  error_code; /**<  */
57    uint16_t sequence; /**<  */
58} xcb_damage_bad_damage_error_t;
59
60/**
61 * @brief xcb_damage_query_version_cookie_t
62 **/
63typedef struct xcb_damage_query_version_cookie_t {
64    unsigned int sequence; /**<  */
65} xcb_damage_query_version_cookie_t;
66
67/** Opcode for xcb_damage_query_version. */
68#define XCB_DAMAGE_QUERY_VERSION 0
69
70/**
71 * @brief xcb_damage_query_version_request_t
72 **/
73typedef struct xcb_damage_query_version_request_t {
74    uint8_t  major_opcode; /**<  */
75    uint8_t  minor_opcode; /**<  */
76    uint16_t length; /**<  */
77    uint32_t client_major_version; /**<  */
78    uint32_t client_minor_version; /**<  */
79} xcb_damage_query_version_request_t;
80
81/**
82 * @brief xcb_damage_query_version_reply_t
83 **/
84typedef struct xcb_damage_query_version_reply_t {
85    uint8_t  response_type; /**<  */
86    uint8_t  pad0; /**<  */
87    uint16_t sequence; /**<  */
88    uint32_t length; /**<  */
89    uint32_t major_version; /**<  */
90    uint32_t minor_version; /**<  */
91    uint8_t  pad1[16]; /**<  */
92} xcb_damage_query_version_reply_t;
93
94/** Opcode for xcb_damage_create. */
95#define XCB_DAMAGE_CREATE 1
96
97/**
98 * @brief xcb_damage_create_request_t
99 **/
100typedef struct xcb_damage_create_request_t {
101    uint8_t             major_opcode; /**<  */
102    uint8_t             minor_opcode; /**<  */
103    uint16_t            length; /**<  */
104    xcb_damage_damage_t damage; /**<  */
105    xcb_drawable_t      drawable; /**<  */
106    uint8_t             level; /**<  */
107    uint8_t             pad0[3]; /**<  */
108} xcb_damage_create_request_t;
109
110/** Opcode for xcb_damage_destroy. */
111#define XCB_DAMAGE_DESTROY 2
112
113/**
114 * @brief xcb_damage_destroy_request_t
115 **/
116typedef struct xcb_damage_destroy_request_t {
117    uint8_t             major_opcode; /**<  */
118    uint8_t             minor_opcode; /**<  */
119    uint16_t            length; /**<  */
120    xcb_damage_damage_t damage; /**<  */
121} xcb_damage_destroy_request_t;
122
123/** Opcode for xcb_damage_subtract. */
124#define XCB_DAMAGE_SUBTRACT 3
125
126/**
127 * @brief xcb_damage_subtract_request_t
128 **/
129typedef struct xcb_damage_subtract_request_t {
130    uint8_t             major_opcode; /**<  */
131    uint8_t             minor_opcode; /**<  */
132    uint16_t            length; /**<  */
133    xcb_damage_damage_t damage; /**<  */
134    xcb_xfixes_region_t repair; /**<  */
135    xcb_xfixes_region_t parts; /**<  */
136} xcb_damage_subtract_request_t;
137
138/** Opcode for xcb_damage_add. */
139#define XCB_DAMAGE_ADD 4
140
141/**
142 * @brief xcb_damage_add_request_t
143 **/
144typedef struct xcb_damage_add_request_t {
145    uint8_t             major_opcode; /**<  */
146    uint8_t             minor_opcode; /**<  */
147    uint16_t            length; /**<  */
148    xcb_drawable_t      drawable; /**<  */
149    xcb_xfixes_region_t region; /**<  */
150} xcb_damage_add_request_t;
151
152/** Opcode for xcb_damage_notify. */
153#define XCB_DAMAGE_NOTIFY 0
154
155/**
156 * @brief xcb_damage_notify_event_t
157 **/
158typedef struct xcb_damage_notify_event_t {
159    uint8_t             response_type; /**<  */
160    uint8_t             level; /**<  */
161    uint16_t            sequence; /**<  */
162    xcb_drawable_t      drawable; /**<  */
163    xcb_damage_damage_t damage; /**<  */
164    xcb_timestamp_t     timestamp; /**<  */
165    xcb_rectangle_t     area; /**<  */
166    xcb_rectangle_t     geometry; /**<  */
167} xcb_damage_notify_event_t;
168
169/**
170 * Get the next element of the iterator
171 * @param i Pointer to a xcb_damage_damage_iterator_t
172 *
173 * Get the next element in the iterator. The member rem is
174 * decreased by one. The member data points to the next
175 * element. The member index is increased by sizeof(xcb_damage_damage_t)
176 */
177
178/*****************************************************************************
179 **
180 ** void xcb_damage_damage_next
181 **
182 ** @param xcb_damage_damage_iterator_t *i
183 ** @returns void
184 **
185 *****************************************************************************/
186
187void
188xcb_damage_damage_next (xcb_damage_damage_iterator_t *i  /**< */);
189
190/**
191 * Return the iterator pointing to the last element
192 * @param i An xcb_damage_damage_iterator_t
193 * @return  The iterator pointing to the last element
194 *
195 * Set the current element in the iterator to the last element.
196 * The member rem is set to 0. The member data points to the
197 * last element.
198 */
199
200/*****************************************************************************
201 **
202 ** xcb_generic_iterator_t xcb_damage_damage_end
203 **
204 ** @param xcb_damage_damage_iterator_t i
205 ** @returns xcb_generic_iterator_t
206 **
207 *****************************************************************************/
208
209xcb_generic_iterator_t
210xcb_damage_damage_end (xcb_damage_damage_iterator_t i  /**< */);
211
212/**
213 * Delivers a request to the X server
214 * @param c The connection
215 * @return A cookie
216 *
217 * Delivers a request to the X server.
218 *
219 */
220
221/*****************************************************************************
222 **
223 ** xcb_damage_query_version_cookie_t xcb_damage_query_version
224 **
225 ** @param xcb_connection_t *c
226 ** @param uint32_t          client_major_version
227 ** @param uint32_t          client_minor_version
228 ** @returns xcb_damage_query_version_cookie_t
229 **
230 *****************************************************************************/
231
232xcb_damage_query_version_cookie_t
233xcb_damage_query_version (xcb_connection_t *c  /**< */,
234                          uint32_t          client_major_version  /**< */,
235                          uint32_t          client_minor_version  /**< */);
236
237/**
238 * Delivers a request to the X server
239 * @param c The connection
240 * @return A cookie
241 *
242 * Delivers a request to the X server.
243 *
244 * This form can be used only if the request will cause
245 * a reply to be generated. Any returned error will be
246 * placed in the event queue.
247 */
248
249/*****************************************************************************
250 **
251 ** xcb_damage_query_version_cookie_t xcb_damage_query_version_unchecked
252 **
253 ** @param xcb_connection_t *c
254 ** @param uint32_t          client_major_version
255 ** @param uint32_t          client_minor_version
256 ** @returns xcb_damage_query_version_cookie_t
257 **
258 *****************************************************************************/
259
260xcb_damage_query_version_cookie_t
261xcb_damage_query_version_unchecked (xcb_connection_t *c  /**< */,
262                                    uint32_t          client_major_version  /**< */,
263                                    uint32_t          client_minor_version  /**< */);
264
265/**
266 * Return the reply
267 * @param c      The connection
268 * @param cookie The cookie
269 * @param e      The xcb_generic_error_t supplied
270 *
271 * Returns the reply of the request asked by
272 *
273 * The parameter @p e supplied to this function must be NULL if
274 * xcb_damage_query_version_unchecked(). is used.
275 * Otherwise, it stores the error if any.
276 *
277 * The returned value must be freed by the caller using free().
278 */
279
280/*****************************************************************************
281 **
282 ** xcb_damage_query_version_reply_t * xcb_damage_query_version_reply
283 **
284 ** @param xcb_connection_t                   *c
285 ** @param xcb_damage_query_version_cookie_t   cookie
286 ** @param xcb_generic_error_t               **e
287 ** @returns xcb_damage_query_version_reply_t *
288 **
289 *****************************************************************************/
290
291xcb_damage_query_version_reply_t *
292xcb_damage_query_version_reply (xcb_connection_t                   *c  /**< */,
293                                xcb_damage_query_version_cookie_t   cookie  /**< */,
294                                xcb_generic_error_t               **e  /**< */);
295
296/**
297 * Delivers a request to the X server
298 * @param c The connection
299 * @return A cookie
300 *
301 * Delivers a request to the X server.
302 *
303 * This form can be used only if the request will not cause
304 * a reply to be generated. Any returned error will be
305 * saved for handling by xcb_request_check().
306 */
307
308/*****************************************************************************
309 **
310 ** xcb_void_cookie_t xcb_damage_create_checked
311 **
312 ** @param xcb_connection_t    *c
313 ** @param xcb_damage_damage_t  damage
314 ** @param xcb_drawable_t       drawable
315 ** @param uint8_t              level
316 ** @returns xcb_void_cookie_t
317 **
318 *****************************************************************************/
319
320xcb_void_cookie_t
321xcb_damage_create_checked (xcb_connection_t    *c  /**< */,
322                           xcb_damage_damage_t  damage  /**< */,
323                           xcb_drawable_t       drawable  /**< */,
324                           uint8_t              level  /**< */);
325
326/**
327 * Delivers a request to the X server
328 * @param c The connection
329 * @return A cookie
330 *
331 * Delivers a request to the X server.
332 *
333 */
334
335/*****************************************************************************
336 **
337 ** xcb_void_cookie_t xcb_damage_create
338 **
339 ** @param xcb_connection_t    *c
340 ** @param xcb_damage_damage_t  damage
341 ** @param xcb_drawable_t       drawable
342 ** @param uint8_t              level
343 ** @returns xcb_void_cookie_t
344 **
345 *****************************************************************************/
346
347xcb_void_cookie_t
348xcb_damage_create (xcb_connection_t    *c  /**< */,
349                   xcb_damage_damage_t  damage  /**< */,
350                   xcb_drawable_t       drawable  /**< */,
351                   uint8_t              level  /**< */);
352
353/**
354 * Delivers a request to the X server
355 * @param c The connection
356 * @return A cookie
357 *
358 * Delivers a request to the X server.
359 *
360 * This form can be used only if the request will not cause
361 * a reply to be generated. Any returned error will be
362 * saved for handling by xcb_request_check().
363 */
364
365/*****************************************************************************
366 **
367 ** xcb_void_cookie_t xcb_damage_destroy_checked
368 **
369 ** @param xcb_connection_t    *c
370 ** @param xcb_damage_damage_t  damage
371 ** @returns xcb_void_cookie_t
372 **
373 *****************************************************************************/
374
375xcb_void_cookie_t
376xcb_damage_destroy_checked (xcb_connection_t    *c  /**< */,
377                            xcb_damage_damage_t  damage  /**< */);
378
379/**
380 * Delivers a request to the X server
381 * @param c The connection
382 * @return A cookie
383 *
384 * Delivers a request to the X server.
385 *
386 */
387
388/*****************************************************************************
389 **
390 ** xcb_void_cookie_t xcb_damage_destroy
391 **
392 ** @param xcb_connection_t    *c
393 ** @param xcb_damage_damage_t  damage
394 ** @returns xcb_void_cookie_t
395 **
396 *****************************************************************************/
397
398xcb_void_cookie_t
399xcb_damage_destroy (xcb_connection_t    *c  /**< */,
400                    xcb_damage_damage_t  damage  /**< */);
401
402/**
403 * Delivers a request to the X server
404 * @param c The connection
405 * @return A cookie
406 *
407 * Delivers a request to the X server.
408 *
409 * This form can be used only if the request will not cause
410 * a reply to be generated. Any returned error will be
411 * saved for handling by xcb_request_check().
412 */
413
414/*****************************************************************************
415 **
416 ** xcb_void_cookie_t xcb_damage_subtract_checked
417 **
418 ** @param xcb_connection_t    *c
419 ** @param xcb_damage_damage_t  damage
420 ** @param xcb_xfixes_region_t  repair
421 ** @param xcb_xfixes_region_t  parts
422 ** @returns xcb_void_cookie_t
423 **
424 *****************************************************************************/
425
426xcb_void_cookie_t
427xcb_damage_subtract_checked (xcb_connection_t    *c  /**< */,
428                             xcb_damage_damage_t  damage  /**< */,
429                             xcb_xfixes_region_t  repair  /**< */,
430                             xcb_xfixes_region_t  parts  /**< */);
431
432/**
433 * Delivers a request to the X server
434 * @param c The connection
435 * @return A cookie
436 *
437 * Delivers a request to the X server.
438 *
439 */
440
441/*****************************************************************************
442 **
443 ** xcb_void_cookie_t xcb_damage_subtract
444 **
445 ** @param xcb_connection_t    *c
446 ** @param xcb_damage_damage_t  damage
447 ** @param xcb_xfixes_region_t  repair
448 ** @param xcb_xfixes_region_t  parts
449 ** @returns xcb_void_cookie_t
450 **
451 *****************************************************************************/
452
453xcb_void_cookie_t
454xcb_damage_subtract (xcb_connection_t    *c  /**< */,
455                     xcb_damage_damage_t  damage  /**< */,
456                     xcb_xfixes_region_t  repair  /**< */,
457                     xcb_xfixes_region_t  parts  /**< */);
458
459/**
460 * Delivers a request to the X server
461 * @param c The connection
462 * @return A cookie
463 *
464 * Delivers a request to the X server.
465 *
466 * This form can be used only if the request will not cause
467 * a reply to be generated. Any returned error will be
468 * saved for handling by xcb_request_check().
469 */
470
471/*****************************************************************************
472 **
473 ** xcb_void_cookie_t xcb_damage_add_checked
474 **
475 ** @param xcb_connection_t    *c
476 ** @param xcb_drawable_t       drawable
477 ** @param xcb_xfixes_region_t  region
478 ** @returns xcb_void_cookie_t
479 **
480 *****************************************************************************/
481
482xcb_void_cookie_t
483xcb_damage_add_checked (xcb_connection_t    *c  /**< */,
484                        xcb_drawable_t       drawable  /**< */,
485                        xcb_xfixes_region_t  region  /**< */);
486
487/**
488 * Delivers a request to the X server
489 * @param c The connection
490 * @return A cookie
491 *
492 * Delivers a request to the X server.
493 *
494 */
495
496/*****************************************************************************
497 **
498 ** xcb_void_cookie_t xcb_damage_add
499 **
500 ** @param xcb_connection_t    *c
501 ** @param xcb_drawable_t       drawable
502 ** @param xcb_xfixes_region_t  region
503 ** @returns xcb_void_cookie_t
504 **
505 *****************************************************************************/
506
507xcb_void_cookie_t
508xcb_damage_add (xcb_connection_t    *c  /**< */,
509                xcb_drawable_t       drawable  /**< */,
510                xcb_xfixes_region_t  region  /**< */);
511
512
513#ifdef __cplusplus
514}
515#endif
516
517#endif
518
519/**
520 * @}
521 */
522