1 /* 2 * This file generated automatically from dri3.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 /** 7 * @defgroup XCB_DRI3_API XCB DRI3 API 8 * @brief DRI3 XCB Protocol Implementation. 9 * @{ 10 **/ 11 12 #ifndef __DRI3_H 13 #define __DRI3_H 14 15 #include "xcb.h" 16 #include "xproto.h" 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 #define XCB_DRI3_MAJOR_VERSION 1 23 #define XCB_DRI3_MINOR_VERSION 4 24 25 extern xcb_extension_t xcb_dri3_id; 26 27 typedef uint32_t xcb_dri3_syncobj_t; 28 29 /** 30 * @brief xcb_dri3_syncobj_iterator_t 31 **/ 32 typedef struct xcb_dri3_syncobj_iterator_t { 33 xcb_dri3_syncobj_t *data; 34 int rem; 35 int index; 36 } xcb_dri3_syncobj_iterator_t; 37 38 /** 39 * @brief xcb_dri3_query_version_cookie_t 40 **/ 41 typedef struct xcb_dri3_query_version_cookie_t { 42 unsigned int sequence; 43 } xcb_dri3_query_version_cookie_t; 44 45 /** Opcode for xcb_dri3_query_version. */ 46 #define XCB_DRI3_QUERY_VERSION 0 47 48 /** 49 * @brief xcb_dri3_query_version_request_t 50 **/ 51 typedef struct xcb_dri3_query_version_request_t { 52 uint8_t major_opcode; 53 uint8_t minor_opcode; 54 uint16_t length; 55 uint32_t major_version; 56 uint32_t minor_version; 57 } xcb_dri3_query_version_request_t; 58 59 /** 60 * @brief xcb_dri3_query_version_reply_t 61 **/ 62 typedef struct xcb_dri3_query_version_reply_t { 63 uint8_t response_type; 64 uint8_t pad0; 65 uint16_t sequence; 66 uint32_t length; 67 uint32_t major_version; 68 uint32_t minor_version; 69 } xcb_dri3_query_version_reply_t; 70 71 /** 72 * @brief xcb_dri3_open_cookie_t 73 **/ 74 typedef struct xcb_dri3_open_cookie_t { 75 unsigned int sequence; 76 } xcb_dri3_open_cookie_t; 77 78 /** Opcode for xcb_dri3_open. */ 79 #define XCB_DRI3_OPEN 1 80 81 /** 82 * @brief xcb_dri3_open_request_t 83 **/ 84 typedef struct xcb_dri3_open_request_t { 85 uint8_t major_opcode; 86 uint8_t minor_opcode; 87 uint16_t length; 88 xcb_drawable_t drawable; 89 uint32_t provider; 90 } xcb_dri3_open_request_t; 91 92 /** 93 * @brief xcb_dri3_open_reply_t 94 **/ 95 typedef struct xcb_dri3_open_reply_t { 96 uint8_t response_type; 97 uint8_t nfd; 98 uint16_t sequence; 99 uint32_t length; 100 uint8_t pad0[24]; 101 } xcb_dri3_open_reply_t; 102 103 /** Opcode for xcb_dri3_pixmap_from_buffer. */ 104 #define XCB_DRI3_PIXMAP_FROM_BUFFER 2 105 106 /** 107 * @brief xcb_dri3_pixmap_from_buffer_request_t 108 **/ 109 typedef struct xcb_dri3_pixmap_from_buffer_request_t { 110 uint8_t major_opcode; 111 uint8_t minor_opcode; 112 uint16_t length; 113 xcb_pixmap_t pixmap; 114 xcb_drawable_t drawable; 115 uint32_t size; 116 uint16_t width; 117 uint16_t height; 118 uint16_t stride; 119 uint8_t depth; 120 uint8_t bpp; 121 } xcb_dri3_pixmap_from_buffer_request_t; 122 123 /** 124 * @brief xcb_dri3_buffer_from_pixmap_cookie_t 125 **/ 126 typedef struct xcb_dri3_buffer_from_pixmap_cookie_t { 127 unsigned int sequence; 128 } xcb_dri3_buffer_from_pixmap_cookie_t; 129 130 /** Opcode for xcb_dri3_buffer_from_pixmap. */ 131 #define XCB_DRI3_BUFFER_FROM_PIXMAP 3 132 133 /** 134 * @brief xcb_dri3_buffer_from_pixmap_request_t 135 **/ 136 typedef struct xcb_dri3_buffer_from_pixmap_request_t { 137 uint8_t major_opcode; 138 uint8_t minor_opcode; 139 uint16_t length; 140 xcb_pixmap_t pixmap; 141 } xcb_dri3_buffer_from_pixmap_request_t; 142 143 /** 144 * @brief xcb_dri3_buffer_from_pixmap_reply_t 145 **/ 146 typedef struct xcb_dri3_buffer_from_pixmap_reply_t { 147 uint8_t response_type; 148 uint8_t nfd; 149 uint16_t sequence; 150 uint32_t length; 151 uint32_t size; 152 uint16_t width; 153 uint16_t height; 154 uint16_t stride; 155 uint8_t depth; 156 uint8_t bpp; 157 uint8_t pad0[12]; 158 } xcb_dri3_buffer_from_pixmap_reply_t; 159 160 /** Opcode for xcb_dri3_fence_from_fd. */ 161 #define XCB_DRI3_FENCE_FROM_FD 4 162 163 /** 164 * @brief xcb_dri3_fence_from_fd_request_t 165 **/ 166 typedef struct xcb_dri3_fence_from_fd_request_t { 167 uint8_t major_opcode; 168 uint8_t minor_opcode; 169 uint16_t length; 170 xcb_drawable_t drawable; 171 uint32_t fence; 172 uint8_t initially_triggered; 173 uint8_t pad0[3]; 174 } xcb_dri3_fence_from_fd_request_t; 175 176 /** 177 * @brief xcb_dri3_fd_from_fence_cookie_t 178 **/ 179 typedef struct xcb_dri3_fd_from_fence_cookie_t { 180 unsigned int sequence; 181 } xcb_dri3_fd_from_fence_cookie_t; 182 183 /** Opcode for xcb_dri3_fd_from_fence. */ 184 #define XCB_DRI3_FD_FROM_FENCE 5 185 186 /** 187 * @brief xcb_dri3_fd_from_fence_request_t 188 **/ 189 typedef struct xcb_dri3_fd_from_fence_request_t { 190 uint8_t major_opcode; 191 uint8_t minor_opcode; 192 uint16_t length; 193 xcb_drawable_t drawable; 194 uint32_t fence; 195 } xcb_dri3_fd_from_fence_request_t; 196 197 /** 198 * @brief xcb_dri3_fd_from_fence_reply_t 199 **/ 200 typedef struct xcb_dri3_fd_from_fence_reply_t { 201 uint8_t response_type; 202 uint8_t nfd; 203 uint16_t sequence; 204 uint32_t length; 205 uint8_t pad0[24]; 206 } xcb_dri3_fd_from_fence_reply_t; 207 208 /** 209 * @brief xcb_dri3_get_supported_modifiers_cookie_t 210 **/ 211 typedef struct xcb_dri3_get_supported_modifiers_cookie_t { 212 unsigned int sequence; 213 } xcb_dri3_get_supported_modifiers_cookie_t; 214 215 /** Opcode for xcb_dri3_get_supported_modifiers. */ 216 #define XCB_DRI3_GET_SUPPORTED_MODIFIERS 6 217 218 /** 219 * @brief xcb_dri3_get_supported_modifiers_request_t 220 **/ 221 typedef struct xcb_dri3_get_supported_modifiers_request_t { 222 uint8_t major_opcode; 223 uint8_t minor_opcode; 224 uint16_t length; 225 uint32_t window; 226 uint8_t depth; 227 uint8_t bpp; 228 uint8_t pad0[2]; 229 } xcb_dri3_get_supported_modifiers_request_t; 230 231 /** 232 * @brief xcb_dri3_get_supported_modifiers_reply_t 233 **/ 234 typedef struct xcb_dri3_get_supported_modifiers_reply_t { 235 uint8_t response_type; 236 uint8_t pad0; 237 uint16_t sequence; 238 uint32_t length; 239 uint32_t num_window_modifiers; 240 uint32_t num_screen_modifiers; 241 uint8_t pad1[16]; 242 } xcb_dri3_get_supported_modifiers_reply_t; 243 244 /** Opcode for xcb_dri3_pixmap_from_buffers. */ 245 #define XCB_DRI3_PIXMAP_FROM_BUFFERS 7 246 247 /** 248 * @brief xcb_dri3_pixmap_from_buffers_request_t 249 **/ 250 typedef struct xcb_dri3_pixmap_from_buffers_request_t { 251 uint8_t major_opcode; 252 uint8_t minor_opcode; 253 uint16_t length; 254 xcb_pixmap_t pixmap; 255 xcb_window_t window; 256 uint8_t num_buffers; 257 uint8_t pad0[3]; 258 uint16_t width; 259 uint16_t height; 260 uint32_t stride0; 261 uint32_t offset0; 262 uint32_t stride1; 263 uint32_t offset1; 264 uint32_t stride2; 265 uint32_t offset2; 266 uint32_t stride3; 267 uint32_t offset3; 268 uint8_t depth; 269 uint8_t bpp; 270 uint8_t pad1[2]; 271 uint64_t modifier; 272 } xcb_dri3_pixmap_from_buffers_request_t; 273 274 /** 275 * @brief xcb_dri3_buffers_from_pixmap_cookie_t 276 **/ 277 typedef struct xcb_dri3_buffers_from_pixmap_cookie_t { 278 unsigned int sequence; 279 } xcb_dri3_buffers_from_pixmap_cookie_t; 280 281 /** Opcode for xcb_dri3_buffers_from_pixmap. */ 282 #define XCB_DRI3_BUFFERS_FROM_PIXMAP 8 283 284 /** 285 * @brief xcb_dri3_buffers_from_pixmap_request_t 286 **/ 287 typedef struct xcb_dri3_buffers_from_pixmap_request_t { 288 uint8_t major_opcode; 289 uint8_t minor_opcode; 290 uint16_t length; 291 xcb_pixmap_t pixmap; 292 } xcb_dri3_buffers_from_pixmap_request_t; 293 294 /** 295 * @brief xcb_dri3_buffers_from_pixmap_reply_t 296 **/ 297 typedef struct xcb_dri3_buffers_from_pixmap_reply_t { 298 uint8_t response_type; 299 uint8_t nfd; 300 uint16_t sequence; 301 uint32_t length; 302 uint16_t width; 303 uint16_t height; 304 uint8_t pad0[4]; 305 uint64_t modifier; 306 uint8_t depth; 307 uint8_t bpp; 308 uint8_t pad1[6]; 309 } xcb_dri3_buffers_from_pixmap_reply_t; 310 311 /** Opcode for xcb_dri3_set_drm_device_in_use. */ 312 #define XCB_DRI3_SET_DRM_DEVICE_IN_USE 9 313 314 /** 315 * @brief xcb_dri3_set_drm_device_in_use_request_t 316 **/ 317 typedef struct xcb_dri3_set_drm_device_in_use_request_t { 318 uint8_t major_opcode; 319 uint8_t minor_opcode; 320 uint16_t length; 321 xcb_window_t window; 322 uint32_t drmMajor; 323 uint32_t drmMinor; 324 } xcb_dri3_set_drm_device_in_use_request_t; 325 326 /** Opcode for xcb_dri3_import_syncobj. */ 327 #define XCB_DRI3_IMPORT_SYNCOBJ 10 328 329 /** 330 * @brief xcb_dri3_import_syncobj_request_t 331 **/ 332 typedef struct xcb_dri3_import_syncobj_request_t { 333 uint8_t major_opcode; 334 uint8_t minor_opcode; 335 uint16_t length; 336 xcb_dri3_syncobj_t syncobj; 337 xcb_drawable_t drawable; 338 } xcb_dri3_import_syncobj_request_t; 339 340 /** Opcode for xcb_dri3_free_syncobj. */ 341 #define XCB_DRI3_FREE_SYNCOBJ 11 342 343 /** 344 * @brief xcb_dri3_free_syncobj_request_t 345 **/ 346 typedef struct xcb_dri3_free_syncobj_request_t { 347 uint8_t major_opcode; 348 uint8_t minor_opcode; 349 uint16_t length; 350 xcb_dri3_syncobj_t syncobj; 351 } xcb_dri3_free_syncobj_request_t; 352 353 /** 354 * Get the next element of the iterator 355 * @param i Pointer to a xcb_dri3_syncobj_iterator_t 356 * 357 * Get the next element in the iterator. The member rem is 358 * decreased by one. The member data points to the next 359 * element. The member index is increased by sizeof(xcb_dri3_syncobj_t) 360 */ 361 void 362 xcb_dri3_syncobj_next (xcb_dri3_syncobj_iterator_t *i); 363 364 /** 365 * Return the iterator pointing to the last element 366 * @param i An xcb_dri3_syncobj_iterator_t 367 * @return The iterator pointing to the last element 368 * 369 * Set the current element in the iterator to the last element. 370 * The member rem is set to 0. The member data points to the 371 * last element. 372 */ 373 xcb_generic_iterator_t 374 xcb_dri3_syncobj_end (xcb_dri3_syncobj_iterator_t i); 375 376 /** 377 * 378 * @param c The connection 379 * @return A cookie 380 * 381 * Delivers a request to the X server. 382 * 383 */ 384 xcb_dri3_query_version_cookie_t 385 xcb_dri3_query_version (xcb_connection_t *c, 386 uint32_t major_version, 387 uint32_t minor_version); 388 389 /** 390 * 391 * @param c The connection 392 * @return A cookie 393 * 394 * Delivers a request to the X server. 395 * 396 * This form can be used only if the request will cause 397 * a reply to be generated. Any returned error will be 398 * placed in the event queue. 399 */ 400 xcb_dri3_query_version_cookie_t 401 xcb_dri3_query_version_unchecked (xcb_connection_t *c, 402 uint32_t major_version, 403 uint32_t minor_version); 404 405 /** 406 * Return the reply 407 * @param c The connection 408 * @param cookie The cookie 409 * @param e The xcb_generic_error_t supplied 410 * 411 * Returns the reply of the request asked by 412 * 413 * The parameter @p e supplied to this function must be NULL if 414 * xcb_dri3_query_version_unchecked(). is used. 415 * Otherwise, it stores the error if any. 416 * 417 * The returned value must be freed by the caller using free(). 418 */ 419 xcb_dri3_query_version_reply_t * 420 xcb_dri3_query_version_reply (xcb_connection_t *c, 421 xcb_dri3_query_version_cookie_t cookie /**< */, 422 xcb_generic_error_t **e); 423 424 /** 425 * 426 * @param c The connection 427 * @return A cookie 428 * 429 * Delivers a request to the X server. 430 * 431 */ 432 xcb_dri3_open_cookie_t 433 xcb_dri3_open (xcb_connection_t *c, 434 xcb_drawable_t drawable, 435 uint32_t provider); 436 437 /** 438 * 439 * @param c The connection 440 * @return A cookie 441 * 442 * Delivers a request to the X server. 443 * 444 * This form can be used only if the request will cause 445 * a reply to be generated. Any returned error will be 446 * placed in the event queue. 447 */ 448 xcb_dri3_open_cookie_t 449 xcb_dri3_open_unchecked (xcb_connection_t *c, 450 xcb_drawable_t drawable, 451 uint32_t provider); 452 453 /** 454 * Return the reply 455 * @param c The connection 456 * @param cookie The cookie 457 * @param e The xcb_generic_error_t supplied 458 * 459 * Returns the reply of the request asked by 460 * 461 * The parameter @p e supplied to this function must be NULL if 462 * xcb_dri3_open_unchecked(). is used. 463 * Otherwise, it stores the error if any. 464 * 465 * The returned value must be freed by the caller using free(). 466 */ 467 xcb_dri3_open_reply_t * 468 xcb_dri3_open_reply (xcb_connection_t *c, 469 xcb_dri3_open_cookie_t cookie /**< */, 470 xcb_generic_error_t **e); 471 472 /** 473 * Return the reply fds 474 * @param c The connection 475 * @param reply The reply 476 * 477 * Returns a pointer to the array of reply fds of the reply. 478 * 479 * The returned value points into the reply and must not be free(). 480 * The fds are not managed by xcb. You must close() them before freeing the reply. 481 */ 482 int * 483 xcb_dri3_open_reply_fds (xcb_connection_t *c /**< */, 484 xcb_dri3_open_reply_t *reply); 485 486 /** 487 * 488 * @param c The connection 489 * @return A cookie 490 * 491 * Delivers a request to the X server. 492 * 493 * This form can be used only if the request will not cause 494 * a reply to be generated. Any returned error will be 495 * saved for handling by xcb_request_check(). 496 */ 497 xcb_void_cookie_t 498 xcb_dri3_pixmap_from_buffer_checked (xcb_connection_t *c, 499 xcb_pixmap_t pixmap, 500 xcb_drawable_t drawable, 501 uint32_t size, 502 uint16_t width, 503 uint16_t height, 504 uint16_t stride, 505 uint8_t depth, 506 uint8_t bpp, 507 int32_t pixmap_fd); 508 509 /** 510 * 511 * @param c The connection 512 * @return A cookie 513 * 514 * Delivers a request to the X server. 515 * 516 */ 517 xcb_void_cookie_t 518 xcb_dri3_pixmap_from_buffer (xcb_connection_t *c, 519 xcb_pixmap_t pixmap, 520 xcb_drawable_t drawable, 521 uint32_t size, 522 uint16_t width, 523 uint16_t height, 524 uint16_t stride, 525 uint8_t depth, 526 uint8_t bpp, 527 int32_t pixmap_fd); 528 529 /** 530 * 531 * @param c The connection 532 * @return A cookie 533 * 534 * Delivers a request to the X server. 535 * 536 */ 537 xcb_dri3_buffer_from_pixmap_cookie_t 538 xcb_dri3_buffer_from_pixmap (xcb_connection_t *c, 539 xcb_pixmap_t pixmap); 540 541 /** 542 * 543 * @param c The connection 544 * @return A cookie 545 * 546 * Delivers a request to the X server. 547 * 548 * This form can be used only if the request will cause 549 * a reply to be generated. Any returned error will be 550 * placed in the event queue. 551 */ 552 xcb_dri3_buffer_from_pixmap_cookie_t 553 xcb_dri3_buffer_from_pixmap_unchecked (xcb_connection_t *c, 554 xcb_pixmap_t pixmap); 555 556 /** 557 * Return the reply 558 * @param c The connection 559 * @param cookie The cookie 560 * @param e The xcb_generic_error_t supplied 561 * 562 * Returns the reply of the request asked by 563 * 564 * The parameter @p e supplied to this function must be NULL if 565 * xcb_dri3_buffer_from_pixmap_unchecked(). is used. 566 * Otherwise, it stores the error if any. 567 * 568 * The returned value must be freed by the caller using free(). 569 */ 570 xcb_dri3_buffer_from_pixmap_reply_t * 571 xcb_dri3_buffer_from_pixmap_reply (xcb_connection_t *c, 572 xcb_dri3_buffer_from_pixmap_cookie_t cookie /**< */, 573 xcb_generic_error_t **e); 574 575 /** 576 * Return the reply fds 577 * @param c The connection 578 * @param reply The reply 579 * 580 * Returns a pointer to the array of reply fds of the reply. 581 * 582 * The returned value points into the reply and must not be free(). 583 * The fds are not managed by xcb. You must close() them before freeing the reply. 584 */ 585 int * 586 xcb_dri3_buffer_from_pixmap_reply_fds (xcb_connection_t *c /**< */, 587 xcb_dri3_buffer_from_pixmap_reply_t *reply); 588 589 /** 590 * 591 * @param c The connection 592 * @return A cookie 593 * 594 * Delivers a request to the X server. 595 * 596 * This form can be used only if the request will not cause 597 * a reply to be generated. Any returned error will be 598 * saved for handling by xcb_request_check(). 599 */ 600 xcb_void_cookie_t 601 xcb_dri3_fence_from_fd_checked (xcb_connection_t *c, 602 xcb_drawable_t drawable, 603 uint32_t fence, 604 uint8_t initially_triggered, 605 int32_t fence_fd); 606 607 /** 608 * 609 * @param c The connection 610 * @return A cookie 611 * 612 * Delivers a request to the X server. 613 * 614 */ 615 xcb_void_cookie_t 616 xcb_dri3_fence_from_fd (xcb_connection_t *c, 617 xcb_drawable_t drawable, 618 uint32_t fence, 619 uint8_t initially_triggered, 620 int32_t fence_fd); 621 622 /** 623 * 624 * @param c The connection 625 * @return A cookie 626 * 627 * Delivers a request to the X server. 628 * 629 */ 630 xcb_dri3_fd_from_fence_cookie_t 631 xcb_dri3_fd_from_fence (xcb_connection_t *c, 632 xcb_drawable_t drawable, 633 uint32_t fence); 634 635 /** 636 * 637 * @param c The connection 638 * @return A cookie 639 * 640 * Delivers a request to the X server. 641 * 642 * This form can be used only if the request will cause 643 * a reply to be generated. Any returned error will be 644 * placed in the event queue. 645 */ 646 xcb_dri3_fd_from_fence_cookie_t 647 xcb_dri3_fd_from_fence_unchecked (xcb_connection_t *c, 648 xcb_drawable_t drawable, 649 uint32_t fence); 650 651 /** 652 * Return the reply 653 * @param c The connection 654 * @param cookie The cookie 655 * @param e The xcb_generic_error_t supplied 656 * 657 * Returns the reply of the request asked by 658 * 659 * The parameter @p e supplied to this function must be NULL if 660 * xcb_dri3_fd_from_fence_unchecked(). is used. 661 * Otherwise, it stores the error if any. 662 * 663 * The returned value must be freed by the caller using free(). 664 */ 665 xcb_dri3_fd_from_fence_reply_t * 666 xcb_dri3_fd_from_fence_reply (xcb_connection_t *c, 667 xcb_dri3_fd_from_fence_cookie_t cookie /**< */, 668 xcb_generic_error_t **e); 669 670 /** 671 * Return the reply fds 672 * @param c The connection 673 * @param reply The reply 674 * 675 * Returns a pointer to the array of reply fds of the reply. 676 * 677 * The returned value points into the reply and must not be free(). 678 * The fds are not managed by xcb. You must close() them before freeing the reply. 679 */ 680 int * 681 xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t *c /**< */, 682 xcb_dri3_fd_from_fence_reply_t *reply); 683 684 int 685 xcb_dri3_get_supported_modifiers_sizeof (const void *_buffer); 686 687 /** 688 * 689 * @param c The connection 690 * @return A cookie 691 * 692 * Delivers a request to the X server. 693 * 694 */ 695 xcb_dri3_get_supported_modifiers_cookie_t 696 xcb_dri3_get_supported_modifiers (xcb_connection_t *c, 697 uint32_t window, 698 uint8_t depth, 699 uint8_t bpp); 700 701 /** 702 * 703 * @param c The connection 704 * @return A cookie 705 * 706 * Delivers a request to the X server. 707 * 708 * This form can be used only if the request will cause 709 * a reply to be generated. Any returned error will be 710 * placed in the event queue. 711 */ 712 xcb_dri3_get_supported_modifiers_cookie_t 713 xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c, 714 uint32_t window, 715 uint8_t depth, 716 uint8_t bpp); 717 718 uint64_t * 719 xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R); 720 721 int 722 xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R); 723 724 xcb_generic_iterator_t 725 xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R); 726 727 uint64_t * 728 xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R); 729 730 int 731 xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R); 732 733 xcb_generic_iterator_t 734 xcb_dri3_get_supported_modifiers_screen_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R); 735 736 /** 737 * Return the reply 738 * @param c The connection 739 * @param cookie The cookie 740 * @param e The xcb_generic_error_t supplied 741 * 742 * Returns the reply of the request asked by 743 * 744 * The parameter @p e supplied to this function must be NULL if 745 * xcb_dri3_get_supported_modifiers_unchecked(). is used. 746 * Otherwise, it stores the error if any. 747 * 748 * The returned value must be freed by the caller using free(). 749 */ 750 xcb_dri3_get_supported_modifiers_reply_t * 751 xcb_dri3_get_supported_modifiers_reply (xcb_connection_t *c, 752 xcb_dri3_get_supported_modifiers_cookie_t cookie /**< */, 753 xcb_generic_error_t **e); 754 755 /** 756 * 757 * @param c The connection 758 * @return A cookie 759 * 760 * Delivers a request to the X server. 761 * 762 * This form can be used only if the request will not cause 763 * a reply to be generated. Any returned error will be 764 * saved for handling by xcb_request_check(). 765 */ 766 xcb_void_cookie_t 767 xcb_dri3_pixmap_from_buffers_checked (xcb_connection_t *c, 768 xcb_pixmap_t pixmap, 769 xcb_window_t window, 770 uint8_t num_buffers, 771 uint16_t width, 772 uint16_t height, 773 uint32_t stride0, 774 uint32_t offset0, 775 uint32_t stride1, 776 uint32_t offset1, 777 uint32_t stride2, 778 uint32_t offset2, 779 uint32_t stride3, 780 uint32_t offset3, 781 uint8_t depth, 782 uint8_t bpp, 783 uint64_t modifier, 784 const int32_t *buffers); 785 786 /** 787 * 788 * @param c The connection 789 * @return A cookie 790 * 791 * Delivers a request to the X server. 792 * 793 */ 794 xcb_void_cookie_t 795 xcb_dri3_pixmap_from_buffers (xcb_connection_t *c, 796 xcb_pixmap_t pixmap, 797 xcb_window_t window, 798 uint8_t num_buffers, 799 uint16_t width, 800 uint16_t height, 801 uint32_t stride0, 802 uint32_t offset0, 803 uint32_t stride1, 804 uint32_t offset1, 805 uint32_t stride2, 806 uint32_t offset2, 807 uint32_t stride3, 808 uint32_t offset3, 809 uint8_t depth, 810 uint8_t bpp, 811 uint64_t modifier, 812 const int32_t *buffers); 813 814 int 815 xcb_dri3_buffers_from_pixmap_sizeof (const void *_buffer, 816 int32_t buffers); 817 818 /** 819 * 820 * @param c The connection 821 * @return A cookie 822 * 823 * Delivers a request to the X server. 824 * 825 */ 826 xcb_dri3_buffers_from_pixmap_cookie_t 827 xcb_dri3_buffers_from_pixmap (xcb_connection_t *c, 828 xcb_pixmap_t pixmap); 829 830 /** 831 * 832 * @param c The connection 833 * @return A cookie 834 * 835 * Delivers a request to the X server. 836 * 837 * This form can be used only if the request will cause 838 * a reply to be generated. Any returned error will be 839 * placed in the event queue. 840 */ 841 xcb_dri3_buffers_from_pixmap_cookie_t 842 xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c, 843 xcb_pixmap_t pixmap); 844 845 uint32_t * 846 xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R); 847 848 int 849 xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R); 850 851 xcb_generic_iterator_t 852 xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R); 853 854 uint32_t * 855 xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R); 856 857 int 858 xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R); 859 860 xcb_generic_iterator_t 861 xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R); 862 863 int32_t * 864 xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R); 865 866 int 867 xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R); 868 869 xcb_generic_iterator_t 870 xcb_dri3_buffers_from_pixmap_buffers_end (const xcb_dri3_buffers_from_pixmap_reply_t *R); 871 872 /** 873 * Return the reply 874 * @param c The connection 875 * @param cookie The cookie 876 * @param e The xcb_generic_error_t supplied 877 * 878 * Returns the reply of the request asked by 879 * 880 * The parameter @p e supplied to this function must be NULL if 881 * xcb_dri3_buffers_from_pixmap_unchecked(). is used. 882 * Otherwise, it stores the error if any. 883 * 884 * The returned value must be freed by the caller using free(). 885 */ 886 xcb_dri3_buffers_from_pixmap_reply_t * 887 xcb_dri3_buffers_from_pixmap_reply (xcb_connection_t *c, 888 xcb_dri3_buffers_from_pixmap_cookie_t cookie /**< */, 889 xcb_generic_error_t **e); 890 891 /** 892 * Return the reply fds 893 * @param c The connection 894 * @param reply The reply 895 * 896 * Returns a pointer to the array of reply fds of the reply. 897 * 898 * The returned value points into the reply and must not be free(). 899 * The fds are not managed by xcb. You must close() them before freeing the reply. 900 */ 901 int * 902 xcb_dri3_buffers_from_pixmap_reply_fds (xcb_connection_t *c /**< */, 903 xcb_dri3_buffers_from_pixmap_reply_t *reply); 904 905 /** 906 * 907 * @param c The connection 908 * @return A cookie 909 * 910 * Delivers a request to the X server. 911 * 912 * This form can be used only if the request will not cause 913 * a reply to be generated. Any returned error will be 914 * saved for handling by xcb_request_check(). 915 */ 916 xcb_void_cookie_t 917 xcb_dri3_set_drm_device_in_use_checked (xcb_connection_t *c, 918 xcb_window_t window, 919 uint32_t drmMajor, 920 uint32_t drmMinor); 921 922 /** 923 * 924 * @param c The connection 925 * @return A cookie 926 * 927 * Delivers a request to the X server. 928 * 929 */ 930 xcb_void_cookie_t 931 xcb_dri3_set_drm_device_in_use (xcb_connection_t *c, 932 xcb_window_t window, 933 uint32_t drmMajor, 934 uint32_t drmMinor); 935 936 /** 937 * 938 * @param c The connection 939 * @return A cookie 940 * 941 * Delivers a request to the X server. 942 * 943 * This form can be used only if the request will not cause 944 * a reply to be generated. Any returned error will be 945 * saved for handling by xcb_request_check(). 946 */ 947 xcb_void_cookie_t 948 xcb_dri3_import_syncobj_checked (xcb_connection_t *c, 949 xcb_dri3_syncobj_t syncobj, 950 xcb_drawable_t drawable, 951 int32_t syncobj_fd); 952 953 /** 954 * 955 * @param c The connection 956 * @return A cookie 957 * 958 * Delivers a request to the X server. 959 * 960 */ 961 xcb_void_cookie_t 962 xcb_dri3_import_syncobj (xcb_connection_t *c, 963 xcb_dri3_syncobj_t syncobj, 964 xcb_drawable_t drawable, 965 int32_t syncobj_fd); 966 967 /** 968 * 969 * @param c The connection 970 * @return A cookie 971 * 972 * Delivers a request to the X server. 973 * 974 * This form can be used only if the request will not cause 975 * a reply to be generated. Any returned error will be 976 * saved for handling by xcb_request_check(). 977 */ 978 xcb_void_cookie_t 979 xcb_dri3_free_syncobj_checked (xcb_connection_t *c, 980 xcb_dri3_syncobj_t syncobj); 981 982 /** 983 * 984 * @param c The connection 985 * @return A cookie 986 * 987 * Delivers a request to the X server. 988 * 989 */ 990 xcb_void_cookie_t 991 xcb_dri3_free_syncobj (xcb_connection_t *c, 992 xcb_dri3_syncobj_t syncobj); 993 994 995 #ifdef __cplusplus 996 } 997 #endif 998 999 #endif 1000 1001 /** 1002 * @} 1003 */ 1004