00001
00002
00003
00004
00005
00012 #ifndef __DAMAGE_H
00013 #define __DAMAGE_H
00014
00015 #include "xcb.h"
00016 #include "xproto.h"
00017 #include "xfixes.h"
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00023 #define XCB_DAMAGE_MAJOR_VERSION 1
00024 #define XCB_DAMAGE_MINOR_VERSION 1
00025
00026 extern xcb_extension_t xcb_damage_id;
00027
00028 typedef uint32_t xcb_damage_damage_t;
00029
00033 typedef struct xcb_damage_damage_iterator_t {
00034 xcb_damage_damage_t *data;
00035 int rem;
00036 int index;
00037 } xcb_damage_damage_iterator_t;
00038
00039 typedef enum xcb_damage_report_level_t {
00040 XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0,
00041 XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1,
00042 XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2,
00043 XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3
00044 } xcb_damage_report_level_t;
00045
00047 #define XCB_DAMAGE_BAD_DAMAGE 0
00048
00052 typedef struct xcb_damage_bad_damage_error_t {
00053 uint8_t response_type;
00054 uint8_t error_code;
00055 uint16_t sequence;
00056 } xcb_damage_bad_damage_error_t;
00057
00061 typedef struct xcb_damage_query_version_cookie_t {
00062 unsigned int sequence;
00063 } xcb_damage_query_version_cookie_t;
00064
00066 #define XCB_DAMAGE_QUERY_VERSION 0
00067
00071 typedef struct xcb_damage_query_version_request_t {
00072 uint8_t major_opcode;
00073 uint8_t minor_opcode;
00074 uint16_t length;
00075 uint32_t client_major_version;
00076 uint32_t client_minor_version;
00077 } xcb_damage_query_version_request_t;
00078
00082 typedef struct xcb_damage_query_version_reply_t {
00083 uint8_t response_type;
00084 uint8_t pad0;
00085 uint16_t sequence;
00086 uint32_t length;
00087 uint32_t major_version;
00088 uint32_t minor_version;
00089 uint8_t pad1[16];
00090 } xcb_damage_query_version_reply_t;
00091
00093 #define XCB_DAMAGE_CREATE 1
00094
00098 typedef struct xcb_damage_create_request_t {
00099 uint8_t major_opcode;
00100 uint8_t minor_opcode;
00101 uint16_t length;
00102 xcb_damage_damage_t damage;
00103 xcb_drawable_t drawable;
00104 uint8_t level;
00105 uint8_t pad0[3];
00106 } xcb_damage_create_request_t;
00107
00109 #define XCB_DAMAGE_DESTROY 2
00110
00114 typedef struct xcb_damage_destroy_request_t {
00115 uint8_t major_opcode;
00116 uint8_t minor_opcode;
00117 uint16_t length;
00118 xcb_damage_damage_t damage;
00119 } xcb_damage_destroy_request_t;
00120
00122 #define XCB_DAMAGE_SUBTRACT 3
00123
00127 typedef struct xcb_damage_subtract_request_t {
00128 uint8_t major_opcode;
00129 uint8_t minor_opcode;
00130 uint16_t length;
00131 xcb_damage_damage_t damage;
00132 xcb_xfixes_region_t repair;
00133 xcb_xfixes_region_t parts;
00134 } xcb_damage_subtract_request_t;
00135
00137 #define XCB_DAMAGE_ADD 4
00138
00142 typedef struct xcb_damage_add_request_t {
00143 uint8_t major_opcode;
00144 uint8_t minor_opcode;
00145 uint16_t length;
00146 xcb_drawable_t drawable;
00147 xcb_xfixes_region_t region;
00148 } xcb_damage_add_request_t;
00149
00151 #define XCB_DAMAGE_NOTIFY 0
00152
00156 typedef struct xcb_damage_notify_event_t {
00157 uint8_t response_type;
00158 uint8_t level;
00159 uint16_t sequence;
00160 xcb_drawable_t drawable;
00161 xcb_damage_damage_t damage;
00162 xcb_timestamp_t timestamp;
00163 xcb_rectangle_t area;
00164 xcb_rectangle_t geometry;
00165 } xcb_damage_notify_event_t;
00166
00175 void
00176 xcb_damage_damage_next (xcb_damage_damage_iterator_t *i );
00177
00187 xcb_generic_iterator_t
00188 xcb_damage_damage_end (xcb_damage_damage_iterator_t i );
00189
00198 xcb_damage_query_version_cookie_t
00199 xcb_damage_query_version (xcb_connection_t *c ,
00200 uint32_t client_major_version ,
00201 uint32_t client_minor_version );
00202
00214 xcb_damage_query_version_cookie_t
00215 xcb_damage_query_version_unchecked (xcb_connection_t *c ,
00216 uint32_t client_major_version ,
00217 uint32_t client_minor_version );
00218
00233 xcb_damage_query_version_reply_t *
00234 xcb_damage_query_version_reply (xcb_connection_t *c ,
00235 xcb_damage_query_version_cookie_t cookie ,
00236 xcb_generic_error_t **e );
00237
00249 xcb_void_cookie_t
00250 xcb_damage_create_checked (xcb_connection_t *c ,
00251 xcb_damage_damage_t damage ,
00252 xcb_drawable_t drawable ,
00253 uint8_t level );
00254
00263 xcb_void_cookie_t
00264 xcb_damage_create (xcb_connection_t *c ,
00265 xcb_damage_damage_t damage ,
00266 xcb_drawable_t drawable ,
00267 uint8_t level );
00268
00280 xcb_void_cookie_t
00281 xcb_damage_destroy_checked (xcb_connection_t *c ,
00282 xcb_damage_damage_t damage );
00283
00292 xcb_void_cookie_t
00293 xcb_damage_destroy (xcb_connection_t *c ,
00294 xcb_damage_damage_t damage );
00295
00307 xcb_void_cookie_t
00308 xcb_damage_subtract_checked (xcb_connection_t *c ,
00309 xcb_damage_damage_t damage ,
00310 xcb_xfixes_region_t repair ,
00311 xcb_xfixes_region_t parts );
00312
00321 xcb_void_cookie_t
00322 xcb_damage_subtract (xcb_connection_t *c ,
00323 xcb_damage_damage_t damage ,
00324 xcb_xfixes_region_t repair ,
00325 xcb_xfixes_region_t parts );
00326
00338 xcb_void_cookie_t
00339 xcb_damage_add_checked (xcb_connection_t *c ,
00340 xcb_drawable_t drawable ,
00341 xcb_xfixes_region_t region );
00342
00351 xcb_void_cookie_t
00352 xcb_damage_add (xcb_connection_t *c ,
00353 xcb_drawable_t drawable ,
00354 xcb_xfixes_region_t region );
00355
00356
00357 #ifdef __cplusplus
00358 }
00359 #endif
00360
00361 #endif
00362