00001
00002
00003
00004
00005
00012 #ifndef __DAMAGE_H
00013 #define __DAMAGE_H
00014
00015 #include "xcb.h"
00016 #include "xproto.h"
00017 #include "render.h"
00018 #include "shape.h"
00019 #include "xfixes.h"
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025 #define XCB_DAMAGE_MAJOR_VERSION 1
00026 #define XCB_DAMAGE_MINOR_VERSION 1
00027
00028 extern xcb_extension_t xcb_damage_id;
00029
00030 typedef uint32_t xcb_damage_damage_t;
00031
00035 typedef struct xcb_damage_damage_iterator_t {
00036 xcb_damage_damage_t *data;
00037 int rem;
00038 int index;
00039 } xcb_damage_damage_iterator_t;
00040
00041 typedef enum xcb_damage_report_level_t {
00042 XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES,
00043 XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES,
00044 XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX,
00045 XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY
00046 } xcb_damage_report_level_t;
00047
00049 #define XCB_DAMAGE_BAD_DAMAGE 0
00050
00054 typedef struct xcb_damage_bad_damage_error_t {
00055 uint8_t response_type;
00056 uint8_t error_code;
00057 uint16_t sequence;
00058 } xcb_damage_bad_damage_error_t;
00059
00063 typedef struct xcb_damage_query_version_cookie_t {
00064 unsigned int sequence;
00065 } xcb_damage_query_version_cookie_t;
00066
00068 #define XCB_DAMAGE_QUERY_VERSION 0
00069
00073 typedef struct xcb_damage_query_version_request_t {
00074 uint8_t major_opcode;
00075 uint8_t minor_opcode;
00076 uint16_t length;
00077 uint32_t client_major_version;
00078 uint32_t client_minor_version;
00079 } xcb_damage_query_version_request_t;
00080
00084 typedef struct xcb_damage_query_version_reply_t {
00085 uint8_t response_type;
00086 uint8_t pad0;
00087 uint16_t sequence;
00088 uint32_t length;
00089 uint32_t major_version;
00090 uint32_t minor_version;
00091 uint8_t pad1[16];
00092 } xcb_damage_query_version_reply_t;
00093
00095 #define XCB_DAMAGE_CREATE 1
00096
00100 typedef struct xcb_damage_create_request_t {
00101 uint8_t major_opcode;
00102 uint8_t minor_opcode;
00103 uint16_t length;
00104 xcb_damage_damage_t damage;
00105 xcb_drawable_t drawable;
00106 uint8_t level;
00107 uint8_t pad0[3];
00108 } xcb_damage_create_request_t;
00109
00111 #define XCB_DAMAGE_DESTROY 2
00112
00116 typedef struct xcb_damage_destroy_request_t {
00117 uint8_t major_opcode;
00118 uint8_t minor_opcode;
00119 uint16_t length;
00120 xcb_damage_damage_t damage;
00121 } xcb_damage_destroy_request_t;
00122
00124 #define XCB_DAMAGE_SUBTRACT 3
00125
00129 typedef struct xcb_damage_subtract_request_t {
00130 uint8_t major_opcode;
00131 uint8_t minor_opcode;
00132 uint16_t length;
00133 xcb_damage_damage_t damage;
00134 xcb_xfixes_region_t repair;
00135 xcb_xfixes_region_t parts;
00136 } xcb_damage_subtract_request_t;
00137
00139 #define XCB_DAMAGE_ADD 4
00140
00144 typedef struct xcb_damage_add_request_t {
00145 uint8_t major_opcode;
00146 uint8_t minor_opcode;
00147 uint16_t length;
00148 xcb_drawable_t drawable;
00149 xcb_xfixes_region_t region;
00150 } xcb_damage_add_request_t;
00151
00153 #define XCB_DAMAGE_NOTIFY 0
00154
00158 typedef struct xcb_damage_notify_event_t {
00159 uint8_t response_type;
00160 uint8_t level;
00161 uint16_t sequence;
00162 xcb_drawable_t drawable;
00163 xcb_damage_damage_t damage;
00164 xcb_timestamp_t timestamp;
00165 xcb_rectangle_t area;
00166 xcb_rectangle_t geometry;
00167 } xcb_damage_notify_event_t;
00168
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187 void
00188 xcb_damage_damage_next (xcb_damage_damage_iterator_t *i );
00189
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209 xcb_generic_iterator_t
00210 xcb_damage_damage_end (xcb_damage_damage_iterator_t i );
00211
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232 xcb_damage_query_version_cookie_t
00233 xcb_damage_query_version (xcb_connection_t *c ,
00234 uint32_t client_major_version ,
00235 uint32_t client_minor_version );
00236
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260 xcb_damage_query_version_cookie_t
00261 xcb_damage_query_version_unchecked (xcb_connection_t *c ,
00262 uint32_t client_major_version ,
00263 uint32_t client_minor_version );
00264
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291 xcb_damage_query_version_reply_t *
00292 xcb_damage_query_version_reply (xcb_connection_t *c ,
00293 xcb_damage_query_version_cookie_t cookie ,
00294 xcb_generic_error_t **e );
00295
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320 xcb_void_cookie_t
00321 xcb_damage_create_checked (xcb_connection_t *c ,
00322 xcb_damage_damage_t damage ,
00323 xcb_drawable_t drawable ,
00324 uint8_t level );
00325
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347 xcb_void_cookie_t
00348 xcb_damage_create (xcb_connection_t *c ,
00349 xcb_damage_damage_t damage ,
00350 xcb_drawable_t drawable ,
00351 uint8_t level );
00352
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375 xcb_void_cookie_t
00376 xcb_damage_destroy_checked (xcb_connection_t *c ,
00377 xcb_damage_damage_t damage );
00378
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398 xcb_void_cookie_t
00399 xcb_damage_destroy (xcb_connection_t *c ,
00400 xcb_damage_damage_t damage );
00401
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426 xcb_void_cookie_t
00427 xcb_damage_subtract_checked (xcb_connection_t *c ,
00428 xcb_damage_damage_t damage ,
00429 xcb_xfixes_region_t repair ,
00430 xcb_xfixes_region_t parts );
00431
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453 xcb_void_cookie_t
00454 xcb_damage_subtract (xcb_connection_t *c ,
00455 xcb_damage_damage_t damage ,
00456 xcb_xfixes_region_t repair ,
00457 xcb_xfixes_region_t parts );
00458
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482 xcb_void_cookie_t
00483 xcb_damage_add_checked (xcb_connection_t *c ,
00484 xcb_drawable_t drawable ,
00485 xcb_xfixes_region_t region );
00486
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507 xcb_void_cookie_t
00508 xcb_damage_add (xcb_connection_t *c ,
00509 xcb_drawable_t drawable ,
00510 xcb_xfixes_region_t region );
00511
00512
00513 #ifdef __cplusplus
00514 }
00515 #endif
00516
00517 #endif
00518