Mercurial > repos > rliterman > csp2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/xcb/damage.h Tue Mar 18 17:55:14 2025 -0400 @@ -0,0 +1,456 @@ +/* + * This file generated automatically from damage.xml by c_client.py. + * Edit at your peril. + */ + +/** + * @defgroup XCB_Damage_API XCB Damage API + * @brief Damage XCB Protocol Implementation. + * @{ + **/ + +#ifndef __DAMAGE_H +#define __DAMAGE_H + +#include "xcb.h" +#include "xproto.h" +#include "xfixes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define XCB_DAMAGE_MAJOR_VERSION 1 +#define XCB_DAMAGE_MINOR_VERSION 1 + +extern xcb_extension_t xcb_damage_id; + +typedef uint32_t xcb_damage_damage_t; + +/** + * @brief xcb_damage_damage_iterator_t + **/ +typedef struct xcb_damage_damage_iterator_t { + xcb_damage_damage_t *data; + int rem; + int index; +} xcb_damage_damage_iterator_t; + +typedef enum xcb_damage_report_level_t { + XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0, + XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1, + XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2, + XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3 +} xcb_damage_report_level_t; + +/** Opcode for xcb_damage_bad_damage. */ +#define XCB_DAMAGE_BAD_DAMAGE 0 + +/** + * @brief xcb_damage_bad_damage_error_t + **/ +typedef struct xcb_damage_bad_damage_error_t { + uint8_t response_type; + uint8_t error_code; + uint16_t sequence; + uint32_t bad_value; + uint16_t minor_opcode; + uint8_t major_opcode; +} xcb_damage_bad_damage_error_t; + +/** + * @brief xcb_damage_query_version_cookie_t + **/ +typedef struct xcb_damage_query_version_cookie_t { + unsigned int sequence; +} xcb_damage_query_version_cookie_t; + +/** Opcode for xcb_damage_query_version. */ +#define XCB_DAMAGE_QUERY_VERSION 0 + +/** + * @brief xcb_damage_query_version_request_t + **/ +typedef struct xcb_damage_query_version_request_t { + uint8_t major_opcode; + uint8_t minor_opcode; + uint16_t length; + uint32_t client_major_version; + uint32_t client_minor_version; +} xcb_damage_query_version_request_t; + +/** + * @brief xcb_damage_query_version_reply_t + **/ +typedef struct xcb_damage_query_version_reply_t { + uint8_t response_type; + uint8_t pad0; + uint16_t sequence; + uint32_t length; + uint32_t major_version; + uint32_t minor_version; + uint8_t pad1[16]; +} xcb_damage_query_version_reply_t; + +/** Opcode for xcb_damage_create. */ +#define XCB_DAMAGE_CREATE 1 + +/** + * @brief xcb_damage_create_request_t + **/ +typedef struct xcb_damage_create_request_t { + uint8_t major_opcode; + uint8_t minor_opcode; + uint16_t length; + xcb_damage_damage_t damage; + xcb_drawable_t drawable; + uint8_t level; + uint8_t pad0[3]; +} xcb_damage_create_request_t; + +/** Opcode for xcb_damage_destroy. */ +#define XCB_DAMAGE_DESTROY 2 + +/** + * @brief xcb_damage_destroy_request_t + **/ +typedef struct xcb_damage_destroy_request_t { + uint8_t major_opcode; + uint8_t minor_opcode; + uint16_t length; + xcb_damage_damage_t damage; +} xcb_damage_destroy_request_t; + +/** Opcode for xcb_damage_subtract. */ +#define XCB_DAMAGE_SUBTRACT 3 + +/** + * @brief xcb_damage_subtract_request_t + **/ +typedef struct xcb_damage_subtract_request_t { + uint8_t major_opcode; + uint8_t minor_opcode; + uint16_t length; + xcb_damage_damage_t damage; + xcb_xfixes_region_t repair; + xcb_xfixes_region_t parts; +} xcb_damage_subtract_request_t; + +/** Opcode for xcb_damage_add. */ +#define XCB_DAMAGE_ADD 4 + +/** + * @brief xcb_damage_add_request_t + **/ +typedef struct xcb_damage_add_request_t { + uint8_t major_opcode; + uint8_t minor_opcode; + uint16_t length; + xcb_drawable_t drawable; + xcb_xfixes_region_t region; +} xcb_damage_add_request_t; + +/** Opcode for xcb_damage_notify. */ +#define XCB_DAMAGE_NOTIFY 0 + +/** + * @brief xcb_damage_notify_event_t + **/ +typedef struct xcb_damage_notify_event_t { + uint8_t response_type; + uint8_t level; + uint16_t sequence; + xcb_drawable_t drawable; + xcb_damage_damage_t damage; + xcb_timestamp_t timestamp; + xcb_rectangle_t area; + xcb_rectangle_t geometry; +} xcb_damage_notify_event_t; + +/** + * Get the next element of the iterator + * @param i Pointer to a xcb_damage_damage_iterator_t + * + * Get the next element in the iterator. The member rem is + * decreased by one. The member data points to the next + * element. The member index is increased by sizeof(xcb_damage_damage_t) + */ +void +xcb_damage_damage_next (xcb_damage_damage_iterator_t *i); + +/** + * Return the iterator pointing to the last element + * @param i An xcb_damage_damage_iterator_t + * @return The iterator pointing to the last element + * + * Set the current element in the iterator to the last element. + * The member rem is set to 0. The member data points to the + * last element. + */ +xcb_generic_iterator_t +xcb_damage_damage_end (xcb_damage_damage_iterator_t i); + +/** + * @brief Negotiate the version of the DAMAGE extension + * + * @param c The connection + * @param client_major_version The major version supported by the client. + * @param client_minor_version The minor version supported by the client. + * @return A cookie + * + * This negotiates the version of the DAMAGE extension. It must precede any other + * request using the DAMAGE extension. Failure to do so will cause a BadRequest + * error for those requests. + * + */ +xcb_damage_query_version_cookie_t +xcb_damage_query_version (xcb_connection_t *c, + uint32_t client_major_version, + uint32_t client_minor_version); + +/** + * @brief Negotiate the version of the DAMAGE extension + * + * @param c The connection + * @param client_major_version The major version supported by the client. + * @param client_minor_version The minor version supported by the client. + * @return A cookie + * + * This negotiates the version of the DAMAGE extension. It must precede any other + * request using the DAMAGE extension. Failure to do so will cause a BadRequest + * error for those requests. + * + * This form can be used only if the request will cause + * a reply to be generated. Any returned error will be + * placed in the event queue. + */ +xcb_damage_query_version_cookie_t +xcb_damage_query_version_unchecked (xcb_connection_t *c, + uint32_t client_major_version, + uint32_t client_minor_version); + +/** + * Return the reply + * @param c The connection + * @param cookie The cookie + * @param e The xcb_generic_error_t supplied + * + * Returns the reply of the request asked by + * + * The parameter @p e supplied to this function must be NULL if + * xcb_damage_query_version_unchecked(). is used. + * Otherwise, it stores the error if any. + * + * The returned value must be freed by the caller using free(). + */ +xcb_damage_query_version_reply_t * +xcb_damage_query_version_reply (xcb_connection_t *c, + xcb_damage_query_version_cookie_t cookie /**< */, + xcb_generic_error_t **e); + +/** + * @brief Creates a Damage object to monitor changes to a drawable. + * + * @param c The connection + * @param damage The ID with which you will refer to the new Damage object, created by + * `xcb_generate_id`. + * @param drawable The ID of the drawable to be monitored. + * @param level A bitmask of #xcb_damage_report_level_t values. + * @param level The level of detail to be provided in Damage events. + * @return A cookie + * + * This creates a Damage object to monitor changes to a drawable, and specifies + * the level of detail to be reported for changes. + * + * We call changes made to pixel contents of windows and pixmaps 'damage' + * throughout this extension. + * + * Damage accumulates as drawing occurs in the drawable. Each drawing operation + * 'damages' one or more rectangular areas within the drawable. The rectangles + * are guaranteed to include the set of pixels modified by each operation, but + * may include significantly more than just those pixels. The desire is for + * the damage to strike a balance between the number of rectangles reported and + * the extraneous area included. A reasonable goal is for each primitive + * object drawn (line, string, rectangle) to be represented as a single + * rectangle and for the damage area of the operation to be the union of these + * rectangles. + * + * The DAMAGE extension allows applications to either receive the raw + * rectangles as a stream of events, or to have them partially processed within + * the X server to reduce the amount of data transmitted as well as reduce the + * processing latency once the repaint operation has started. + * + * The Damage object holds any accumulated damage region and reflects the + * relationship between the drawable selected for damage notification and the + * drawable for which damage is tracked. + * + * This form can be used only if the request will not cause + * a reply to be generated. Any returned error will be + * saved for handling by xcb_request_check(). + */ +xcb_void_cookie_t +xcb_damage_create_checked (xcb_connection_t *c, + xcb_damage_damage_t damage, + xcb_drawable_t drawable, + uint8_t level); + +/** + * @brief Creates a Damage object to monitor changes to a drawable. + * + * @param c The connection + * @param damage The ID with which you will refer to the new Damage object, created by + * `xcb_generate_id`. + * @param drawable The ID of the drawable to be monitored. + * @param level A bitmask of #xcb_damage_report_level_t values. + * @param level The level of detail to be provided in Damage events. + * @return A cookie + * + * This creates a Damage object to monitor changes to a drawable, and specifies + * the level of detail to be reported for changes. + * + * We call changes made to pixel contents of windows and pixmaps 'damage' + * throughout this extension. + * + * Damage accumulates as drawing occurs in the drawable. Each drawing operation + * 'damages' one or more rectangular areas within the drawable. The rectangles + * are guaranteed to include the set of pixels modified by each operation, but + * may include significantly more than just those pixels. The desire is for + * the damage to strike a balance between the number of rectangles reported and + * the extraneous area included. A reasonable goal is for each primitive + * object drawn (line, string, rectangle) to be represented as a single + * rectangle and for the damage area of the operation to be the union of these + * rectangles. + * + * The DAMAGE extension allows applications to either receive the raw + * rectangles as a stream of events, or to have them partially processed within + * the X server to reduce the amount of data transmitted as well as reduce the + * processing latency once the repaint operation has started. + * + * The Damage object holds any accumulated damage region and reflects the + * relationship between the drawable selected for damage notification and the + * drawable for which damage is tracked. + * + */ +xcb_void_cookie_t +xcb_damage_create (xcb_connection_t *c, + xcb_damage_damage_t damage, + xcb_drawable_t drawable, + uint8_t level); + +/** + * @brief Destroys a previously created Damage object. + * + * @param c The connection + * @param damage The ID you provided to `xcb_create_damage`. + * @return A cookie + * + * This destroys a Damage object and requests the X server stop reporting + * the changes it was tracking. + * + * This form can be used only if the request will not cause + * a reply to be generated. Any returned error will be + * saved for handling by xcb_request_check(). + */ +xcb_void_cookie_t +xcb_damage_destroy_checked (xcb_connection_t *c, + xcb_damage_damage_t damage); + +/** + * @brief Destroys a previously created Damage object. + * + * @param c The connection + * @param damage The ID you provided to `xcb_create_damage`. + * @return A cookie + * + * This destroys a Damage object and requests the X server stop reporting + * the changes it was tracking. + * + */ +xcb_void_cookie_t +xcb_damage_destroy (xcb_connection_t *c, + xcb_damage_damage_t damage); + +/** + * @brief Remove regions from a previously created Damage object. + * + * @param c The connection + * @param damage The ID you provided to `xcb_create_damage`. + * @return A cookie + * + * This updates the regions of damage recorded in a a Damage object. + * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt + * for details. + * + * This form can be used only if the request will not cause + * a reply to be generated. Any returned error will be + * saved for handling by xcb_request_check(). + */ +xcb_void_cookie_t +xcb_damage_subtract_checked (xcb_connection_t *c, + xcb_damage_damage_t damage, + xcb_xfixes_region_t repair, + xcb_xfixes_region_t parts); + +/** + * @brief Remove regions from a previously created Damage object. + * + * @param c The connection + * @param damage The ID you provided to `xcb_create_damage`. + * @return A cookie + * + * This updates the regions of damage recorded in a a Damage object. + * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt + * for details. + * + */ +xcb_void_cookie_t +xcb_damage_subtract (xcb_connection_t *c, + xcb_damage_damage_t damage, + xcb_xfixes_region_t repair, + xcb_xfixes_region_t parts); + +/** + * @brief Add a region to a previously created Damage object. + * + * @param c The connection + * @return A cookie + * + * This updates the regions of damage recorded in a a Damage object. + * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt + * for details. + * + * This form can be used only if the request will not cause + * a reply to be generated. Any returned error will be + * saved for handling by xcb_request_check(). + */ +xcb_void_cookie_t +xcb_damage_add_checked (xcb_connection_t *c, + xcb_drawable_t drawable, + xcb_xfixes_region_t region); + +/** + * @brief Add a region to a previously created Damage object. + * + * @param c The connection + * @return A cookie + * + * This updates the regions of damage recorded in a a Damage object. + * See https://www.x.org/releases/current/doc/damageproto/damageproto.txt + * for details. + * + */ +xcb_void_cookie_t +xcb_damage_add (xcb_connection_t *c, + xcb_drawable_t drawable, + xcb_xfixes_region_t region); + + +#ifdef __cplusplus +} +#endif + +#endif + +/** + * @} + */