* This file generated automatically from present.xml by c_client.py.
* @defgroup XCB_Present_API XCB Present API
* @brief Present XCB Protocol Implementation.
#define XCB_PRESENT_MAJOR_VERSION 1
#define XCB_PRESENT_MINOR_VERSION 2
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_SUBOPTIMAL = 8
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_SUBOPTIMAL_COPY = 3
} xcb_present_complete_mode_t;
* @brief xcb_present_notify_t
typedef struct xcb_present_notify_t {
* @brief xcb_present_notify_iterator_t
typedef struct xcb_present_notify_iterator_t {
xcb_present_notify_t *data;
} xcb_present_notify_iterator_t;
* @brief xcb_present_query_version_cookie_t
typedef struct xcb_present_query_version_cookie_t {
} 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 {
} xcb_present_query_version_request_t;
* @brief xcb_present_query_version_reply_t
typedef struct xcb_present_query_version_reply_t {
} 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 {
xcb_xfixes_region_t valid;
xcb_xfixes_region_t update;
xcb_randr_crtc_t target_crtc;
xcb_sync_fence_t wait_fence;
xcb_sync_fence_t idle_fence;
} 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 {
} 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;
} 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 {
} xcb_present_select_input_request_t;
* @brief xcb_present_query_capabilities_cookie_t
typedef struct xcb_present_query_capabilities_cookie_t {
} 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 {
} xcb_present_query_capabilities_request_t;
* @brief xcb_present_query_capabilities_reply_t
typedef struct xcb_present_query_capabilities_reply_t {
} 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 {
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 {
xcb_present_event_t event;
} 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 {
xcb_present_event_t event;
} 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 {
xcb_present_event_t event;
xcb_sync_fence_t idle_fence;
} 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 {
xcb_present_event_t event;
xcb_window_t event_window;
xcb_xfixes_region_t valid_region;
xcb_xfixes_region_t update_region;
xcb_rectangle_t valid_rect;
xcb_rectangle_t update_rect;
xcb_randr_crtc_t target_crtc;
xcb_sync_fence_t wait_fence;
xcb_sync_fence_t idle_fence;
} 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)
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
xcb_present_notify_end (xcb_present_notify_iterator_t i);
* @param c The connection
* Delivers a request to the X server.
xcb_present_query_version_cookie_t
xcb_present_query_version (xcb_connection_t *c,
* @param c The connection
* 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,
* @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);
xcb_present_pixmap_sizeof (const void *_buffer,
* @param c The connection
* 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_present_pixmap_checked (xcb_connection_t *c,
xcb_xfixes_region_t valid,
xcb_xfixes_region_t update,
xcb_randr_crtc_t target_crtc,
xcb_sync_fence_t wait_fence,
xcb_sync_fence_t idle_fence,
const xcb_present_notify_t *notifies);
* @param c The connection
* Delivers a request to the X server.
xcb_present_pixmap (xcb_connection_t *c,
xcb_xfixes_region_t valid,
xcb_xfixes_region_t update,
xcb_randr_crtc_t target_crtc,
xcb_sync_fence_t wait_fence,
xcb_sync_fence_t idle_fence,
const xcb_present_notify_t *notifies);
xcb_present_pixmap_notifies (const xcb_present_pixmap_request_t *R);
xcb_present_pixmap_notifies_length (const xcb_present_pixmap_request_t *R);
xcb_present_notify_iterator_t
xcb_present_pixmap_notifies_iterator (const xcb_present_pixmap_request_t *R);
* @param c The connection
* 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_present_notify_msc_checked (xcb_connection_t *c,