annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/xcb/present.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 /*
jpayne@69 2 * This file generated automatically from present.xml by c_client.py.
jpayne@69 3 * Edit at your peril.
jpayne@69 4 */
jpayne@69 5
jpayne@69 6 /**
jpayne@69 7 * @defgroup XCB_Present_API XCB Present API
jpayne@69 8 * @brief Present XCB Protocol Implementation.
jpayne@69 9 * @{
jpayne@69 10 **/
jpayne@69 11
jpayne@69 12 #ifndef __PRESENT_H
jpayne@69 13 #define __PRESENT_H
jpayne@69 14
jpayne@69 15 #include "xcb.h"
jpayne@69 16 #include "xproto.h"
jpayne@69 17 #include "randr.h"
jpayne@69 18 #include "xfixes.h"
jpayne@69 19 #include "sync.h"
jpayne@69 20 #include "dri3.h"
jpayne@69 21
jpayne@69 22 #ifdef __cplusplus
jpayne@69 23 extern "C" {
jpayne@69 24 #endif
jpayne@69 25
jpayne@69 26 #define XCB_PRESENT_MAJOR_VERSION 1
jpayne@69 27 #define XCB_PRESENT_MINOR_VERSION 4
jpayne@69 28
jpayne@69 29 extern xcb_extension_t xcb_present_id;
jpayne@69 30
jpayne@69 31 typedef enum xcb_present_event_enum_t {
jpayne@69 32 XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0,
jpayne@69 33 XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,
jpayne@69 34 XCB_PRESENT_EVENT_IDLE_NOTIFY = 2,
jpayne@69 35 XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3
jpayne@69 36 } xcb_present_event_enum_t;
jpayne@69 37
jpayne@69 38 typedef enum xcb_present_event_mask_t {
jpayne@69 39 XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,
jpayne@69 40 XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
jpayne@69 41 XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
jpayne@69 42 XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
jpayne@69 43 XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8
jpayne@69 44 } xcb_present_event_mask_t;
jpayne@69 45
jpayne@69 46 typedef enum xcb_present_option_t {
jpayne@69 47 XCB_PRESENT_OPTION_NONE = 0,
jpayne@69 48 XCB_PRESENT_OPTION_ASYNC = 1,
jpayne@69 49 XCB_PRESENT_OPTION_COPY = 2,
jpayne@69 50 XCB_PRESENT_OPTION_UST = 4,
jpayne@69 51 XCB_PRESENT_OPTION_SUBOPTIMAL = 8,
jpayne@69 52 XCB_PRESENT_OPTION_ASYNC_MAY_TEAR = 16
jpayne@69 53 } xcb_present_option_t;
jpayne@69 54
jpayne@69 55 typedef enum xcb_present_capability_t {
jpayne@69 56 XCB_PRESENT_CAPABILITY_NONE = 0,
jpayne@69 57 XCB_PRESENT_CAPABILITY_ASYNC = 1,
jpayne@69 58 XCB_PRESENT_CAPABILITY_FENCE = 2,
jpayne@69 59 XCB_PRESENT_CAPABILITY_UST = 4,
jpayne@69 60 XCB_PRESENT_CAPABILITY_ASYNC_MAY_TEAR = 8,
jpayne@69 61 XCB_PRESENT_CAPABILITY_SYNCOBJ = 16
jpayne@69 62 } xcb_present_capability_t;
jpayne@69 63
jpayne@69 64 typedef enum xcb_present_complete_kind_t {
jpayne@69 65 XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0,
jpayne@69 66 XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1
jpayne@69 67 } xcb_present_complete_kind_t;
jpayne@69 68
jpayne@69 69 typedef enum xcb_present_complete_mode_t {
jpayne@69 70 XCB_PRESENT_COMPLETE_MODE_COPY = 0,
jpayne@69 71 XCB_PRESENT_COMPLETE_MODE_FLIP = 1,
jpayne@69 72 XCB_PRESENT_COMPLETE_MODE_SKIP = 2,
jpayne@69 73 XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3
jpayne@69 74 } xcb_present_complete_mode_t;
jpayne@69 75
jpayne@69 76 /**
jpayne@69 77 * @brief xcb_present_notify_t
jpayne@69 78 **/
jpayne@69 79 typedef struct xcb_present_notify_t {
jpayne@69 80 xcb_window_t window;
jpayne@69 81 uint32_t serial;
jpayne@69 82 } xcb_present_notify_t;
jpayne@69 83
jpayne@69 84 /**
jpayne@69 85 * @brief xcb_present_notify_iterator_t
jpayne@69 86 **/
jpayne@69 87 typedef struct xcb_present_notify_iterator_t {
jpayne@69 88 xcb_present_notify_t *data;
jpayne@69 89 int rem;
jpayne@69 90 int index;
jpayne@69 91 } xcb_present_notify_iterator_t;
jpayne@69 92
jpayne@69 93 /**
jpayne@69 94 * @brief xcb_present_query_version_cookie_t
jpayne@69 95 **/
jpayne@69 96 typedef struct xcb_present_query_version_cookie_t {
jpayne@69 97 unsigned int sequence;
jpayne@69 98 } xcb_present_query_version_cookie_t;
jpayne@69 99
jpayne@69 100 /** Opcode for xcb_present_query_version. */
jpayne@69 101 #define XCB_PRESENT_QUERY_VERSION 0
jpayne@69 102
jpayne@69 103 /**
jpayne@69 104 * @brief xcb_present_query_version_request_t
jpayne@69 105 **/
jpayne@69 106 typedef struct xcb_present_query_version_request_t {
jpayne@69 107 uint8_t major_opcode;
jpayne@69 108 uint8_t minor_opcode;
jpayne@69 109 uint16_t length;
jpayne@69 110 uint32_t major_version;
jpayne@69 111 uint32_t minor_version;
jpayne@69 112 } xcb_present_query_version_request_t;
jpayne@69 113
jpayne@69 114 /**
jpayne@69 115 * @brief xcb_present_query_version_reply_t
jpayne@69 116 **/
jpayne@69 117 typedef struct xcb_present_query_version_reply_t {
jpayne@69 118 uint8_t response_type;
jpayne@69 119 uint8_t pad0;
jpayne@69 120 uint16_t sequence;
jpayne@69 121 uint32_t length;
jpayne@69 122 uint32_t major_version;
jpayne@69 123 uint32_t minor_version;
jpayne@69 124 } xcb_present_query_version_reply_t;
jpayne@69 125
jpayne@69 126 /** Opcode for xcb_present_pixmap. */
jpayne@69 127 #define XCB_PRESENT_PIXMAP 1
jpayne@69 128
jpayne@69 129 /**
jpayne@69 130 * @brief xcb_present_pixmap_request_t
jpayne@69 131 **/
jpayne@69 132 typedef struct xcb_present_pixmap_request_t {
jpayne@69 133 uint8_t major_opcode;
jpayne@69 134 uint8_t minor_opcode;
jpayne@69 135 uint16_t length;
jpayne@69 136 xcb_window_t window;
jpayne@69 137 xcb_pixmap_t pixmap;
jpayne@69 138 uint32_t serial;
jpayne@69 139 xcb_xfixes_region_t valid;
jpayne@69 140 xcb_xfixes_region_t update;
jpayne@69 141 int16_t x_off;
jpayne@69 142 int16_t y_off;
jpayne@69 143 xcb_randr_crtc_t target_crtc;
jpayne@69 144 xcb_sync_fence_t wait_fence;
jpayne@69 145 xcb_sync_fence_t idle_fence;
jpayne@69 146 uint32_t options;
jpayne@69 147 uint8_t pad0[4];
jpayne@69 148 uint64_t target_msc;
jpayne@69 149 uint64_t divisor;
jpayne@69 150 uint64_t remainder;
jpayne@69 151 } xcb_present_pixmap_request_t;
jpayne@69 152
jpayne@69 153 /** Opcode for xcb_present_notify_msc. */
jpayne@69 154 #define XCB_PRESENT_NOTIFY_MSC 2
jpayne@69 155
jpayne@69 156 /**
jpayne@69 157 * @brief xcb_present_notify_msc_request_t
jpayne@69 158 **/
jpayne@69 159 typedef struct xcb_present_notify_msc_request_t {
jpayne@69 160 uint8_t major_opcode;
jpayne@69 161 uint8_t minor_opcode;
jpayne@69 162 uint16_t length;
jpayne@69 163 xcb_window_t window;
jpayne@69 164 uint32_t serial;
jpayne@69 165 uint8_t pad0[4];
jpayne@69 166 uint64_t target_msc;
jpayne@69 167 uint64_t divisor;
jpayne@69 168 uint64_t remainder;
jpayne@69 169 } xcb_present_notify_msc_request_t;
jpayne@69 170
jpayne@69 171 typedef uint32_t xcb_present_event_t;
jpayne@69 172
jpayne@69 173 /**
jpayne@69 174 * @brief xcb_present_event_iterator_t
jpayne@69 175 **/
jpayne@69 176 typedef struct xcb_present_event_iterator_t {
jpayne@69 177 xcb_present_event_t *data;
jpayne@69 178 int rem;
jpayne@69 179 int index;
jpayne@69 180 } xcb_present_event_iterator_t;
jpayne@69 181
jpayne@69 182 /** Opcode for xcb_present_select_input. */
jpayne@69 183 #define XCB_PRESENT_SELECT_INPUT 3
jpayne@69 184
jpayne@69 185 /**
jpayne@69 186 * @brief xcb_present_select_input_request_t
jpayne@69 187 **/
jpayne@69 188 typedef struct xcb_present_select_input_request_t {
jpayne@69 189 uint8_t major_opcode;
jpayne@69 190 uint8_t minor_opcode;
jpayne@69 191 uint16_t length;
jpayne@69 192 xcb_present_event_t eid;
jpayne@69 193 xcb_window_t window;
jpayne@69 194 uint32_t event_mask;
jpayne@69 195 } xcb_present_select_input_request_t;
jpayne@69 196
jpayne@69 197 /**
jpayne@69 198 * @brief xcb_present_query_capabilities_cookie_t
jpayne@69 199 **/
jpayne@69 200 typedef struct xcb_present_query_capabilities_cookie_t {
jpayne@69 201 unsigned int sequence;
jpayne@69 202 } xcb_present_query_capabilities_cookie_t;
jpayne@69 203
jpayne@69 204 /** Opcode for xcb_present_query_capabilities. */
jpayne@69 205 #define XCB_PRESENT_QUERY_CAPABILITIES 4
jpayne@69 206
jpayne@69 207 /**
jpayne@69 208 * @brief xcb_present_query_capabilities_request_t
jpayne@69 209 **/
jpayne@69 210 typedef struct xcb_present_query_capabilities_request_t {
jpayne@69 211 uint8_t major_opcode;
jpayne@69 212 uint8_t minor_opcode;
jpayne@69 213 uint16_t length;
jpayne@69 214 uint32_t target;
jpayne@69 215 } xcb_present_query_capabilities_request_t;
jpayne@69 216
jpayne@69 217 /**
jpayne@69 218 * @brief xcb_present_query_capabilities_reply_t
jpayne@69 219 **/
jpayne@69 220 typedef struct xcb_present_query_capabilities_reply_t {
jpayne@69 221 uint8_t response_type;
jpayne@69 222 uint8_t pad0;
jpayne@69 223 uint16_t sequence;
jpayne@69 224 uint32_t length;
jpayne@69 225 uint32_t capabilities;
jpayne@69 226 } xcb_present_query_capabilities_reply_t;
jpayne@69 227
jpayne@69 228 /** Opcode for xcb_present_pixmap_synced. */
jpayne@69 229 #define XCB_PRESENT_PIXMAP_SYNCED 5
jpayne@69 230
jpayne@69 231 /**
jpayne@69 232 * @brief xcb_present_pixmap_synced_request_t
jpayne@69 233 **/
jpayne@69 234 typedef struct xcb_present_pixmap_synced_request_t {
jpayne@69 235 uint8_t major_opcode;
jpayne@69 236 uint8_t minor_opcode;
jpayne@69 237 uint16_t length;
jpayne@69 238 xcb_window_t window;
jpayne@69 239 xcb_pixmap_t pixmap;
jpayne@69 240 uint32_t serial;
jpayne@69 241 xcb_xfixes_region_t valid;
jpayne@69 242 xcb_xfixes_region_t update;
jpayne@69 243 int16_t x_off;
jpayne@69 244 int16_t y_off;
jpayne@69 245 xcb_randr_crtc_t target_crtc;
jpayne@69 246 xcb_dri3_syncobj_t acquire_syncobj;
jpayne@69 247 xcb_dri3_syncobj_t release_syncobj;
jpayne@69 248 uint64_t acquire_point;
jpayne@69 249 uint64_t release_point;
jpayne@69 250 uint32_t options;
jpayne@69 251 uint8_t pad0[4];
jpayne@69 252 uint64_t target_msc;
jpayne@69 253 uint64_t divisor;
jpayne@69 254 uint64_t remainder;
jpayne@69 255 } xcb_present_pixmap_synced_request_t;
jpayne@69 256
jpayne@69 257 /** Opcode for xcb_present_generic. */
jpayne@69 258 #define XCB_PRESENT_GENERIC 0
jpayne@69 259
jpayne@69 260 /**
jpayne@69 261 * @brief xcb_present_generic_event_t
jpayne@69 262 **/
jpayne@69 263 typedef struct xcb_present_generic_event_t {
jpayne@69 264 uint8_t response_type;
jpayne@69 265 uint8_t extension;
jpayne@69 266 uint16_t sequence;
jpayne@69 267 uint32_t length;
jpayne@69 268 uint16_t evtype;
jpayne@69 269 uint8_t pad0[2];
jpayne@69 270 xcb_present_event_t event;
jpayne@69 271 } xcb_present_generic_event_t;
jpayne@69 272
jpayne@69 273 /** Opcode for xcb_present_configure_notify. */
jpayne@69 274 #define XCB_PRESENT_CONFIGURE_NOTIFY 0
jpayne@69 275
jpayne@69 276 /**
jpayne@69 277 * @brief xcb_present_configure_notify_event_t
jpayne@69 278 **/
jpayne@69 279 typedef struct xcb_present_configure_notify_event_t {
jpayne@69 280 uint8_t response_type;
jpayne@69 281 uint8_t extension;
jpayne@69 282 uint16_t sequence;
jpayne@69 283 uint32_t length;
jpayne@69 284 uint16_t event_type;
jpayne@69 285 uint8_t pad0[2];
jpayne@69 286 xcb_present_event_t event;
jpayne@69 287 xcb_window_t window;
jpayne@69 288 int16_t x;
jpayne@69 289 int16_t y;
jpayne@69 290 uint16_t width;
jpayne@69 291 uint16_t height;
jpayne@69 292 int16_t off_x;
jpayne@69 293 int16_t off_y;
jpayne@69 294 uint32_t full_sequence;
jpayne@69 295 uint16_t pixmap_width;
jpayne@69 296 uint16_t pixmap_height;
jpayne@69 297 uint32_t pixmap_flags;
jpayne@69 298 } xcb_present_configure_notify_event_t;
jpayne@69 299
jpayne@69 300 /** Opcode for xcb_present_complete_notify. */
jpayne@69 301 #define XCB_PRESENT_COMPLETE_NOTIFY 1
jpayne@69 302
jpayne@69 303 /**
jpayne@69 304 * @brief xcb_present_complete_notify_event_t
jpayne@69 305 **/
jpayne@69 306 typedef struct xcb_present_complete_notify_event_t {
jpayne@69 307 uint8_t response_type;
jpayne@69 308 uint8_t extension;
jpayne@69 309 uint16_t sequence;
jpayne@69 310 uint32_t length;
jpayne@69 311 uint16_t event_type;
jpayne@69 312 uint8_t kind;
jpayne@69 313 uint8_t mode;
jpayne@69 314 xcb_present_event_t event;
jpayne@69 315 xcb_window_t window;
jpayne@69 316 uint32_t serial;
jpayne@69 317 uint64_t ust;
jpayne@69 318 uint32_t full_sequence;
jpayne@69 319 uint64_t msc;
jpayne@69 320 } XCB_PACKED xcb_present_complete_notify_event_t;
jpayne@69 321
jpayne@69 322 /** Opcode for xcb_present_idle_notify. */
jpayne@69 323 #define XCB_PRESENT_IDLE_NOTIFY 2
jpayne@69 324
jpayne@69 325 /**
jpayne@69 326 * @brief xcb_present_idle_notify_event_t
jpayne@69 327 **/
jpayne@69 328 typedef struct xcb_present_idle_notify_event_t {
jpayne@69 329 uint8_t response_type;
jpayne@69 330 uint8_t extension;
jpayne@69 331 uint16_t sequence;
jpayne@69 332 uint32_t length;
jpayne@69 333 uint16_t event_type;
jpayne@69 334 uint8_t pad0[2];
jpayne@69 335 xcb_present_event_t event;
jpayne@69 336 xcb_window_t window;
jpayne@69 337 uint32_t serial;
jpayne@69 338 xcb_pixmap_t pixmap;
jpayne@69 339 xcb_sync_fence_t idle_fence;
jpayne@69 340 uint32_t full_sequence;
jpayne@69 341 } xcb_present_idle_notify_event_t;
jpayne@69 342
jpayne@69 343 /** Opcode for xcb_present_redirect_notify. */
jpayne@69 344 #define XCB_PRESENT_REDIRECT_NOTIFY 3
jpayne@69 345
jpayne@69 346 /**
jpayne@69 347 * @brief xcb_present_redirect_notify_event_t
jpayne@69 348 **/
jpayne@69 349 typedef struct xcb_present_redirect_notify_event_t {
jpayne@69 350 uint8_t response_type;
jpayne@69 351 uint8_t extension;
jpayne@69 352 uint16_t sequence;
jpayne@69 353 uint32_t length;
jpayne@69 354 uint16_t event_type;
jpayne@69 355 uint8_t update_window;
jpayne@69 356 uint8_t pad0;
jpayne@69 357 xcb_present_event_t event;
jpayne@69 358 xcb_window_t event_window;
jpayne@69 359 xcb_window_t window;
jpayne@69 360 xcb_pixmap_t pixmap;
jpayne@69 361 uint32_t serial;
jpayne@69 362 uint32_t full_sequence;
jpayne@69 363 xcb_xfixes_region_t valid_region;
jpayne@69 364 xcb_xfixes_region_t update_region;
jpayne@69 365 xcb_rectangle_t valid_rect;
jpayne@69 366 xcb_rectangle_t update_rect;
jpayne@69 367 int16_t x_off;
jpayne@69 368 int16_t y_off;
jpayne@69 369 xcb_randr_crtc_t target_crtc;
jpayne@69 370 xcb_sync_fence_t wait_fence;
jpayne@69 371 xcb_sync_fence_t idle_fence;
jpayne@69 372 uint32_t options;
jpayne@69 373 uint8_t pad1[4];
jpayne@69 374 uint64_t target_msc;
jpayne@69 375 uint64_t divisor;
jpayne@69 376 uint64_t remainder;
jpayne@69 377 } XCB_PACKED xcb_present_redirect_notify_event_t;
jpayne@69 378
jpayne@69 379 /**
jpayne@69 380 * Get the next element of the iterator
jpayne@69 381 * @param i Pointer to a xcb_present_notify_iterator_t
jpayne@69 382 *
jpayne@69 383 * Get the next element in the iterator. The member rem is
jpayne@69 384 * decreased by one. The member data points to the next
jpayne@69 385 * element. The member index is increased by sizeof(xcb_present_notify_t)
jpayne@69 386 */
jpayne@69 387 void
jpayne@69 388 xcb_present_notify_next (xcb_present_notify_iterator_t *i);
jpayne@69 389
jpayne@69 390 /**
jpayne@69 391 * Return the iterator pointing to the last element
jpayne@69 392 * @param i An xcb_present_notify_iterator_t
jpayne@69 393 * @return The iterator pointing to the last element
jpayne@69 394 *
jpayne@69 395 * Set the current element in the iterator to the last element.
jpayne@69 396 * The member rem is set to 0. The member data points to the
jpayne@69 397 * last element.
jpayne@69 398 */
jpayne@69 399 xcb_generic_iterator_t
jpayne@69 400 xcb_present_notify_end (xcb_present_notify_iterator_t i);
jpayne@69 401
jpayne@69 402 /**
jpayne@69 403 *
jpayne@69 404 * @param c The connection
jpayne@69 405 * @return A cookie
jpayne@69 406 *
jpayne@69 407 * Delivers a request to the X server.
jpayne@69 408 *
jpayne@69 409 */
jpayne@69 410 xcb_present_query_version_cookie_t
jpayne@69 411 xcb_present_query_version (xcb_connection_t *c,
jpayne@69 412 uint32_t major_version,
jpayne@69 413 uint32_t minor_version);
jpayne@69 414
jpayne@69 415 /**
jpayne@69 416 *
jpayne@69 417 * @param c The connection
jpayne@69 418 * @return A cookie
jpayne@69 419 *
jpayne@69 420 * Delivers a request to the X server.
jpayne@69 421 *
jpayne@69 422 * This form can be used only if the request will cause
jpayne@69 423 * a reply to be generated. Any returned error will be
jpayne@69 424 * placed in the event queue.
jpayne@69 425 */
jpayne@69 426 xcb_present_query_version_cookie_t
jpayne@69 427 xcb_present_query_version_unchecked (xcb_connection_t *c,
jpayne@69 428 uint32_t major_version,
jpayne@69 429 uint32_t minor_version);
jpayne@69 430
jpayne@69 431 /**
jpayne@69 432 * Return the reply
jpayne@69 433 * @param c The connection
jpayne@69 434 * @param cookie The cookie
jpayne@69 435 * @param e The xcb_generic_error_t supplied
jpayne@69 436 *
jpayne@69 437 * Returns the reply of the request asked by
jpayne@69 438 *
jpayne@69 439 * The parameter @p e supplied to this function must be NULL if
jpayne@69 440 * xcb_present_query_version_unchecked(). is used.
jpayne@69 441 * Otherwise, it stores the error if any.
jpayne@69 442 *
jpayne@69 443 * The returned value must be freed by the caller using free().
jpayne@69 444 */
jpayne@69 445 xcb_present_query_version_reply_t *
jpayne@69 446 xcb_present_query_version_reply (xcb_connection_t *c,
jpayne@69 447 xcb_present_query_version_cookie_t cookie /**< */,
jpayne@69 448 xcb_generic_error_t **e);
jpayne@69 449
jpayne@69 450 int
jpayne@69 451 xcb_present_pixmap_sizeof (const void *_buffer,
jpayne@69 452 uint32_t notifies_len);
jpayne@69 453
jpayne@69 454 /**
jpayne@69 455 *
jpayne@69 456 * @param c The connection
jpayne@69 457 * @return A cookie
jpayne@69 458 *
jpayne@69 459 * Delivers a request to the X server.
jpayne@69 460 *
jpayne@69 461 * This form can be used only if the request will not cause
jpayne@69 462 * a reply to be generated. Any returned error will be
jpayne@69 463 * saved for handling by xcb_request_check().
jpayne@69 464 */
jpayne@69 465 xcb_void_cookie_t
jpayne@69 466 xcb_present_pixmap_checked (xcb_connection_t *c,
jpayne@69 467 xcb_window_t window,
jpayne@69 468 xcb_pixmap_t pixmap,
jpayne@69 469 uint32_t serial,
jpayne@69 470 xcb_xfixes_region_t valid,
jpayne@69 471 xcb_xfixes_region_t update,
jpayne@69 472 int16_t x_off,
jpayne@69 473 int16_t y_off,
jpayne@69 474 xcb_randr_crtc_t target_crtc,
jpayne@69 475 xcb_sync_fence_t wait_fence,
jpayne@69 476 xcb_sync_fence_t idle_fence,
jpayne@69 477 uint32_t options,
jpayne@69 478 uint64_t target_msc,
jpayne@69 479 uint64_t divisor,
jpayne@69 480 uint64_t remainder,
jpayne@69 481 uint32_t notifies_len,
jpayne@69 482 const xcb_present_notify_t *notifies);
jpayne@69 483
jpayne@69 484 /**
jpayne@69 485 *
jpayne@69 486 * @param c The connection
jpayne@69 487 * @return A cookie
jpayne@69 488 *
jpayne@69 489 * Delivers a request to the X server.
jpayne@69 490 *
jpayne@69 491 */
jpayne@69 492 xcb_void_cookie_t
jpayne@69 493 xcb_present_pixmap (xcb_connection_t *c,
jpayne@69 494 xcb_window_t window,
jpayne@69 495 xcb_pixmap_t pixmap,
jpayne@69 496 uint32_t serial,
jpayne@69 497 xcb_xfixes_region_t valid,
jpayne@69 498 xcb_xfixes_region_t update,
jpayne@69 499 int16_t x_off,
jpayne@69 500 int16_t y_off,
jpayne@69 501 xcb_randr_crtc_t target_crtc,
jpayne@69 502 xcb_sync_fence_t wait_fence,
jpayne@69 503 xcb_sync_fence_t idle_fence,
jpayne@69 504 uint32_t options,
jpayne@69 505 uint64_t target_msc,
jpayne@69 506 uint64_t divisor,
jpayne@69 507 uint64_t remainder,
jpayne@69 508 uint32_t notifies_len,
jpayne@69 509 const xcb_present_notify_t *notifies);
jpayne@69 510
jpayne@69 511 xcb_present_notify_t *
jpayne@69 512 xcb_present_pixmap_notifies (const xcb_present_pixmap_request_t *R);
jpayne@69 513
jpayne@69 514 int
jpayne@69 515 xcb_present_pixmap_notifies_length (const xcb_present_pixmap_request_t *R);
jpayne@69 516
jpayne@69 517 xcb_present_notify_iterator_t
jpayne@69 518 xcb_present_pixmap_notifies_iterator (const xcb_present_pixmap_request_t *R);
jpayne@69 519
jpayne@69 520 /**
jpayne@69 521 *
jpayne@69 522 * @param c The connection
jpayne@69 523 * @return A cookie
jpayne@69 524 *
jpayne@69 525 * Delivers a request to the X server.
jpayne@69 526 *
jpayne@69 527 * This form can be used only if the request will not cause
jpayne@69 528 * a reply to be generated. Any returned error will be
jpayne@69 529 * saved for handling by xcb_request_check().
jpayne@69 530 */
jpayne@69 531 xcb_void_cookie_t
jpayne@69 532 xcb_present_notify_msc_checked (xcb_connection_t *c,
jpayne@69 533 xcb_window_t window,
jpayne@69 534 uint32_t serial,
jpayne@69 535 uint64_t target_msc,
jpayne@69 536 uint64_t divisor,
jpayne@69 537 uint64_t remainder);
jpayne@69 538
jpayne@69 539 /**
jpayne@69 540 *
jpayne@69 541 * @param c The connection
jpayne@69 542 * @return A cookie
jpayne@69 543 *
jpayne@69 544 * Delivers a request to the X server.
jpayne@69 545 *
jpayne@69 546 */
jpayne@69 547 xcb_void_cookie_t
jpayne@69 548 xcb_present_notify_msc (xcb_connection_t *c,
jpayne@69 549 xcb_window_t window,
jpayne@69 550 uint32_t serial,
jpayne@69 551 uint64_t target_msc,
jpayne@69 552 uint64_t divisor,
jpayne@69 553 uint64_t remainder);
jpayne@69 554
jpayne@69 555 /**
jpayne@69 556 * Get the next element of the iterator
jpayne@69 557 * @param i Pointer to a xcb_present_event_iterator_t
jpayne@69 558 *
jpayne@69 559 * Get the next element in the iterator. The member rem is
jpayne@69 560 * decreased by one. The member data points to the next
jpayne@69 561 * element. The member index is increased by sizeof(xcb_present_event_t)
jpayne@69 562 */
jpayne@69 563 void
jpayne@69 564 xcb_present_event_next (xcb_present_event_iterator_t *i);
jpayne@69 565
jpayne@69 566 /**
jpayne@69 567 * Return the iterator pointing to the last element
jpayne@69 568 * @param i An xcb_present_event_iterator_t
jpayne@69 569 * @return The iterator pointing to the last element
jpayne@69 570 *
jpayne@69 571 * Set the current element in the iterator to the last element.
jpayne@69 572 * The member rem is set to 0. The member data points to the
jpayne@69 573 * last element.
jpayne@69 574 */
jpayne@69 575 xcb_generic_iterator_t
jpayne@69 576 xcb_present_event_end (xcb_present_event_iterator_t i);
jpayne@69 577
jpayne@69 578 /**
jpayne@69 579 *
jpayne@69 580 * @param c The connection
jpayne@69 581 * @return A cookie
jpayne@69 582 *
jpayne@69 583 * Delivers a request to the X server.
jpayne@69 584 *
jpayne@69 585 * This form can be used only if the request will not cause
jpayne@69 586 * a reply to be generated. Any returned error will be
jpayne@69 587 * saved for handling by xcb_request_check().
jpayne@69 588 */
jpayne@69 589 xcb_void_cookie_t
jpayne@69 590 xcb_present_select_input_checked (xcb_connection_t *c,
jpayne@69 591 xcb_present_event_t eid,
jpayne@69 592 xcb_window_t window,
jpayne@69 593 uint32_t event_mask);
jpayne@69 594
jpayne@69 595 /**
jpayne@69 596 *
jpayne@69 597 * @param c The connection
jpayne@69 598 * @return A cookie
jpayne@69 599 *
jpayne@69 600 * Delivers a request to the X server.
jpayne@69 601 *
jpayne@69 602 */
jpayne@69 603 xcb_void_cookie_t
jpayne@69 604 xcb_present_select_input (xcb_connection_t *c,
jpayne@69 605 xcb_present_event_t eid,
jpayne@69 606 xcb_window_t window,
jpayne@69 607 uint32_t event_mask);
jpayne@69 608
jpayne@69 609 /**
jpayne@69 610 *
jpayne@69 611 * @param c The connection
jpayne@69 612 * @return A cookie
jpayne@69 613 *
jpayne@69 614 * Delivers a request to the X server.
jpayne@69 615 *
jpayne@69 616 */
jpayne@69 617 xcb_present_query_capabilities_cookie_t
jpayne@69 618 xcb_present_query_capabilities (xcb_connection_t *c,
jpayne@69 619 uint32_t target);
jpayne@69 620
jpayne@69 621 /**
jpayne@69 622 *
jpayne@69 623 * @param c The connection
jpayne@69 624 * @return A cookie
jpayne@69 625 *
jpayne@69 626 * Delivers a request to the X server.
jpayne@69 627 *
jpayne@69 628 * This form can be used only if the request will cause
jpayne@69 629 * a reply to be generated. Any returned error will be
jpayne@69 630 * placed in the event queue.
jpayne@69 631 */
jpayne@69 632 xcb_present_query_capabilities_cookie_t
jpayne@69 633 xcb_present_query_capabilities_unchecked (xcb_connection_t *c,
jpayne@69 634 uint32_t target);
jpayne@69 635
jpayne@69 636 /**
jpayne@69 637 * Return the reply
jpayne@69 638 * @param c The connection
jpayne@69 639 * @param cookie The cookie
jpayne@69 640 * @param e The xcb_generic_error_t supplied
jpayne@69 641 *
jpayne@69 642 * Returns the reply of the request asked by
jpayne@69 643 *
jpayne@69 644 * The parameter @p e supplied to this function must be NULL if
jpayne@69 645 * xcb_present_query_capabilities_unchecked(). is used.
jpayne@69 646 * Otherwise, it stores the error if any.
jpayne@69 647 *
jpayne@69 648 * The returned value must be freed by the caller using free().
jpayne@69 649 */
jpayne@69 650 xcb_present_query_capabilities_reply_t *
jpayne@69 651 xcb_present_query_capabilities_reply (xcb_connection_t *c,
jpayne@69 652 xcb_present_query_capabilities_cookie_t cookie /**< */,
jpayne@69 653 xcb_generic_error_t **e);
jpayne@69 654
jpayne@69 655 int
jpayne@69 656 xcb_present_pixmap_synced_sizeof (const void *_buffer,
jpayne@69 657 uint32_t notifies_len);
jpayne@69 658
jpayne@69 659 /**
jpayne@69 660 *
jpayne@69 661 * @param c The connection
jpayne@69 662 * @return A cookie
jpayne@69 663 *
jpayne@69 664 * Delivers a request to the X server.
jpayne@69 665 *
jpayne@69 666 * This form can be used only if the request will not cause
jpayne@69 667 * a reply to be generated. Any returned error will be
jpayne@69 668 * saved for handling by xcb_request_check().
jpayne@69 669 */
jpayne@69 670 xcb_void_cookie_t
jpayne@69 671 xcb_present_pixmap_synced_checked (xcb_connection_t *c,
jpayne@69 672 xcb_window_t window,
jpayne@69 673 xcb_pixmap_t pixmap,
jpayne@69 674 uint32_t serial,
jpayne@69 675 xcb_xfixes_region_t valid,
jpayne@69 676 xcb_xfixes_region_t update,
jpayne@69 677 int16_t x_off,
jpayne@69 678 int16_t y_off,
jpayne@69 679 xcb_randr_crtc_t target_crtc,
jpayne@69 680 xcb_dri3_syncobj_t acquire_syncobj,
jpayne@69 681 xcb_dri3_syncobj_t release_syncobj,
jpayne@69 682 uint64_t acquire_point,
jpayne@69 683 uint64_t release_point,
jpayne@69 684 uint32_t options,
jpayne@69 685 uint64_t target_msc,
jpayne@69 686 uint64_t divisor,
jpayne@69 687 uint64_t remainder,
jpayne@69 688 uint32_t notifies_len,
jpayne@69 689 const xcb_present_notify_t *notifies);
jpayne@69 690
jpayne@69 691 /**
jpayne@69 692 *
jpayne@69 693 * @param c The connection
jpayne@69 694 * @return A cookie
jpayne@69 695 *
jpayne@69 696 * Delivers a request to the X server.
jpayne@69 697 *
jpayne@69 698 */
jpayne@69 699 xcb_void_cookie_t
jpayne@69 700 xcb_present_pixmap_synced (xcb_connection_t *c,
jpayne@69 701 xcb_window_t window,
jpayne@69 702 xcb_pixmap_t pixmap,
jpayne@69 703 uint32_t serial,
jpayne@69 704 xcb_xfixes_region_t valid,
jpayne@69 705 xcb_xfixes_region_t update,
jpayne@69 706 int16_t x_off,
jpayne@69 707 int16_t y_off,
jpayne@69 708 xcb_randr_crtc_t target_crtc,
jpayne@69 709 xcb_dri3_syncobj_t acquire_syncobj,
jpayne@69 710 xcb_dri3_syncobj_t release_syncobj,
jpayne@69 711 uint64_t acquire_point,
jpayne@69 712 uint64_t release_point,
jpayne@69 713 uint32_t options,
jpayne@69 714 uint64_t target_msc,
jpayne@69 715 uint64_t divisor,
jpayne@69 716 uint64_t remainder,
jpayne@69 717 uint32_t notifies_len,
jpayne@69 718 const xcb_present_notify_t *notifies);
jpayne@69 719
jpayne@69 720 xcb_present_notify_t *
jpayne@69 721 xcb_present_pixmap_synced_notifies (const xcb_present_pixmap_synced_request_t *R);
jpayne@69 722
jpayne@69 723 int
jpayne@69 724 xcb_present_pixmap_synced_notifies_length (const xcb_present_pixmap_synced_request_t *R);
jpayne@69 725
jpayne@69 726 xcb_present_notify_iterator_t
jpayne@69 727 xcb_present_pixmap_synced_notifies_iterator (const xcb_present_pixmap_synced_request_t *R);
jpayne@69 728
jpayne@69 729 int
jpayne@69 730 xcb_present_redirect_notify_sizeof (const void *_buffer,
jpayne@69 731 uint32_t notifies_len);
jpayne@69 732
jpayne@69 733 xcb_present_notify_t *
jpayne@69 734 xcb_present_redirect_notify_notifies (const xcb_present_redirect_notify_event_t *R);
jpayne@69 735
jpayne@69 736 int
jpayne@69 737 xcb_present_redirect_notify_notifies_length (const xcb_present_redirect_notify_event_t *R);
jpayne@69 738
jpayne@69 739 xcb_present_notify_iterator_t
jpayne@69 740 xcb_present_redirect_notify_notifies_iterator (const xcb_present_redirect_notify_event_t *R);
jpayne@69 741
jpayne@69 742
jpayne@69 743 #ifdef __cplusplus
jpayne@69 744 }
jpayne@69 745 #endif
jpayne@69 746
jpayne@69 747 #endif
jpayne@69 748
jpayne@69 749 /**
jpayne@69 750 * @}
jpayne@69 751 */