/* * This file generated automatically from present.xml by c_client.py. * Edit at your peril. */ /** * @defgroup XCB_Present_API XCB Present API * @brief Present XCB Protocol Implementation. * @{ **/ #ifndef __PRESENT_H #define __PRESENT_H #include "xcb.h" #include "xproto.h" #include "randr.h" #include "xfixes.h" #include "sync.h" #ifdef __cplusplus extern "C" { #endif #define XCB_PRESENT_MAJOR_VERSION 1 #define XCB_PRESENT_MINOR_VERSION 0 extern xcb_extension_t xcb_present_id; typedef enum xcb_present_event_enum_t { XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0, XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1, XCB_PRESENT_EVENT_IDLE_NOTIFY = 2, XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3 } xcb_present_event_enum_t; typedef enum xcb_present_event_mask_t { XCB_PRESENT_EVENT_MASK_NO_EVENT = 0, XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1, XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2, XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4, XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8 } xcb_present_event_mask_t; typedef enum xcb_present_option_t { XCB_PRESENT_OPTION_NONE = 0, XCB_PRESENT_OPTION_ASYNC = 1, XCB_PRESENT_OPTION_COPY = 2, XCB_PRESENT_OPTION_UST = 4 } xcb_present_option_t; typedef enum xcb_present_capability_t { XCB_PRESENT_CAPABILITY_NONE = 0, XCB_PRESENT_CAPABILITY_ASYNC = 1, XCB_PRESENT_CAPABILITY_FENCE = 2, XCB_PRESENT_CAPABILITY_UST = 4 } xcb_present_capability_t; typedef enum xcb_present_complete_kind_t { XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0, XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1 } xcb_present_complete_kind_t; typedef enum xcb_present_complete_mode_t { XCB_PRESENT_COMPLETE_MODE_COPY = 0, XCB_PRESENT_COMPLETE_MODE_FLIP = 1, XCB_PRESENT_COMPLETE_MODE_SKIP = 2 } xcb_present_complete_mode_t; /** * @brief xcb_present_notify_t **/ typedef struct xcb_present_notify_t { xcb_window_t window; /**< */ uint32_t serial; /**< */ } xcb_present_notify_t; /** * @brief xcb_present_notify_iterator_t **/ typedef struct xcb_present_notify_iterator_t { xcb_present_notify_t *data; /**< */ int rem; /**< */ int index; /**< */ } xcb_present_notify_iterator_t; /** * @brief xcb_present_query_version_cookie_t **/ typedef struct xcb_present_query_version_cookie_t { unsigned int sequence; /**< */ } xcb_present_query_version_cookie_t; /** Opcode for xcb_present_query_version. */ #define XCB_PRESENT_QUERY_VERSION 0 /** * @brief xcb_present_query_version_request_t **/ typedef struct xcb_present_query_version_request_t { uint8_t major_opcode; /**< */ uint8_t minor_opcode; /**< */ uint16_t length; /**< */ uint32_t major_version; /**< */ uint32_t minor_version; /**< */ } xcb_present_query_version_request_t; /** * @brief xcb_present_query_version_reply_t **/ typedef struct xcb_present_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; /**< */ } xcb_present_query_version_reply_t; /** Opcode for xcb_present_pixmap. */ #define XCB_PRESENT_PIXMAP 1 /** * @brief xcb_present_pixmap_request_t **/ typedef struct xcb_present_pixmap_request_t { uint8_t major_opcode; /**< */ uint8_t minor_opcode; /**< */ uint16_t length; /**< */ xcb_window_t window; /**< */ xcb_pixmap_t pixmap; /**< */ uint32_t serial; /**< */ xcb_xfixes_region_t valid; /**< */ xcb_xfixes_region_t update; /**< */ int16_t x_off; /**< */ int16_t y_off; /**< */ xcb_randr_crtc_t target_crtc; /**< */ xcb_sync_fence_t wait_fence; /**< */ xcb_sync_fence_t idle_fence; /**< */ uint32_t options; /**< */ uint8_t pad0[4]; /**< */ uint64_t target_msc; /**< */ uint64_t divisor; /**< */ uint64_t remainder; /**< */ } xcb_present_pixmap_request_t; /** Opcode for xcb_present_notify_msc. */ #define XCB_PRESENT_NOTIFY_MSC 2 /** * @brief xcb_present_notify_msc_request_t **/ typedef struct xcb_present_notify_msc_request_t { uint8_t major_opcode; /**< */ uint8_t minor_opcode; /**< */ uint16_t length; /**< */ xcb_window_t window; /**< */ uint32_t serial; /**< */ uint8_t pad0[4]; /**< */ uint64_t target_msc; /**< */ uint64_t divisor; /**< */ uint64_t remainder; /**< */ } xcb_present_notify_msc_request_t; typedef uint32_t xcb_present_event_t; /** * @brief xcb_present_event_iterator_t **/ typedef struct xcb_present_event_iterator_t { xcb_present_event_t *data; /**< */ int rem; /**< */ int index; /**< */ } xcb_present_event_iterator_t; /** Opcode for xcb_present_select_input. */ #define XCB_PRESENT_SELECT_INPUT 3 /** * @brief xcb_present_select_input_request_t **/ typedef struct xcb_present_select_input_request_t { uint8_t major_opcode; /**< */ uint8_t minor_opcode; /**< */ uint16_t length; /**< */ xcb_present_event_t eid; /**< */ xcb_window_t window; /**< */ uint32_t event_mask; /**< */ } xcb_present_select_input_request_t; /** * @brief xcb_present_query_capabilities_cookie_t **/ typedef struct xcb_present_query_capabilities_cookie_t { unsigned int sequence; /**< */ } xcb_present_query_capabilities_cookie_t; /** Opcode for xcb_present_query_capabilities. */ #define XCB_PRESENT_QUERY_CAPABILITIES 4 /** * @brief xcb_present_query_capabilities_request_t **/ typedef struct xcb_present_query_capabilities_request_t { uint8_t major_opcode; /**< */ uint8_t minor_opcode; /**< */ uint16_t length; /**< */ uint32_t target; /**< */ } xcb_present_query_capabilities_request_t; /** * @brief xcb_present_query_capabilities_reply_t **/ typedef struct xcb_present_query_capabilities_reply_t { uint8_t response_type; /**< */ uint8_t pad0; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint32_t capabilities; /**< */ } xcb_present_query_capabilities_reply_t; /** Opcode for xcb_present_generic. */ #define XCB_PRESENT_GENERIC 0 /** * @brief xcb_present_generic_event_t **/ typedef struct xcb_present_generic_event_t { uint8_t response_type; /**< */ uint8_t extension; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint16_t evtype; /**< */ uint8_t pad0[2]; /**< */ xcb_present_event_t event; /**< */ } xcb_present_generic_event_t; /** Opcode for xcb_present_configure_notify. */ #define XCB_PRESENT_CONFIGURE_NOTIFY 0 /** * @brief xcb_present_configure_notify_event_t **/ typedef struct xcb_present_configure_notify_event_t { uint8_t response_type; /**< */ uint8_t extension; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint16_t event_type; /**< */ uint8_t pad0[2]; /**< */ xcb_present_event_t event; /**< */ xcb_window_t window; /**< */ int16_t x; /**< */ int16_t y; /**< */ uint16_t width; /**< */ uint16_t height; /**< */ int16_t off_x; /**< */ int16_t off_y; /**< */ uint32_t full_sequence; /**< */ uint16_t pixmap_width; /**< */ uint16_t pixmap_height; /**< */ uint32_t pixmap_flags; /**< */ } xcb_present_configure_notify_event_t; /** Opcode for xcb_present_complete_notify. */ #define XCB_PRESENT_COMPLETE_NOTIFY 1 /** * @brief xcb_present_complete_notify_event_t **/ typedef struct xcb_present_complete_notify_event_t { uint8_t response_type; /**< */ uint8_t extension; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint16_t event_type; /**< */ uint8_t kind; /**< */ uint8_t mode; /**< */ xcb_present_event_t event; /**< */ xcb_window_t window; /**< */ uint32_t serial; /**< */ uint64_t ust; /**< */ uint32_t full_sequence; /**< */ uint64_t msc; /**< */ } XCB_PACKED xcb_present_complete_notify_event_t; /** Opcode for xcb_present_idle_notify. */ #define XCB_PRESENT_IDLE_NOTIFY 2 /** * @brief xcb_present_idle_notify_event_t **/ typedef struct xcb_present_idle_notify_event_t { uint8_t response_type; /**< */ uint8_t extension; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint16_t event_type; /**< */ uint8_t pad0[2]; /**< */ xcb_present_event_t event; /**< */ xcb_window_t window; /**< */ uint32_t serial; /**< */ xcb_pixmap_t pixmap; /**< */ xcb_sync_fence_t idle_fence; /**< */ uint32_t full_sequence; /**< */ } xcb_present_idle_notify_event_t; /** Opcode for xcb_present_redirect_notify. */ #define XCB_PRESENT_REDIRECT_NOTIFY 3 /** * @brief xcb_present_redirect_notify_event_t **/ typedef struct xcb_present_redirect_notify_event_t { uint8_t response_type; /**< */ uint8_t extension; /**< */ uint16_t sequence; /**< */ uint32_t length; /**< */ uint16_t event_type; /**< */ uint8_t update_window; /**< */ uint8_t pad0; /**< */ xcb_present_event_t event; /**< */ xcb_window_t event_window; /**< */ xcb_window_t window; /**< */ xcb_pixmap_t pixmap; /**< */ uint32_t serial; /**< */ uint32_t full_sequence; /**< */ xcb_xfixes_region_t valid_region; /**< */ xcb_xfixes_region_t update_region; /**< */ xcb_rectangle_t valid_rect; /**< */ xcb_rectangle_t update_rect; /**< */ int16_t x_off; /**< */ int16_t y_off; /**< */ xcb_randr_crtc_t target_crtc; /**< */ xcb_sync_fence_t wait_fence; /**< */ xcb_sync_fence_t idle_fence; /**< */ uint32_t options; /**< */ uint8_t pad1[4]; /**< */ uint64_t target_msc; /**< */ uint64_t divisor; /**< */ uint64_t remainder; /**< */ } XCB_PACKED xcb_present_redirect_notify_event_t; /** * Get the next element of the iterator * @param i Pointer to a xcb_present_notify_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_present_notify_t) */ void xcb_present_notify_next (xcb_present_notify_iterator_t *i /**< */); /** * Return the iterator pointing to the last element * @param i An xcb_present_notify_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_present_notify_end (xcb_present_notify_iterator_t i /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * */ xcb_present_query_version_cookie_t xcb_present_query_version (xcb_connection_t *c /**< */, uint32_t major_version /**< */, uint32_t minor_version /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * * 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_present_query_version_cookie_t xcb_present_query_version_unchecked (xcb_connection_t *c /**< */, uint32_t major_version /**< */, uint32_t 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_present_query_version_unchecked(). is used. * Otherwise, it stores the error if any. * * The returned value must be freed by the caller using free(). */ xcb_present_query_version_reply_t * xcb_present_query_version_reply (xcb_connection_t *c /**< */, xcb_present_query_version_cookie_t cookie /**< */, xcb_generic_error_t **e /**< */); int xcb_present_pixmap_sizeof (const void *_buffer /**< */, uint32_t notifies_len /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * * 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_present_pixmap_checked (xcb_connection_t *c /**< */, xcb_window_t window /**< */, xcb_pixmap_t pixmap /**< */, uint32_t serial /**< */, xcb_xfixes_region_t valid /**< */, xcb_xfixes_region_t update /**< */, int16_t x_off /**< */, int16_t y_off /**< */, xcb_randr_crtc_t target_crtc /**< */, xcb_sync_fence_t wait_fence /**< */, xcb_sync_fence_t idle_fence /**< */, uint32_t options /**< */, uint64_t target_msc /**< */, uint64_t divisor /**< */, uint64_t remainder /**< */, uint32_t notifies_len /**< */, const xcb_present_notify_t *notifies /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * */ xcb_void_cookie_t xcb_present_pixmap (xcb_connection_t *c /**< */, xcb_window_t window /**< */, xcb_pixmap_t pixmap /**< */, uint32_t serial /**< */, xcb_xfixes_region_t valid /**< */, xcb_xfixes_region_t update /**< */, int16_t x_off /**< */, int16_t y_off /**< */, xcb_randr_crtc_t target_crtc /**< */, xcb_sync_fence_t wait_fence /**< */, xcb_sync_fence_t idle_fence /**< */, uint32_t options /**< */, uint64_t target_msc /**< */, uint64_t divisor /**< */, uint64_t remainder /**< */, uint32_t notifies_len /**< */, const xcb_present_notify_t *notifies /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * * 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_present_notify_msc_checked (xcb_connection_t *c /**< */, xcb_window_t window /**< */, uint32_t serial /**< */, uint64_t target_msc /**< */, uint64_t divisor /**< */, uint64_t remainder /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * */ xcb_void_cookie_t xcb_present_notify_msc (xcb_connection_t *c /**< */, xcb_window_t window /**< */, uint32_t serial /**< */, uint64_t target_msc /**< */, uint64_t divisor /**< */, uint64_t remainder /**< */); /** * Get the next element of the iterator * @param i Pointer to a xcb_present_event_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_present_event_t) */ void xcb_present_event_next (xcb_present_event_iterator_t *i /**< */); /** * Return the iterator pointing to the last element * @param i An xcb_present_event_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_present_event_end (xcb_present_event_iterator_t i /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * * 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_present_select_input_checked (xcb_connection_t *c /**< */, xcb_present_event_t eid /**< */, xcb_window_t window /**< */, uint32_t event_mask /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * */ xcb_void_cookie_t xcb_present_select_input (xcb_connection_t *c /**< */, xcb_present_event_t eid /**< */, xcb_window_t window /**< */, uint32_t event_mask /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * */ xcb_present_query_capabilities_cookie_t xcb_present_query_capabilities (xcb_connection_t *c /**< */, uint32_t target /**< */); /** * * @param c The connection * @return A cookie * * Delivers a request to the X server. * * 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_present_query_capabilities_cookie_t xcb_present_query_capabilities_unchecked (xcb_connection_t *c /**< */, uint32_t target /**< */); /** * 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_present_query_capabilities_unchecked(). is used. * Otherwise, it stores the error if any. * * The returned value must be freed by the caller using free(). */ xcb_present_query_capabilities_reply_t * xcb_present_query_capabilities_reply (xcb_connection_t *c /**< */, xcb_present_query_capabilities_cookie_t cookie /**< */, xcb_generic_error_t **e /**< */); int xcb_present_redirect_notify_sizeof (const void *_buffer /**< */, uint32_t notifies_len /**< */); #ifdef __cplusplus } #endif #endif /** * @} */