1/* 2 * This file generated automatically from render.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6#include <string.h> 7#include <assert.h> 8#include "xcbext.h" 9#include "render.h" 10#include "xproto.h" 11 12xcb_extension_t xcb_render_id = { "RENDER", 0 }; 13 14 15/***************************************************************************** 16 ** 17 ** void xcb_render_glyph_next 18 ** 19 ** @param xcb_render_glyph_iterator_t *i 20 ** @returns void 21 ** 22 *****************************************************************************/ 23 24void 25xcb_render_glyph_next (xcb_render_glyph_iterator_t *i /**< */) 26{ 27 --i->rem; 28 ++i->data; 29 i->index += sizeof(xcb_render_glyph_t); 30} 31 32 33/***************************************************************************** 34 ** 35 ** xcb_generic_iterator_t xcb_render_glyph_end 36 ** 37 ** @param xcb_render_glyph_iterator_t i 38 ** @returns xcb_generic_iterator_t 39 ** 40 *****************************************************************************/ 41 42xcb_generic_iterator_t 43xcb_render_glyph_end (xcb_render_glyph_iterator_t i /**< */) 44{ 45 xcb_generic_iterator_t ret; 46 ret.data = i.data + i.rem; 47 ret.index = i.index + ((char *) ret.data - (char *) i.data); 48 ret.rem = 0; 49 return ret; 50} 51 52 53/***************************************************************************** 54 ** 55 ** void xcb_render_glyphset_next 56 ** 57 ** @param xcb_render_glyphset_iterator_t *i 58 ** @returns void 59 ** 60 *****************************************************************************/ 61 62void 63xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i /**< */) 64{ 65 --i->rem; 66 ++i->data; 67 i->index += sizeof(xcb_render_glyphset_t); 68} 69 70 71/***************************************************************************** 72 ** 73 ** xcb_generic_iterator_t xcb_render_glyphset_end 74 ** 75 ** @param xcb_render_glyphset_iterator_t i 76 ** @returns xcb_generic_iterator_t 77 ** 78 *****************************************************************************/ 79 80xcb_generic_iterator_t 81xcb_render_glyphset_end (xcb_render_glyphset_iterator_t i /**< */) 82{ 83 xcb_generic_iterator_t ret; 84 ret.data = i.data + i.rem; 85 ret.index = i.index + ((char *) ret.data - (char *) i.data); 86 ret.rem = 0; 87 return ret; 88} 89 90 91/***************************************************************************** 92 ** 93 ** void xcb_render_picture_next 94 ** 95 ** @param xcb_render_picture_iterator_t *i 96 ** @returns void 97 ** 98 *****************************************************************************/ 99 100void 101xcb_render_picture_next (xcb_render_picture_iterator_t *i /**< */) 102{ 103 --i->rem; 104 ++i->data; 105 i->index += sizeof(xcb_render_picture_t); 106} 107 108 109/***************************************************************************** 110 ** 111 ** xcb_generic_iterator_t xcb_render_picture_end 112 ** 113 ** @param xcb_render_picture_iterator_t i 114 ** @returns xcb_generic_iterator_t 115 ** 116 *****************************************************************************/ 117 118xcb_generic_iterator_t 119xcb_render_picture_end (xcb_render_picture_iterator_t i /**< */) 120{ 121 xcb_generic_iterator_t ret; 122 ret.data = i.data + i.rem; 123 ret.index = i.index + ((char *) ret.data - (char *) i.data); 124 ret.rem = 0; 125 return ret; 126} 127 128 129/***************************************************************************** 130 ** 131 ** void xcb_render_pictformat_next 132 ** 133 ** @param xcb_render_pictformat_iterator_t *i 134 ** @returns void 135 ** 136 *****************************************************************************/ 137 138void 139xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i /**< */) 140{ 141 --i->rem; 142 ++i->data; 143 i->index += sizeof(xcb_render_pictformat_t); 144} 145 146 147/***************************************************************************** 148 ** 149 ** xcb_generic_iterator_t xcb_render_pictformat_end 150 ** 151 ** @param xcb_render_pictformat_iterator_t i 152 ** @returns xcb_generic_iterator_t 153 ** 154 *****************************************************************************/ 155 156xcb_generic_iterator_t 157xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i /**< */) 158{ 159 xcb_generic_iterator_t ret; 160 ret.data = i.data + i.rem; 161 ret.index = i.index + ((char *) ret.data - (char *) i.data); 162 ret.rem = 0; 163 return ret; 164} 165 166 167/***************************************************************************** 168 ** 169 ** void xcb_render_fixed_next 170 ** 171 ** @param xcb_render_fixed_iterator_t *i 172 ** @returns void 173 ** 174 *****************************************************************************/ 175 176void 177xcb_render_fixed_next (xcb_render_fixed_iterator_t *i /**< */) 178{ 179 --i->rem; 180 ++i->data; 181 i->index += sizeof(xcb_render_fixed_t); 182} 183 184 185/***************************************************************************** 186 ** 187 ** xcb_generic_iterator_t xcb_render_fixed_end 188 ** 189 ** @param xcb_render_fixed_iterator_t i 190 ** @returns xcb_generic_iterator_t 191 ** 192 *****************************************************************************/ 193 194xcb_generic_iterator_t 195xcb_render_fixed_end (xcb_render_fixed_iterator_t i /**< */) 196{ 197 xcb_generic_iterator_t ret; 198 ret.data = i.data + i.rem; 199 ret.index = i.index + ((char *) ret.data - (char *) i.data); 200 ret.rem = 0; 201 return ret; 202} 203 204 205/***************************************************************************** 206 ** 207 ** void xcb_render_directformat_next 208 ** 209 ** @param xcb_render_directformat_iterator_t *i 210 ** @returns void 211 ** 212 *****************************************************************************/ 213 214void 215xcb_render_directformat_next (xcb_render_directformat_iterator_t *i /**< */) 216{ 217 --i->rem; 218 ++i->data; 219 i->index += sizeof(xcb_render_directformat_t); 220} 221 222 223/***************************************************************************** 224 ** 225 ** xcb_generic_iterator_t xcb_render_directformat_end 226 ** 227 ** @param xcb_render_directformat_iterator_t i 228 ** @returns xcb_generic_iterator_t 229 ** 230 *****************************************************************************/ 231 232xcb_generic_iterator_t 233xcb_render_directformat_end (xcb_render_directformat_iterator_t i /**< */) 234{ 235 xcb_generic_iterator_t ret; 236 ret.data = i.data + i.rem; 237 ret.index = i.index + ((char *) ret.data - (char *) i.data); 238 ret.rem = 0; 239 return ret; 240} 241 242 243/***************************************************************************** 244 ** 245 ** void xcb_render_pictforminfo_next 246 ** 247 ** @param xcb_render_pictforminfo_iterator_t *i 248 ** @returns void 249 ** 250 *****************************************************************************/ 251 252void 253xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i /**< */) 254{ 255 --i->rem; 256 ++i->data; 257 i->index += sizeof(xcb_render_pictforminfo_t); 258} 259 260 261/***************************************************************************** 262 ** 263 ** xcb_generic_iterator_t xcb_render_pictforminfo_end 264 ** 265 ** @param xcb_render_pictforminfo_iterator_t i 266 ** @returns xcb_generic_iterator_t 267 ** 268 *****************************************************************************/ 269 270xcb_generic_iterator_t 271xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i /**< */) 272{ 273 xcb_generic_iterator_t ret; 274 ret.data = i.data + i.rem; 275 ret.index = i.index + ((char *) ret.data - (char *) i.data); 276 ret.rem = 0; 277 return ret; 278} 279 280 281/***************************************************************************** 282 ** 283 ** void xcb_render_pictvisual_next 284 ** 285 ** @param xcb_render_pictvisual_iterator_t *i 286 ** @returns void 287 ** 288 *****************************************************************************/ 289 290void 291xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i /**< */) 292{ 293 --i->rem; 294 ++i->data; 295 i->index += sizeof(xcb_render_pictvisual_t); 296} 297 298 299/***************************************************************************** 300 ** 301 ** xcb_generic_iterator_t xcb_render_pictvisual_end 302 ** 303 ** @param xcb_render_pictvisual_iterator_t i 304 ** @returns xcb_generic_iterator_t 305 ** 306 *****************************************************************************/ 307 308xcb_generic_iterator_t 309xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i /**< */) 310{ 311 xcb_generic_iterator_t ret; 312 ret.data = i.data + i.rem; 313 ret.index = i.index + ((char *) ret.data - (char *) i.data); 314 ret.rem = 0; 315 return ret; 316} 317 318 319/***************************************************************************** 320 ** 321 ** xcb_render_pictvisual_t * xcb_render_pictdepth_visuals 322 ** 323 ** @param const xcb_render_pictdepth_t *R 324 ** @returns xcb_render_pictvisual_t * 325 ** 326 *****************************************************************************/ 327 328xcb_render_pictvisual_t * 329xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R /**< */) 330{ 331 return (xcb_render_pictvisual_t *) (R + 1); 332} 333 334 335/***************************************************************************** 336 ** 337 ** int xcb_render_pictdepth_visuals_length 338 ** 339 ** @param const xcb_render_pictdepth_t *R 340 ** @returns int 341 ** 342 *****************************************************************************/ 343 344int 345xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R /**< */) 346{ 347 return R->num_visuals; 348} 349 350 351/***************************************************************************** 352 ** 353 ** xcb_render_pictvisual_iterator_t xcb_render_pictdepth_visuals_iterator 354 ** 355 ** @param const xcb_render_pictdepth_t *R 356 ** @returns xcb_render_pictvisual_iterator_t 357 ** 358 *****************************************************************************/ 359 360xcb_render_pictvisual_iterator_t 361xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R /**< */) 362{ 363 xcb_render_pictvisual_iterator_t i; 364 i.data = (xcb_render_pictvisual_t *) (R + 1); 365 i.rem = R->num_visuals; 366 i.index = (char *) i.data - (char *) R; 367 return i; 368} 369 370 371/***************************************************************************** 372 ** 373 ** void xcb_render_pictdepth_next 374 ** 375 ** @param xcb_render_pictdepth_iterator_t *i 376 ** @returns void 377 ** 378 *****************************************************************************/ 379 380void 381xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i /**< */) 382{ 383 xcb_render_pictdepth_t *R = i->data; 384 xcb_generic_iterator_t child = xcb_render_pictvisual_end(xcb_render_pictdepth_visuals_iterator(R)); 385 --i->rem; 386 i->data = (xcb_render_pictdepth_t *) child.data; 387 i->index = child.index; 388} 389 390 391/***************************************************************************** 392 ** 393 ** xcb_generic_iterator_t xcb_render_pictdepth_end 394 ** 395 ** @param xcb_render_pictdepth_iterator_t i 396 ** @returns xcb_generic_iterator_t 397 ** 398 *****************************************************************************/ 399 400xcb_generic_iterator_t 401xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i /**< */) 402{ 403 xcb_generic_iterator_t ret; 404 while(i.rem > 0) 405 xcb_render_pictdepth_next(&i); 406 ret.data = i.data; 407 ret.rem = i.rem; 408 ret.index = i.index; 409 return ret; 410} 411 412 413/***************************************************************************** 414 ** 415 ** int xcb_render_pictscreen_depths_length 416 ** 417 ** @param const xcb_render_pictscreen_t *R 418 ** @returns int 419 ** 420 *****************************************************************************/ 421 422int 423xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R /**< */) 424{ 425 return R->num_depths; 426} 427 428 429/***************************************************************************** 430 ** 431 ** xcb_render_pictdepth_iterator_t xcb_render_pictscreen_depths_iterator 432 ** 433 ** @param const xcb_render_pictscreen_t *R 434 ** @returns xcb_render_pictdepth_iterator_t 435 ** 436 *****************************************************************************/ 437 438xcb_render_pictdepth_iterator_t 439xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R /**< */) 440{ 441 xcb_render_pictdepth_iterator_t i; 442 i.data = (xcb_render_pictdepth_t *) (R + 1); 443 i.rem = R->num_depths; 444 i.index = (char *) i.data - (char *) R; 445 return i; 446} 447 448 449/***************************************************************************** 450 ** 451 ** void xcb_render_pictscreen_next 452 ** 453 ** @param xcb_render_pictscreen_iterator_t *i 454 ** @returns void 455 ** 456 *****************************************************************************/ 457 458void 459xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i /**< */) 460{ 461 xcb_render_pictscreen_t *R = i->data; 462 xcb_generic_iterator_t child = xcb_render_pictdepth_end(xcb_render_pictscreen_depths_iterator(R)); 463 --i->rem; 464 i->data = (xcb_render_pictscreen_t *) child.data; 465 i->index = child.index; 466} 467 468 469/***************************************************************************** 470 ** 471 ** xcb_generic_iterator_t xcb_render_pictscreen_end 472 ** 473 ** @param xcb_render_pictscreen_iterator_t i 474 ** @returns xcb_generic_iterator_t 475 ** 476 *****************************************************************************/ 477 478xcb_generic_iterator_t 479xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i /**< */) 480{ 481 xcb_generic_iterator_t ret; 482 while(i.rem > 0) 483 xcb_render_pictscreen_next(&i); 484 ret.data = i.data; 485 ret.rem = i.rem; 486 ret.index = i.index; 487 return ret; 488} 489 490 491/***************************************************************************** 492 ** 493 ** void xcb_render_indexvalue_next 494 ** 495 ** @param xcb_render_indexvalue_iterator_t *i 496 ** @returns void 497 ** 498 *****************************************************************************/ 499 500void 501xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i /**< */) 502{ 503 --i->rem; 504 ++i->data; 505 i->index += sizeof(xcb_render_indexvalue_t); 506} 507 508 509/***************************************************************************** 510 ** 511 ** xcb_generic_iterator_t xcb_render_indexvalue_end 512 ** 513 ** @param xcb_render_indexvalue_iterator_t i 514 ** @returns xcb_generic_iterator_t 515 ** 516 *****************************************************************************/ 517 518xcb_generic_iterator_t 519xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i /**< */) 520{ 521 xcb_generic_iterator_t ret; 522 ret.data = i.data + i.rem; 523 ret.index = i.index + ((char *) ret.data - (char *) i.data); 524 ret.rem = 0; 525 return ret; 526} 527 528 529/***************************************************************************** 530 ** 531 ** void xcb_render_color_next 532 ** 533 ** @param xcb_render_color_iterator_t *i 534 ** @returns void 535 ** 536 *****************************************************************************/ 537 538void 539xcb_render_color_next (xcb_render_color_iterator_t *i /**< */) 540{ 541 --i->rem; 542 ++i->data; 543 i->index += sizeof(xcb_render_color_t); 544} 545 546 547/***************************************************************************** 548 ** 549 ** xcb_generic_iterator_t xcb_render_color_end 550 ** 551 ** @param xcb_render_color_iterator_t i 552 ** @returns xcb_generic_iterator_t 553 ** 554 *****************************************************************************/ 555 556xcb_generic_iterator_t 557xcb_render_color_end (xcb_render_color_iterator_t i /**< */) 558{ 559 xcb_generic_iterator_t ret; 560 ret.data = i.data + i.rem; 561 ret.index = i.index + ((char *) ret.data - (char *) i.data); 562 ret.rem = 0; 563 return ret; 564} 565 566 567/***************************************************************************** 568 ** 569 ** void xcb_render_pointfix_next 570 ** 571 ** @param xcb_render_pointfix_iterator_t *i 572 ** @returns void 573 ** 574 *****************************************************************************/ 575 576void 577xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i /**< */) 578{ 579 --i->rem; 580 ++i->data; 581 i->index += sizeof(xcb_render_pointfix_t); 582} 583 584 585/***************************************************************************** 586 ** 587 ** xcb_generic_iterator_t xcb_render_pointfix_end 588 ** 589 ** @param xcb_render_pointfix_iterator_t i 590 ** @returns xcb_generic_iterator_t 591 ** 592 *****************************************************************************/ 593 594xcb_generic_iterator_t 595xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i /**< */) 596{ 597 xcb_generic_iterator_t ret; 598 ret.data = i.data + i.rem; 599 ret.index = i.index + ((char *) ret.data - (char *) i.data); 600 ret.rem = 0; 601 return ret; 602} 603 604 605/***************************************************************************** 606 ** 607 ** void xcb_render_linefix_next 608 ** 609 ** @param xcb_render_linefix_iterator_t *i 610 ** @returns void 611 ** 612 *****************************************************************************/ 613 614void 615xcb_render_linefix_next (xcb_render_linefix_iterator_t *i /**< */) 616{ 617 --i->rem; 618 ++i->data; 619 i->index += sizeof(xcb_render_linefix_t); 620} 621 622 623/***************************************************************************** 624 ** 625 ** xcb_generic_iterator_t xcb_render_linefix_end 626 ** 627 ** @param xcb_render_linefix_iterator_t i 628 ** @returns xcb_generic_iterator_t 629 ** 630 *****************************************************************************/ 631 632xcb_generic_iterator_t 633xcb_render_linefix_end (xcb_render_linefix_iterator_t i /**< */) 634{ 635 xcb_generic_iterator_t ret; 636 ret.data = i.data + i.rem; 637 ret.index = i.index + ((char *) ret.data - (char *) i.data); 638 ret.rem = 0; 639 return ret; 640} 641 642 643/***************************************************************************** 644 ** 645 ** void xcb_render_triangle_next 646 ** 647 ** @param xcb_render_triangle_iterator_t *i 648 ** @returns void 649 ** 650 *****************************************************************************/ 651 652void 653xcb_render_triangle_next (xcb_render_triangle_iterator_t *i /**< */) 654{ 655 --i->rem; 656 ++i->data; 657 i->index += sizeof(xcb_render_triangle_t); 658} 659 660 661/***************************************************************************** 662 ** 663 ** xcb_generic_iterator_t xcb_render_triangle_end 664 ** 665 ** @param xcb_render_triangle_iterator_t i 666 ** @returns xcb_generic_iterator_t 667 ** 668 *****************************************************************************/ 669 670xcb_generic_iterator_t 671xcb_render_triangle_end (xcb_render_triangle_iterator_t i /**< */) 672{ 673 xcb_generic_iterator_t ret; 674 ret.data = i.data + i.rem; 675 ret.index = i.index + ((char *) ret.data - (char *) i.data); 676 ret.rem = 0; 677 return ret; 678} 679 680 681/***************************************************************************** 682 ** 683 ** void xcb_render_trapezoid_next 684 ** 685 ** @param xcb_render_trapezoid_iterator_t *i 686 ** @returns void 687 ** 688 *****************************************************************************/ 689 690void 691xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i /**< */) 692{ 693 --i->rem; 694 ++i->data; 695 i->index += sizeof(xcb_render_trapezoid_t); 696} 697 698 699/***************************************************************************** 700 ** 701 ** xcb_generic_iterator_t xcb_render_trapezoid_end 702 ** 703 ** @param xcb_render_trapezoid_iterator_t i 704 ** @returns xcb_generic_iterator_t 705 ** 706 *****************************************************************************/ 707 708xcb_generic_iterator_t 709xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i /**< */) 710{ 711 xcb_generic_iterator_t ret; 712 ret.data = i.data + i.rem; 713 ret.index = i.index + ((char *) ret.data - (char *) i.data); 714 ret.rem = 0; 715 return ret; 716} 717 718 719/***************************************************************************** 720 ** 721 ** void xcb_render_glyphinfo_next 722 ** 723 ** @param xcb_render_glyphinfo_iterator_t *i 724 ** @returns void 725 ** 726 *****************************************************************************/ 727 728void 729xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i /**< */) 730{ 731 --i->rem; 732 ++i->data; 733 i->index += sizeof(xcb_render_glyphinfo_t); 734} 735 736 737/***************************************************************************** 738 ** 739 ** xcb_generic_iterator_t xcb_render_glyphinfo_end 740 ** 741 ** @param xcb_render_glyphinfo_iterator_t i 742 ** @returns xcb_generic_iterator_t 743 ** 744 *****************************************************************************/ 745 746xcb_generic_iterator_t 747xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i /**< */) 748{ 749 xcb_generic_iterator_t ret; 750 ret.data = i.data + i.rem; 751 ret.index = i.index + ((char *) ret.data - (char *) i.data); 752 ret.rem = 0; 753 return ret; 754} 755 756 757/***************************************************************************** 758 ** 759 ** xcb_render_query_version_cookie_t xcb_render_query_version 760 ** 761 ** @param xcb_connection_t *c 762 ** @param uint32_t client_major_version 763 ** @param uint32_t client_minor_version 764 ** @returns xcb_render_query_version_cookie_t 765 ** 766 *****************************************************************************/ 767 768xcb_render_query_version_cookie_t 769xcb_render_query_version (xcb_connection_t *c /**< */, 770 uint32_t client_major_version /**< */, 771 uint32_t client_minor_version /**< */) 772{ 773 static const xcb_protocol_request_t xcb_req = { 774 /* count */ 2, 775 /* ext */ &xcb_render_id, 776 /* opcode */ XCB_RENDER_QUERY_VERSION, 777 /* isvoid */ 0 778 }; 779 780 struct iovec xcb_parts[4]; 781 xcb_render_query_version_cookie_t xcb_ret; 782 xcb_render_query_version_request_t xcb_out; 783 784 xcb_out.client_major_version = client_major_version; 785 xcb_out.client_minor_version = client_minor_version; 786 787 xcb_parts[2].iov_base = (char *) &xcb_out; 788 xcb_parts[2].iov_len = sizeof(xcb_out); 789 xcb_parts[3].iov_base = 0; 790 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 791 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 792 return xcb_ret; 793} 794 795 796/***************************************************************************** 797 ** 798 ** xcb_render_query_version_cookie_t xcb_render_query_version_unchecked 799 ** 800 ** @param xcb_connection_t *c 801 ** @param uint32_t client_major_version 802 ** @param uint32_t client_minor_version 803 ** @returns xcb_render_query_version_cookie_t 804 ** 805 *****************************************************************************/ 806 807xcb_render_query_version_cookie_t 808xcb_render_query_version_unchecked (xcb_connection_t *c /**< */, 809 uint32_t client_major_version /**< */, 810 uint32_t client_minor_version /**< */) 811{ 812 static const xcb_protocol_request_t xcb_req = { 813 /* count */ 2, 814 /* ext */ &xcb_render_id, 815 /* opcode */ XCB_RENDER_QUERY_VERSION, 816 /* isvoid */ 0 817 }; 818 819 struct iovec xcb_parts[4]; 820 xcb_render_query_version_cookie_t xcb_ret; 821 xcb_render_query_version_request_t xcb_out; 822 823 xcb_out.client_major_version = client_major_version; 824 xcb_out.client_minor_version = client_minor_version; 825 826 xcb_parts[2].iov_base = (char *) &xcb_out; 827 xcb_parts[2].iov_len = sizeof(xcb_out); 828 xcb_parts[3].iov_base = 0; 829 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 830 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 831 return xcb_ret; 832} 833 834 835/***************************************************************************** 836 ** 837 ** xcb_render_query_version_reply_t * xcb_render_query_version_reply 838 ** 839 ** @param xcb_connection_t *c 840 ** @param xcb_render_query_version_cookie_t cookie 841 ** @param xcb_generic_error_t **e 842 ** @returns xcb_render_query_version_reply_t * 843 ** 844 *****************************************************************************/ 845 846xcb_render_query_version_reply_t * 847xcb_render_query_version_reply (xcb_connection_t *c /**< */, 848 xcb_render_query_version_cookie_t cookie /**< */, 849 xcb_generic_error_t **e /**< */) 850{ 851 return (xcb_render_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 852} 853 854 855/***************************************************************************** 856 ** 857 ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats 858 ** 859 ** @param xcb_connection_t *c 860 ** @returns xcb_render_query_pict_formats_cookie_t 861 ** 862 *****************************************************************************/ 863 864xcb_render_query_pict_formats_cookie_t 865xcb_render_query_pict_formats (xcb_connection_t *c /**< */) 866{ 867 static const xcb_protocol_request_t xcb_req = { 868 /* count */ 2, 869 /* ext */ &xcb_render_id, 870 /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS, 871 /* isvoid */ 0 872 }; 873 874 struct iovec xcb_parts[4]; 875 xcb_render_query_pict_formats_cookie_t xcb_ret; 876 xcb_render_query_pict_formats_request_t xcb_out; 877 878 879 xcb_parts[2].iov_base = (char *) &xcb_out; 880 xcb_parts[2].iov_len = sizeof(xcb_out); 881 xcb_parts[3].iov_base = 0; 882 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 883 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 884 return xcb_ret; 885} 886 887 888/***************************************************************************** 889 ** 890 ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats_unchecked 891 ** 892 ** @param xcb_connection_t *c 893 ** @returns xcb_render_query_pict_formats_cookie_t 894 ** 895 *****************************************************************************/ 896 897xcb_render_query_pict_formats_cookie_t 898xcb_render_query_pict_formats_unchecked (xcb_connection_t *c /**< */) 899{ 900 static const xcb_protocol_request_t xcb_req = { 901 /* count */ 2, 902 /* ext */ &xcb_render_id, 903 /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS, 904 /* isvoid */ 0 905 }; 906 907 struct iovec xcb_parts[4]; 908 xcb_render_query_pict_formats_cookie_t xcb_ret; 909 xcb_render_query_pict_formats_request_t xcb_out; 910 911 912 xcb_parts[2].iov_base = (char *) &xcb_out; 913 xcb_parts[2].iov_len = sizeof(xcb_out); 914 xcb_parts[3].iov_base = 0; 915 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 916 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 917 return xcb_ret; 918} 919 920 921/***************************************************************************** 922 ** 923 ** xcb_render_pictforminfo_t * xcb_render_query_pict_formats_formats 924 ** 925 ** @param const xcb_render_query_pict_formats_reply_t *R 926 ** @returns xcb_render_pictforminfo_t * 927 ** 928 *****************************************************************************/ 929 930xcb_render_pictforminfo_t * 931xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R /**< */) 932{ 933 return (xcb_render_pictforminfo_t *) (R + 1); 934} 935 936 937/***************************************************************************** 938 ** 939 ** int xcb_render_query_pict_formats_formats_length 940 ** 941 ** @param const xcb_render_query_pict_formats_reply_t *R 942 ** @returns int 943 ** 944 *****************************************************************************/ 945 946int 947xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R /**< */) 948{ 949 return R->num_formats; 950} 951 952 953/***************************************************************************** 954 ** 955 ** xcb_render_pictforminfo_iterator_t xcb_render_query_pict_formats_formats_iterator 956 ** 957 ** @param const xcb_render_query_pict_formats_reply_t *R 958 ** @returns xcb_render_pictforminfo_iterator_t 959 ** 960 *****************************************************************************/ 961 962xcb_render_pictforminfo_iterator_t 963xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */) 964{ 965 xcb_render_pictforminfo_iterator_t i; 966 i.data = (xcb_render_pictforminfo_t *) (R + 1); 967 i.rem = R->num_formats; 968 i.index = (char *) i.data - (char *) R; 969 return i; 970} 971 972 973/***************************************************************************** 974 ** 975 ** int xcb_render_query_pict_formats_screens_length 976 ** 977 ** @param const xcb_render_query_pict_formats_reply_t *R 978 ** @returns int 979 ** 980 *****************************************************************************/ 981 982int 983xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R /**< */) 984{ 985 return R->num_screens; 986} 987 988 989/***************************************************************************** 990 ** 991 ** xcb_render_pictscreen_iterator_t xcb_render_query_pict_formats_screens_iterator 992 ** 993 ** @param const xcb_render_query_pict_formats_reply_t *R 994 ** @returns xcb_render_pictscreen_iterator_t 995 ** 996 *****************************************************************************/ 997 998xcb_render_pictscreen_iterator_t 999xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */) 1000{ 1001 xcb_render_pictscreen_iterator_t i; 1002 xcb_generic_iterator_t prev = xcb_render_pictforminfo_end(xcb_render_query_pict_formats_formats_iterator(R)); 1003 i.data = (xcb_render_pictscreen_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_render_pictscreen_t, prev.index)); 1004 i.rem = R->num_screens; 1005 i.index = (char *) i.data - (char *) R; 1006 return i; 1007} 1008 1009 1010/***************************************************************************** 1011 ** 1012 ** uint32_t * xcb_render_query_pict_formats_subpixels 1013 ** 1014 ** @param const xcb_render_query_pict_formats_reply_t *R 1015 ** @returns uint32_t * 1016 ** 1017 *****************************************************************************/ 1018 1019uint32_t * 1020xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R /**< */) 1021{ 1022 xcb_generic_iterator_t prev = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R)); 1023 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); 1024} 1025 1026 1027/***************************************************************************** 1028 ** 1029 ** int xcb_render_query_pict_formats_subpixels_length 1030 ** 1031 ** @param const xcb_render_query_pict_formats_reply_t *R 1032 ** @returns int 1033 ** 1034 *****************************************************************************/ 1035 1036int 1037xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R /**< */) 1038{ 1039 return R->num_subpixel; 1040} 1041 1042 1043/***************************************************************************** 1044 ** 1045 ** xcb_generic_iterator_t xcb_render_query_pict_formats_subpixels_end 1046 ** 1047 ** @param const xcb_render_query_pict_formats_reply_t *R 1048 ** @returns xcb_generic_iterator_t 1049 ** 1050 *****************************************************************************/ 1051 1052xcb_generic_iterator_t 1053xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R /**< */) 1054{ 1055 xcb_generic_iterator_t i; 1056 xcb_generic_iterator_t child = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R)); 1057 i.data = ((uint32_t *) child.data) + (R->num_subpixel); 1058 i.rem = 0; 1059 i.index = (char *) i.data - (char *) R; 1060 return i; 1061} 1062 1063 1064/***************************************************************************** 1065 ** 1066 ** xcb_render_query_pict_formats_reply_t * xcb_render_query_pict_formats_reply 1067 ** 1068 ** @param xcb_connection_t *c 1069 ** @param xcb_render_query_pict_formats_cookie_t cookie 1070 ** @param xcb_generic_error_t **e 1071 ** @returns xcb_render_query_pict_formats_reply_t * 1072 ** 1073 *****************************************************************************/ 1074 1075xcb_render_query_pict_formats_reply_t * 1076xcb_render_query_pict_formats_reply (xcb_connection_t *c /**< */, 1077 xcb_render_query_pict_formats_cookie_t cookie /**< */, 1078 xcb_generic_error_t **e /**< */) 1079{ 1080 return (xcb_render_query_pict_formats_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1081} 1082 1083 1084/***************************************************************************** 1085 ** 1086 ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values 1087 ** 1088 ** @param xcb_connection_t *c 1089 ** @param xcb_render_pictformat_t format 1090 ** @returns xcb_render_query_pict_index_values_cookie_t 1091 ** 1092 *****************************************************************************/ 1093 1094xcb_render_query_pict_index_values_cookie_t 1095xcb_render_query_pict_index_values (xcb_connection_t *c /**< */, 1096 xcb_render_pictformat_t format /**< */) 1097{ 1098 static const xcb_protocol_request_t xcb_req = { 1099 /* count */ 2, 1100 /* ext */ &xcb_render_id, 1101 /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES, 1102 /* isvoid */ 0 1103 }; 1104 1105 struct iovec xcb_parts[4]; 1106 xcb_render_query_pict_index_values_cookie_t xcb_ret; 1107 xcb_render_query_pict_index_values_request_t xcb_out; 1108 1109 xcb_out.format = format; 1110 1111 xcb_parts[2].iov_base = (char *) &xcb_out; 1112 xcb_parts[2].iov_len = sizeof(xcb_out); 1113 xcb_parts[3].iov_base = 0; 1114 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1115 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1116 return xcb_ret; 1117} 1118 1119 1120/***************************************************************************** 1121 ** 1122 ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values_unchecked 1123 ** 1124 ** @param xcb_connection_t *c 1125 ** @param xcb_render_pictformat_t format 1126 ** @returns xcb_render_query_pict_index_values_cookie_t 1127 ** 1128 *****************************************************************************/ 1129 1130xcb_render_query_pict_index_values_cookie_t 1131xcb_render_query_pict_index_values_unchecked (xcb_connection_t *c /**< */, 1132 xcb_render_pictformat_t format /**< */) 1133{ 1134 static const xcb_protocol_request_t xcb_req = { 1135 /* count */ 2, 1136 /* ext */ &xcb_render_id, 1137 /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES, 1138 /* isvoid */ 0 1139 }; 1140 1141 struct iovec xcb_parts[4]; 1142 xcb_render_query_pict_index_values_cookie_t xcb_ret; 1143 xcb_render_query_pict_index_values_request_t xcb_out; 1144 1145 xcb_out.format = format; 1146 1147 xcb_parts[2].iov_base = (char *) &xcb_out; 1148 xcb_parts[2].iov_len = sizeof(xcb_out); 1149 xcb_parts[3].iov_base = 0; 1150 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1151 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1152 return xcb_ret; 1153} 1154 1155 1156/***************************************************************************** 1157 ** 1158 ** xcb_render_indexvalue_t * xcb_render_query_pict_index_values_values 1159 ** 1160 ** @param const xcb_render_query_pict_index_values_reply_t *R 1161 ** @returns xcb_render_indexvalue_t * 1162 ** 1163 *****************************************************************************/ 1164 1165xcb_render_indexvalue_t * 1166xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R /**< */) 1167{ 1168 return (xcb_render_indexvalue_t *) (R + 1); 1169} 1170 1171 1172/***************************************************************************** 1173 ** 1174 ** int xcb_render_query_pict_index_values_values_length 1175 ** 1176 ** @param const xcb_render_query_pict_index_values_reply_t *R 1177 ** @returns int 1178 ** 1179 *****************************************************************************/ 1180 1181int 1182xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R /**< */) 1183{ 1184 return R->num_values; 1185} 1186 1187 1188/***************************************************************************** 1189 ** 1190 ** xcb_render_indexvalue_iterator_t xcb_render_query_pict_index_values_values_iterator 1191 ** 1192 ** @param const xcb_render_query_pict_index_values_reply_t *R 1193 ** @returns xcb_render_indexvalue_iterator_t 1194 ** 1195 *****************************************************************************/ 1196 1197xcb_render_indexvalue_iterator_t 1198xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R /**< */) 1199{ 1200 xcb_render_indexvalue_iterator_t i; 1201 i.data = (xcb_render_indexvalue_t *) (R + 1); 1202 i.rem = R->num_values; 1203 i.index = (char *) i.data - (char *) R; 1204 return i; 1205} 1206 1207 1208/***************************************************************************** 1209 ** 1210 ** xcb_render_query_pict_index_values_reply_t * xcb_render_query_pict_index_values_reply 1211 ** 1212 ** @param xcb_connection_t *c 1213 ** @param xcb_render_query_pict_index_values_cookie_t cookie 1214 ** @param xcb_generic_error_t **e 1215 ** @returns xcb_render_query_pict_index_values_reply_t * 1216 ** 1217 *****************************************************************************/ 1218 1219xcb_render_query_pict_index_values_reply_t * 1220xcb_render_query_pict_index_values_reply (xcb_connection_t *c /**< */, 1221 xcb_render_query_pict_index_values_cookie_t cookie /**< */, 1222 xcb_generic_error_t **e /**< */) 1223{ 1224 return (xcb_render_query_pict_index_values_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1225} 1226 1227 1228/***************************************************************************** 1229 ** 1230 ** xcb_void_cookie_t xcb_render_create_picture_checked 1231 ** 1232 ** @param xcb_connection_t *c 1233 ** @param xcb_render_picture_t pid 1234 ** @param xcb_drawable_t drawable 1235 ** @param xcb_render_pictformat_t format 1236 ** @param uint32_t value_mask 1237 ** @param const uint32_t *value_list 1238 ** @returns xcb_void_cookie_t 1239 ** 1240 *****************************************************************************/ 1241 1242xcb_void_cookie_t 1243xcb_render_create_picture_checked (xcb_connection_t *c /**< */, 1244 xcb_render_picture_t pid /**< */, 1245 xcb_drawable_t drawable /**< */, 1246 xcb_render_pictformat_t format /**< */, 1247 uint32_t value_mask /**< */, 1248 const uint32_t *value_list /**< */) 1249{ 1250 static const xcb_protocol_request_t xcb_req = { 1251 /* count */ 4, 1252 /* ext */ &xcb_render_id, 1253 /* opcode */ XCB_RENDER_CREATE_PICTURE, 1254 /* isvoid */ 1 1255 }; 1256 1257 struct iovec xcb_parts[6]; 1258 xcb_void_cookie_t xcb_ret; 1259 xcb_render_create_picture_request_t xcb_out; 1260 1261 xcb_out.pid = pid; 1262 xcb_out.drawable = drawable; 1263 xcb_out.format = format; 1264 xcb_out.value_mask = value_mask; 1265 1266 xcb_parts[2].iov_base = (char *) &xcb_out; 1267 xcb_parts[2].iov_len = sizeof(xcb_out); 1268 xcb_parts[3].iov_base = 0; 1269 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1270 xcb_parts[4].iov_base = (char *) value_list; 1271 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1272 xcb_parts[5].iov_base = 0; 1273 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1274 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1275 return xcb_ret; 1276} 1277 1278 1279/***************************************************************************** 1280 ** 1281 ** xcb_void_cookie_t xcb_render_create_picture 1282 ** 1283 ** @param xcb_connection_t *c 1284 ** @param xcb_render_picture_t pid 1285 ** @param xcb_drawable_t drawable 1286 ** @param xcb_render_pictformat_t format 1287 ** @param uint32_t value_mask 1288 ** @param const uint32_t *value_list 1289 ** @returns xcb_void_cookie_t 1290 ** 1291 *****************************************************************************/ 1292 1293xcb_void_cookie_t 1294xcb_render_create_picture (xcb_connection_t *c /**< */, 1295 xcb_render_picture_t pid /**< */, 1296 xcb_drawable_t drawable /**< */, 1297 xcb_render_pictformat_t format /**< */, 1298 uint32_t value_mask /**< */, 1299 const uint32_t *value_list /**< */) 1300{ 1301 static const xcb_protocol_request_t xcb_req = { 1302 /* count */ 4, 1303 /* ext */ &xcb_render_id, 1304 /* opcode */ XCB_RENDER_CREATE_PICTURE, 1305 /* isvoid */ 1 1306 }; 1307 1308 struct iovec xcb_parts[6]; 1309 xcb_void_cookie_t xcb_ret; 1310 xcb_render_create_picture_request_t xcb_out; 1311 1312 xcb_out.pid = pid; 1313 xcb_out.drawable = drawable; 1314 xcb_out.format = format; 1315 xcb_out.value_mask = value_mask; 1316 1317 xcb_parts[2].iov_base = (char *) &xcb_out; 1318 xcb_parts[2].iov_len = sizeof(xcb_out); 1319 xcb_parts[3].iov_base = 0; 1320 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1321 xcb_parts[4].iov_base = (char *) value_list; 1322 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1323 xcb_parts[5].iov_base = 0; 1324 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1325 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1326 return xcb_ret; 1327} 1328 1329 1330/***************************************************************************** 1331 ** 1332 ** xcb_void_cookie_t xcb_render_change_picture_checked 1333 ** 1334 ** @param xcb_connection_t *c 1335 ** @param xcb_render_picture_t picture 1336 ** @param uint32_t value_mask 1337 ** @param const uint32_t *value_list 1338 ** @returns xcb_void_cookie_t 1339 ** 1340 *****************************************************************************/ 1341 1342xcb_void_cookie_t 1343xcb_render_change_picture_checked (xcb_connection_t *c /**< */, 1344 xcb_render_picture_t picture /**< */, 1345 uint32_t value_mask /**< */, 1346 const uint32_t *value_list /**< */) 1347{ 1348 static const xcb_protocol_request_t xcb_req = { 1349 /* count */ 4, 1350 /* ext */ &xcb_render_id, 1351 /* opcode */ XCB_RENDER_CHANGE_PICTURE, 1352 /* isvoid */ 1 1353 }; 1354 1355 struct iovec xcb_parts[6]; 1356 xcb_void_cookie_t xcb_ret; 1357 xcb_render_change_picture_request_t xcb_out; 1358 1359 xcb_out.picture = picture; 1360 xcb_out.value_mask = value_mask; 1361 1362 xcb_parts[2].iov_base = (char *) &xcb_out; 1363 xcb_parts[2].iov_len = sizeof(xcb_out); 1364 xcb_parts[3].iov_base = 0; 1365 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1366 xcb_parts[4].iov_base = (char *) value_list; 1367 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1368 xcb_parts[5].iov_base = 0; 1369 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1370 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1371 return xcb_ret; 1372} 1373 1374 1375/***************************************************************************** 1376 ** 1377 ** xcb_void_cookie_t xcb_render_change_picture 1378 ** 1379 ** @param xcb_connection_t *c 1380 ** @param xcb_render_picture_t picture 1381 ** @param uint32_t value_mask 1382 ** @param const uint32_t *value_list 1383 ** @returns xcb_void_cookie_t 1384 ** 1385 *****************************************************************************/ 1386 1387xcb_void_cookie_t 1388xcb_render_change_picture (xcb_connection_t *c /**< */, 1389 xcb_render_picture_t picture /**< */, 1390 uint32_t value_mask /**< */, 1391 const uint32_t *value_list /**< */) 1392{ 1393 static const xcb_protocol_request_t xcb_req = { 1394 /* count */ 4, 1395 /* ext */ &xcb_render_id, 1396 /* opcode */ XCB_RENDER_CHANGE_PICTURE, 1397 /* isvoid */ 1 1398 }; 1399 1400 struct iovec xcb_parts[6]; 1401 xcb_void_cookie_t xcb_ret; 1402 xcb_render_change_picture_request_t xcb_out; 1403 1404 xcb_out.picture = picture; 1405 xcb_out.value_mask = value_mask; 1406 1407 xcb_parts[2].iov_base = (char *) &xcb_out; 1408 xcb_parts[2].iov_len = sizeof(xcb_out); 1409 xcb_parts[3].iov_base = 0; 1410 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1411 xcb_parts[4].iov_base = (char *) value_list; 1412 xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); 1413 xcb_parts[5].iov_base = 0; 1414 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1415 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1416 return xcb_ret; 1417} 1418 1419 1420/***************************************************************************** 1421 ** 1422 ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles_checked 1423 ** 1424 ** @param xcb_connection_t *c 1425 ** @param xcb_render_picture_t picture 1426 ** @param int16_t clip_x_origin 1427 ** @param int16_t clip_y_origin 1428 ** @param uint32_t rectangles_len 1429 ** @param const xcb_rectangle_t *rectangles 1430 ** @returns xcb_void_cookie_t 1431 ** 1432 *****************************************************************************/ 1433 1434xcb_void_cookie_t 1435xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t *c /**< */, 1436 xcb_render_picture_t picture /**< */, 1437 int16_t clip_x_origin /**< */, 1438 int16_t clip_y_origin /**< */, 1439 uint32_t rectangles_len /**< */, 1440 const xcb_rectangle_t *rectangles /**< */) 1441{ 1442 static const xcb_protocol_request_t xcb_req = { 1443 /* count */ 4, 1444 /* ext */ &xcb_render_id, 1445 /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES, 1446 /* isvoid */ 1 1447 }; 1448 1449 struct iovec xcb_parts[6]; 1450 xcb_void_cookie_t xcb_ret; 1451 xcb_render_set_picture_clip_rectangles_request_t xcb_out; 1452 1453 xcb_out.picture = picture; 1454 xcb_out.clip_x_origin = clip_x_origin; 1455 xcb_out.clip_y_origin = clip_y_origin; 1456 1457 xcb_parts[2].iov_base = (char *) &xcb_out; 1458 xcb_parts[2].iov_len = sizeof(xcb_out); 1459 xcb_parts[3].iov_base = 0; 1460 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1461 xcb_parts[4].iov_base = (char *) rectangles; 1462 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 1463 xcb_parts[5].iov_base = 0; 1464 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1465 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1466 return xcb_ret; 1467} 1468 1469 1470/***************************************************************************** 1471 ** 1472 ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles 1473 ** 1474 ** @param xcb_connection_t *c 1475 ** @param xcb_render_picture_t picture 1476 ** @param int16_t clip_x_origin 1477 ** @param int16_t clip_y_origin 1478 ** @param uint32_t rectangles_len 1479 ** @param const xcb_rectangle_t *rectangles 1480 ** @returns xcb_void_cookie_t 1481 ** 1482 *****************************************************************************/ 1483 1484xcb_void_cookie_t 1485xcb_render_set_picture_clip_rectangles (xcb_connection_t *c /**< */, 1486 xcb_render_picture_t picture /**< */, 1487 int16_t clip_x_origin /**< */, 1488 int16_t clip_y_origin /**< */, 1489 uint32_t rectangles_len /**< */, 1490 const xcb_rectangle_t *rectangles /**< */) 1491{ 1492 static const xcb_protocol_request_t xcb_req = { 1493 /* count */ 4, 1494 /* ext */ &xcb_render_id, 1495 /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES, 1496 /* isvoid */ 1 1497 }; 1498 1499 struct iovec xcb_parts[6]; 1500 xcb_void_cookie_t xcb_ret; 1501 xcb_render_set_picture_clip_rectangles_request_t xcb_out; 1502 1503 xcb_out.picture = picture; 1504 xcb_out.clip_x_origin = clip_x_origin; 1505 xcb_out.clip_y_origin = clip_y_origin; 1506 1507 xcb_parts[2].iov_base = (char *) &xcb_out; 1508 xcb_parts[2].iov_len = sizeof(xcb_out); 1509 xcb_parts[3].iov_base = 0; 1510 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1511 xcb_parts[4].iov_base = (char *) rectangles; 1512 xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); 1513 xcb_parts[5].iov_base = 0; 1514 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1515 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1516 return xcb_ret; 1517} 1518 1519 1520/***************************************************************************** 1521 ** 1522 ** xcb_void_cookie_t xcb_render_free_picture_checked 1523 ** 1524 ** @param xcb_connection_t *c 1525 ** @param xcb_render_picture_t picture 1526 ** @returns xcb_void_cookie_t 1527 ** 1528 *****************************************************************************/ 1529 1530xcb_void_cookie_t 1531xcb_render_free_picture_checked (xcb_connection_t *c /**< */, 1532 xcb_render_picture_t picture /**< */) 1533{ 1534 static const xcb_protocol_request_t xcb_req = { 1535 /* count */ 2, 1536 /* ext */ &xcb_render_id, 1537 /* opcode */ XCB_RENDER_FREE_PICTURE, 1538 /* isvoid */ 1 1539 }; 1540 1541 struct iovec xcb_parts[4]; 1542 xcb_void_cookie_t xcb_ret; 1543 xcb_render_free_picture_request_t xcb_out; 1544 1545 xcb_out.picture = picture; 1546 1547 xcb_parts[2].iov_base = (char *) &xcb_out; 1548 xcb_parts[2].iov_len = sizeof(xcb_out); 1549 xcb_parts[3].iov_base = 0; 1550 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1551 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1552 return xcb_ret; 1553} 1554 1555 1556/***************************************************************************** 1557 ** 1558 ** xcb_void_cookie_t xcb_render_free_picture 1559 ** 1560 ** @param xcb_connection_t *c 1561 ** @param xcb_render_picture_t picture 1562 ** @returns xcb_void_cookie_t 1563 ** 1564 *****************************************************************************/ 1565 1566xcb_void_cookie_t 1567xcb_render_free_picture (xcb_connection_t *c /**< */, 1568 xcb_render_picture_t picture /**< */) 1569{ 1570 static const xcb_protocol_request_t xcb_req = { 1571 /* count */ 2, 1572 /* ext */ &xcb_render_id, 1573 /* opcode */ XCB_RENDER_FREE_PICTURE, 1574 /* isvoid */ 1 1575 }; 1576 1577 struct iovec xcb_parts[4]; 1578 xcb_void_cookie_t xcb_ret; 1579 xcb_render_free_picture_request_t xcb_out; 1580 1581 xcb_out.picture = picture; 1582 1583 xcb_parts[2].iov_base = (char *) &xcb_out; 1584 xcb_parts[2].iov_len = sizeof(xcb_out); 1585 xcb_parts[3].iov_base = 0; 1586 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1587 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1588 return xcb_ret; 1589} 1590 1591 1592/***************************************************************************** 1593 ** 1594 ** xcb_void_cookie_t xcb_render_composite_checked 1595 ** 1596 ** @param xcb_connection_t *c 1597 ** @param uint8_t op 1598 ** @param xcb_render_picture_t src 1599 ** @param xcb_render_picture_t mask 1600 ** @param xcb_render_picture_t dst 1601 ** @param int16_t src_x 1602 ** @param int16_t src_y 1603 ** @param int16_t mask_x 1604 ** @param int16_t mask_y 1605 ** @param int16_t dst_x 1606 ** @param int16_t dst_y 1607 ** @param uint16_t width 1608 ** @param uint16_t height 1609 ** @returns xcb_void_cookie_t 1610 ** 1611 *****************************************************************************/ 1612 1613xcb_void_cookie_t 1614xcb_render_composite_checked (xcb_connection_t *c /**< */, 1615 uint8_t op /**< */, 1616 xcb_render_picture_t src /**< */, 1617 xcb_render_picture_t mask /**< */, 1618 xcb_render_picture_t dst /**< */, 1619 int16_t src_x /**< */, 1620 int16_t src_y /**< */, 1621 int16_t mask_x /**< */, 1622 int16_t mask_y /**< */, 1623 int16_t dst_x /**< */, 1624 int16_t dst_y /**< */, 1625 uint16_t width /**< */, 1626 uint16_t height /**< */) 1627{ 1628 static const xcb_protocol_request_t xcb_req = { 1629 /* count */ 2, 1630 /* ext */ &xcb_render_id, 1631 /* opcode */ XCB_RENDER_COMPOSITE, 1632 /* isvoid */ 1 1633 }; 1634 1635 struct iovec xcb_parts[4]; 1636 xcb_void_cookie_t xcb_ret; 1637 xcb_render_composite_request_t xcb_out; 1638 1639 xcb_out.op = op; 1640 memset(xcb_out.pad0, 0, 3); 1641 xcb_out.src = src; 1642 xcb_out.mask = mask; 1643 xcb_out.dst = dst; 1644 xcb_out.src_x = src_x; 1645 xcb_out.src_y = src_y; 1646 xcb_out.mask_x = mask_x; 1647 xcb_out.mask_y = mask_y; 1648 xcb_out.dst_x = dst_x; 1649 xcb_out.dst_y = dst_y; 1650 xcb_out.width = width; 1651 xcb_out.height = height; 1652 1653 xcb_parts[2].iov_base = (char *) &xcb_out; 1654 xcb_parts[2].iov_len = sizeof(xcb_out); 1655 xcb_parts[3].iov_base = 0; 1656 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1657 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1658 return xcb_ret; 1659} 1660 1661 1662/***************************************************************************** 1663 ** 1664 ** xcb_void_cookie_t xcb_render_composite 1665 ** 1666 ** @param xcb_connection_t *c 1667 ** @param uint8_t op 1668 ** @param xcb_render_picture_t src 1669 ** @param xcb_render_picture_t mask 1670 ** @param xcb_render_picture_t dst 1671 ** @param int16_t src_x 1672 ** @param int16_t src_y 1673 ** @param int16_t mask_x 1674 ** @param int16_t mask_y 1675 ** @param int16_t dst_x 1676 ** @param int16_t dst_y 1677 ** @param uint16_t width 1678 ** @param uint16_t height 1679 ** @returns xcb_void_cookie_t 1680 ** 1681 *****************************************************************************/ 1682 1683xcb_void_cookie_t 1684xcb_render_composite (xcb_connection_t *c /**< */, 1685 uint8_t op /**< */, 1686 xcb_render_picture_t src /**< */, 1687 xcb_render_picture_t mask /**< */, 1688 xcb_render_picture_t dst /**< */, 1689 int16_t src_x /**< */, 1690 int16_t src_y /**< */, 1691 int16_t mask_x /**< */, 1692 int16_t mask_y /**< */, 1693 int16_t dst_x /**< */, 1694 int16_t dst_y /**< */, 1695 uint16_t width /**< */, 1696 uint16_t height /**< */) 1697{ 1698 static const xcb_protocol_request_t xcb_req = { 1699 /* count */ 2, 1700 /* ext */ &xcb_render_id, 1701 /* opcode */ XCB_RENDER_COMPOSITE, 1702 /* isvoid */ 1 1703 }; 1704 1705 struct iovec xcb_parts[4]; 1706 xcb_void_cookie_t xcb_ret; 1707 xcb_render_composite_request_t xcb_out; 1708 1709 xcb_out.op = op; 1710 memset(xcb_out.pad0, 0, 3); 1711 xcb_out.src = src; 1712 xcb_out.mask = mask; 1713 xcb_out.dst = dst; 1714 xcb_out.src_x = src_x; 1715 xcb_out.src_y = src_y; 1716 xcb_out.mask_x = mask_x; 1717 xcb_out.mask_y = mask_y; 1718 xcb_out.dst_x = dst_x; 1719 xcb_out.dst_y = dst_y; 1720 xcb_out.width = width; 1721 xcb_out.height = height; 1722 1723 xcb_parts[2].iov_base = (char *) &xcb_out; 1724 xcb_parts[2].iov_len = sizeof(xcb_out); 1725 xcb_parts[3].iov_base = 0; 1726 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1727 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1728 return xcb_ret; 1729} 1730 1731 1732/***************************************************************************** 1733 ** 1734 ** xcb_void_cookie_t xcb_render_trapezoids_checked 1735 ** 1736 ** @param xcb_connection_t *c 1737 ** @param uint8_t op 1738 ** @param xcb_render_picture_t src 1739 ** @param xcb_render_picture_t dst 1740 ** @param xcb_render_pictformat_t mask_format 1741 ** @param int16_t src_x 1742 ** @param int16_t src_y 1743 ** @param uint32_t traps_len 1744 ** @param const xcb_render_trapezoid_t *traps 1745 ** @returns xcb_void_cookie_t 1746 ** 1747 *****************************************************************************/ 1748 1749xcb_void_cookie_t 1750xcb_render_trapezoids_checked (xcb_connection_t *c /**< */, 1751 uint8_t op /**< */, 1752 xcb_render_picture_t src /**< */, 1753 xcb_render_picture_t dst /**< */, 1754 xcb_render_pictformat_t mask_format /**< */, 1755 int16_t src_x /**< */, 1756 int16_t src_y /**< */, 1757 uint32_t traps_len /**< */, 1758 const xcb_render_trapezoid_t *traps /**< */) 1759{ 1760 static const xcb_protocol_request_t xcb_req = { 1761 /* count */ 4, 1762 /* ext */ &xcb_render_id, 1763 /* opcode */ XCB_RENDER_TRAPEZOIDS, 1764 /* isvoid */ 1 1765 }; 1766 1767 struct iovec xcb_parts[6]; 1768 xcb_void_cookie_t xcb_ret; 1769 xcb_render_trapezoids_request_t xcb_out; 1770 1771 xcb_out.op = op; 1772 memset(xcb_out.pad0, 0, 3); 1773 xcb_out.src = src; 1774 xcb_out.dst = dst; 1775 xcb_out.mask_format = mask_format; 1776 xcb_out.src_x = src_x; 1777 xcb_out.src_y = src_y; 1778 1779 xcb_parts[2].iov_base = (char *) &xcb_out; 1780 xcb_parts[2].iov_len = sizeof(xcb_out); 1781 xcb_parts[3].iov_base = 0; 1782 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1783 xcb_parts[4].iov_base = (char *) traps; 1784 xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t); 1785 xcb_parts[5].iov_base = 0; 1786 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1787 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1788 return xcb_ret; 1789} 1790 1791 1792/***************************************************************************** 1793 ** 1794 ** xcb_void_cookie_t xcb_render_trapezoids 1795 ** 1796 ** @param xcb_connection_t *c 1797 ** @param uint8_t op 1798 ** @param xcb_render_picture_t src 1799 ** @param xcb_render_picture_t dst 1800 ** @param xcb_render_pictformat_t mask_format 1801 ** @param int16_t src_x 1802 ** @param int16_t src_y 1803 ** @param uint32_t traps_len 1804 ** @param const xcb_render_trapezoid_t *traps 1805 ** @returns xcb_void_cookie_t 1806 ** 1807 *****************************************************************************/ 1808 1809xcb_void_cookie_t 1810xcb_render_trapezoids (xcb_connection_t *c /**< */, 1811 uint8_t op /**< */, 1812 xcb_render_picture_t src /**< */, 1813 xcb_render_picture_t dst /**< */, 1814 xcb_render_pictformat_t mask_format /**< */, 1815 int16_t src_x /**< */, 1816 int16_t src_y /**< */, 1817 uint32_t traps_len /**< */, 1818 const xcb_render_trapezoid_t *traps /**< */) 1819{ 1820 static const xcb_protocol_request_t xcb_req = { 1821 /* count */ 4, 1822 /* ext */ &xcb_render_id, 1823 /* opcode */ XCB_RENDER_TRAPEZOIDS, 1824 /* isvoid */ 1 1825 }; 1826 1827 struct iovec xcb_parts[6]; 1828 xcb_void_cookie_t xcb_ret; 1829 xcb_render_trapezoids_request_t xcb_out; 1830 1831 xcb_out.op = op; 1832 memset(xcb_out.pad0, 0, 3); 1833 xcb_out.src = src; 1834 xcb_out.dst = dst; 1835 xcb_out.mask_format = mask_format; 1836 xcb_out.src_x = src_x; 1837 xcb_out.src_y = src_y; 1838 1839 xcb_parts[2].iov_base = (char *) &xcb_out; 1840 xcb_parts[2].iov_len = sizeof(xcb_out); 1841 xcb_parts[3].iov_base = 0; 1842 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1843 xcb_parts[4].iov_base = (char *) traps; 1844 xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t); 1845 xcb_parts[5].iov_base = 0; 1846 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1847 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1848 return xcb_ret; 1849} 1850 1851 1852/***************************************************************************** 1853 ** 1854 ** xcb_void_cookie_t xcb_render_triangles_checked 1855 ** 1856 ** @param xcb_connection_t *c 1857 ** @param uint8_t op 1858 ** @param xcb_render_picture_t src 1859 ** @param xcb_render_picture_t dst 1860 ** @param xcb_render_pictformat_t mask_format 1861 ** @param int16_t src_x 1862 ** @param int16_t src_y 1863 ** @param uint32_t triangles_len 1864 ** @param const xcb_render_triangle_t *triangles 1865 ** @returns xcb_void_cookie_t 1866 ** 1867 *****************************************************************************/ 1868 1869xcb_void_cookie_t 1870xcb_render_triangles_checked (xcb_connection_t *c /**< */, 1871 uint8_t op /**< */, 1872 xcb_render_picture_t src /**< */, 1873 xcb_render_picture_t dst /**< */, 1874 xcb_render_pictformat_t mask_format /**< */, 1875 int16_t src_x /**< */, 1876 int16_t src_y /**< */, 1877 uint32_t triangles_len /**< */, 1878 const xcb_render_triangle_t *triangles /**< */) 1879{ 1880 static const xcb_protocol_request_t xcb_req = { 1881 /* count */ 4, 1882 /* ext */ &xcb_render_id, 1883 /* opcode */ XCB_RENDER_TRIANGLES, 1884 /* isvoid */ 1 1885 }; 1886 1887 struct iovec xcb_parts[6]; 1888 xcb_void_cookie_t xcb_ret; 1889 xcb_render_triangles_request_t xcb_out; 1890 1891 xcb_out.op = op; 1892 memset(xcb_out.pad0, 0, 3); 1893 xcb_out.src = src; 1894 xcb_out.dst = dst; 1895 xcb_out.mask_format = mask_format; 1896 xcb_out.src_x = src_x; 1897 xcb_out.src_y = src_y; 1898 1899 xcb_parts[2].iov_base = (char *) &xcb_out; 1900 xcb_parts[2].iov_len = sizeof(xcb_out); 1901 xcb_parts[3].iov_base = 0; 1902 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1903 xcb_parts[4].iov_base = (char *) triangles; 1904 xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t); 1905 xcb_parts[5].iov_base = 0; 1906 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1907 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1908 return xcb_ret; 1909} 1910 1911 1912/***************************************************************************** 1913 ** 1914 ** xcb_void_cookie_t xcb_render_triangles 1915 ** 1916 ** @param xcb_connection_t *c 1917 ** @param uint8_t op 1918 ** @param xcb_render_picture_t src 1919 ** @param xcb_render_picture_t dst 1920 ** @param xcb_render_pictformat_t mask_format 1921 ** @param int16_t src_x 1922 ** @param int16_t src_y 1923 ** @param uint32_t triangles_len 1924 ** @param const xcb_render_triangle_t *triangles 1925 ** @returns xcb_void_cookie_t 1926 ** 1927 *****************************************************************************/ 1928 1929xcb_void_cookie_t 1930xcb_render_triangles (xcb_connection_t *c /**< */, 1931 uint8_t op /**< */, 1932 xcb_render_picture_t src /**< */, 1933 xcb_render_picture_t dst /**< */, 1934 xcb_render_pictformat_t mask_format /**< */, 1935 int16_t src_x /**< */, 1936 int16_t src_y /**< */, 1937 uint32_t triangles_len /**< */, 1938 const xcb_render_triangle_t *triangles /**< */) 1939{ 1940 static const xcb_protocol_request_t xcb_req = { 1941 /* count */ 4, 1942 /* ext */ &xcb_render_id, 1943 /* opcode */ XCB_RENDER_TRIANGLES, 1944 /* isvoid */ 1 1945 }; 1946 1947 struct iovec xcb_parts[6]; 1948 xcb_void_cookie_t xcb_ret; 1949 xcb_render_triangles_request_t xcb_out; 1950 1951 xcb_out.op = op; 1952 memset(xcb_out.pad0, 0, 3); 1953 xcb_out.src = src; 1954 xcb_out.dst = dst; 1955 xcb_out.mask_format = mask_format; 1956 xcb_out.src_x = src_x; 1957 xcb_out.src_y = src_y; 1958 1959 xcb_parts[2].iov_base = (char *) &xcb_out; 1960 xcb_parts[2].iov_len = sizeof(xcb_out); 1961 xcb_parts[3].iov_base = 0; 1962 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1963 xcb_parts[4].iov_base = (char *) triangles; 1964 xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t); 1965 xcb_parts[5].iov_base = 0; 1966 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1967 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1968 return xcb_ret; 1969} 1970 1971 1972/***************************************************************************** 1973 ** 1974 ** xcb_void_cookie_t xcb_render_tri_strip_checked 1975 ** 1976 ** @param xcb_connection_t *c 1977 ** @param uint8_t op 1978 ** @param xcb_render_picture_t src 1979 ** @param xcb_render_picture_t dst 1980 ** @param xcb_render_pictformat_t mask_format 1981 ** @param int16_t src_x 1982 ** @param int16_t src_y 1983 ** @param uint32_t points_len 1984 ** @param const xcb_render_pointfix_t *points 1985 ** @returns xcb_void_cookie_t 1986 ** 1987 *****************************************************************************/ 1988 1989xcb_void_cookie_t 1990xcb_render_tri_strip_checked (xcb_connection_t *c /**< */, 1991 uint8_t op /**< */, 1992 xcb_render_picture_t src /**< */, 1993 xcb_render_picture_t dst /**< */, 1994 xcb_render_pictformat_t mask_format /**< */, 1995 int16_t src_x /**< */, 1996 int16_t src_y /**< */, 1997 uint32_t points_len /**< */, 1998 const xcb_render_pointfix_t *points /**< */) 1999{ 2000 static const xcb_protocol_request_t xcb_req = { 2001 /* count */ 4, 2002 /* ext */ &xcb_render_id, 2003 /* opcode */ XCB_RENDER_TRI_STRIP, 2004 /* isvoid */ 1 2005 }; 2006 2007 struct iovec xcb_parts[6]; 2008 xcb_void_cookie_t xcb_ret; 2009 xcb_render_tri_strip_request_t xcb_out; 2010 2011 xcb_out.op = op; 2012 memset(xcb_out.pad0, 0, 3); 2013 xcb_out.src = src; 2014 xcb_out.dst = dst; 2015 xcb_out.mask_format = mask_format; 2016 xcb_out.src_x = src_x; 2017 xcb_out.src_y = src_y; 2018 2019 xcb_parts[2].iov_base = (char *) &xcb_out; 2020 xcb_parts[2].iov_len = sizeof(xcb_out); 2021 xcb_parts[3].iov_base = 0; 2022 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2023 xcb_parts[4].iov_base = (char *) points; 2024 xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); 2025 xcb_parts[5].iov_base = 0; 2026 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2027 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2028 return xcb_ret; 2029} 2030 2031 2032/***************************************************************************** 2033 ** 2034 ** xcb_void_cookie_t xcb_render_tri_strip 2035 ** 2036 ** @param xcb_connection_t *c 2037 ** @param uint8_t op 2038 ** @param xcb_render_picture_t src 2039 ** @param xcb_render_picture_t dst 2040 ** @param xcb_render_pictformat_t mask_format 2041 ** @param int16_t src_x 2042 ** @param int16_t src_y 2043 ** @param uint32_t points_len 2044 ** @param const xcb_render_pointfix_t *points 2045 ** @returns xcb_void_cookie_t 2046 ** 2047 *****************************************************************************/ 2048 2049xcb_void_cookie_t 2050xcb_render_tri_strip (xcb_connection_t *c /**< */, 2051 uint8_t op /**< */, 2052 xcb_render_picture_t src /**< */, 2053 xcb_render_picture_t dst /**< */, 2054 xcb_render_pictformat_t mask_format /**< */, 2055 int16_t src_x /**< */, 2056 int16_t src_y /**< */, 2057 uint32_t points_len /**< */, 2058 const xcb_render_pointfix_t *points /**< */) 2059{ 2060 static const xcb_protocol_request_t xcb_req = { 2061 /* count */ 4, 2062 /* ext */ &xcb_render_id, 2063 /* opcode */ XCB_RENDER_TRI_STRIP, 2064 /* isvoid */ 1 2065 }; 2066 2067 struct iovec xcb_parts[6]; 2068 xcb_void_cookie_t xcb_ret; 2069 xcb_render_tri_strip_request_t xcb_out; 2070 2071 xcb_out.op = op; 2072 memset(xcb_out.pad0, 0, 3); 2073 xcb_out.src = src; 2074 xcb_out.dst = dst; 2075 xcb_out.mask_format = mask_format; 2076 xcb_out.src_x = src_x; 2077 xcb_out.src_y = src_y; 2078 2079 xcb_parts[2].iov_base = (char *) &xcb_out; 2080 xcb_parts[2].iov_len = sizeof(xcb_out); 2081 xcb_parts[3].iov_base = 0; 2082 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2083 xcb_parts[4].iov_base = (char *) points; 2084 xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); 2085 xcb_parts[5].iov_base = 0; 2086 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2087 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2088 return xcb_ret; 2089} 2090 2091 2092/***************************************************************************** 2093 ** 2094 ** xcb_void_cookie_t xcb_render_tri_fan_checked 2095 ** 2096 ** @param xcb_connection_t *c 2097 ** @param uint8_t op 2098 ** @param xcb_render_picture_t src 2099 ** @param xcb_render_picture_t dst 2100 ** @param xcb_render_pictformat_t mask_format 2101 ** @param int16_t src_x 2102 ** @param int16_t src_y 2103 ** @param uint32_t points_len 2104 ** @param const xcb_render_pointfix_t *points 2105 ** @returns xcb_void_cookie_t 2106 ** 2107 *****************************************************************************/ 2108 2109xcb_void_cookie_t 2110xcb_render_tri_fan_checked (xcb_connection_t *c /**< */, 2111 uint8_t op /**< */, 2112 xcb_render_picture_t src /**< */, 2113 xcb_render_picture_t dst /**< */, 2114 xcb_render_pictformat_t mask_format /**< */, 2115 int16_t src_x /**< */, 2116 int16_t src_y /**< */, 2117 uint32_t points_len /**< */, 2118 const xcb_render_pointfix_t *points /**< */) 2119{ 2120 static const xcb_protocol_request_t xcb_req = { 2121 /* count */ 4, 2122 /* ext */ &xcb_render_id, 2123 /* opcode */ XCB_RENDER_TRI_FAN, 2124 /* isvoid */ 1 2125 }; 2126 2127 struct iovec xcb_parts[6]; 2128 xcb_void_cookie_t xcb_ret; 2129 xcb_render_tri_fan_request_t xcb_out; 2130 2131 xcb_out.op = op; 2132 memset(xcb_out.pad0, 0, 3); 2133 xcb_out.src = src; 2134 xcb_out.dst = dst; 2135 xcb_out.mask_format = mask_format; 2136 xcb_out.src_x = src_x; 2137 xcb_out.src_y = src_y; 2138 2139 xcb_parts[2].iov_base = (char *) &xcb_out; 2140 xcb_parts[2].iov_len = sizeof(xcb_out); 2141 xcb_parts[3].iov_base = 0; 2142 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2143 xcb_parts[4].iov_base = (char *) points; 2144 xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); 2145 xcb_parts[5].iov_base = 0; 2146 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2147 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2148 return xcb_ret; 2149} 2150 2151 2152/***************************************************************************** 2153 ** 2154 ** xcb_void_cookie_t xcb_render_tri_fan 2155 ** 2156 ** @param xcb_connection_t *c 2157 ** @param uint8_t op 2158 ** @param xcb_render_picture_t src 2159 ** @param xcb_render_picture_t dst 2160 ** @param xcb_render_pictformat_t mask_format 2161 ** @param int16_t src_x 2162 ** @param int16_t src_y 2163 ** @param uint32_t points_len 2164 ** @param const xcb_render_pointfix_t *points 2165 ** @returns xcb_void_cookie_t 2166 ** 2167 *****************************************************************************/ 2168 2169xcb_void_cookie_t 2170xcb_render_tri_fan (xcb_connection_t *c /**< */, 2171 uint8_t op /**< */, 2172 xcb_render_picture_t src /**< */, 2173 xcb_render_picture_t dst /**< */, 2174 xcb_render_pictformat_t mask_format /**< */, 2175 int16_t src_x /**< */, 2176 int16_t src_y /**< */, 2177 uint32_t points_len /**< */, 2178 const xcb_render_pointfix_t *points /**< */) 2179{ 2180 static const xcb_protocol_request_t xcb_req = { 2181 /* count */ 4, 2182 /* ext */ &xcb_render_id, 2183 /* opcode */ XCB_RENDER_TRI_FAN, 2184 /* isvoid */ 1 2185 }; 2186 2187 struct iovec xcb_parts[6]; 2188 xcb_void_cookie_t xcb_ret; 2189 xcb_render_tri_fan_request_t xcb_out; 2190 2191 xcb_out.op = op; 2192 memset(xcb_out.pad0, 0, 3); 2193 xcb_out.src = src; 2194 xcb_out.dst = dst; 2195 xcb_out.mask_format = mask_format; 2196 xcb_out.src_x = src_x; 2197 xcb_out.src_y = src_y; 2198 2199 xcb_parts[2].iov_base = (char *) &xcb_out; 2200 xcb_parts[2].iov_len = sizeof(xcb_out); 2201 xcb_parts[3].iov_base = 0; 2202 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2203 xcb_parts[4].iov_base = (char *) points; 2204 xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); 2205 xcb_parts[5].iov_base = 0; 2206 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2207 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2208 return xcb_ret; 2209} 2210 2211 2212/***************************************************************************** 2213 ** 2214 ** xcb_void_cookie_t xcb_render_create_glyph_set_checked 2215 ** 2216 ** @param xcb_connection_t *c 2217 ** @param xcb_render_glyphset_t gsid 2218 ** @param xcb_render_pictformat_t format 2219 ** @returns xcb_void_cookie_t 2220 ** 2221 *****************************************************************************/ 2222 2223xcb_void_cookie_t 2224xcb_render_create_glyph_set_checked (xcb_connection_t *c /**< */, 2225 xcb_render_glyphset_t gsid /**< */, 2226 xcb_render_pictformat_t format /**< */) 2227{ 2228 static const xcb_protocol_request_t xcb_req = { 2229 /* count */ 2, 2230 /* ext */ &xcb_render_id, 2231 /* opcode */ XCB_RENDER_CREATE_GLYPH_SET, 2232 /* isvoid */ 1 2233 }; 2234 2235 struct iovec xcb_parts[4]; 2236 xcb_void_cookie_t xcb_ret; 2237 xcb_render_create_glyph_set_request_t xcb_out; 2238 2239 xcb_out.gsid = gsid; 2240 xcb_out.format = format; 2241 2242 xcb_parts[2].iov_base = (char *) &xcb_out; 2243 xcb_parts[2].iov_len = sizeof(xcb_out); 2244 xcb_parts[3].iov_base = 0; 2245 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2246 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2247 return xcb_ret; 2248} 2249 2250 2251/***************************************************************************** 2252 ** 2253 ** xcb_void_cookie_t xcb_render_create_glyph_set 2254 ** 2255 ** @param xcb_connection_t *c 2256 ** @param xcb_render_glyphset_t gsid 2257 ** @param xcb_render_pictformat_t format 2258 ** @returns xcb_void_cookie_t 2259 ** 2260 *****************************************************************************/ 2261 2262xcb_void_cookie_t 2263xcb_render_create_glyph_set (xcb_connection_t *c /**< */, 2264 xcb_render_glyphset_t gsid /**< */, 2265 xcb_render_pictformat_t format /**< */) 2266{ 2267 static const xcb_protocol_request_t xcb_req = { 2268 /* count */ 2, 2269 /* ext */ &xcb_render_id, 2270 /* opcode */ XCB_RENDER_CREATE_GLYPH_SET, 2271 /* isvoid */ 1 2272 }; 2273 2274 struct iovec xcb_parts[4]; 2275 xcb_void_cookie_t xcb_ret; 2276 xcb_render_create_glyph_set_request_t xcb_out; 2277 2278 xcb_out.gsid = gsid; 2279 xcb_out.format = format; 2280 2281 xcb_parts[2].iov_base = (char *) &xcb_out; 2282 xcb_parts[2].iov_len = sizeof(xcb_out); 2283 xcb_parts[3].iov_base = 0; 2284 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2285 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2286 return xcb_ret; 2287} 2288 2289 2290/***************************************************************************** 2291 ** 2292 ** xcb_void_cookie_t xcb_render_reference_glyph_set_checked 2293 ** 2294 ** @param xcb_connection_t *c 2295 ** @param xcb_render_glyphset_t gsid 2296 ** @param xcb_render_glyphset_t existing 2297 ** @returns xcb_void_cookie_t 2298 ** 2299 *****************************************************************************/ 2300 2301xcb_void_cookie_t 2302xcb_render_reference_glyph_set_checked (xcb_connection_t *c /**< */, 2303 xcb_render_glyphset_t gsid /**< */, 2304 xcb_render_glyphset_t existing /**< */) 2305{ 2306 static const xcb_protocol_request_t xcb_req = { 2307 /* count */ 2, 2308 /* ext */ &xcb_render_id, 2309 /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET, 2310 /* isvoid */ 1 2311 }; 2312 2313 struct iovec xcb_parts[4]; 2314 xcb_void_cookie_t xcb_ret; 2315 xcb_render_reference_glyph_set_request_t xcb_out; 2316 2317 xcb_out.gsid = gsid; 2318 xcb_out.existing = existing; 2319 2320 xcb_parts[2].iov_base = (char *) &xcb_out; 2321 xcb_parts[2].iov_len = sizeof(xcb_out); 2322 xcb_parts[3].iov_base = 0; 2323 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2324 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2325 return xcb_ret; 2326} 2327 2328 2329/***************************************************************************** 2330 ** 2331 ** xcb_void_cookie_t xcb_render_reference_glyph_set 2332 ** 2333 ** @param xcb_connection_t *c 2334 ** @param xcb_render_glyphset_t gsid 2335 ** @param xcb_render_glyphset_t existing 2336 ** @returns xcb_void_cookie_t 2337 ** 2338 *****************************************************************************/ 2339 2340xcb_void_cookie_t 2341xcb_render_reference_glyph_set (xcb_connection_t *c /**< */, 2342 xcb_render_glyphset_t gsid /**< */, 2343 xcb_render_glyphset_t existing /**< */) 2344{ 2345 static const xcb_protocol_request_t xcb_req = { 2346 /* count */ 2, 2347 /* ext */ &xcb_render_id, 2348 /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET, 2349 /* isvoid */ 1 2350 }; 2351 2352 struct iovec xcb_parts[4]; 2353 xcb_void_cookie_t xcb_ret; 2354 xcb_render_reference_glyph_set_request_t xcb_out; 2355 2356 xcb_out.gsid = gsid; 2357 xcb_out.existing = existing; 2358 2359 xcb_parts[2].iov_base = (char *) &xcb_out; 2360 xcb_parts[2].iov_len = sizeof(xcb_out); 2361 xcb_parts[3].iov_base = 0; 2362 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2363 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2364 return xcb_ret; 2365} 2366 2367 2368/***************************************************************************** 2369 ** 2370 ** xcb_void_cookie_t xcb_render_free_glyph_set_checked 2371 ** 2372 ** @param xcb_connection_t *c 2373 ** @param xcb_render_glyphset_t glyphset 2374 ** @returns xcb_void_cookie_t 2375 ** 2376 *****************************************************************************/ 2377 2378xcb_void_cookie_t 2379xcb_render_free_glyph_set_checked (xcb_connection_t *c /**< */, 2380 xcb_render_glyphset_t glyphset /**< */) 2381{ 2382 static const xcb_protocol_request_t xcb_req = { 2383 /* count */ 2, 2384 /* ext */ &xcb_render_id, 2385 /* opcode */ XCB_RENDER_FREE_GLYPH_SET, 2386 /* isvoid */ 1 2387 }; 2388 2389 struct iovec xcb_parts[4]; 2390 xcb_void_cookie_t xcb_ret; 2391 xcb_render_free_glyph_set_request_t xcb_out; 2392 2393 xcb_out.glyphset = glyphset; 2394 2395 xcb_parts[2].iov_base = (char *) &xcb_out; 2396 xcb_parts[2].iov_len = sizeof(xcb_out); 2397 xcb_parts[3].iov_base = 0; 2398 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2399 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2400 return xcb_ret; 2401} 2402 2403 2404/***************************************************************************** 2405 ** 2406 ** xcb_void_cookie_t xcb_render_free_glyph_set 2407 ** 2408 ** @param xcb_connection_t *c 2409 ** @param xcb_render_glyphset_t glyphset 2410 ** @returns xcb_void_cookie_t 2411 ** 2412 *****************************************************************************/ 2413 2414xcb_void_cookie_t 2415xcb_render_free_glyph_set (xcb_connection_t *c /**< */, 2416 xcb_render_glyphset_t glyphset /**< */) 2417{ 2418 static const xcb_protocol_request_t xcb_req = { 2419 /* count */ 2, 2420 /* ext */ &xcb_render_id, 2421 /* opcode */ XCB_RENDER_FREE_GLYPH_SET, 2422 /* isvoid */ 1 2423 }; 2424 2425 struct iovec xcb_parts[4]; 2426 xcb_void_cookie_t xcb_ret; 2427 xcb_render_free_glyph_set_request_t xcb_out; 2428 2429 xcb_out.glyphset = glyphset; 2430 2431 xcb_parts[2].iov_base = (char *) &xcb_out; 2432 xcb_parts[2].iov_len = sizeof(xcb_out); 2433 xcb_parts[3].iov_base = 0; 2434 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2435 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2436 return xcb_ret; 2437} 2438 2439 2440/***************************************************************************** 2441 ** 2442 ** xcb_void_cookie_t xcb_render_add_glyphs_checked 2443 ** 2444 ** @param xcb_connection_t *c 2445 ** @param xcb_render_glyphset_t glyphset 2446 ** @param uint32_t glyphs_len 2447 ** @param const uint32_t *glyphids 2448 ** @param const xcb_render_glyphinfo_t *glyphs 2449 ** @param uint32_t data_len 2450 ** @param const uint8_t *data 2451 ** @returns xcb_void_cookie_t 2452 ** 2453 *****************************************************************************/ 2454 2455xcb_void_cookie_t 2456xcb_render_add_glyphs_checked (xcb_connection_t *c /**< */, 2457 xcb_render_glyphset_t glyphset /**< */, 2458 uint32_t glyphs_len /**< */, 2459 const uint32_t *glyphids /**< */, 2460 const xcb_render_glyphinfo_t *glyphs /**< */, 2461 uint32_t data_len /**< */, 2462 const uint8_t *data /**< */) 2463{ 2464 static const xcb_protocol_request_t xcb_req = { 2465 /* count */ 8, 2466 /* ext */ &xcb_render_id, 2467 /* opcode */ XCB_RENDER_ADD_GLYPHS, 2468 /* isvoid */ 1 2469 }; 2470 2471 struct iovec xcb_parts[10]; 2472 xcb_void_cookie_t xcb_ret; 2473 xcb_render_add_glyphs_request_t xcb_out; 2474 2475 xcb_out.glyphset = glyphset; 2476 xcb_out.glyphs_len = glyphs_len; 2477 2478 xcb_parts[2].iov_base = (char *) &xcb_out; 2479 xcb_parts[2].iov_len = sizeof(xcb_out); 2480 xcb_parts[3].iov_base = 0; 2481 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2482 xcb_parts[4].iov_base = (char *) glyphids; 2483 xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t); 2484 xcb_parts[5].iov_base = 0; 2485 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2486 xcb_parts[6].iov_base = (char *) glyphs; 2487 xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t); 2488 xcb_parts[7].iov_base = 0; 2489 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 2490 xcb_parts[8].iov_base = (char *) data; 2491 xcb_parts[8].iov_len = data_len * sizeof(uint8_t); 2492 xcb_parts[9].iov_base = 0; 2493 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 2494 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2495 return xcb_ret; 2496} 2497 2498 2499/***************************************************************************** 2500 ** 2501 ** xcb_void_cookie_t xcb_render_add_glyphs 2502 ** 2503 ** @param xcb_connection_t *c 2504 ** @param xcb_render_glyphset_t glyphset 2505 ** @param uint32_t glyphs_len 2506 ** @param const uint32_t *glyphids 2507 ** @param const xcb_render_glyphinfo_t *glyphs 2508 ** @param uint32_t data_len 2509 ** @param const uint8_t *data 2510 ** @returns xcb_void_cookie_t 2511 ** 2512 *****************************************************************************/ 2513 2514xcb_void_cookie_t 2515xcb_render_add_glyphs (xcb_connection_t *c /**< */, 2516 xcb_render_glyphset_t glyphset /**< */, 2517 uint32_t glyphs_len /**< */, 2518 const uint32_t *glyphids /**< */, 2519 const xcb_render_glyphinfo_t *glyphs /**< */, 2520 uint32_t data_len /**< */, 2521 const uint8_t *data /**< */) 2522{ 2523 static const xcb_protocol_request_t xcb_req = { 2524 /* count */ 8, 2525 /* ext */ &xcb_render_id, 2526 /* opcode */ XCB_RENDER_ADD_GLYPHS, 2527 /* isvoid */ 1 2528 }; 2529 2530 struct iovec xcb_parts[10]; 2531 xcb_void_cookie_t xcb_ret; 2532 xcb_render_add_glyphs_request_t xcb_out; 2533 2534 xcb_out.glyphset = glyphset; 2535 xcb_out.glyphs_len = glyphs_len; 2536 2537 xcb_parts[2].iov_base = (char *) &xcb_out; 2538 xcb_parts[2].iov_len = sizeof(xcb_out); 2539 xcb_parts[3].iov_base = 0; 2540 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2541 xcb_parts[4].iov_base = (char *) glyphids; 2542 xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t); 2543 xcb_parts[5].iov_base = 0; 2544 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2545 xcb_parts[6].iov_base = (char *) glyphs; 2546 xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t); 2547 xcb_parts[7].iov_base = 0; 2548 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 2549 xcb_parts[8].iov_base = (char *) data; 2550 xcb_parts[8].iov_len = data_len * sizeof(uint8_t); 2551 xcb_parts[9].iov_base = 0; 2552 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 2553 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2554 return xcb_ret; 2555} 2556 2557 2558/***************************************************************************** 2559 ** 2560 ** xcb_void_cookie_t xcb_render_free_glyphs_checked 2561 ** 2562 ** @param xcb_connection_t *c 2563 ** @param xcb_render_glyphset_t glyphset 2564 ** @param uint32_t glyphs_len 2565 ** @param const xcb_render_glyph_t *glyphs 2566 ** @returns xcb_void_cookie_t 2567 ** 2568 *****************************************************************************/ 2569 2570xcb_void_cookie_t 2571xcb_render_free_glyphs_checked (xcb_connection_t *c /**< */, 2572 xcb_render_glyphset_t glyphset /**< */, 2573 uint32_t glyphs_len /**< */, 2574 const xcb_render_glyph_t *glyphs /**< */) 2575{ 2576 static const xcb_protocol_request_t xcb_req = { 2577 /* count */ 4, 2578 /* ext */ &xcb_render_id, 2579 /* opcode */ XCB_RENDER_FREE_GLYPHS, 2580 /* isvoid */ 1 2581 }; 2582 2583 struct iovec xcb_parts[6]; 2584 xcb_void_cookie_t xcb_ret; 2585 xcb_render_free_glyphs_request_t xcb_out; 2586 2587 xcb_out.glyphset = glyphset; 2588 2589 xcb_parts[2].iov_base = (char *) &xcb_out; 2590 xcb_parts[2].iov_len = sizeof(xcb_out); 2591 xcb_parts[3].iov_base = 0; 2592 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2593 xcb_parts[4].iov_base = (char *) glyphs; 2594 xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t); 2595 xcb_parts[5].iov_base = 0; 2596 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2597 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2598 return xcb_ret; 2599} 2600 2601 2602/***************************************************************************** 2603 ** 2604 ** xcb_void_cookie_t xcb_render_free_glyphs 2605 ** 2606 ** @param xcb_connection_t *c 2607 ** @param xcb_render_glyphset_t glyphset 2608 ** @param uint32_t glyphs_len 2609 ** @param const xcb_render_glyph_t *glyphs 2610 ** @returns xcb_void_cookie_t 2611 ** 2612 *****************************************************************************/ 2613 2614xcb_void_cookie_t 2615xcb_render_free_glyphs (xcb_connection_t *c /**< */, 2616 xcb_render_glyphset_t glyphset /**< */, 2617 uint32_t glyphs_len /**< */, 2618 const xcb_render_glyph_t *glyphs /**< */) 2619{ 2620 static const xcb_protocol_request_t xcb_req = { 2621 /* count */ 4, 2622 /* ext */ &xcb_render_id, 2623 /* opcode */ XCB_RENDER_FREE_GLYPHS, 2624 /* isvoid */ 1 2625 }; 2626 2627 struct iovec xcb_parts[6]; 2628 xcb_void_cookie_t xcb_ret; 2629 xcb_render_free_glyphs_request_t xcb_out; 2630 2631 xcb_out.glyphset = glyphset; 2632 2633 xcb_parts[2].iov_base = (char *) &xcb_out; 2634 xcb_parts[2].iov_len = sizeof(xcb_out); 2635 xcb_parts[3].iov_base = 0; 2636 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2637 xcb_parts[4].iov_base = (char *) glyphs; 2638 xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t); 2639 xcb_parts[5].iov_base = 0; 2640 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2641 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2642 return xcb_ret; 2643} 2644 2645 2646/***************************************************************************** 2647 ** 2648 ** xcb_void_cookie_t xcb_render_composite_glyphs_8_checked 2649 ** 2650 ** @param xcb_connection_t *c 2651 ** @param uint8_t op 2652 ** @param xcb_render_picture_t src 2653 ** @param xcb_render_picture_t dst 2654 ** @param xcb_render_pictformat_t mask_format 2655 ** @param xcb_render_glyphset_t glyphset 2656 ** @param int16_t src_x 2657 ** @param int16_t src_y 2658 ** @param uint32_t glyphcmds_len 2659 ** @param const uint8_t *glyphcmds 2660 ** @returns xcb_void_cookie_t 2661 ** 2662 *****************************************************************************/ 2663 2664xcb_void_cookie_t 2665xcb_render_composite_glyphs_8_checked (xcb_connection_t *c /**< */, 2666 uint8_t op /**< */, 2667 xcb_render_picture_t src /**< */, 2668 xcb_render_picture_t dst /**< */, 2669 xcb_render_pictformat_t mask_format /**< */, 2670 xcb_render_glyphset_t glyphset /**< */, 2671 int16_t src_x /**< */, 2672 int16_t src_y /**< */, 2673 uint32_t glyphcmds_len /**< */, 2674 const uint8_t *glyphcmds /**< */) 2675{ 2676 static const xcb_protocol_request_t xcb_req = { 2677 /* count */ 4, 2678 /* ext */ &xcb_render_id, 2679 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8, 2680 /* isvoid */ 1 2681 }; 2682 2683 struct iovec xcb_parts[6]; 2684 xcb_void_cookie_t xcb_ret; 2685 xcb_render_composite_glyphs_8_request_t xcb_out; 2686 2687 xcb_out.op = op; 2688 memset(xcb_out.pad0, 0, 3); 2689 xcb_out.src = src; 2690 xcb_out.dst = dst; 2691 xcb_out.mask_format = mask_format; 2692 xcb_out.glyphset = glyphset; 2693 xcb_out.src_x = src_x; 2694 xcb_out.src_y = src_y; 2695 2696 xcb_parts[2].iov_base = (char *) &xcb_out; 2697 xcb_parts[2].iov_len = sizeof(xcb_out); 2698 xcb_parts[3].iov_base = 0; 2699 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2700 xcb_parts[4].iov_base = (char *) glyphcmds; 2701 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 2702 xcb_parts[5].iov_base = 0; 2703 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2704 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2705 return xcb_ret; 2706} 2707 2708 2709/***************************************************************************** 2710 ** 2711 ** xcb_void_cookie_t xcb_render_composite_glyphs_8 2712 ** 2713 ** @param xcb_connection_t *c 2714 ** @param uint8_t op 2715 ** @param xcb_render_picture_t src 2716 ** @param xcb_render_picture_t dst 2717 ** @param xcb_render_pictformat_t mask_format 2718 ** @param xcb_render_glyphset_t glyphset 2719 ** @param int16_t src_x 2720 ** @param int16_t src_y 2721 ** @param uint32_t glyphcmds_len 2722 ** @param const uint8_t *glyphcmds 2723 ** @returns xcb_void_cookie_t 2724 ** 2725 *****************************************************************************/ 2726 2727xcb_void_cookie_t 2728xcb_render_composite_glyphs_8 (xcb_connection_t *c /**< */, 2729 uint8_t op /**< */, 2730 xcb_render_picture_t src /**< */, 2731 xcb_render_picture_t dst /**< */, 2732 xcb_render_pictformat_t mask_format /**< */, 2733 xcb_render_glyphset_t glyphset /**< */, 2734 int16_t src_x /**< */, 2735 int16_t src_y /**< */, 2736 uint32_t glyphcmds_len /**< */, 2737 const uint8_t *glyphcmds /**< */) 2738{ 2739 static const xcb_protocol_request_t xcb_req = { 2740 /* count */ 4, 2741 /* ext */ &xcb_render_id, 2742 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8, 2743 /* isvoid */ 1 2744 }; 2745 2746 struct iovec xcb_parts[6]; 2747 xcb_void_cookie_t xcb_ret; 2748 xcb_render_composite_glyphs_8_request_t xcb_out; 2749 2750 xcb_out.op = op; 2751 memset(xcb_out.pad0, 0, 3); 2752 xcb_out.src = src; 2753 xcb_out.dst = dst; 2754 xcb_out.mask_format = mask_format; 2755 xcb_out.glyphset = glyphset; 2756 xcb_out.src_x = src_x; 2757 xcb_out.src_y = src_y; 2758 2759 xcb_parts[2].iov_base = (char *) &xcb_out; 2760 xcb_parts[2].iov_len = sizeof(xcb_out); 2761 xcb_parts[3].iov_base = 0; 2762 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2763 xcb_parts[4].iov_base = (char *) glyphcmds; 2764 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 2765 xcb_parts[5].iov_base = 0; 2766 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2767 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2768 return xcb_ret; 2769} 2770 2771 2772/***************************************************************************** 2773 ** 2774 ** xcb_void_cookie_t xcb_render_composite_glyphs_16_checked 2775 ** 2776 ** @param xcb_connection_t *c 2777 ** @param uint8_t op 2778 ** @param xcb_render_picture_t src 2779 ** @param xcb_render_picture_t dst 2780 ** @param xcb_render_pictformat_t mask_format 2781 ** @param xcb_render_glyphset_t glyphset 2782 ** @param int16_t src_x 2783 ** @param int16_t src_y 2784 ** @param uint32_t glyphcmds_len 2785 ** @param const uint8_t *glyphcmds 2786 ** @returns xcb_void_cookie_t 2787 ** 2788 *****************************************************************************/ 2789 2790xcb_void_cookie_t 2791xcb_render_composite_glyphs_16_checked (xcb_connection_t *c /**< */, 2792 uint8_t op /**< */, 2793 xcb_render_picture_t src /**< */, 2794 xcb_render_picture_t dst /**< */, 2795 xcb_render_pictformat_t mask_format /**< */, 2796 xcb_render_glyphset_t glyphset /**< */, 2797 int16_t src_x /**< */, 2798 int16_t src_y /**< */, 2799 uint32_t glyphcmds_len /**< */, 2800 const uint8_t *glyphcmds /**< */) 2801{ 2802 static const xcb_protocol_request_t xcb_req = { 2803 /* count */ 4, 2804 /* ext */ &xcb_render_id, 2805 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16, 2806 /* isvoid */ 1 2807 }; 2808 2809 struct iovec xcb_parts[6]; 2810 xcb_void_cookie_t xcb_ret; 2811 xcb_render_composite_glyphs_16_request_t xcb_out; 2812 2813 xcb_out.op = op; 2814 memset(xcb_out.pad0, 0, 3); 2815 xcb_out.src = src; 2816 xcb_out.dst = dst; 2817 xcb_out.mask_format = mask_format; 2818 xcb_out.glyphset = glyphset; 2819 xcb_out.src_x = src_x; 2820 xcb_out.src_y = src_y; 2821 2822 xcb_parts[2].iov_base = (char *) &xcb_out; 2823 xcb_parts[2].iov_len = sizeof(xcb_out); 2824 xcb_parts[3].iov_base = 0; 2825 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2826 xcb_parts[4].iov_base = (char *) glyphcmds; 2827 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 2828 xcb_parts[5].iov_base = 0; 2829 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2830 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2831 return xcb_ret; 2832} 2833 2834 2835/***************************************************************************** 2836 ** 2837 ** xcb_void_cookie_t xcb_render_composite_glyphs_16 2838 ** 2839 ** @param xcb_connection_t *c 2840 ** @param uint8_t op 2841 ** @param xcb_render_picture_t src 2842 ** @param xcb_render_picture_t dst 2843 ** @param xcb_render_pictformat_t mask_format 2844 ** @param xcb_render_glyphset_t glyphset 2845 ** @param int16_t src_x 2846 ** @param int16_t src_y 2847 ** @param uint32_t glyphcmds_len 2848 ** @param const uint8_t *glyphcmds 2849 ** @returns xcb_void_cookie_t 2850 ** 2851 *****************************************************************************/ 2852 2853xcb_void_cookie_t 2854xcb_render_composite_glyphs_16 (xcb_connection_t *c /**< */, 2855 uint8_t op /**< */, 2856 xcb_render_picture_t src /**< */, 2857 xcb_render_picture_t dst /**< */, 2858 xcb_render_pictformat_t mask_format /**< */, 2859 xcb_render_glyphset_t glyphset /**< */, 2860 int16_t src_x /**< */, 2861 int16_t src_y /**< */, 2862 uint32_t glyphcmds_len /**< */, 2863 const uint8_t *glyphcmds /**< */) 2864{ 2865 static const xcb_protocol_request_t xcb_req = { 2866 /* count */ 4, 2867 /* ext */ &xcb_render_id, 2868 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16, 2869 /* isvoid */ 1 2870 }; 2871 2872 struct iovec xcb_parts[6]; 2873 xcb_void_cookie_t xcb_ret; 2874 xcb_render_composite_glyphs_16_request_t xcb_out; 2875 2876 xcb_out.op = op; 2877 memset(xcb_out.pad0, 0, 3); 2878 xcb_out.src = src; 2879 xcb_out.dst = dst; 2880 xcb_out.mask_format = mask_format; 2881 xcb_out.glyphset = glyphset; 2882 xcb_out.src_x = src_x; 2883 xcb_out.src_y = src_y; 2884 2885 xcb_parts[2].iov_base = (char *) &xcb_out; 2886 xcb_parts[2].iov_len = sizeof(xcb_out); 2887 xcb_parts[3].iov_base = 0; 2888 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2889 xcb_parts[4].iov_base = (char *) glyphcmds; 2890 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 2891 xcb_parts[5].iov_base = 0; 2892 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2893 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2894 return xcb_ret; 2895} 2896 2897 2898/***************************************************************************** 2899 ** 2900 ** xcb_void_cookie_t xcb_render_composite_glyphs_32_checked 2901 ** 2902 ** @param xcb_connection_t *c 2903 ** @param uint8_t op 2904 ** @param xcb_render_picture_t src 2905 ** @param xcb_render_picture_t dst 2906 ** @param xcb_render_pictformat_t mask_format 2907 ** @param xcb_render_glyphset_t glyphset 2908 ** @param int16_t src_x 2909 ** @param int16_t src_y 2910 ** @param uint32_t glyphcmds_len 2911 ** @param const uint8_t *glyphcmds 2912 ** @returns xcb_void_cookie_t 2913 ** 2914 *****************************************************************************/ 2915 2916xcb_void_cookie_t 2917xcb_render_composite_glyphs_32_checked (xcb_connection_t *c /**< */, 2918 uint8_t op /**< */, 2919 xcb_render_picture_t src /**< */, 2920 xcb_render_picture_t dst /**< */, 2921 xcb_render_pictformat_t mask_format /**< */, 2922 xcb_render_glyphset_t glyphset /**< */, 2923 int16_t src_x /**< */, 2924 int16_t src_y /**< */, 2925 uint32_t glyphcmds_len /**< */, 2926 const uint8_t *glyphcmds /**< */) 2927{ 2928 static const xcb_protocol_request_t xcb_req = { 2929 /* count */ 4, 2930 /* ext */ &xcb_render_id, 2931 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32, 2932 /* isvoid */ 1 2933 }; 2934 2935 struct iovec xcb_parts[6]; 2936 xcb_void_cookie_t xcb_ret; 2937 xcb_render_composite_glyphs_32_request_t xcb_out; 2938 2939 xcb_out.op = op; 2940 memset(xcb_out.pad0, 0, 3); 2941 xcb_out.src = src; 2942 xcb_out.dst = dst; 2943 xcb_out.mask_format = mask_format; 2944 xcb_out.glyphset = glyphset; 2945 xcb_out.src_x = src_x; 2946 xcb_out.src_y = src_y; 2947 2948 xcb_parts[2].iov_base = (char *) &xcb_out; 2949 xcb_parts[2].iov_len = sizeof(xcb_out); 2950 xcb_parts[3].iov_base = 0; 2951 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2952 xcb_parts[4].iov_base = (char *) glyphcmds; 2953 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 2954 xcb_parts[5].iov_base = 0; 2955 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2956 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2957 return xcb_ret; 2958} 2959 2960 2961/***************************************************************************** 2962 ** 2963 ** xcb_void_cookie_t xcb_render_composite_glyphs_32 2964 ** 2965 ** @param xcb_connection_t *c 2966 ** @param uint8_t op 2967 ** @param xcb_render_picture_t src 2968 ** @param xcb_render_picture_t dst 2969 ** @param xcb_render_pictformat_t mask_format 2970 ** @param xcb_render_glyphset_t glyphset 2971 ** @param int16_t src_x 2972 ** @param int16_t src_y 2973 ** @param uint32_t glyphcmds_len 2974 ** @param const uint8_t *glyphcmds 2975 ** @returns xcb_void_cookie_t 2976 ** 2977 *****************************************************************************/ 2978 2979xcb_void_cookie_t 2980xcb_render_composite_glyphs_32 (xcb_connection_t *c /**< */, 2981 uint8_t op /**< */, 2982 xcb_render_picture_t src /**< */, 2983 xcb_render_picture_t dst /**< */, 2984 xcb_render_pictformat_t mask_format /**< */, 2985 xcb_render_glyphset_t glyphset /**< */, 2986 int16_t src_x /**< */, 2987 int16_t src_y /**< */, 2988 uint32_t glyphcmds_len /**< */, 2989 const uint8_t *glyphcmds /**< */) 2990{ 2991 static const xcb_protocol_request_t xcb_req = { 2992 /* count */ 4, 2993 /* ext */ &xcb_render_id, 2994 /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32, 2995 /* isvoid */ 1 2996 }; 2997 2998 struct iovec xcb_parts[6]; 2999 xcb_void_cookie_t xcb_ret; 3000 xcb_render_composite_glyphs_32_request_t xcb_out; 3001 3002 xcb_out.op = op; 3003 memset(xcb_out.pad0, 0, 3); 3004 xcb_out.src = src; 3005 xcb_out.dst = dst; 3006 xcb_out.mask_format = mask_format; 3007 xcb_out.glyphset = glyphset; 3008 xcb_out.src_x = src_x; 3009 xcb_out.src_y = src_y; 3010 3011 xcb_parts[2].iov_base = (char *) &xcb_out; 3012 xcb_parts[2].iov_len = sizeof(xcb_out); 3013 xcb_parts[3].iov_base = 0; 3014 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3015 xcb_parts[4].iov_base = (char *) glyphcmds; 3016 xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); 3017 xcb_parts[5].iov_base = 0; 3018 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3019 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3020 return xcb_ret; 3021} 3022 3023 3024/***************************************************************************** 3025 ** 3026 ** xcb_void_cookie_t xcb_render_fill_rectangles_checked 3027 ** 3028 ** @param xcb_connection_t *c 3029 ** @param uint8_t op 3030 ** @param xcb_render_picture_t dst 3031 ** @param xcb_render_color_t color 3032 ** @param uint32_t rects_len 3033 ** @param const xcb_rectangle_t *rects 3034 ** @returns xcb_void_cookie_t 3035 ** 3036 *****************************************************************************/ 3037 3038xcb_void_cookie_t 3039xcb_render_fill_rectangles_checked (xcb_connection_t *c /**< */, 3040 uint8_t op /**< */, 3041 xcb_render_picture_t dst /**< */, 3042 xcb_render_color_t color /**< */, 3043 uint32_t rects_len /**< */, 3044 const xcb_rectangle_t *rects /**< */) 3045{ 3046 static const xcb_protocol_request_t xcb_req = { 3047 /* count */ 4, 3048 /* ext */ &xcb_render_id, 3049 /* opcode */ XCB_RENDER_FILL_RECTANGLES, 3050 /* isvoid */ 1 3051 }; 3052 3053 struct iovec xcb_parts[6]; 3054 xcb_void_cookie_t xcb_ret; 3055 xcb_render_fill_rectangles_request_t xcb_out; 3056 3057 xcb_out.op = op; 3058 memset(xcb_out.pad0, 0, 3); 3059 xcb_out.dst = dst; 3060 xcb_out.color = color; 3061 3062 xcb_parts[2].iov_base = (char *) &xcb_out; 3063 xcb_parts[2].iov_len = sizeof(xcb_out); 3064 xcb_parts[3].iov_base = 0; 3065 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3066 xcb_parts[4].iov_base = (char *) rects; 3067 xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t); 3068 xcb_parts[5].iov_base = 0; 3069 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3070 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3071 return xcb_ret; 3072} 3073 3074 3075/***************************************************************************** 3076 ** 3077 ** xcb_void_cookie_t xcb_render_fill_rectangles 3078 ** 3079 ** @param xcb_connection_t *c 3080 ** @param uint8_t op 3081 ** @param xcb_render_picture_t dst 3082 ** @param xcb_render_color_t color 3083 ** @param uint32_t rects_len 3084 ** @param const xcb_rectangle_t *rects 3085 ** @returns xcb_void_cookie_t 3086 ** 3087 *****************************************************************************/ 3088 3089xcb_void_cookie_t 3090xcb_render_fill_rectangles (xcb_connection_t *c /**< */, 3091 uint8_t op /**< */, 3092 xcb_render_picture_t dst /**< */, 3093 xcb_render_color_t color /**< */, 3094 uint32_t rects_len /**< */, 3095 const xcb_rectangle_t *rects /**< */) 3096{ 3097 static const xcb_protocol_request_t xcb_req = { 3098 /* count */ 4, 3099 /* ext */ &xcb_render_id, 3100 /* opcode */ XCB_RENDER_FILL_RECTANGLES, 3101 /* isvoid */ 1 3102 }; 3103 3104 struct iovec xcb_parts[6]; 3105 xcb_void_cookie_t xcb_ret; 3106 xcb_render_fill_rectangles_request_t xcb_out; 3107 3108 xcb_out.op = op; 3109 memset(xcb_out.pad0, 0, 3); 3110 xcb_out.dst = dst; 3111 xcb_out.color = color; 3112 3113 xcb_parts[2].iov_base = (char *) &xcb_out; 3114 xcb_parts[2].iov_len = sizeof(xcb_out); 3115 xcb_parts[3].iov_base = 0; 3116 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3117 xcb_parts[4].iov_base = (char *) rects; 3118 xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t); 3119 xcb_parts[5].iov_base = 0; 3120 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3121 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3122 return xcb_ret; 3123} 3124 3125 3126/***************************************************************************** 3127 ** 3128 ** xcb_void_cookie_t xcb_render_create_cursor_checked 3129 ** 3130 ** @param xcb_connection_t *c 3131 ** @param xcb_cursor_t cid 3132 ** @param xcb_render_picture_t source 3133 ** @param uint16_t x 3134 ** @param uint16_t y 3135 ** @returns xcb_void_cookie_t 3136 ** 3137 *****************************************************************************/ 3138 3139xcb_void_cookie_t 3140xcb_render_create_cursor_checked (xcb_connection_t *c /**< */, 3141 xcb_cursor_t cid /**< */, 3142 xcb_render_picture_t source /**< */, 3143 uint16_t x /**< */, 3144 uint16_t y /**< */) 3145{ 3146 static const xcb_protocol_request_t xcb_req = { 3147 /* count */ 2, 3148 /* ext */ &xcb_render_id, 3149 /* opcode */ XCB_RENDER_CREATE_CURSOR, 3150 /* isvoid */ 1 3151 }; 3152 3153 struct iovec xcb_parts[4]; 3154 xcb_void_cookie_t xcb_ret; 3155 xcb_render_create_cursor_request_t xcb_out; 3156 3157 xcb_out.cid = cid; 3158 xcb_out.source = source; 3159 xcb_out.x = x; 3160 xcb_out.y = y; 3161 3162 xcb_parts[2].iov_base = (char *) &xcb_out; 3163 xcb_parts[2].iov_len = sizeof(xcb_out); 3164 xcb_parts[3].iov_base = 0; 3165 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3166 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3167 return xcb_ret; 3168} 3169 3170 3171/***************************************************************************** 3172 ** 3173 ** xcb_void_cookie_t xcb_render_create_cursor 3174 ** 3175 ** @param xcb_connection_t *c 3176 ** @param xcb_cursor_t cid 3177 ** @param xcb_render_picture_t source 3178 ** @param uint16_t x 3179 ** @param uint16_t y 3180 ** @returns xcb_void_cookie_t 3181 ** 3182 *****************************************************************************/ 3183 3184xcb_void_cookie_t 3185xcb_render_create_cursor (xcb_connection_t *c /**< */, 3186 xcb_cursor_t cid /**< */, 3187 xcb_render_picture_t source /**< */, 3188 uint16_t x /**< */, 3189 uint16_t y /**< */) 3190{ 3191 static const xcb_protocol_request_t xcb_req = { 3192 /* count */ 2, 3193 /* ext */ &xcb_render_id, 3194 /* opcode */ XCB_RENDER_CREATE_CURSOR, 3195 /* isvoid */ 1 3196 }; 3197 3198 struct iovec xcb_parts[4]; 3199 xcb_void_cookie_t xcb_ret; 3200 xcb_render_create_cursor_request_t xcb_out; 3201 3202 xcb_out.cid = cid; 3203 xcb_out.source = source; 3204 xcb_out.x = x; 3205 xcb_out.y = y; 3206 3207 xcb_parts[2].iov_base = (char *) &xcb_out; 3208 xcb_parts[2].iov_len = sizeof(xcb_out); 3209 xcb_parts[3].iov_base = 0; 3210 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3211 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3212 return xcb_ret; 3213} 3214 3215 3216/***************************************************************************** 3217 ** 3218 ** void xcb_render_transform_next 3219 ** 3220 ** @param xcb_render_transform_iterator_t *i 3221 ** @returns void 3222 ** 3223 *****************************************************************************/ 3224 3225void 3226xcb_render_transform_next (xcb_render_transform_iterator_t *i /**< */) 3227{ 3228 --i->rem; 3229 ++i->data; 3230 i->index += sizeof(xcb_render_transform_t); 3231} 3232 3233 3234/***************************************************************************** 3235 ** 3236 ** xcb_generic_iterator_t xcb_render_transform_end 3237 ** 3238 ** @param xcb_render_transform_iterator_t i 3239 ** @returns xcb_generic_iterator_t 3240 ** 3241 *****************************************************************************/ 3242 3243xcb_generic_iterator_t 3244xcb_render_transform_end (xcb_render_transform_iterator_t i /**< */) 3245{ 3246 xcb_generic_iterator_t ret; 3247 ret.data = i.data + i.rem; 3248 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3249 ret.rem = 0; 3250 return ret; 3251} 3252 3253 3254/***************************************************************************** 3255 ** 3256 ** xcb_void_cookie_t xcb_render_set_picture_transform_checked 3257 ** 3258 ** @param xcb_connection_t *c 3259 ** @param xcb_render_picture_t picture 3260 ** @param xcb_render_transform_t transform 3261 ** @returns xcb_void_cookie_t 3262 ** 3263 *****************************************************************************/ 3264 3265xcb_void_cookie_t 3266xcb_render_set_picture_transform_checked (xcb_connection_t *c /**< */, 3267 xcb_render_picture_t picture /**< */, 3268 xcb_render_transform_t transform /**< */) 3269{ 3270 static const xcb_protocol_request_t xcb_req = { 3271 /* count */ 2, 3272 /* ext */ &xcb_render_id, 3273 /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM, 3274 /* isvoid */ 1 3275 }; 3276 3277 struct iovec xcb_parts[4]; 3278 xcb_void_cookie_t xcb_ret; 3279 xcb_render_set_picture_transform_request_t xcb_out; 3280 3281 xcb_out.picture = picture; 3282 xcb_out.transform = transform; 3283 3284 xcb_parts[2].iov_base = (char *) &xcb_out; 3285 xcb_parts[2].iov_len = sizeof(xcb_out); 3286 xcb_parts[3].iov_base = 0; 3287 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3288 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3289 return xcb_ret; 3290} 3291 3292 3293/***************************************************************************** 3294 ** 3295 ** xcb_void_cookie_t xcb_render_set_picture_transform 3296 ** 3297 ** @param xcb_connection_t *c 3298 ** @param xcb_render_picture_t picture 3299 ** @param xcb_render_transform_t transform 3300 ** @returns xcb_void_cookie_t 3301 ** 3302 *****************************************************************************/ 3303 3304xcb_void_cookie_t 3305xcb_render_set_picture_transform (xcb_connection_t *c /**< */, 3306 xcb_render_picture_t picture /**< */, 3307 xcb_render_transform_t transform /**< */) 3308{ 3309 static const xcb_protocol_request_t xcb_req = { 3310 /* count */ 2, 3311 /* ext */ &xcb_render_id, 3312 /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM, 3313 /* isvoid */ 1 3314 }; 3315 3316 struct iovec xcb_parts[4]; 3317 xcb_void_cookie_t xcb_ret; 3318 xcb_render_set_picture_transform_request_t xcb_out; 3319 3320 xcb_out.picture = picture; 3321 xcb_out.transform = transform; 3322 3323 xcb_parts[2].iov_base = (char *) &xcb_out; 3324 xcb_parts[2].iov_len = sizeof(xcb_out); 3325 xcb_parts[3].iov_base = 0; 3326 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3327 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3328 return xcb_ret; 3329} 3330 3331 3332/***************************************************************************** 3333 ** 3334 ** xcb_render_query_filters_cookie_t xcb_render_query_filters 3335 ** 3336 ** @param xcb_connection_t *c 3337 ** @param xcb_drawable_t drawable 3338 ** @returns xcb_render_query_filters_cookie_t 3339 ** 3340 *****************************************************************************/ 3341 3342xcb_render_query_filters_cookie_t 3343xcb_render_query_filters (xcb_connection_t *c /**< */, 3344 xcb_drawable_t drawable /**< */) 3345{ 3346 static const xcb_protocol_request_t xcb_req = { 3347 /* count */ 2, 3348 /* ext */ &xcb_render_id, 3349 /* opcode */ XCB_RENDER_QUERY_FILTERS, 3350 /* isvoid */ 0 3351 }; 3352 3353 struct iovec xcb_parts[4]; 3354 xcb_render_query_filters_cookie_t xcb_ret; 3355 xcb_render_query_filters_request_t xcb_out; 3356 3357 xcb_out.drawable = drawable; 3358 3359 xcb_parts[2].iov_base = (char *) &xcb_out; 3360 xcb_parts[2].iov_len = sizeof(xcb_out); 3361 xcb_parts[3].iov_base = 0; 3362 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3363 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3364 return xcb_ret; 3365} 3366 3367 3368/***************************************************************************** 3369 ** 3370 ** xcb_render_query_filters_cookie_t xcb_render_query_filters_unchecked 3371 ** 3372 ** @param xcb_connection_t *c 3373 ** @param xcb_drawable_t drawable 3374 ** @returns xcb_render_query_filters_cookie_t 3375 ** 3376 *****************************************************************************/ 3377 3378xcb_render_query_filters_cookie_t 3379xcb_render_query_filters_unchecked (xcb_connection_t *c /**< */, 3380 xcb_drawable_t drawable /**< */) 3381{ 3382 static const xcb_protocol_request_t xcb_req = { 3383 /* count */ 2, 3384 /* ext */ &xcb_render_id, 3385 /* opcode */ XCB_RENDER_QUERY_FILTERS, 3386 /* isvoid */ 0 3387 }; 3388 3389 struct iovec xcb_parts[4]; 3390 xcb_render_query_filters_cookie_t xcb_ret; 3391 xcb_render_query_filters_request_t xcb_out; 3392 3393 xcb_out.drawable = drawable; 3394 3395 xcb_parts[2].iov_base = (char *) &xcb_out; 3396 xcb_parts[2].iov_len = sizeof(xcb_out); 3397 xcb_parts[3].iov_base = 0; 3398 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3399 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3400 return xcb_ret; 3401} 3402 3403 3404/***************************************************************************** 3405 ** 3406 ** uint16_t * xcb_render_query_filters_aliases 3407 ** 3408 ** @param const xcb_render_query_filters_reply_t *R 3409 ** @returns uint16_t * 3410 ** 3411 *****************************************************************************/ 3412 3413uint16_t * 3414xcb_render_query_filters_aliases (const xcb_render_query_filters_reply_t *R /**< */) 3415{ 3416 return (uint16_t *) (R + 1); 3417} 3418 3419 3420/***************************************************************************** 3421 ** 3422 ** int xcb_render_query_filters_aliases_length 3423 ** 3424 ** @param const xcb_render_query_filters_reply_t *R 3425 ** @returns int 3426 ** 3427 *****************************************************************************/ 3428 3429int 3430xcb_render_query_filters_aliases_length (const xcb_render_query_filters_reply_t *R /**< */) 3431{ 3432 return R->num_aliases; 3433} 3434 3435 3436/***************************************************************************** 3437 ** 3438 ** xcb_generic_iterator_t xcb_render_query_filters_aliases_end 3439 ** 3440 ** @param const xcb_render_query_filters_reply_t *R 3441 ** @returns xcb_generic_iterator_t 3442 ** 3443 *****************************************************************************/ 3444 3445xcb_generic_iterator_t 3446xcb_render_query_filters_aliases_end (const xcb_render_query_filters_reply_t *R /**< */) 3447{ 3448 xcb_generic_iterator_t i; 3449 i.data = ((uint16_t *) (R + 1)) + (R->num_aliases); 3450 i.rem = 0; 3451 i.index = (char *) i.data - (char *) R; 3452 return i; 3453} 3454 3455 3456/***************************************************************************** 3457 ** 3458 ** int xcb_render_query_filters_filters_length 3459 ** 3460 ** @param const xcb_render_query_filters_reply_t *R 3461 ** @returns int 3462 ** 3463 *****************************************************************************/ 3464 3465int 3466xcb_render_query_filters_filters_length (const xcb_render_query_filters_reply_t *R /**< */) 3467{ 3468 return R->num_filters; 3469} 3470 3471 3472/***************************************************************************** 3473 ** 3474 ** xcb_str_iterator_t xcb_render_query_filters_filters_iterator 3475 ** 3476 ** @param const xcb_render_query_filters_reply_t *R 3477 ** @returns xcb_str_iterator_t 3478 ** 3479 *****************************************************************************/ 3480 3481xcb_str_iterator_t 3482xcb_render_query_filters_filters_iterator (const xcb_render_query_filters_reply_t *R /**< */) 3483{ 3484 xcb_str_iterator_t i; 3485 xcb_generic_iterator_t prev = xcb_render_query_filters_aliases_end(R); 3486 i.data = (xcb_str_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_str_t, prev.index)); 3487 i.rem = R->num_filters; 3488 i.index = (char *) i.data - (char *) R; 3489 return i; 3490} 3491 3492 3493/***************************************************************************** 3494 ** 3495 ** xcb_render_query_filters_reply_t * xcb_render_query_filters_reply 3496 ** 3497 ** @param xcb_connection_t *c 3498 ** @param xcb_render_query_filters_cookie_t cookie 3499 ** @param xcb_generic_error_t **e 3500 ** @returns xcb_render_query_filters_reply_t * 3501 ** 3502 *****************************************************************************/ 3503 3504xcb_render_query_filters_reply_t * 3505xcb_render_query_filters_reply (xcb_connection_t *c /**< */, 3506 xcb_render_query_filters_cookie_t cookie /**< */, 3507 xcb_generic_error_t **e /**< */) 3508{ 3509 return (xcb_render_query_filters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3510} 3511 3512 3513/***************************************************************************** 3514 ** 3515 ** xcb_void_cookie_t xcb_render_set_picture_filter_checked 3516 ** 3517 ** @param xcb_connection_t *c 3518 ** @param xcb_render_picture_t picture 3519 ** @param uint16_t filter_len 3520 ** @param const char *filter 3521 ** @param uint32_t values_len 3522 ** @param const xcb_render_fixed_t *values 3523 ** @returns xcb_void_cookie_t 3524 ** 3525 *****************************************************************************/ 3526 3527xcb_void_cookie_t 3528xcb_render_set_picture_filter_checked (xcb_connection_t *c /**< */, 3529 xcb_render_picture_t picture /**< */, 3530 uint16_t filter_len /**< */, 3531 const char *filter /**< */, 3532 uint32_t values_len /**< */, 3533 const xcb_render_fixed_t *values /**< */) 3534{ 3535 static const xcb_protocol_request_t xcb_req = { 3536 /* count */ 6, 3537 /* ext */ &xcb_render_id, 3538 /* opcode */ XCB_RENDER_SET_PICTURE_FILTER, 3539 /* isvoid */ 1 3540 }; 3541 3542 struct iovec xcb_parts[8]; 3543 xcb_void_cookie_t xcb_ret; 3544 xcb_render_set_picture_filter_request_t xcb_out; 3545 3546 xcb_out.picture = picture; 3547 xcb_out.filter_len = filter_len; 3548 memset(xcb_out.pad0, 0, 2); 3549 3550 xcb_parts[2].iov_base = (char *) &xcb_out; 3551 xcb_parts[2].iov_len = sizeof(xcb_out); 3552 xcb_parts[3].iov_base = 0; 3553 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3554 xcb_parts[4].iov_base = (char *) filter; 3555 xcb_parts[4].iov_len = filter_len * sizeof(char); 3556 xcb_parts[5].iov_base = 0; 3557 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3558 xcb_parts[6].iov_base = (char *) values; 3559 xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t); 3560 xcb_parts[7].iov_base = 0; 3561 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3562 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3563 return xcb_ret; 3564} 3565 3566 3567/***************************************************************************** 3568 ** 3569 ** xcb_void_cookie_t xcb_render_set_picture_filter 3570 ** 3571 ** @param xcb_connection_t *c 3572 ** @param xcb_render_picture_t picture 3573 ** @param uint16_t filter_len 3574 ** @param const char *filter 3575 ** @param uint32_t values_len 3576 ** @param const xcb_render_fixed_t *values 3577 ** @returns xcb_void_cookie_t 3578 ** 3579 *****************************************************************************/ 3580 3581xcb_void_cookie_t 3582xcb_render_set_picture_filter (xcb_connection_t *c /**< */, 3583 xcb_render_picture_t picture /**< */, 3584 uint16_t filter_len /**< */, 3585 const char *filter /**< */, 3586 uint32_t values_len /**< */, 3587 const xcb_render_fixed_t *values /**< */) 3588{ 3589 static const xcb_protocol_request_t xcb_req = { 3590 /* count */ 6, 3591 /* ext */ &xcb_render_id, 3592 /* opcode */ XCB_RENDER_SET_PICTURE_FILTER, 3593 /* isvoid */ 1 3594 }; 3595 3596 struct iovec xcb_parts[8]; 3597 xcb_void_cookie_t xcb_ret; 3598 xcb_render_set_picture_filter_request_t xcb_out; 3599 3600 xcb_out.picture = picture; 3601 xcb_out.filter_len = filter_len; 3602 memset(xcb_out.pad0, 0, 2); 3603 3604 xcb_parts[2].iov_base = (char *) &xcb_out; 3605 xcb_parts[2].iov_len = sizeof(xcb_out); 3606 xcb_parts[3].iov_base = 0; 3607 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3608 xcb_parts[4].iov_base = (char *) filter; 3609 xcb_parts[4].iov_len = filter_len * sizeof(char); 3610 xcb_parts[5].iov_base = 0; 3611 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3612 xcb_parts[6].iov_base = (char *) values; 3613 xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t); 3614 xcb_parts[7].iov_base = 0; 3615 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3616 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3617 return xcb_ret; 3618} 3619 3620 3621/***************************************************************************** 3622 ** 3623 ** void xcb_render_animcursorelt_next 3624 ** 3625 ** @param xcb_render_animcursorelt_iterator_t *i 3626 ** @returns void 3627 ** 3628 *****************************************************************************/ 3629 3630void 3631xcb_render_animcursorelt_next (xcb_render_animcursorelt_iterator_t *i /**< */) 3632{ 3633 --i->rem; 3634 ++i->data; 3635 i->index += sizeof(xcb_render_animcursorelt_t); 3636} 3637 3638 3639/***************************************************************************** 3640 ** 3641 ** xcb_generic_iterator_t xcb_render_animcursorelt_end 3642 ** 3643 ** @param xcb_render_animcursorelt_iterator_t i 3644 ** @returns xcb_generic_iterator_t 3645 ** 3646 *****************************************************************************/ 3647 3648xcb_generic_iterator_t 3649xcb_render_animcursorelt_end (xcb_render_animcursorelt_iterator_t i /**< */) 3650{ 3651 xcb_generic_iterator_t ret; 3652 ret.data = i.data + i.rem; 3653 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3654 ret.rem = 0; 3655 return ret; 3656} 3657 3658 3659/***************************************************************************** 3660 ** 3661 ** xcb_void_cookie_t xcb_render_create_anim_cursor_checked 3662 ** 3663 ** @param xcb_connection_t *c 3664 ** @param xcb_cursor_t cid 3665 ** @param uint32_t cursors_len 3666 ** @param const xcb_render_animcursorelt_t *cursors 3667 ** @returns xcb_void_cookie_t 3668 ** 3669 *****************************************************************************/ 3670 3671xcb_void_cookie_t 3672xcb_render_create_anim_cursor_checked (xcb_connection_t *c /**< */, 3673 xcb_cursor_t cid /**< */, 3674 uint32_t cursors_len /**< */, 3675 const xcb_render_animcursorelt_t *cursors /**< */) 3676{ 3677 static const xcb_protocol_request_t xcb_req = { 3678 /* count */ 4, 3679 /* ext */ &xcb_render_id, 3680 /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR, 3681 /* isvoid */ 1 3682 }; 3683 3684 struct iovec xcb_parts[6]; 3685 xcb_void_cookie_t xcb_ret; 3686 xcb_render_create_anim_cursor_request_t xcb_out; 3687 3688 xcb_out.cid = cid; 3689 3690 xcb_parts[2].iov_base = (char *) &xcb_out; 3691 xcb_parts[2].iov_len = sizeof(xcb_out); 3692 xcb_parts[3].iov_base = 0; 3693 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3694 xcb_parts[4].iov_base = (char *) cursors; 3695 xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t); 3696 xcb_parts[5].iov_base = 0; 3697 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3698 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3699 return xcb_ret; 3700} 3701 3702 3703/***************************************************************************** 3704 ** 3705 ** xcb_void_cookie_t xcb_render_create_anim_cursor 3706 ** 3707 ** @param xcb_connection_t *c 3708 ** @param xcb_cursor_t cid 3709 ** @param uint32_t cursors_len 3710 ** @param const xcb_render_animcursorelt_t *cursors 3711 ** @returns xcb_void_cookie_t 3712 ** 3713 *****************************************************************************/ 3714 3715xcb_void_cookie_t 3716xcb_render_create_anim_cursor (xcb_connection_t *c /**< */, 3717 xcb_cursor_t cid /**< */, 3718 uint32_t cursors_len /**< */, 3719 const xcb_render_animcursorelt_t *cursors /**< */) 3720{ 3721 static const xcb_protocol_request_t xcb_req = { 3722 /* count */ 4, 3723 /* ext */ &xcb_render_id, 3724 /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR, 3725 /* isvoid */ 1 3726 }; 3727 3728 struct iovec xcb_parts[6]; 3729 xcb_void_cookie_t xcb_ret; 3730 xcb_render_create_anim_cursor_request_t xcb_out; 3731 3732 xcb_out.cid = cid; 3733 3734 xcb_parts[2].iov_base = (char *) &xcb_out; 3735 xcb_parts[2].iov_len = sizeof(xcb_out); 3736 xcb_parts[3].iov_base = 0; 3737 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3738 xcb_parts[4].iov_base = (char *) cursors; 3739 xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t); 3740 xcb_parts[5].iov_base = 0; 3741 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3742 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3743 return xcb_ret; 3744} 3745 3746 3747/***************************************************************************** 3748 ** 3749 ** void xcb_render_spanfix_next 3750 ** 3751 ** @param xcb_render_spanfix_iterator_t *i 3752 ** @returns void 3753 ** 3754 *****************************************************************************/ 3755 3756void 3757xcb_render_spanfix_next (xcb_render_spanfix_iterator_t *i /**< */) 3758{ 3759 --i->rem; 3760 ++i->data; 3761 i->index += sizeof(xcb_render_spanfix_t); 3762} 3763 3764 3765/***************************************************************************** 3766 ** 3767 ** xcb_generic_iterator_t xcb_render_spanfix_end 3768 ** 3769 ** @param xcb_render_spanfix_iterator_t i 3770 ** @returns xcb_generic_iterator_t 3771 ** 3772 *****************************************************************************/ 3773 3774xcb_generic_iterator_t 3775xcb_render_spanfix_end (xcb_render_spanfix_iterator_t i /**< */) 3776{ 3777 xcb_generic_iterator_t ret; 3778 ret.data = i.data + i.rem; 3779 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3780 ret.rem = 0; 3781 return ret; 3782} 3783 3784 3785/***************************************************************************** 3786 ** 3787 ** void xcb_render_trap_next 3788 ** 3789 ** @param xcb_render_trap_iterator_t *i 3790 ** @returns void 3791 ** 3792 *****************************************************************************/ 3793 3794void 3795xcb_render_trap_next (xcb_render_trap_iterator_t *i /**< */) 3796{ 3797 --i->rem; 3798 ++i->data; 3799 i->index += sizeof(xcb_render_trap_t); 3800} 3801 3802 3803/***************************************************************************** 3804 ** 3805 ** xcb_generic_iterator_t xcb_render_trap_end 3806 ** 3807 ** @param xcb_render_trap_iterator_t i 3808 ** @returns xcb_generic_iterator_t 3809 ** 3810 *****************************************************************************/ 3811 3812xcb_generic_iterator_t 3813xcb_render_trap_end (xcb_render_trap_iterator_t i /**< */) 3814{ 3815 xcb_generic_iterator_t ret; 3816 ret.data = i.data + i.rem; 3817 ret.index = i.index + ((char *) ret.data - (char *) i.data); 3818 ret.rem = 0; 3819 return ret; 3820} 3821 3822 3823/***************************************************************************** 3824 ** 3825 ** xcb_void_cookie_t xcb_render_add_traps_checked 3826 ** 3827 ** @param xcb_connection_t *c 3828 ** @param xcb_render_picture_t picture 3829 ** @param int16_t x_off 3830 ** @param int16_t y_off 3831 ** @param uint32_t traps_len 3832 ** @param const xcb_render_trap_t *traps 3833 ** @returns xcb_void_cookie_t 3834 ** 3835 *****************************************************************************/ 3836 3837xcb_void_cookie_t 3838xcb_render_add_traps_checked (xcb_connection_t *c /**< */, 3839 xcb_render_picture_t picture /**< */, 3840 int16_t x_off /**< */, 3841 int16_t y_off /**< */, 3842 uint32_t traps_len /**< */, 3843 const xcb_render_trap_t *traps /**< */) 3844{ 3845 static const xcb_protocol_request_t xcb_req = { 3846 /* count */ 4, 3847 /* ext */ &xcb_render_id, 3848 /* opcode */ XCB_RENDER_ADD_TRAPS, 3849 /* isvoid */ 1 3850 }; 3851 3852 struct iovec xcb_parts[6]; 3853 xcb_void_cookie_t xcb_ret; 3854 xcb_render_add_traps_request_t xcb_out; 3855 3856 xcb_out.picture = picture; 3857 xcb_out.x_off = x_off; 3858 xcb_out.y_off = y_off; 3859 3860 xcb_parts[2].iov_base = (char *) &xcb_out; 3861 xcb_parts[2].iov_len = sizeof(xcb_out); 3862 xcb_parts[3].iov_base = 0; 3863 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3864 xcb_parts[4].iov_base = (char *) traps; 3865 xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t); 3866 xcb_parts[5].iov_base = 0; 3867 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3868 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3869 return xcb_ret; 3870} 3871 3872 3873/***************************************************************************** 3874 ** 3875 ** xcb_void_cookie_t xcb_render_add_traps 3876 ** 3877 ** @param xcb_connection_t *c 3878 ** @param xcb_render_picture_t picture 3879 ** @param int16_t x_off 3880 ** @param int16_t y_off 3881 ** @param uint32_t traps_len 3882 ** @param const xcb_render_trap_t *traps 3883 ** @returns xcb_void_cookie_t 3884 ** 3885 *****************************************************************************/ 3886 3887xcb_void_cookie_t 3888xcb_render_add_traps (xcb_connection_t *c /**< */, 3889 xcb_render_picture_t picture /**< */, 3890 int16_t x_off /**< */, 3891 int16_t y_off /**< */, 3892 uint32_t traps_len /**< */, 3893 const xcb_render_trap_t *traps /**< */) 3894{ 3895 static const xcb_protocol_request_t xcb_req = { 3896 /* count */ 4, 3897 /* ext */ &xcb_render_id, 3898 /* opcode */ XCB_RENDER_ADD_TRAPS, 3899 /* isvoid */ 1 3900 }; 3901 3902 struct iovec xcb_parts[6]; 3903 xcb_void_cookie_t xcb_ret; 3904 xcb_render_add_traps_request_t xcb_out; 3905 3906 xcb_out.picture = picture; 3907 xcb_out.x_off = x_off; 3908 xcb_out.y_off = y_off; 3909 3910 xcb_parts[2].iov_base = (char *) &xcb_out; 3911 xcb_parts[2].iov_len = sizeof(xcb_out); 3912 xcb_parts[3].iov_base = 0; 3913 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3914 xcb_parts[4].iov_base = (char *) traps; 3915 xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t); 3916 xcb_parts[5].iov_base = 0; 3917 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3918 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3919 return xcb_ret; 3920} 3921 3922 3923/***************************************************************************** 3924 ** 3925 ** xcb_void_cookie_t xcb_render_create_solid_fill_checked 3926 ** 3927 ** @param xcb_connection_t *c 3928 ** @param xcb_render_picture_t picture 3929 ** @param xcb_render_color_t color 3930 ** @returns xcb_void_cookie_t 3931 ** 3932 *****************************************************************************/ 3933 3934xcb_void_cookie_t 3935xcb_render_create_solid_fill_checked (xcb_connection_t *c /**< */, 3936 xcb_render_picture_t picture /**< */, 3937 xcb_render_color_t color /**< */) 3938{ 3939 static const xcb_protocol_request_t xcb_req = { 3940 /* count */ 2, 3941 /* ext */ &xcb_render_id, 3942 /* opcode */ XCB_RENDER_CREATE_SOLID_FILL, 3943 /* isvoid */ 1 3944 }; 3945 3946 struct iovec xcb_parts[4]; 3947 xcb_void_cookie_t xcb_ret; 3948 xcb_render_create_solid_fill_request_t xcb_out; 3949 3950 xcb_out.picture = picture; 3951 xcb_out.color = color; 3952 3953 xcb_parts[2].iov_base = (char *) &xcb_out; 3954 xcb_parts[2].iov_len = sizeof(xcb_out); 3955 xcb_parts[3].iov_base = 0; 3956 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3957 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3958 return xcb_ret; 3959} 3960 3961 3962/***************************************************************************** 3963 ** 3964 ** xcb_void_cookie_t xcb_render_create_solid_fill 3965 ** 3966 ** @param xcb_connection_t *c 3967 ** @param xcb_render_picture_t picture 3968 ** @param xcb_render_color_t color 3969 ** @returns xcb_void_cookie_t 3970 ** 3971 *****************************************************************************/ 3972 3973xcb_void_cookie_t 3974xcb_render_create_solid_fill (xcb_connection_t *c /**< */, 3975 xcb_render_picture_t picture /**< */, 3976 xcb_render_color_t color /**< */) 3977{ 3978 static const xcb_protocol_request_t xcb_req = { 3979 /* count */ 2, 3980 /* ext */ &xcb_render_id, 3981 /* opcode */ XCB_RENDER_CREATE_SOLID_FILL, 3982 /* isvoid */ 1 3983 }; 3984 3985 struct iovec xcb_parts[4]; 3986 xcb_void_cookie_t xcb_ret; 3987 xcb_render_create_solid_fill_request_t xcb_out; 3988 3989 xcb_out.picture = picture; 3990 xcb_out.color = color; 3991 3992 xcb_parts[2].iov_base = (char *) &xcb_out; 3993 xcb_parts[2].iov_len = sizeof(xcb_out); 3994 xcb_parts[3].iov_base = 0; 3995 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3996 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3997 return xcb_ret; 3998} 3999 4000 4001/***************************************************************************** 4002 ** 4003 ** xcb_void_cookie_t xcb_render_create_linear_gradient_checked 4004 ** 4005 ** @param xcb_connection_t *c 4006 ** @param xcb_render_picture_t picture 4007 ** @param xcb_render_pointfix_t p1 4008 ** @param xcb_render_pointfix_t p2 4009 ** @param uint32_t num_stops 4010 ** @param const xcb_render_fixed_t *stops 4011 ** @param const xcb_render_color_t *colors 4012 ** @returns xcb_void_cookie_t 4013 ** 4014 *****************************************************************************/ 4015 4016xcb_void_cookie_t 4017xcb_render_create_linear_gradient_checked (xcb_connection_t *c /**< */, 4018 xcb_render_picture_t picture /**< */, 4019 xcb_render_pointfix_t p1 /**< */, 4020 xcb_render_pointfix_t p2 /**< */, 4021 uint32_t num_stops /**< */, 4022 const xcb_render_fixed_t *stops /**< */, 4023 const xcb_render_color_t *colors /**< */) 4024{ 4025 static const xcb_protocol_request_t xcb_req = { 4026 /* count */ 6, 4027 /* ext */ &xcb_render_id, 4028 /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT, 4029 /* isvoid */ 1 4030 }; 4031 4032 struct iovec xcb_parts[8]; 4033 xcb_void_cookie_t xcb_ret; 4034 xcb_render_create_linear_gradient_request_t xcb_out; 4035 4036 xcb_out.picture = picture; 4037 xcb_out.p1 = p1; 4038 xcb_out.p2 = p2; 4039 xcb_out.num_stops = num_stops; 4040 4041 xcb_parts[2].iov_base = (char *) &xcb_out; 4042 xcb_parts[2].iov_len = sizeof(xcb_out); 4043 xcb_parts[3].iov_base = 0; 4044 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4045 xcb_parts[4].iov_base = (char *) stops; 4046 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4047 xcb_parts[5].iov_base = 0; 4048 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4049 xcb_parts[6].iov_base = (char *) colors; 4050 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4051 xcb_parts[7].iov_base = 0; 4052 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4053 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4054 return xcb_ret; 4055} 4056 4057 4058/***************************************************************************** 4059 ** 4060 ** xcb_void_cookie_t xcb_render_create_linear_gradient 4061 ** 4062 ** @param xcb_connection_t *c 4063 ** @param xcb_render_picture_t picture 4064 ** @param xcb_render_pointfix_t p1 4065 ** @param xcb_render_pointfix_t p2 4066 ** @param uint32_t num_stops 4067 ** @param const xcb_render_fixed_t *stops 4068 ** @param const xcb_render_color_t *colors 4069 ** @returns xcb_void_cookie_t 4070 ** 4071 *****************************************************************************/ 4072 4073xcb_void_cookie_t 4074xcb_render_create_linear_gradient (xcb_connection_t *c /**< */, 4075 xcb_render_picture_t picture /**< */, 4076 xcb_render_pointfix_t p1 /**< */, 4077 xcb_render_pointfix_t p2 /**< */, 4078 uint32_t num_stops /**< */, 4079 const xcb_render_fixed_t *stops /**< */, 4080 const xcb_render_color_t *colors /**< */) 4081{ 4082 static const xcb_protocol_request_t xcb_req = { 4083 /* count */ 6, 4084 /* ext */ &xcb_render_id, 4085 /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT, 4086 /* isvoid */ 1 4087 }; 4088 4089 struct iovec xcb_parts[8]; 4090 xcb_void_cookie_t xcb_ret; 4091 xcb_render_create_linear_gradient_request_t xcb_out; 4092 4093 xcb_out.picture = picture; 4094 xcb_out.p1 = p1; 4095 xcb_out.p2 = p2; 4096 xcb_out.num_stops = num_stops; 4097 4098 xcb_parts[2].iov_base = (char *) &xcb_out; 4099 xcb_parts[2].iov_len = sizeof(xcb_out); 4100 xcb_parts[3].iov_base = 0; 4101 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4102 xcb_parts[4].iov_base = (char *) stops; 4103 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4104 xcb_parts[5].iov_base = 0; 4105 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4106 xcb_parts[6].iov_base = (char *) colors; 4107 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4108 xcb_parts[7].iov_base = 0; 4109 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4110 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4111 return xcb_ret; 4112} 4113 4114 4115/***************************************************************************** 4116 ** 4117 ** xcb_void_cookie_t xcb_render_create_radial_gradient_checked 4118 ** 4119 ** @param xcb_connection_t *c 4120 ** @param xcb_render_picture_t picture 4121 ** @param xcb_render_pointfix_t inner 4122 ** @param xcb_render_pointfix_t outer 4123 ** @param xcb_render_fixed_t inner_radius 4124 ** @param xcb_render_fixed_t outer_radius 4125 ** @param uint32_t num_stops 4126 ** @param const xcb_render_fixed_t *stops 4127 ** @param const xcb_render_color_t *colors 4128 ** @returns xcb_void_cookie_t 4129 ** 4130 *****************************************************************************/ 4131 4132xcb_void_cookie_t 4133xcb_render_create_radial_gradient_checked (xcb_connection_t *c /**< */, 4134 xcb_render_picture_t picture /**< */, 4135 xcb_render_pointfix_t inner /**< */, 4136 xcb_render_pointfix_t outer /**< */, 4137 xcb_render_fixed_t inner_radius /**< */, 4138 xcb_render_fixed_t outer_radius /**< */, 4139 uint32_t num_stops /**< */, 4140 const xcb_render_fixed_t *stops /**< */, 4141 const xcb_render_color_t *colors /**< */) 4142{ 4143 static const xcb_protocol_request_t xcb_req = { 4144 /* count */ 6, 4145 /* ext */ &xcb_render_id, 4146 /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT, 4147 /* isvoid */ 1 4148 }; 4149 4150 struct iovec xcb_parts[8]; 4151 xcb_void_cookie_t xcb_ret; 4152 xcb_render_create_radial_gradient_request_t xcb_out; 4153 4154 xcb_out.picture = picture; 4155 xcb_out.inner = inner; 4156 xcb_out.outer = outer; 4157 xcb_out.inner_radius = inner_radius; 4158 xcb_out.outer_radius = outer_radius; 4159 xcb_out.num_stops = num_stops; 4160 4161 xcb_parts[2].iov_base = (char *) &xcb_out; 4162 xcb_parts[2].iov_len = sizeof(xcb_out); 4163 xcb_parts[3].iov_base = 0; 4164 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4165 xcb_parts[4].iov_base = (char *) stops; 4166 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4167 xcb_parts[5].iov_base = 0; 4168 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4169 xcb_parts[6].iov_base = (char *) colors; 4170 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4171 xcb_parts[7].iov_base = 0; 4172 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4173 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4174 return xcb_ret; 4175} 4176 4177 4178/***************************************************************************** 4179 ** 4180 ** xcb_void_cookie_t xcb_render_create_radial_gradient 4181 ** 4182 ** @param xcb_connection_t *c 4183 ** @param xcb_render_picture_t picture 4184 ** @param xcb_render_pointfix_t inner 4185 ** @param xcb_render_pointfix_t outer 4186 ** @param xcb_render_fixed_t inner_radius 4187 ** @param xcb_render_fixed_t outer_radius 4188 ** @param uint32_t num_stops 4189 ** @param const xcb_render_fixed_t *stops 4190 ** @param const xcb_render_color_t *colors 4191 ** @returns xcb_void_cookie_t 4192 ** 4193 *****************************************************************************/ 4194 4195xcb_void_cookie_t 4196xcb_render_create_radial_gradient (xcb_connection_t *c /**< */, 4197 xcb_render_picture_t picture /**< */, 4198 xcb_render_pointfix_t inner /**< */, 4199 xcb_render_pointfix_t outer /**< */, 4200 xcb_render_fixed_t inner_radius /**< */, 4201 xcb_render_fixed_t outer_radius /**< */, 4202 uint32_t num_stops /**< */, 4203 const xcb_render_fixed_t *stops /**< */, 4204 const xcb_render_color_t *colors /**< */) 4205{ 4206 static const xcb_protocol_request_t xcb_req = { 4207 /* count */ 6, 4208 /* ext */ &xcb_render_id, 4209 /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT, 4210 /* isvoid */ 1 4211 }; 4212 4213 struct iovec xcb_parts[8]; 4214 xcb_void_cookie_t xcb_ret; 4215 xcb_render_create_radial_gradient_request_t xcb_out; 4216 4217 xcb_out.picture = picture; 4218 xcb_out.inner = inner; 4219 xcb_out.outer = outer; 4220 xcb_out.inner_radius = inner_radius; 4221 xcb_out.outer_radius = outer_radius; 4222 xcb_out.num_stops = num_stops; 4223 4224 xcb_parts[2].iov_base = (char *) &xcb_out; 4225 xcb_parts[2].iov_len = sizeof(xcb_out); 4226 xcb_parts[3].iov_base = 0; 4227 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4228 xcb_parts[4].iov_base = (char *) stops; 4229 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4230 xcb_parts[5].iov_base = 0; 4231 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4232 xcb_parts[6].iov_base = (char *) colors; 4233 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4234 xcb_parts[7].iov_base = 0; 4235 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4236 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4237 return xcb_ret; 4238} 4239 4240 4241/***************************************************************************** 4242 ** 4243 ** xcb_void_cookie_t xcb_render_create_conical_gradient_checked 4244 ** 4245 ** @param xcb_connection_t *c 4246 ** @param xcb_render_picture_t picture 4247 ** @param xcb_render_pointfix_t center 4248 ** @param xcb_render_fixed_t angle 4249 ** @param uint32_t num_stops 4250 ** @param const xcb_render_fixed_t *stops 4251 ** @param const xcb_render_color_t *colors 4252 ** @returns xcb_void_cookie_t 4253 ** 4254 *****************************************************************************/ 4255 4256xcb_void_cookie_t 4257xcb_render_create_conical_gradient_checked (xcb_connection_t *c /**< */, 4258 xcb_render_picture_t picture /**< */, 4259 xcb_render_pointfix_t center /**< */, 4260 xcb_render_fixed_t angle /**< */, 4261 uint32_t num_stops /**< */, 4262 const xcb_render_fixed_t *stops /**< */, 4263 const xcb_render_color_t *colors /**< */) 4264{ 4265 static const xcb_protocol_request_t xcb_req = { 4266 /* count */ 6, 4267 /* ext */ &xcb_render_id, 4268 /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT, 4269 /* isvoid */ 1 4270 }; 4271 4272 struct iovec xcb_parts[8]; 4273 xcb_void_cookie_t xcb_ret; 4274 xcb_render_create_conical_gradient_request_t xcb_out; 4275 4276 xcb_out.picture = picture; 4277 xcb_out.center = center; 4278 xcb_out.angle = angle; 4279 xcb_out.num_stops = num_stops; 4280 4281 xcb_parts[2].iov_base = (char *) &xcb_out; 4282 xcb_parts[2].iov_len = sizeof(xcb_out); 4283 xcb_parts[3].iov_base = 0; 4284 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4285 xcb_parts[4].iov_base = (char *) stops; 4286 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4287 xcb_parts[5].iov_base = 0; 4288 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4289 xcb_parts[6].iov_base = (char *) colors; 4290 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4291 xcb_parts[7].iov_base = 0; 4292 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4293 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4294 return xcb_ret; 4295} 4296 4297 4298/***************************************************************************** 4299 ** 4300 ** xcb_void_cookie_t xcb_render_create_conical_gradient 4301 ** 4302 ** @param xcb_connection_t *c 4303 ** @param xcb_render_picture_t picture 4304 ** @param xcb_render_pointfix_t center 4305 ** @param xcb_render_fixed_t angle 4306 ** @param uint32_t num_stops 4307 ** @param const xcb_render_fixed_t *stops 4308 ** @param const xcb_render_color_t *colors 4309 ** @returns xcb_void_cookie_t 4310 ** 4311 *****************************************************************************/ 4312 4313xcb_void_cookie_t 4314xcb_render_create_conical_gradient (xcb_connection_t *c /**< */, 4315 xcb_render_picture_t picture /**< */, 4316 xcb_render_pointfix_t center /**< */, 4317 xcb_render_fixed_t angle /**< */, 4318 uint32_t num_stops /**< */, 4319 const xcb_render_fixed_t *stops /**< */, 4320 const xcb_render_color_t *colors /**< */) 4321{ 4322 static const xcb_protocol_request_t xcb_req = { 4323 /* count */ 6, 4324 /* ext */ &xcb_render_id, 4325 /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT, 4326 /* isvoid */ 1 4327 }; 4328 4329 struct iovec xcb_parts[8]; 4330 xcb_void_cookie_t xcb_ret; 4331 xcb_render_create_conical_gradient_request_t xcb_out; 4332 4333 xcb_out.picture = picture; 4334 xcb_out.center = center; 4335 xcb_out.angle = angle; 4336 xcb_out.num_stops = num_stops; 4337 4338 xcb_parts[2].iov_base = (char *) &xcb_out; 4339 xcb_parts[2].iov_len = sizeof(xcb_out); 4340 xcb_parts[3].iov_base = 0; 4341 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4342 xcb_parts[4].iov_base = (char *) stops; 4343 xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); 4344 xcb_parts[5].iov_base = 0; 4345 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 4346 xcb_parts[6].iov_base = (char *) colors; 4347 xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); 4348 xcb_parts[7].iov_base = 0; 4349 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 4350 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4351 return xcb_ret; 4352} 4353 4354