1 /* 2 * This file generated automatically from glx.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 #ifdef HAVE_CONFIG_H 7 #include "config.h" 8 #endif 9 #include <stdlib.h> 10 #include <string.h> 11 #include <assert.h> 12 #include <stddef.h> /* for offsetof() */ 13 #include "xcbext.h" 14 #include "glx.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 19 xcb_extension_t xcb_glx_id = { "GLX", 0 }; 20 21 void 22 xcb_glx_pixmap_next (xcb_glx_pixmap_iterator_t *i) 23 { 24 --i->rem; 25 ++i->data; 26 i->index += sizeof(xcb_glx_pixmap_t); 27 } 28 29 xcb_generic_iterator_t 30 xcb_glx_pixmap_end (xcb_glx_pixmap_iterator_t i) 31 { 32 xcb_generic_iterator_t ret; 33 ret.data = i.data + i.rem; 34 ret.index = i.index + ((char *) ret.data - (char *) i.data); 35 ret.rem = 0; 36 return ret; 37 } 38 39 void 40 xcb_glx_context_next (xcb_glx_context_iterator_t *i) 41 { 42 --i->rem; 43 ++i->data; 44 i->index += sizeof(xcb_glx_context_t); 45 } 46 47 xcb_generic_iterator_t 48 xcb_glx_context_end (xcb_glx_context_iterator_t i) 49 { 50 xcb_generic_iterator_t ret; 51 ret.data = i.data + i.rem; 52 ret.index = i.index + ((char *) ret.data - (char *) i.data); 53 ret.rem = 0; 54 return ret; 55 } 56 57 void 58 xcb_glx_pbuffer_next (xcb_glx_pbuffer_iterator_t *i) 59 { 60 --i->rem; 61 ++i->data; 62 i->index += sizeof(xcb_glx_pbuffer_t); 63 } 64 65 xcb_generic_iterator_t 66 xcb_glx_pbuffer_end (xcb_glx_pbuffer_iterator_t i) 67 { 68 xcb_generic_iterator_t ret; 69 ret.data = i.data + i.rem; 70 ret.index = i.index + ((char *) ret.data - (char *) i.data); 71 ret.rem = 0; 72 return ret; 73 } 74 75 void 76 xcb_glx_window_next (xcb_glx_window_iterator_t *i) 77 { 78 --i->rem; 79 ++i->data; 80 i->index += sizeof(xcb_glx_window_t); 81 } 82 83 xcb_generic_iterator_t 84 xcb_glx_window_end (xcb_glx_window_iterator_t i) 85 { 86 xcb_generic_iterator_t ret; 87 ret.data = i.data + i.rem; 88 ret.index = i.index + ((char *) ret.data - (char *) i.data); 89 ret.rem = 0; 90 return ret; 91 } 92 93 void 94 xcb_glx_fbconfig_next (xcb_glx_fbconfig_iterator_t *i) 95 { 96 --i->rem; 97 ++i->data; 98 i->index += sizeof(xcb_glx_fbconfig_t); 99 } 100 101 xcb_generic_iterator_t 102 xcb_glx_fbconfig_end (xcb_glx_fbconfig_iterator_t i) 103 { 104 xcb_generic_iterator_t ret; 105 ret.data = i.data + i.rem; 106 ret.index = i.index + ((char *) ret.data - (char *) i.data); 107 ret.rem = 0; 108 return ret; 109 } 110 111 void 112 xcb_glx_drawable_next (xcb_glx_drawable_iterator_t *i) 113 { 114 --i->rem; 115 ++i->data; 116 i->index += sizeof(xcb_glx_drawable_t); 117 } 118 119 xcb_generic_iterator_t 120 xcb_glx_drawable_end (xcb_glx_drawable_iterator_t i) 121 { 122 xcb_generic_iterator_t ret; 123 ret.data = i.data + i.rem; 124 ret.index = i.index + ((char *) ret.data - (char *) i.data); 125 ret.rem = 0; 126 return ret; 127 } 128 129 void 130 xcb_glx_float32_next (xcb_glx_float32_iterator_t *i) 131 { 132 --i->rem; 133 ++i->data; 134 i->index += sizeof(xcb_glx_float32_t); 135 } 136 137 xcb_generic_iterator_t 138 xcb_glx_float32_end (xcb_glx_float32_iterator_t i) 139 { 140 xcb_generic_iterator_t ret; 141 ret.data = i.data + i.rem; 142 ret.index = i.index + ((char *) ret.data - (char *) i.data); 143 ret.rem = 0; 144 return ret; 145 } 146 147 void 148 xcb_glx_float64_next (xcb_glx_float64_iterator_t *i) 149 { 150 --i->rem; 151 ++i->data; 152 i->index += sizeof(xcb_glx_float64_t); 153 } 154 155 xcb_generic_iterator_t 156 xcb_glx_float64_end (xcb_glx_float64_iterator_t i) 157 { 158 xcb_generic_iterator_t ret; 159 ret.data = i.data + i.rem; 160 ret.index = i.index + ((char *) ret.data - (char *) i.data); 161 ret.rem = 0; 162 return ret; 163 } 164 165 void 166 xcb_glx_bool32_next (xcb_glx_bool32_iterator_t *i) 167 { 168 --i->rem; 169 ++i->data; 170 i->index += sizeof(xcb_glx_bool32_t); 171 } 172 173 xcb_generic_iterator_t 174 xcb_glx_bool32_end (xcb_glx_bool32_iterator_t i) 175 { 176 xcb_generic_iterator_t ret; 177 ret.data = i.data + i.rem; 178 ret.index = i.index + ((char *) ret.data - (char *) i.data); 179 ret.rem = 0; 180 return ret; 181 } 182 183 void 184 xcb_glx_context_tag_next (xcb_glx_context_tag_iterator_t *i) 185 { 186 --i->rem; 187 ++i->data; 188 i->index += sizeof(xcb_glx_context_tag_t); 189 } 190 191 xcb_generic_iterator_t 192 xcb_glx_context_tag_end (xcb_glx_context_tag_iterator_t i) 193 { 194 xcb_generic_iterator_t ret; 195 ret.data = i.data + i.rem; 196 ret.index = i.index + ((char *) ret.data - (char *) i.data); 197 ret.rem = 0; 198 return ret; 199 } 200 201 int 202 xcb_glx_render_sizeof (const void *_buffer, 203 uint32_t data_len) 204 { 205 char *xcb_tmp = (char *)_buffer; 206 unsigned int xcb_buffer_len = 0; 207 unsigned int xcb_block_len = 0; 208 unsigned int xcb_pad = 0; 209 unsigned int xcb_align_to = 0; 210 211 212 xcb_block_len += sizeof(xcb_glx_render_request_t); 213 xcb_tmp += xcb_block_len; 214 xcb_buffer_len += xcb_block_len; 215 xcb_block_len = 0; 216 /* data */ 217 xcb_block_len += data_len * sizeof(uint8_t); 218 xcb_tmp += xcb_block_len; 219 xcb_align_to = ALIGNOF(uint8_t); 220 /* insert padding */ 221 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 222 xcb_buffer_len += xcb_block_len + xcb_pad; 223 if (0 != xcb_pad) { 224 xcb_tmp += xcb_pad; 225 xcb_pad = 0; 226 } 227 xcb_block_len = 0; 228 229 return xcb_buffer_len; 230 } 231 232 xcb_void_cookie_t 233 xcb_glx_render_checked (xcb_connection_t *c, 234 xcb_glx_context_tag_t context_tag, 235 uint32_t data_len, 236 const uint8_t *data) 237 { 238 static const xcb_protocol_request_t xcb_req = { 239 .count = 4, 240 .ext = &xcb_glx_id, 241 .opcode = XCB_GLX_RENDER, 242 .isvoid = 1 243 }; 244 245 struct iovec xcb_parts[6]; 246 xcb_void_cookie_t xcb_ret; 247 xcb_glx_render_request_t xcb_out; 248 249 xcb_out.context_tag = context_tag; 250 251 xcb_parts[2].iov_base = (char *) &xcb_out; 252 xcb_parts[2].iov_len = sizeof(xcb_out); 253 xcb_parts[3].iov_base = 0; 254 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 255 /* uint8_t data */ 256 xcb_parts[4].iov_base = (char *) data; 257 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 258 xcb_parts[5].iov_base = 0; 259 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 260 261 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 262 return xcb_ret; 263 } 264 265 xcb_void_cookie_t 266 xcb_glx_render (xcb_connection_t *c, 267 xcb_glx_context_tag_t context_tag, 268 uint32_t data_len, 269 const uint8_t *data) 270 { 271 static const xcb_protocol_request_t xcb_req = { 272 .count = 4, 273 .ext = &xcb_glx_id, 274 .opcode = XCB_GLX_RENDER, 275 .isvoid = 1 276 }; 277 278 struct iovec xcb_parts[6]; 279 xcb_void_cookie_t xcb_ret; 280 xcb_glx_render_request_t xcb_out; 281 282 xcb_out.context_tag = context_tag; 283 284 xcb_parts[2].iov_base = (char *) &xcb_out; 285 xcb_parts[2].iov_len = sizeof(xcb_out); 286 xcb_parts[3].iov_base = 0; 287 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 288 /* uint8_t data */ 289 xcb_parts[4].iov_base = (char *) data; 290 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 291 xcb_parts[5].iov_base = 0; 292 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 293 294 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 295 return xcb_ret; 296 } 297 298 uint8_t * 299 xcb_glx_render_data (const xcb_glx_render_request_t *R) 300 { 301 return (uint8_t *) (R + 1); 302 } 303 304 int 305 xcb_glx_render_data_length (const xcb_glx_render_request_t *R) 306 { 307 return (((R->length * 4) - sizeof(xcb_glx_render_request_t))/sizeof(uint8_t)); 308 } 309 310 xcb_generic_iterator_t 311 xcb_glx_render_data_end (const xcb_glx_render_request_t *R) 312 { 313 xcb_generic_iterator_t i; 314 i.data = ((uint8_t *) (R + 1)) + ((((R->length * 4) - sizeof(xcb_glx_render_request_t))/sizeof(uint8_t))); 315 i.rem = 0; 316 i.index = (char *) i.data - (char *) R; 317 return i; 318 } 319 320 int 321 xcb_glx_render_large_sizeof (const void *_buffer) 322 { 323 char *xcb_tmp = (char *)_buffer; 324 const xcb_glx_render_large_request_t *_aux = (xcb_glx_render_large_request_t *)_buffer; 325 unsigned int xcb_buffer_len = 0; 326 unsigned int xcb_block_len = 0; 327 unsigned int xcb_pad = 0; 328 unsigned int xcb_align_to = 0; 329 330 331 xcb_block_len += sizeof(xcb_glx_render_large_request_t); 332 xcb_tmp += xcb_block_len; 333 xcb_buffer_len += xcb_block_len; 334 xcb_block_len = 0; 335 /* data */ 336 xcb_block_len += _aux->data_len * sizeof(uint8_t); 337 xcb_tmp += xcb_block_len; 338 xcb_align_to = ALIGNOF(uint8_t); 339 /* insert padding */ 340 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 341 xcb_buffer_len += xcb_block_len + xcb_pad; 342 if (0 != xcb_pad) { 343 xcb_tmp += xcb_pad; 344 xcb_pad = 0; 345 } 346 xcb_block_len = 0; 347 348 return xcb_buffer_len; 349 } 350 351 xcb_void_cookie_t 352 xcb_glx_render_large_checked (xcb_connection_t *c, 353 xcb_glx_context_tag_t context_tag, 354 uint16_t request_num, 355 uint16_t request_total, 356 uint32_t data_len, 357 const uint8_t *data) 358 { 359 static const xcb_protocol_request_t xcb_req = { 360 .count = 4, 361 .ext = &xcb_glx_id, 362 .opcode = XCB_GLX_RENDER_LARGE, 363 .isvoid = 1 364 }; 365 366 struct iovec xcb_parts[6]; 367 xcb_void_cookie_t xcb_ret; 368 xcb_glx_render_large_request_t xcb_out; 369 370 xcb_out.context_tag = context_tag; 371 xcb_out.request_num = request_num; 372 xcb_out.request_total = request_total; 373 xcb_out.data_len = data_len; 374 375 xcb_parts[2].iov_base = (char *) &xcb_out; 376 xcb_parts[2].iov_len = sizeof(xcb_out); 377 xcb_parts[3].iov_base = 0; 378 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 379 /* uint8_t data */ 380 xcb_parts[4].iov_base = (char *) data; 381 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 382 xcb_parts[5].iov_base = 0; 383 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 384 385 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 386 return xcb_ret; 387 } 388 389 xcb_void_cookie_t 390 xcb_glx_render_large (xcb_connection_t *c, 391 xcb_glx_context_tag_t context_tag, 392 uint16_t request_num, 393 uint16_t request_total, 394 uint32_t data_len, 395 const uint8_t *data) 396 { 397 static const xcb_protocol_request_t xcb_req = { 398 .count = 4, 399 .ext = &xcb_glx_id, 400 .opcode = XCB_GLX_RENDER_LARGE, 401 .isvoid = 1 402 }; 403 404 struct iovec xcb_parts[6]; 405 xcb_void_cookie_t xcb_ret; 406 xcb_glx_render_large_request_t xcb_out; 407 408 xcb_out.context_tag = context_tag; 409 xcb_out.request_num = request_num; 410 xcb_out.request_total = request_total; 411 xcb_out.data_len = data_len; 412 413 xcb_parts[2].iov_base = (char *) &xcb_out; 414 xcb_parts[2].iov_len = sizeof(xcb_out); 415 xcb_parts[3].iov_base = 0; 416 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 417 /* uint8_t data */ 418 xcb_parts[4].iov_base = (char *) data; 419 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 420 xcb_parts[5].iov_base = 0; 421 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 422 423 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 424 return xcb_ret; 425 } 426 427 uint8_t * 428 xcb_glx_render_large_data (const xcb_glx_render_large_request_t *R) 429 { 430 return (uint8_t *) (R + 1); 431 } 432 433 int 434 xcb_glx_render_large_data_length (const xcb_glx_render_large_request_t *R) 435 { 436 return R->data_len; 437 } 438 439 xcb_generic_iterator_t 440 xcb_glx_render_large_data_end (const xcb_glx_render_large_request_t *R) 441 { 442 xcb_generic_iterator_t i; 443 i.data = ((uint8_t *) (R + 1)) + (R->data_len); 444 i.rem = 0; 445 i.index = (char *) i.data - (char *) R; 446 return i; 447 } 448 449 xcb_void_cookie_t 450 xcb_glx_create_context_checked (xcb_connection_t *c, 451 xcb_glx_context_t context, 452 xcb_visualid_t visual, 453 uint32_t screen, 454 xcb_glx_context_t share_list, 455 uint8_t is_direct) 456 { 457 static const xcb_protocol_request_t xcb_req = { 458 .count = 2, 459 .ext = &xcb_glx_id, 460 .opcode = XCB_GLX_CREATE_CONTEXT, 461 .isvoid = 1 462 }; 463 464 struct iovec xcb_parts[4]; 465 xcb_void_cookie_t xcb_ret; 466 xcb_glx_create_context_request_t xcb_out; 467 468 xcb_out.context = context; 469 xcb_out.visual = visual; 470 xcb_out.screen = screen; 471 xcb_out.share_list = share_list; 472 xcb_out.is_direct = is_direct; 473 memset(xcb_out.pad0, 0, 3); 474 475 xcb_parts[2].iov_base = (char *) &xcb_out; 476 xcb_parts[2].iov_len = sizeof(xcb_out); 477 xcb_parts[3].iov_base = 0; 478 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 479 480 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 481 return xcb_ret; 482 } 483 484 xcb_void_cookie_t 485 xcb_glx_create_context (xcb_connection_t *c, 486 xcb_glx_context_t context, 487 xcb_visualid_t visual, 488 uint32_t screen, 489 xcb_glx_context_t share_list, 490 uint8_t is_direct) 491 { 492 static const xcb_protocol_request_t xcb_req = { 493 .count = 2, 494 .ext = &xcb_glx_id, 495 .opcode = XCB_GLX_CREATE_CONTEXT, 496 .isvoid = 1 497 }; 498 499 struct iovec xcb_parts[4]; 500 xcb_void_cookie_t xcb_ret; 501 xcb_glx_create_context_request_t xcb_out; 502 503 xcb_out.context = context; 504 xcb_out.visual = visual; 505 xcb_out.screen = screen; 506 xcb_out.share_list = share_list; 507 xcb_out.is_direct = is_direct; 508 memset(xcb_out.pad0, 0, 3); 509 510 xcb_parts[2].iov_base = (char *) &xcb_out; 511 xcb_parts[2].iov_len = sizeof(xcb_out); 512 xcb_parts[3].iov_base = 0; 513 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 514 515 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 516 return xcb_ret; 517 } 518 519 xcb_void_cookie_t 520 xcb_glx_destroy_context_checked (xcb_connection_t *c, 521 xcb_glx_context_t context) 522 { 523 static const xcb_protocol_request_t xcb_req = { 524 .count = 2, 525 .ext = &xcb_glx_id, 526 .opcode = XCB_GLX_DESTROY_CONTEXT, 527 .isvoid = 1 528 }; 529 530 struct iovec xcb_parts[4]; 531 xcb_void_cookie_t xcb_ret; 532 xcb_glx_destroy_context_request_t xcb_out; 533 534 xcb_out.context = context; 535 536 xcb_parts[2].iov_base = (char *) &xcb_out; 537 xcb_parts[2].iov_len = sizeof(xcb_out); 538 xcb_parts[3].iov_base = 0; 539 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 540 541 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 542 return xcb_ret; 543 } 544 545 xcb_void_cookie_t 546 xcb_glx_destroy_context (xcb_connection_t *c, 547 xcb_glx_context_t context) 548 { 549 static const xcb_protocol_request_t xcb_req = { 550 .count = 2, 551 .ext = &xcb_glx_id, 552 .opcode = XCB_GLX_DESTROY_CONTEXT, 553 .isvoid = 1 554 }; 555 556 struct iovec xcb_parts[4]; 557 xcb_void_cookie_t xcb_ret; 558 xcb_glx_destroy_context_request_t xcb_out; 559 560 xcb_out.context = context; 561 562 xcb_parts[2].iov_base = (char *) &xcb_out; 563 xcb_parts[2].iov_len = sizeof(xcb_out); 564 xcb_parts[3].iov_base = 0; 565 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 566 567 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 568 return xcb_ret; 569 } 570 571 xcb_glx_make_current_cookie_t 572 xcb_glx_make_current (xcb_connection_t *c, 573 xcb_glx_drawable_t drawable, 574 xcb_glx_context_t context, 575 xcb_glx_context_tag_t old_context_tag) 576 { 577 static const xcb_protocol_request_t xcb_req = { 578 .count = 2, 579 .ext = &xcb_glx_id, 580 .opcode = XCB_GLX_MAKE_CURRENT, 581 .isvoid = 0 582 }; 583 584 struct iovec xcb_parts[4]; 585 xcb_glx_make_current_cookie_t xcb_ret; 586 xcb_glx_make_current_request_t xcb_out; 587 588 xcb_out.drawable = drawable; 589 xcb_out.context = context; 590 xcb_out.old_context_tag = old_context_tag; 591 592 xcb_parts[2].iov_base = (char *) &xcb_out; 593 xcb_parts[2].iov_len = sizeof(xcb_out); 594 xcb_parts[3].iov_base = 0; 595 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 596 597 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 598 return xcb_ret; 599 } 600 601 xcb_glx_make_current_cookie_t 602 xcb_glx_make_current_unchecked (xcb_connection_t *c, 603 xcb_glx_drawable_t drawable, 604 xcb_glx_context_t context, 605 xcb_glx_context_tag_t old_context_tag) 606 { 607 static const xcb_protocol_request_t xcb_req = { 608 .count = 2, 609 .ext = &xcb_glx_id, 610 .opcode = XCB_GLX_MAKE_CURRENT, 611 .isvoid = 0 612 }; 613 614 struct iovec xcb_parts[4]; 615 xcb_glx_make_current_cookie_t xcb_ret; 616 xcb_glx_make_current_request_t xcb_out; 617 618 xcb_out.drawable = drawable; 619 xcb_out.context = context; 620 xcb_out.old_context_tag = old_context_tag; 621 622 xcb_parts[2].iov_base = (char *) &xcb_out; 623 xcb_parts[2].iov_len = sizeof(xcb_out); 624 xcb_parts[3].iov_base = 0; 625 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 626 627 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 628 return xcb_ret; 629 } 630 631 xcb_glx_make_current_reply_t * 632 xcb_glx_make_current_reply (xcb_connection_t *c, 633 xcb_glx_make_current_cookie_t cookie /**< */, 634 xcb_generic_error_t **e) 635 { 636 return (xcb_glx_make_current_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 637 } 638 639 xcb_glx_is_direct_cookie_t 640 xcb_glx_is_direct (xcb_connection_t *c, 641 xcb_glx_context_t context) 642 { 643 static const xcb_protocol_request_t xcb_req = { 644 .count = 2, 645 .ext = &xcb_glx_id, 646 .opcode = XCB_GLX_IS_DIRECT, 647 .isvoid = 0 648 }; 649 650 struct iovec xcb_parts[4]; 651 xcb_glx_is_direct_cookie_t xcb_ret; 652 xcb_glx_is_direct_request_t xcb_out; 653 654 xcb_out.context = context; 655 656 xcb_parts[2].iov_base = (char *) &xcb_out; 657 xcb_parts[2].iov_len = sizeof(xcb_out); 658 xcb_parts[3].iov_base = 0; 659 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 660 661 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 662 return xcb_ret; 663 } 664 665 xcb_glx_is_direct_cookie_t 666 xcb_glx_is_direct_unchecked (xcb_connection_t *c, 667 xcb_glx_context_t context) 668 { 669 static const xcb_protocol_request_t xcb_req = { 670 .count = 2, 671 .ext = &xcb_glx_id, 672 .opcode = XCB_GLX_IS_DIRECT, 673 .isvoid = 0 674 }; 675 676 struct iovec xcb_parts[4]; 677 xcb_glx_is_direct_cookie_t xcb_ret; 678 xcb_glx_is_direct_request_t xcb_out; 679 680 xcb_out.context = context; 681 682 xcb_parts[2].iov_base = (char *) &xcb_out; 683 xcb_parts[2].iov_len = sizeof(xcb_out); 684 xcb_parts[3].iov_base = 0; 685 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 686 687 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 688 return xcb_ret; 689 } 690 691 xcb_glx_is_direct_reply_t * 692 xcb_glx_is_direct_reply (xcb_connection_t *c, 693 xcb_glx_is_direct_cookie_t cookie /**< */, 694 xcb_generic_error_t **e) 695 { 696 return (xcb_glx_is_direct_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 697 } 698 699 xcb_glx_query_version_cookie_t 700 xcb_glx_query_version (xcb_connection_t *c, 701 uint32_t major_version, 702 uint32_t minor_version) 703 { 704 static const xcb_protocol_request_t xcb_req = { 705 .count = 2, 706 .ext = &xcb_glx_id, 707 .opcode = XCB_GLX_QUERY_VERSION, 708 .isvoid = 0 709 }; 710 711 struct iovec xcb_parts[4]; 712 xcb_glx_query_version_cookie_t xcb_ret; 713 xcb_glx_query_version_request_t xcb_out; 714 715 xcb_out.major_version = major_version; 716 xcb_out.minor_version = minor_version; 717 718 xcb_parts[2].iov_base = (char *) &xcb_out; 719 xcb_parts[2].iov_len = sizeof(xcb_out); 720 xcb_parts[3].iov_base = 0; 721 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 722 723 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 724 return xcb_ret; 725 } 726 727 xcb_glx_query_version_cookie_t 728 xcb_glx_query_version_unchecked (xcb_connection_t *c, 729 uint32_t major_version, 730 uint32_t minor_version) 731 { 732 static const xcb_protocol_request_t xcb_req = { 733 .count = 2, 734 .ext = &xcb_glx_id, 735 .opcode = XCB_GLX_QUERY_VERSION, 736 .isvoid = 0 737 }; 738 739 struct iovec xcb_parts[4]; 740 xcb_glx_query_version_cookie_t xcb_ret; 741 xcb_glx_query_version_request_t xcb_out; 742 743 xcb_out.major_version = major_version; 744 xcb_out.minor_version = minor_version; 745 746 xcb_parts[2].iov_base = (char *) &xcb_out; 747 xcb_parts[2].iov_len = sizeof(xcb_out); 748 xcb_parts[3].iov_base = 0; 749 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 750 751 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 752 return xcb_ret; 753 } 754 755 xcb_glx_query_version_reply_t * 756 xcb_glx_query_version_reply (xcb_connection_t *c, 757 xcb_glx_query_version_cookie_t cookie /**< */, 758 xcb_generic_error_t **e) 759 { 760 return (xcb_glx_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 761 } 762 763 xcb_void_cookie_t 764 xcb_glx_wait_gl_checked (xcb_connection_t *c, 765 xcb_glx_context_tag_t context_tag) 766 { 767 static const xcb_protocol_request_t xcb_req = { 768 .count = 2, 769 .ext = &xcb_glx_id, 770 .opcode = XCB_GLX_WAIT_GL, 771 .isvoid = 1 772 }; 773 774 struct iovec xcb_parts[4]; 775 xcb_void_cookie_t xcb_ret; 776 xcb_glx_wait_gl_request_t xcb_out; 777 778 xcb_out.context_tag = context_tag; 779 780 xcb_parts[2].iov_base = (char *) &xcb_out; 781 xcb_parts[2].iov_len = sizeof(xcb_out); 782 xcb_parts[3].iov_base = 0; 783 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 784 785 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 786 return xcb_ret; 787 } 788 789 xcb_void_cookie_t 790 xcb_glx_wait_gl (xcb_connection_t *c, 791 xcb_glx_context_tag_t context_tag) 792 { 793 static const xcb_protocol_request_t xcb_req = { 794 .count = 2, 795 .ext = &xcb_glx_id, 796 .opcode = XCB_GLX_WAIT_GL, 797 .isvoid = 1 798 }; 799 800 struct iovec xcb_parts[4]; 801 xcb_void_cookie_t xcb_ret; 802 xcb_glx_wait_gl_request_t xcb_out; 803 804 xcb_out.context_tag = context_tag; 805 806 xcb_parts[2].iov_base = (char *) &xcb_out; 807 xcb_parts[2].iov_len = sizeof(xcb_out); 808 xcb_parts[3].iov_base = 0; 809 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 810 811 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 812 return xcb_ret; 813 } 814 815 xcb_void_cookie_t 816 xcb_glx_wait_x_checked (xcb_connection_t *c, 817 xcb_glx_context_tag_t context_tag) 818 { 819 static const xcb_protocol_request_t xcb_req = { 820 .count = 2, 821 .ext = &xcb_glx_id, 822 .opcode = XCB_GLX_WAIT_X, 823 .isvoid = 1 824 }; 825 826 struct iovec xcb_parts[4]; 827 xcb_void_cookie_t xcb_ret; 828 xcb_glx_wait_x_request_t xcb_out; 829 830 xcb_out.context_tag = context_tag; 831 832 xcb_parts[2].iov_base = (char *) &xcb_out; 833 xcb_parts[2].iov_len = sizeof(xcb_out); 834 xcb_parts[3].iov_base = 0; 835 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 836 837 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 838 return xcb_ret; 839 } 840 841 xcb_void_cookie_t 842 xcb_glx_wait_x (xcb_connection_t *c, 843 xcb_glx_context_tag_t context_tag) 844 { 845 static const xcb_protocol_request_t xcb_req = { 846 .count = 2, 847 .ext = &xcb_glx_id, 848 .opcode = XCB_GLX_WAIT_X, 849 .isvoid = 1 850 }; 851 852 struct iovec xcb_parts[4]; 853 xcb_void_cookie_t xcb_ret; 854 xcb_glx_wait_x_request_t xcb_out; 855 856 xcb_out.context_tag = context_tag; 857 858 xcb_parts[2].iov_base = (char *) &xcb_out; 859 xcb_parts[2].iov_len = sizeof(xcb_out); 860 xcb_parts[3].iov_base = 0; 861 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 862 863 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 864 return xcb_ret; 865 } 866 867 xcb_void_cookie_t 868 xcb_glx_copy_context_checked (xcb_connection_t *c, 869 xcb_glx_context_t src, 870 xcb_glx_context_t dest, 871 uint32_t mask, 872 xcb_glx_context_tag_t src_context_tag) 873 { 874 static const xcb_protocol_request_t xcb_req = { 875 .count = 2, 876 .ext = &xcb_glx_id, 877 .opcode = XCB_GLX_COPY_CONTEXT, 878 .isvoid = 1 879 }; 880 881 struct iovec xcb_parts[4]; 882 xcb_void_cookie_t xcb_ret; 883 xcb_glx_copy_context_request_t xcb_out; 884 885 xcb_out.src = src; 886 xcb_out.dest = dest; 887 xcb_out.mask = mask; 888 xcb_out.src_context_tag = src_context_tag; 889 890 xcb_parts[2].iov_base = (char *) &xcb_out; 891 xcb_parts[2].iov_len = sizeof(xcb_out); 892 xcb_parts[3].iov_base = 0; 893 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 894 895 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 896 return xcb_ret; 897 } 898 899 xcb_void_cookie_t 900 xcb_glx_copy_context (xcb_connection_t *c, 901 xcb_glx_context_t src, 902 xcb_glx_context_t dest, 903 uint32_t mask, 904 xcb_glx_context_tag_t src_context_tag) 905 { 906 static const xcb_protocol_request_t xcb_req = { 907 .count = 2, 908 .ext = &xcb_glx_id, 909 .opcode = XCB_GLX_COPY_CONTEXT, 910 .isvoid = 1 911 }; 912 913 struct iovec xcb_parts[4]; 914 xcb_void_cookie_t xcb_ret; 915 xcb_glx_copy_context_request_t xcb_out; 916 917 xcb_out.src = src; 918 xcb_out.dest = dest; 919 xcb_out.mask = mask; 920 xcb_out.src_context_tag = src_context_tag; 921 922 xcb_parts[2].iov_base = (char *) &xcb_out; 923 xcb_parts[2].iov_len = sizeof(xcb_out); 924 xcb_parts[3].iov_base = 0; 925 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 926 927 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 928 return xcb_ret; 929 } 930 931 xcb_void_cookie_t 932 xcb_glx_swap_buffers_checked (xcb_connection_t *c, 933 xcb_glx_context_tag_t context_tag, 934 xcb_glx_drawable_t drawable) 935 { 936 static const xcb_protocol_request_t xcb_req = { 937 .count = 2, 938 .ext = &xcb_glx_id, 939 .opcode = XCB_GLX_SWAP_BUFFERS, 940 .isvoid = 1 941 }; 942 943 struct iovec xcb_parts[4]; 944 xcb_void_cookie_t xcb_ret; 945 xcb_glx_swap_buffers_request_t xcb_out; 946 947 xcb_out.context_tag = context_tag; 948 xcb_out.drawable = drawable; 949 950 xcb_parts[2].iov_base = (char *) &xcb_out; 951 xcb_parts[2].iov_len = sizeof(xcb_out); 952 xcb_parts[3].iov_base = 0; 953 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 954 955 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 956 return xcb_ret; 957 } 958 959 xcb_void_cookie_t 960 xcb_glx_swap_buffers (xcb_connection_t *c, 961 xcb_glx_context_tag_t context_tag, 962 xcb_glx_drawable_t drawable) 963 { 964 static const xcb_protocol_request_t xcb_req = { 965 .count = 2, 966 .ext = &xcb_glx_id, 967 .opcode = XCB_GLX_SWAP_BUFFERS, 968 .isvoid = 1 969 }; 970 971 struct iovec xcb_parts[4]; 972 xcb_void_cookie_t xcb_ret; 973 xcb_glx_swap_buffers_request_t xcb_out; 974 975 xcb_out.context_tag = context_tag; 976 xcb_out.drawable = drawable; 977 978 xcb_parts[2].iov_base = (char *) &xcb_out; 979 xcb_parts[2].iov_len = sizeof(xcb_out); 980 xcb_parts[3].iov_base = 0; 981 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 982 983 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 984 return xcb_ret; 985 } 986 987 xcb_void_cookie_t 988 xcb_glx_use_x_font_checked (xcb_connection_t *c, 989 xcb_glx_context_tag_t context_tag, 990 xcb_font_t font, 991 uint32_t first, 992 uint32_t count, 993 uint32_t list_base) 994 { 995 static const xcb_protocol_request_t xcb_req = { 996 .count = 2, 997 .ext = &xcb_glx_id, 998 .opcode = XCB_GLX_USE_X_FONT, 999 .isvoid = 1 1000 }; 1001 1002 struct iovec xcb_parts[4]; 1003 xcb_void_cookie_t xcb_ret; 1004 xcb_glx_use_x_font_request_t xcb_out; 1005 1006 xcb_out.context_tag = context_tag; 1007 xcb_out.font = font; 1008 xcb_out.first = first; 1009 xcb_out.count = count; 1010 xcb_out.list_base = list_base; 1011 1012 xcb_parts[2].iov_base = (char *) &xcb_out; 1013 xcb_parts[2].iov_len = sizeof(xcb_out); 1014 xcb_parts[3].iov_base = 0; 1015 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1016 1017 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1018 return xcb_ret; 1019 } 1020 1021 xcb_void_cookie_t 1022 xcb_glx_use_x_font (xcb_connection_t *c, 1023 xcb_glx_context_tag_t context_tag, 1024 xcb_font_t font, 1025 uint32_t first, 1026 uint32_t count, 1027 uint32_t list_base) 1028 { 1029 static const xcb_protocol_request_t xcb_req = { 1030 .count = 2, 1031 .ext = &xcb_glx_id, 1032 .opcode = XCB_GLX_USE_X_FONT, 1033 .isvoid = 1 1034 }; 1035 1036 struct iovec xcb_parts[4]; 1037 xcb_void_cookie_t xcb_ret; 1038 xcb_glx_use_x_font_request_t xcb_out; 1039 1040 xcb_out.context_tag = context_tag; 1041 xcb_out.font = font; 1042 xcb_out.first = first; 1043 xcb_out.count = count; 1044 xcb_out.list_base = list_base; 1045 1046 xcb_parts[2].iov_base = (char *) &xcb_out; 1047 xcb_parts[2].iov_len = sizeof(xcb_out); 1048 xcb_parts[3].iov_base = 0; 1049 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1050 1051 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1052 return xcb_ret; 1053 } 1054 1055 xcb_void_cookie_t 1056 xcb_glx_create_glx_pixmap_checked (xcb_connection_t *c, 1057 uint32_t screen, 1058 xcb_visualid_t visual, 1059 xcb_pixmap_t pixmap, 1060 xcb_glx_pixmap_t glx_pixmap) 1061 { 1062 static const xcb_protocol_request_t xcb_req = { 1063 .count = 2, 1064 .ext = &xcb_glx_id, 1065 .opcode = XCB_GLX_CREATE_GLX_PIXMAP, 1066 .isvoid = 1 1067 }; 1068 1069 struct iovec xcb_parts[4]; 1070 xcb_void_cookie_t xcb_ret; 1071 xcb_glx_create_glx_pixmap_request_t xcb_out; 1072 1073 xcb_out.screen = screen; 1074 xcb_out.visual = visual; 1075 xcb_out.pixmap = pixmap; 1076 xcb_out.glx_pixmap = glx_pixmap; 1077 1078 xcb_parts[2].iov_base = (char *) &xcb_out; 1079 xcb_parts[2].iov_len = sizeof(xcb_out); 1080 xcb_parts[3].iov_base = 0; 1081 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1082 1083 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1084 return xcb_ret; 1085 } 1086 1087 xcb_void_cookie_t 1088 xcb_glx_create_glx_pixmap (xcb_connection_t *c, 1089 uint32_t screen, 1090 xcb_visualid_t visual, 1091 xcb_pixmap_t pixmap, 1092 xcb_glx_pixmap_t glx_pixmap) 1093 { 1094 static const xcb_protocol_request_t xcb_req = { 1095 .count = 2, 1096 .ext = &xcb_glx_id, 1097 .opcode = XCB_GLX_CREATE_GLX_PIXMAP, 1098 .isvoid = 1 1099 }; 1100 1101 struct iovec xcb_parts[4]; 1102 xcb_void_cookie_t xcb_ret; 1103 xcb_glx_create_glx_pixmap_request_t xcb_out; 1104 1105 xcb_out.screen = screen; 1106 xcb_out.visual = visual; 1107 xcb_out.pixmap = pixmap; 1108 xcb_out.glx_pixmap = glx_pixmap; 1109 1110 xcb_parts[2].iov_base = (char *) &xcb_out; 1111 xcb_parts[2].iov_len = sizeof(xcb_out); 1112 xcb_parts[3].iov_base = 0; 1113 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1114 1115 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1116 return xcb_ret; 1117 } 1118 1119 int 1120 xcb_glx_get_visual_configs_sizeof (const void *_buffer) 1121 { 1122 char *xcb_tmp = (char *)_buffer; 1123 const xcb_glx_get_visual_configs_reply_t *_aux = (xcb_glx_get_visual_configs_reply_t *)_buffer; 1124 unsigned int xcb_buffer_len = 0; 1125 unsigned int xcb_block_len = 0; 1126 unsigned int xcb_pad = 0; 1127 unsigned int xcb_align_to = 0; 1128 1129 1130 xcb_block_len += sizeof(xcb_glx_get_visual_configs_reply_t); 1131 xcb_tmp += xcb_block_len; 1132 xcb_buffer_len += xcb_block_len; 1133 xcb_block_len = 0; 1134 /* property_list */ 1135 xcb_block_len += _aux->length * sizeof(uint32_t); 1136 xcb_tmp += xcb_block_len; 1137 xcb_align_to = ALIGNOF(uint32_t); 1138 /* insert padding */ 1139 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1140 xcb_buffer_len += xcb_block_len + xcb_pad; 1141 if (0 != xcb_pad) { 1142 xcb_tmp += xcb_pad; 1143 xcb_pad = 0; 1144 } 1145 xcb_block_len = 0; 1146 1147 return xcb_buffer_len; 1148 } 1149 1150 xcb_glx_get_visual_configs_cookie_t 1151 xcb_glx_get_visual_configs (xcb_connection_t *c, 1152 uint32_t screen) 1153 { 1154 static const xcb_protocol_request_t xcb_req = { 1155 .count = 2, 1156 .ext = &xcb_glx_id, 1157 .opcode = XCB_GLX_GET_VISUAL_CONFIGS, 1158 .isvoid = 0 1159 }; 1160 1161 struct iovec xcb_parts[4]; 1162 xcb_glx_get_visual_configs_cookie_t xcb_ret; 1163 xcb_glx_get_visual_configs_request_t xcb_out; 1164 1165 xcb_out.screen = screen; 1166 1167 xcb_parts[2].iov_base = (char *) &xcb_out; 1168 xcb_parts[2].iov_len = sizeof(xcb_out); 1169 xcb_parts[3].iov_base = 0; 1170 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1171 1172 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1173 return xcb_ret; 1174 } 1175 1176 xcb_glx_get_visual_configs_cookie_t 1177 xcb_glx_get_visual_configs_unchecked (xcb_connection_t *c, 1178 uint32_t screen) 1179 { 1180 static const xcb_protocol_request_t xcb_req = { 1181 .count = 2, 1182 .ext = &xcb_glx_id, 1183 .opcode = XCB_GLX_GET_VISUAL_CONFIGS, 1184 .isvoid = 0 1185 }; 1186 1187 struct iovec xcb_parts[4]; 1188 xcb_glx_get_visual_configs_cookie_t xcb_ret; 1189 xcb_glx_get_visual_configs_request_t xcb_out; 1190 1191 xcb_out.screen = screen; 1192 1193 xcb_parts[2].iov_base = (char *) &xcb_out; 1194 xcb_parts[2].iov_len = sizeof(xcb_out); 1195 xcb_parts[3].iov_base = 0; 1196 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1197 1198 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1199 return xcb_ret; 1200 } 1201 1202 uint32_t * 1203 xcb_glx_get_visual_configs_property_list (const xcb_glx_get_visual_configs_reply_t *R) 1204 { 1205 return (uint32_t *) (R + 1); 1206 } 1207 1208 int 1209 xcb_glx_get_visual_configs_property_list_length (const xcb_glx_get_visual_configs_reply_t *R) 1210 { 1211 return R->length; 1212 } 1213 1214 xcb_generic_iterator_t 1215 xcb_glx_get_visual_configs_property_list_end (const xcb_glx_get_visual_configs_reply_t *R) 1216 { 1217 xcb_generic_iterator_t i; 1218 i.data = ((uint32_t *) (R + 1)) + (R->length); 1219 i.rem = 0; 1220 i.index = (char *) i.data - (char *) R; 1221 return i; 1222 } 1223 1224 xcb_glx_get_visual_configs_reply_t * 1225 xcb_glx_get_visual_configs_reply (xcb_connection_t *c, 1226 xcb_glx_get_visual_configs_cookie_t cookie /**< */, 1227 xcb_generic_error_t **e) 1228 { 1229 return (xcb_glx_get_visual_configs_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1230 } 1231 1232 xcb_void_cookie_t 1233 xcb_glx_destroy_glx_pixmap_checked (xcb_connection_t *c, 1234 xcb_glx_pixmap_t glx_pixmap) 1235 { 1236 static const xcb_protocol_request_t xcb_req = { 1237 .count = 2, 1238 .ext = &xcb_glx_id, 1239 .opcode = XCB_GLX_DESTROY_GLX_PIXMAP, 1240 .isvoid = 1 1241 }; 1242 1243 struct iovec xcb_parts[4]; 1244 xcb_void_cookie_t xcb_ret; 1245 xcb_glx_destroy_glx_pixmap_request_t xcb_out; 1246 1247 xcb_out.glx_pixmap = glx_pixmap; 1248 1249 xcb_parts[2].iov_base = (char *) &xcb_out; 1250 xcb_parts[2].iov_len = sizeof(xcb_out); 1251 xcb_parts[3].iov_base = 0; 1252 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1253 1254 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1255 return xcb_ret; 1256 } 1257 1258 xcb_void_cookie_t 1259 xcb_glx_destroy_glx_pixmap (xcb_connection_t *c, 1260 xcb_glx_pixmap_t glx_pixmap) 1261 { 1262 static const xcb_protocol_request_t xcb_req = { 1263 .count = 2, 1264 .ext = &xcb_glx_id, 1265 .opcode = XCB_GLX_DESTROY_GLX_PIXMAP, 1266 .isvoid = 1 1267 }; 1268 1269 struct iovec xcb_parts[4]; 1270 xcb_void_cookie_t xcb_ret; 1271 xcb_glx_destroy_glx_pixmap_request_t xcb_out; 1272 1273 xcb_out.glx_pixmap = glx_pixmap; 1274 1275 xcb_parts[2].iov_base = (char *) &xcb_out; 1276 xcb_parts[2].iov_len = sizeof(xcb_out); 1277 xcb_parts[3].iov_base = 0; 1278 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1279 1280 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1281 return xcb_ret; 1282 } 1283 1284 int 1285 xcb_glx_vendor_private_sizeof (const void *_buffer, 1286 uint32_t data_len) 1287 { 1288 char *xcb_tmp = (char *)_buffer; 1289 unsigned int xcb_buffer_len = 0; 1290 unsigned int xcb_block_len = 0; 1291 unsigned int xcb_pad = 0; 1292 unsigned int xcb_align_to = 0; 1293 1294 1295 xcb_block_len += sizeof(xcb_glx_vendor_private_request_t); 1296 xcb_tmp += xcb_block_len; 1297 xcb_buffer_len += xcb_block_len; 1298 xcb_block_len = 0; 1299 /* data */ 1300 xcb_block_len += data_len * sizeof(uint8_t); 1301 xcb_tmp += xcb_block_len; 1302 xcb_align_to = ALIGNOF(uint8_t); 1303 /* insert padding */ 1304 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1305 xcb_buffer_len += xcb_block_len + xcb_pad; 1306 if (0 != xcb_pad) { 1307 xcb_tmp += xcb_pad; 1308 xcb_pad = 0; 1309 } 1310 xcb_block_len = 0; 1311 1312 return xcb_buffer_len; 1313 } 1314 1315 xcb_void_cookie_t 1316 xcb_glx_vendor_private_checked (xcb_connection_t *c, 1317 uint32_t vendor_code, 1318 xcb_glx_context_tag_t context_tag, 1319 uint32_t data_len, 1320 const uint8_t *data) 1321 { 1322 static const xcb_protocol_request_t xcb_req = { 1323 .count = 4, 1324 .ext = &xcb_glx_id, 1325 .opcode = XCB_GLX_VENDOR_PRIVATE, 1326 .isvoid = 1 1327 }; 1328 1329 struct iovec xcb_parts[6]; 1330 xcb_void_cookie_t xcb_ret; 1331 xcb_glx_vendor_private_request_t xcb_out; 1332 1333 xcb_out.vendor_code = vendor_code; 1334 xcb_out.context_tag = context_tag; 1335 1336 xcb_parts[2].iov_base = (char *) &xcb_out; 1337 xcb_parts[2].iov_len = sizeof(xcb_out); 1338 xcb_parts[3].iov_base = 0; 1339 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1340 /* uint8_t data */ 1341 xcb_parts[4].iov_base = (char *) data; 1342 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 1343 xcb_parts[5].iov_base = 0; 1344 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1345 1346 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1347 return xcb_ret; 1348 } 1349 1350 xcb_void_cookie_t 1351 xcb_glx_vendor_private (xcb_connection_t *c, 1352 uint32_t vendor_code, 1353 xcb_glx_context_tag_t context_tag, 1354 uint32_t data_len, 1355 const uint8_t *data) 1356 { 1357 static const xcb_protocol_request_t xcb_req = { 1358 .count = 4, 1359 .ext = &xcb_glx_id, 1360 .opcode = XCB_GLX_VENDOR_PRIVATE, 1361 .isvoid = 1 1362 }; 1363 1364 struct iovec xcb_parts[6]; 1365 xcb_void_cookie_t xcb_ret; 1366 xcb_glx_vendor_private_request_t xcb_out; 1367 1368 xcb_out.vendor_code = vendor_code; 1369 xcb_out.context_tag = context_tag; 1370 1371 xcb_parts[2].iov_base = (char *) &xcb_out; 1372 xcb_parts[2].iov_len = sizeof(xcb_out); 1373 xcb_parts[3].iov_base = 0; 1374 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1375 /* uint8_t data */ 1376 xcb_parts[4].iov_base = (char *) data; 1377 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 1378 xcb_parts[5].iov_base = 0; 1379 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1380 1381 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1382 return xcb_ret; 1383 } 1384 1385 uint8_t * 1386 xcb_glx_vendor_private_data (const xcb_glx_vendor_private_request_t *R) 1387 { 1388 return (uint8_t *) (R + 1); 1389 } 1390 1391 int 1392 xcb_glx_vendor_private_data_length (const xcb_glx_vendor_private_request_t *R) 1393 { 1394 return (((R->length * 4) - sizeof(xcb_glx_vendor_private_request_t))/sizeof(uint8_t)); 1395 } 1396 1397 xcb_generic_iterator_t 1398 xcb_glx_vendor_private_data_end (const xcb_glx_vendor_private_request_t *R) 1399 { 1400 xcb_generic_iterator_t i; 1401 i.data = ((uint8_t *) (R + 1)) + ((((R->length * 4) - sizeof(xcb_glx_vendor_private_request_t))/sizeof(uint8_t))); 1402 i.rem = 0; 1403 i.index = (char *) i.data - (char *) R; 1404 return i; 1405 } 1406 1407 int 1408 xcb_glx_vendor_private_with_reply_sizeof (const void *_buffer, 1409 uint32_t data_len) 1410 { 1411 char *xcb_tmp = (char *)_buffer; 1412 unsigned int xcb_buffer_len = 0; 1413 unsigned int xcb_block_len = 0; 1414 unsigned int xcb_pad = 0; 1415 unsigned int xcb_align_to = 0; 1416 1417 1418 xcb_block_len += sizeof(xcb_glx_vendor_private_with_reply_request_t); 1419 xcb_tmp += xcb_block_len; 1420 xcb_buffer_len += xcb_block_len; 1421 xcb_block_len = 0; 1422 /* data */ 1423 xcb_block_len += data_len * sizeof(uint8_t); 1424 xcb_tmp += xcb_block_len; 1425 xcb_align_to = ALIGNOF(uint8_t); 1426 /* insert padding */ 1427 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1428 xcb_buffer_len += xcb_block_len + xcb_pad; 1429 if (0 != xcb_pad) { 1430 xcb_tmp += xcb_pad; 1431 xcb_pad = 0; 1432 } 1433 xcb_block_len = 0; 1434 1435 return xcb_buffer_len; 1436 } 1437 1438 xcb_glx_vendor_private_with_reply_cookie_t 1439 xcb_glx_vendor_private_with_reply (xcb_connection_t *c, 1440 uint32_t vendor_code, 1441 xcb_glx_context_tag_t context_tag, 1442 uint32_t data_len, 1443 const uint8_t *data) 1444 { 1445 static const xcb_protocol_request_t xcb_req = { 1446 .count = 4, 1447 .ext = &xcb_glx_id, 1448 .opcode = XCB_GLX_VENDOR_PRIVATE_WITH_REPLY, 1449 .isvoid = 0 1450 }; 1451 1452 struct iovec xcb_parts[6]; 1453 xcb_glx_vendor_private_with_reply_cookie_t xcb_ret; 1454 xcb_glx_vendor_private_with_reply_request_t xcb_out; 1455 1456 xcb_out.vendor_code = vendor_code; 1457 xcb_out.context_tag = context_tag; 1458 1459 xcb_parts[2].iov_base = (char *) &xcb_out; 1460 xcb_parts[2].iov_len = sizeof(xcb_out); 1461 xcb_parts[3].iov_base = 0; 1462 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1463 /* uint8_t data */ 1464 xcb_parts[4].iov_base = (char *) data; 1465 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 1466 xcb_parts[5].iov_base = 0; 1467 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1468 1469 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1470 return xcb_ret; 1471 } 1472 1473 xcb_glx_vendor_private_with_reply_cookie_t 1474 xcb_glx_vendor_private_with_reply_unchecked (xcb_connection_t *c, 1475 uint32_t vendor_code, 1476 xcb_glx_context_tag_t context_tag, 1477 uint32_t data_len, 1478 const uint8_t *data) 1479 { 1480 static const xcb_protocol_request_t xcb_req = { 1481 .count = 4, 1482 .ext = &xcb_glx_id, 1483 .opcode = XCB_GLX_VENDOR_PRIVATE_WITH_REPLY, 1484 .isvoid = 0 1485 }; 1486 1487 struct iovec xcb_parts[6]; 1488 xcb_glx_vendor_private_with_reply_cookie_t xcb_ret; 1489 xcb_glx_vendor_private_with_reply_request_t xcb_out; 1490 1491 xcb_out.vendor_code = vendor_code; 1492 xcb_out.context_tag = context_tag; 1493 1494 xcb_parts[2].iov_base = (char *) &xcb_out; 1495 xcb_parts[2].iov_len = sizeof(xcb_out); 1496 xcb_parts[3].iov_base = 0; 1497 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1498 /* uint8_t data */ 1499 xcb_parts[4].iov_base = (char *) data; 1500 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 1501 xcb_parts[5].iov_base = 0; 1502 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1503 1504 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1505 return xcb_ret; 1506 } 1507 1508 uint8_t * 1509 xcb_glx_vendor_private_with_reply_data_2 (const xcb_glx_vendor_private_with_reply_reply_t *R) 1510 { 1511 return (uint8_t *) (R + 1); 1512 } 1513 1514 int 1515 xcb_glx_vendor_private_with_reply_data_2_length (const xcb_glx_vendor_private_with_reply_reply_t *R) 1516 { 1517 return (R->length * 4); 1518 } 1519 1520 xcb_generic_iterator_t 1521 xcb_glx_vendor_private_with_reply_data_2_end (const xcb_glx_vendor_private_with_reply_reply_t *R) 1522 { 1523 xcb_generic_iterator_t i; 1524 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 1525 i.rem = 0; 1526 i.index = (char *) i.data - (char *) R; 1527 return i; 1528 } 1529 1530 xcb_glx_vendor_private_with_reply_reply_t * 1531 xcb_glx_vendor_private_with_reply_reply (xcb_connection_t *c, 1532 xcb_glx_vendor_private_with_reply_cookie_t cookie /**< */, 1533 xcb_generic_error_t **e) 1534 { 1535 return (xcb_glx_vendor_private_with_reply_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1536 } 1537 1538 xcb_glx_query_extensions_string_cookie_t 1539 xcb_glx_query_extensions_string (xcb_connection_t *c, 1540 uint32_t screen) 1541 { 1542 static const xcb_protocol_request_t xcb_req = { 1543 .count = 2, 1544 .ext = &xcb_glx_id, 1545 .opcode = XCB_GLX_QUERY_EXTENSIONS_STRING, 1546 .isvoid = 0 1547 }; 1548 1549 struct iovec xcb_parts[4]; 1550 xcb_glx_query_extensions_string_cookie_t xcb_ret; 1551 xcb_glx_query_extensions_string_request_t xcb_out; 1552 1553 xcb_out.screen = screen; 1554 1555 xcb_parts[2].iov_base = (char *) &xcb_out; 1556 xcb_parts[2].iov_len = sizeof(xcb_out); 1557 xcb_parts[3].iov_base = 0; 1558 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1559 1560 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1561 return xcb_ret; 1562 } 1563 1564 xcb_glx_query_extensions_string_cookie_t 1565 xcb_glx_query_extensions_string_unchecked (xcb_connection_t *c, 1566 uint32_t screen) 1567 { 1568 static const xcb_protocol_request_t xcb_req = { 1569 .count = 2, 1570 .ext = &xcb_glx_id, 1571 .opcode = XCB_GLX_QUERY_EXTENSIONS_STRING, 1572 .isvoid = 0 1573 }; 1574 1575 struct iovec xcb_parts[4]; 1576 xcb_glx_query_extensions_string_cookie_t xcb_ret; 1577 xcb_glx_query_extensions_string_request_t xcb_out; 1578 1579 xcb_out.screen = screen; 1580 1581 xcb_parts[2].iov_base = (char *) &xcb_out; 1582 xcb_parts[2].iov_len = sizeof(xcb_out); 1583 xcb_parts[3].iov_base = 0; 1584 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1585 1586 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1587 return xcb_ret; 1588 } 1589 1590 xcb_glx_query_extensions_string_reply_t * 1591 xcb_glx_query_extensions_string_reply (xcb_connection_t *c, 1592 xcb_glx_query_extensions_string_cookie_t cookie /**< */, 1593 xcb_generic_error_t **e) 1594 { 1595 return (xcb_glx_query_extensions_string_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1596 } 1597 1598 int 1599 xcb_glx_query_server_string_sizeof (const void *_buffer) 1600 { 1601 char *xcb_tmp = (char *)_buffer; 1602 const xcb_glx_query_server_string_reply_t *_aux = (xcb_glx_query_server_string_reply_t *)_buffer; 1603 unsigned int xcb_buffer_len = 0; 1604 unsigned int xcb_block_len = 0; 1605 unsigned int xcb_pad = 0; 1606 unsigned int xcb_align_to = 0; 1607 1608 1609 xcb_block_len += sizeof(xcb_glx_query_server_string_reply_t); 1610 xcb_tmp += xcb_block_len; 1611 xcb_buffer_len += xcb_block_len; 1612 xcb_block_len = 0; 1613 /* string */ 1614 xcb_block_len += _aux->str_len * sizeof(char); 1615 xcb_tmp += xcb_block_len; 1616 xcb_align_to = ALIGNOF(char); 1617 /* insert padding */ 1618 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1619 xcb_buffer_len += xcb_block_len + xcb_pad; 1620 if (0 != xcb_pad) { 1621 xcb_tmp += xcb_pad; 1622 xcb_pad = 0; 1623 } 1624 xcb_block_len = 0; 1625 1626 return xcb_buffer_len; 1627 } 1628 1629 xcb_glx_query_server_string_cookie_t 1630 xcb_glx_query_server_string (xcb_connection_t *c, 1631 uint32_t screen, 1632 uint32_t name) 1633 { 1634 static const xcb_protocol_request_t xcb_req = { 1635 .count = 2, 1636 .ext = &xcb_glx_id, 1637 .opcode = XCB_GLX_QUERY_SERVER_STRING, 1638 .isvoid = 0 1639 }; 1640 1641 struct iovec xcb_parts[4]; 1642 xcb_glx_query_server_string_cookie_t xcb_ret; 1643 xcb_glx_query_server_string_request_t xcb_out; 1644 1645 xcb_out.screen = screen; 1646 xcb_out.name = name; 1647 1648 xcb_parts[2].iov_base = (char *) &xcb_out; 1649 xcb_parts[2].iov_len = sizeof(xcb_out); 1650 xcb_parts[3].iov_base = 0; 1651 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1652 1653 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1654 return xcb_ret; 1655 } 1656 1657 xcb_glx_query_server_string_cookie_t 1658 xcb_glx_query_server_string_unchecked (xcb_connection_t *c, 1659 uint32_t screen, 1660 uint32_t name) 1661 { 1662 static const xcb_protocol_request_t xcb_req = { 1663 .count = 2, 1664 .ext = &xcb_glx_id, 1665 .opcode = XCB_GLX_QUERY_SERVER_STRING, 1666 .isvoid = 0 1667 }; 1668 1669 struct iovec xcb_parts[4]; 1670 xcb_glx_query_server_string_cookie_t xcb_ret; 1671 xcb_glx_query_server_string_request_t xcb_out; 1672 1673 xcb_out.screen = screen; 1674 xcb_out.name = name; 1675 1676 xcb_parts[2].iov_base = (char *) &xcb_out; 1677 xcb_parts[2].iov_len = sizeof(xcb_out); 1678 xcb_parts[3].iov_base = 0; 1679 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1680 1681 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1682 return xcb_ret; 1683 } 1684 1685 char * 1686 xcb_glx_query_server_string_string (const xcb_glx_query_server_string_reply_t *R) 1687 { 1688 return (char *) (R + 1); 1689 } 1690 1691 int 1692 xcb_glx_query_server_string_string_length (const xcb_glx_query_server_string_reply_t *R) 1693 { 1694 return R->str_len; 1695 } 1696 1697 xcb_generic_iterator_t 1698 xcb_glx_query_server_string_string_end (const xcb_glx_query_server_string_reply_t *R) 1699 { 1700 xcb_generic_iterator_t i; 1701 i.data = ((char *) (R + 1)) + (R->str_len); 1702 i.rem = 0; 1703 i.index = (char *) i.data - (char *) R; 1704 return i; 1705 } 1706 1707 xcb_glx_query_server_string_reply_t * 1708 xcb_glx_query_server_string_reply (xcb_connection_t *c, 1709 xcb_glx_query_server_string_cookie_t cookie /**< */, 1710 xcb_generic_error_t **e) 1711 { 1712 return (xcb_glx_query_server_string_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1713 } 1714 1715 int 1716 xcb_glx_client_info_sizeof (const void *_buffer) 1717 { 1718 char *xcb_tmp = (char *)_buffer; 1719 const xcb_glx_client_info_request_t *_aux = (xcb_glx_client_info_request_t *)_buffer; 1720 unsigned int xcb_buffer_len = 0; 1721 unsigned int xcb_block_len = 0; 1722 unsigned int xcb_pad = 0; 1723 unsigned int xcb_align_to = 0; 1724 1725 1726 xcb_block_len += sizeof(xcb_glx_client_info_request_t); 1727 xcb_tmp += xcb_block_len; 1728 xcb_buffer_len += xcb_block_len; 1729 xcb_block_len = 0; 1730 /* string */ 1731 xcb_block_len += _aux->str_len * sizeof(char); 1732 xcb_tmp += xcb_block_len; 1733 xcb_align_to = ALIGNOF(char); 1734 /* insert padding */ 1735 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1736 xcb_buffer_len += xcb_block_len + xcb_pad; 1737 if (0 != xcb_pad) { 1738 xcb_tmp += xcb_pad; 1739 xcb_pad = 0; 1740 } 1741 xcb_block_len = 0; 1742 1743 return xcb_buffer_len; 1744 } 1745 1746 xcb_void_cookie_t 1747 xcb_glx_client_info_checked (xcb_connection_t *c, 1748 uint32_t major_version, 1749 uint32_t minor_version, 1750 uint32_t str_len, 1751 const char *string) 1752 { 1753 static const xcb_protocol_request_t xcb_req = { 1754 .count = 4, 1755 .ext = &xcb_glx_id, 1756 .opcode = XCB_GLX_CLIENT_INFO, 1757 .isvoid = 1 1758 }; 1759 1760 struct iovec xcb_parts[6]; 1761 xcb_void_cookie_t xcb_ret; 1762 xcb_glx_client_info_request_t xcb_out; 1763 1764 xcb_out.major_version = major_version; 1765 xcb_out.minor_version = minor_version; 1766 xcb_out.str_len = str_len; 1767 1768 xcb_parts[2].iov_base = (char *) &xcb_out; 1769 xcb_parts[2].iov_len = sizeof(xcb_out); 1770 xcb_parts[3].iov_base = 0; 1771 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1772 /* char string */ 1773 xcb_parts[4].iov_base = (char *) string; 1774 xcb_parts[4].iov_len = str_len * sizeof(char); 1775 xcb_parts[5].iov_base = 0; 1776 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1777 1778 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1779 return xcb_ret; 1780 } 1781 1782 xcb_void_cookie_t 1783 xcb_glx_client_info (xcb_connection_t *c, 1784 uint32_t major_version, 1785 uint32_t minor_version, 1786 uint32_t str_len, 1787 const char *string) 1788 { 1789 static const xcb_protocol_request_t xcb_req = { 1790 .count = 4, 1791 .ext = &xcb_glx_id, 1792 .opcode = XCB_GLX_CLIENT_INFO, 1793 .isvoid = 1 1794 }; 1795 1796 struct iovec xcb_parts[6]; 1797 xcb_void_cookie_t xcb_ret; 1798 xcb_glx_client_info_request_t xcb_out; 1799 1800 xcb_out.major_version = major_version; 1801 xcb_out.minor_version = minor_version; 1802 xcb_out.str_len = str_len; 1803 1804 xcb_parts[2].iov_base = (char *) &xcb_out; 1805 xcb_parts[2].iov_len = sizeof(xcb_out); 1806 xcb_parts[3].iov_base = 0; 1807 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1808 /* char string */ 1809 xcb_parts[4].iov_base = (char *) string; 1810 xcb_parts[4].iov_len = str_len * sizeof(char); 1811 xcb_parts[5].iov_base = 0; 1812 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 1813 1814 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1815 return xcb_ret; 1816 } 1817 1818 char * 1819 xcb_glx_client_info_string (const xcb_glx_client_info_request_t *R) 1820 { 1821 return (char *) (R + 1); 1822 } 1823 1824 int 1825 xcb_glx_client_info_string_length (const xcb_glx_client_info_request_t *R) 1826 { 1827 return R->str_len; 1828 } 1829 1830 xcb_generic_iterator_t 1831 xcb_glx_client_info_string_end (const xcb_glx_client_info_request_t *R) 1832 { 1833 xcb_generic_iterator_t i; 1834 i.data = ((char *) (R + 1)) + (R->str_len); 1835 i.rem = 0; 1836 i.index = (char *) i.data - (char *) R; 1837 return i; 1838 } 1839 1840 int 1841 xcb_glx_get_fb_configs_sizeof (const void *_buffer) 1842 { 1843 char *xcb_tmp = (char *)_buffer; 1844 const xcb_glx_get_fb_configs_reply_t *_aux = (xcb_glx_get_fb_configs_reply_t *)_buffer; 1845 unsigned int xcb_buffer_len = 0; 1846 unsigned int xcb_block_len = 0; 1847 unsigned int xcb_pad = 0; 1848 unsigned int xcb_align_to = 0; 1849 1850 1851 xcb_block_len += sizeof(xcb_glx_get_fb_configs_reply_t); 1852 xcb_tmp += xcb_block_len; 1853 xcb_buffer_len += xcb_block_len; 1854 xcb_block_len = 0; 1855 /* property_list */ 1856 xcb_block_len += _aux->length * sizeof(uint32_t); 1857 xcb_tmp += xcb_block_len; 1858 xcb_align_to = ALIGNOF(uint32_t); 1859 /* insert padding */ 1860 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1861 xcb_buffer_len += xcb_block_len + xcb_pad; 1862 if (0 != xcb_pad) { 1863 xcb_tmp += xcb_pad; 1864 xcb_pad = 0; 1865 } 1866 xcb_block_len = 0; 1867 1868 return xcb_buffer_len; 1869 } 1870 1871 xcb_glx_get_fb_configs_cookie_t 1872 xcb_glx_get_fb_configs (xcb_connection_t *c, 1873 uint32_t screen) 1874 { 1875 static const xcb_protocol_request_t xcb_req = { 1876 .count = 2, 1877 .ext = &xcb_glx_id, 1878 .opcode = XCB_GLX_GET_FB_CONFIGS, 1879 .isvoid = 0 1880 }; 1881 1882 struct iovec xcb_parts[4]; 1883 xcb_glx_get_fb_configs_cookie_t xcb_ret; 1884 xcb_glx_get_fb_configs_request_t xcb_out; 1885 1886 xcb_out.screen = screen; 1887 1888 xcb_parts[2].iov_base = (char *) &xcb_out; 1889 xcb_parts[2].iov_len = sizeof(xcb_out); 1890 xcb_parts[3].iov_base = 0; 1891 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1892 1893 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1894 return xcb_ret; 1895 } 1896 1897 xcb_glx_get_fb_configs_cookie_t 1898 xcb_glx_get_fb_configs_unchecked (xcb_connection_t *c, 1899 uint32_t screen) 1900 { 1901 static const xcb_protocol_request_t xcb_req = { 1902 .count = 2, 1903 .ext = &xcb_glx_id, 1904 .opcode = XCB_GLX_GET_FB_CONFIGS, 1905 .isvoid = 0 1906 }; 1907 1908 struct iovec xcb_parts[4]; 1909 xcb_glx_get_fb_configs_cookie_t xcb_ret; 1910 xcb_glx_get_fb_configs_request_t xcb_out; 1911 1912 xcb_out.screen = screen; 1913 1914 xcb_parts[2].iov_base = (char *) &xcb_out; 1915 xcb_parts[2].iov_len = sizeof(xcb_out); 1916 xcb_parts[3].iov_base = 0; 1917 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1918 1919 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1920 return xcb_ret; 1921 } 1922 1923 uint32_t * 1924 xcb_glx_get_fb_configs_property_list (const xcb_glx_get_fb_configs_reply_t *R) 1925 { 1926 return (uint32_t *) (R + 1); 1927 } 1928 1929 int 1930 xcb_glx_get_fb_configs_property_list_length (const xcb_glx_get_fb_configs_reply_t *R) 1931 { 1932 return R->length; 1933 } 1934 1935 xcb_generic_iterator_t 1936 xcb_glx_get_fb_configs_property_list_end (const xcb_glx_get_fb_configs_reply_t *R) 1937 { 1938 xcb_generic_iterator_t i; 1939 i.data = ((uint32_t *) (R + 1)) + (R->length); 1940 i.rem = 0; 1941 i.index = (char *) i.data - (char *) R; 1942 return i; 1943 } 1944 1945 xcb_glx_get_fb_configs_reply_t * 1946 xcb_glx_get_fb_configs_reply (xcb_connection_t *c, 1947 xcb_glx_get_fb_configs_cookie_t cookie /**< */, 1948 xcb_generic_error_t **e) 1949 { 1950 return (xcb_glx_get_fb_configs_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1951 } 1952 1953 int 1954 xcb_glx_create_pixmap_sizeof (const void *_buffer) 1955 { 1956 char *xcb_tmp = (char *)_buffer; 1957 const xcb_glx_create_pixmap_request_t *_aux = (xcb_glx_create_pixmap_request_t *)_buffer; 1958 unsigned int xcb_buffer_len = 0; 1959 unsigned int xcb_block_len = 0; 1960 unsigned int xcb_pad = 0; 1961 unsigned int xcb_align_to = 0; 1962 1963 1964 xcb_block_len += sizeof(xcb_glx_create_pixmap_request_t); 1965 xcb_tmp += xcb_block_len; 1966 xcb_buffer_len += xcb_block_len; 1967 xcb_block_len = 0; 1968 /* attribs */ 1969 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 1970 xcb_tmp += xcb_block_len; 1971 xcb_align_to = ALIGNOF(uint32_t); 1972 /* insert padding */ 1973 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1974 xcb_buffer_len += xcb_block_len + xcb_pad; 1975 if (0 != xcb_pad) { 1976 xcb_tmp += xcb_pad; 1977 xcb_pad = 0; 1978 } 1979 xcb_block_len = 0; 1980 1981 return xcb_buffer_len; 1982 } 1983 1984 xcb_void_cookie_t 1985 xcb_glx_create_pixmap_checked (xcb_connection_t *c, 1986 uint32_t screen, 1987 xcb_glx_fbconfig_t fbconfig, 1988 xcb_pixmap_t pixmap, 1989 xcb_glx_pixmap_t glx_pixmap, 1990 uint32_t num_attribs, 1991 const uint32_t *attribs) 1992 { 1993 static const xcb_protocol_request_t xcb_req = { 1994 .count = 4, 1995 .ext = &xcb_glx_id, 1996 .opcode = XCB_GLX_CREATE_PIXMAP, 1997 .isvoid = 1 1998 }; 1999 2000 struct iovec xcb_parts[6]; 2001 xcb_void_cookie_t xcb_ret; 2002 xcb_glx_create_pixmap_request_t xcb_out; 2003 2004 xcb_out.screen = screen; 2005 xcb_out.fbconfig = fbconfig; 2006 xcb_out.pixmap = pixmap; 2007 xcb_out.glx_pixmap = glx_pixmap; 2008 xcb_out.num_attribs = num_attribs; 2009 2010 xcb_parts[2].iov_base = (char *) &xcb_out; 2011 xcb_parts[2].iov_len = sizeof(xcb_out); 2012 xcb_parts[3].iov_base = 0; 2013 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2014 /* uint32_t attribs */ 2015 xcb_parts[4].iov_base = (char *) attribs; 2016 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2017 xcb_parts[5].iov_base = 0; 2018 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2019 2020 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2021 return xcb_ret; 2022 } 2023 2024 xcb_void_cookie_t 2025 xcb_glx_create_pixmap (xcb_connection_t *c, 2026 uint32_t screen, 2027 xcb_glx_fbconfig_t fbconfig, 2028 xcb_pixmap_t pixmap, 2029 xcb_glx_pixmap_t glx_pixmap, 2030 uint32_t num_attribs, 2031 const uint32_t *attribs) 2032 { 2033 static const xcb_protocol_request_t xcb_req = { 2034 .count = 4, 2035 .ext = &xcb_glx_id, 2036 .opcode = XCB_GLX_CREATE_PIXMAP, 2037 .isvoid = 1 2038 }; 2039 2040 struct iovec xcb_parts[6]; 2041 xcb_void_cookie_t xcb_ret; 2042 xcb_glx_create_pixmap_request_t xcb_out; 2043 2044 xcb_out.screen = screen; 2045 xcb_out.fbconfig = fbconfig; 2046 xcb_out.pixmap = pixmap; 2047 xcb_out.glx_pixmap = glx_pixmap; 2048 xcb_out.num_attribs = num_attribs; 2049 2050 xcb_parts[2].iov_base = (char *) &xcb_out; 2051 xcb_parts[2].iov_len = sizeof(xcb_out); 2052 xcb_parts[3].iov_base = 0; 2053 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2054 /* uint32_t attribs */ 2055 xcb_parts[4].iov_base = (char *) attribs; 2056 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2057 xcb_parts[5].iov_base = 0; 2058 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2059 2060 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2061 return xcb_ret; 2062 } 2063 2064 uint32_t * 2065 xcb_glx_create_pixmap_attribs (const xcb_glx_create_pixmap_request_t *R) 2066 { 2067 return (uint32_t *) (R + 1); 2068 } 2069 2070 int 2071 xcb_glx_create_pixmap_attribs_length (const xcb_glx_create_pixmap_request_t *R) 2072 { 2073 return (R->num_attribs * 2); 2074 } 2075 2076 xcb_generic_iterator_t 2077 xcb_glx_create_pixmap_attribs_end (const xcb_glx_create_pixmap_request_t *R) 2078 { 2079 xcb_generic_iterator_t i; 2080 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2081 i.rem = 0; 2082 i.index = (char *) i.data - (char *) R; 2083 return i; 2084 } 2085 2086 xcb_void_cookie_t 2087 xcb_glx_destroy_pixmap_checked (xcb_connection_t *c, 2088 xcb_glx_pixmap_t glx_pixmap) 2089 { 2090 static const xcb_protocol_request_t xcb_req = { 2091 .count = 2, 2092 .ext = &xcb_glx_id, 2093 .opcode = XCB_GLX_DESTROY_PIXMAP, 2094 .isvoid = 1 2095 }; 2096 2097 struct iovec xcb_parts[4]; 2098 xcb_void_cookie_t xcb_ret; 2099 xcb_glx_destroy_pixmap_request_t xcb_out; 2100 2101 xcb_out.glx_pixmap = glx_pixmap; 2102 2103 xcb_parts[2].iov_base = (char *) &xcb_out; 2104 xcb_parts[2].iov_len = sizeof(xcb_out); 2105 xcb_parts[3].iov_base = 0; 2106 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2107 2108 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2109 return xcb_ret; 2110 } 2111 2112 xcb_void_cookie_t 2113 xcb_glx_destroy_pixmap (xcb_connection_t *c, 2114 xcb_glx_pixmap_t glx_pixmap) 2115 { 2116 static const xcb_protocol_request_t xcb_req = { 2117 .count = 2, 2118 .ext = &xcb_glx_id, 2119 .opcode = XCB_GLX_DESTROY_PIXMAP, 2120 .isvoid = 1 2121 }; 2122 2123 struct iovec xcb_parts[4]; 2124 xcb_void_cookie_t xcb_ret; 2125 xcb_glx_destroy_pixmap_request_t xcb_out; 2126 2127 xcb_out.glx_pixmap = glx_pixmap; 2128 2129 xcb_parts[2].iov_base = (char *) &xcb_out; 2130 xcb_parts[2].iov_len = sizeof(xcb_out); 2131 xcb_parts[3].iov_base = 0; 2132 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2133 2134 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2135 return xcb_ret; 2136 } 2137 2138 xcb_void_cookie_t 2139 xcb_glx_create_new_context_checked (xcb_connection_t *c, 2140 xcb_glx_context_t context, 2141 xcb_glx_fbconfig_t fbconfig, 2142 uint32_t screen, 2143 uint32_t render_type, 2144 xcb_glx_context_t share_list, 2145 uint8_t is_direct) 2146 { 2147 static const xcb_protocol_request_t xcb_req = { 2148 .count = 2, 2149 .ext = &xcb_glx_id, 2150 .opcode = XCB_GLX_CREATE_NEW_CONTEXT, 2151 .isvoid = 1 2152 }; 2153 2154 struct iovec xcb_parts[4]; 2155 xcb_void_cookie_t xcb_ret; 2156 xcb_glx_create_new_context_request_t xcb_out; 2157 2158 xcb_out.context = context; 2159 xcb_out.fbconfig = fbconfig; 2160 xcb_out.screen = screen; 2161 xcb_out.render_type = render_type; 2162 xcb_out.share_list = share_list; 2163 xcb_out.is_direct = is_direct; 2164 memset(xcb_out.pad0, 0, 3); 2165 2166 xcb_parts[2].iov_base = (char *) &xcb_out; 2167 xcb_parts[2].iov_len = sizeof(xcb_out); 2168 xcb_parts[3].iov_base = 0; 2169 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2170 2171 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2172 return xcb_ret; 2173 } 2174 2175 xcb_void_cookie_t 2176 xcb_glx_create_new_context (xcb_connection_t *c, 2177 xcb_glx_context_t context, 2178 xcb_glx_fbconfig_t fbconfig, 2179 uint32_t screen, 2180 uint32_t render_type, 2181 xcb_glx_context_t share_list, 2182 uint8_t is_direct) 2183 { 2184 static const xcb_protocol_request_t xcb_req = { 2185 .count = 2, 2186 .ext = &xcb_glx_id, 2187 .opcode = XCB_GLX_CREATE_NEW_CONTEXT, 2188 .isvoid = 1 2189 }; 2190 2191 struct iovec xcb_parts[4]; 2192 xcb_void_cookie_t xcb_ret; 2193 xcb_glx_create_new_context_request_t xcb_out; 2194 2195 xcb_out.context = context; 2196 xcb_out.fbconfig = fbconfig; 2197 xcb_out.screen = screen; 2198 xcb_out.render_type = render_type; 2199 xcb_out.share_list = share_list; 2200 xcb_out.is_direct = is_direct; 2201 memset(xcb_out.pad0, 0, 3); 2202 2203 xcb_parts[2].iov_base = (char *) &xcb_out; 2204 xcb_parts[2].iov_len = sizeof(xcb_out); 2205 xcb_parts[3].iov_base = 0; 2206 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2207 2208 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2209 return xcb_ret; 2210 } 2211 2212 int 2213 xcb_glx_query_context_sizeof (const void *_buffer) 2214 { 2215 char *xcb_tmp = (char *)_buffer; 2216 const xcb_glx_query_context_reply_t *_aux = (xcb_glx_query_context_reply_t *)_buffer; 2217 unsigned int xcb_buffer_len = 0; 2218 unsigned int xcb_block_len = 0; 2219 unsigned int xcb_pad = 0; 2220 unsigned int xcb_align_to = 0; 2221 2222 2223 xcb_block_len += sizeof(xcb_glx_query_context_reply_t); 2224 xcb_tmp += xcb_block_len; 2225 xcb_buffer_len += xcb_block_len; 2226 xcb_block_len = 0; 2227 /* attribs */ 2228 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 2229 xcb_tmp += xcb_block_len; 2230 xcb_align_to = ALIGNOF(uint32_t); 2231 /* insert padding */ 2232 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2233 xcb_buffer_len += xcb_block_len + xcb_pad; 2234 if (0 != xcb_pad) { 2235 xcb_tmp += xcb_pad; 2236 xcb_pad = 0; 2237 } 2238 xcb_block_len = 0; 2239 2240 return xcb_buffer_len; 2241 } 2242 2243 xcb_glx_query_context_cookie_t 2244 xcb_glx_query_context (xcb_connection_t *c, 2245 xcb_glx_context_t context) 2246 { 2247 static const xcb_protocol_request_t xcb_req = { 2248 .count = 2, 2249 .ext = &xcb_glx_id, 2250 .opcode = XCB_GLX_QUERY_CONTEXT, 2251 .isvoid = 0 2252 }; 2253 2254 struct iovec xcb_parts[4]; 2255 xcb_glx_query_context_cookie_t xcb_ret; 2256 xcb_glx_query_context_request_t xcb_out; 2257 2258 xcb_out.context = context; 2259 2260 xcb_parts[2].iov_base = (char *) &xcb_out; 2261 xcb_parts[2].iov_len = sizeof(xcb_out); 2262 xcb_parts[3].iov_base = 0; 2263 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2264 2265 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2266 return xcb_ret; 2267 } 2268 2269 xcb_glx_query_context_cookie_t 2270 xcb_glx_query_context_unchecked (xcb_connection_t *c, 2271 xcb_glx_context_t context) 2272 { 2273 static const xcb_protocol_request_t xcb_req = { 2274 .count = 2, 2275 .ext = &xcb_glx_id, 2276 .opcode = XCB_GLX_QUERY_CONTEXT, 2277 .isvoid = 0 2278 }; 2279 2280 struct iovec xcb_parts[4]; 2281 xcb_glx_query_context_cookie_t xcb_ret; 2282 xcb_glx_query_context_request_t xcb_out; 2283 2284 xcb_out.context = context; 2285 2286 xcb_parts[2].iov_base = (char *) &xcb_out; 2287 xcb_parts[2].iov_len = sizeof(xcb_out); 2288 xcb_parts[3].iov_base = 0; 2289 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2290 2291 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2292 return xcb_ret; 2293 } 2294 2295 uint32_t * 2296 xcb_glx_query_context_attribs (const xcb_glx_query_context_reply_t *R) 2297 { 2298 return (uint32_t *) (R + 1); 2299 } 2300 2301 int 2302 xcb_glx_query_context_attribs_length (const xcb_glx_query_context_reply_t *R) 2303 { 2304 return (R->num_attribs * 2); 2305 } 2306 2307 xcb_generic_iterator_t 2308 xcb_glx_query_context_attribs_end (const xcb_glx_query_context_reply_t *R) 2309 { 2310 xcb_generic_iterator_t i; 2311 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2312 i.rem = 0; 2313 i.index = (char *) i.data - (char *) R; 2314 return i; 2315 } 2316 2317 xcb_glx_query_context_reply_t * 2318 xcb_glx_query_context_reply (xcb_connection_t *c, 2319 xcb_glx_query_context_cookie_t cookie /**< */, 2320 xcb_generic_error_t **e) 2321 { 2322 return (xcb_glx_query_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2323 } 2324 2325 xcb_glx_make_context_current_cookie_t 2326 xcb_glx_make_context_current (xcb_connection_t *c, 2327 xcb_glx_context_tag_t old_context_tag, 2328 xcb_glx_drawable_t drawable, 2329 xcb_glx_drawable_t read_drawable, 2330 xcb_glx_context_t context) 2331 { 2332 static const xcb_protocol_request_t xcb_req = { 2333 .count = 2, 2334 .ext = &xcb_glx_id, 2335 .opcode = XCB_GLX_MAKE_CONTEXT_CURRENT, 2336 .isvoid = 0 2337 }; 2338 2339 struct iovec xcb_parts[4]; 2340 xcb_glx_make_context_current_cookie_t xcb_ret; 2341 xcb_glx_make_context_current_request_t xcb_out; 2342 2343 xcb_out.old_context_tag = old_context_tag; 2344 xcb_out.drawable = drawable; 2345 xcb_out.read_drawable = read_drawable; 2346 xcb_out.context = context; 2347 2348 xcb_parts[2].iov_base = (char *) &xcb_out; 2349 xcb_parts[2].iov_len = sizeof(xcb_out); 2350 xcb_parts[3].iov_base = 0; 2351 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2352 2353 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2354 return xcb_ret; 2355 } 2356 2357 xcb_glx_make_context_current_cookie_t 2358 xcb_glx_make_context_current_unchecked (xcb_connection_t *c, 2359 xcb_glx_context_tag_t old_context_tag, 2360 xcb_glx_drawable_t drawable, 2361 xcb_glx_drawable_t read_drawable, 2362 xcb_glx_context_t context) 2363 { 2364 static const xcb_protocol_request_t xcb_req = { 2365 .count = 2, 2366 .ext = &xcb_glx_id, 2367 .opcode = XCB_GLX_MAKE_CONTEXT_CURRENT, 2368 .isvoid = 0 2369 }; 2370 2371 struct iovec xcb_parts[4]; 2372 xcb_glx_make_context_current_cookie_t xcb_ret; 2373 xcb_glx_make_context_current_request_t xcb_out; 2374 2375 xcb_out.old_context_tag = old_context_tag; 2376 xcb_out.drawable = drawable; 2377 xcb_out.read_drawable = read_drawable; 2378 xcb_out.context = context; 2379 2380 xcb_parts[2].iov_base = (char *) &xcb_out; 2381 xcb_parts[2].iov_len = sizeof(xcb_out); 2382 xcb_parts[3].iov_base = 0; 2383 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2384 2385 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2386 return xcb_ret; 2387 } 2388 2389 xcb_glx_make_context_current_reply_t * 2390 xcb_glx_make_context_current_reply (xcb_connection_t *c, 2391 xcb_glx_make_context_current_cookie_t cookie /**< */, 2392 xcb_generic_error_t **e) 2393 { 2394 return (xcb_glx_make_context_current_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2395 } 2396 2397 int 2398 xcb_glx_create_pbuffer_sizeof (const void *_buffer) 2399 { 2400 char *xcb_tmp = (char *)_buffer; 2401 const xcb_glx_create_pbuffer_request_t *_aux = (xcb_glx_create_pbuffer_request_t *)_buffer; 2402 unsigned int xcb_buffer_len = 0; 2403 unsigned int xcb_block_len = 0; 2404 unsigned int xcb_pad = 0; 2405 unsigned int xcb_align_to = 0; 2406 2407 2408 xcb_block_len += sizeof(xcb_glx_create_pbuffer_request_t); 2409 xcb_tmp += xcb_block_len; 2410 xcb_buffer_len += xcb_block_len; 2411 xcb_block_len = 0; 2412 /* attribs */ 2413 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 2414 xcb_tmp += xcb_block_len; 2415 xcb_align_to = ALIGNOF(uint32_t); 2416 /* insert padding */ 2417 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2418 xcb_buffer_len += xcb_block_len + xcb_pad; 2419 if (0 != xcb_pad) { 2420 xcb_tmp += xcb_pad; 2421 xcb_pad = 0; 2422 } 2423 xcb_block_len = 0; 2424 2425 return xcb_buffer_len; 2426 } 2427 2428 xcb_void_cookie_t 2429 xcb_glx_create_pbuffer_checked (xcb_connection_t *c, 2430 uint32_t screen, 2431 xcb_glx_fbconfig_t fbconfig, 2432 xcb_glx_pbuffer_t pbuffer, 2433 uint32_t num_attribs, 2434 const uint32_t *attribs) 2435 { 2436 static const xcb_protocol_request_t xcb_req = { 2437 .count = 4, 2438 .ext = &xcb_glx_id, 2439 .opcode = XCB_GLX_CREATE_PBUFFER, 2440 .isvoid = 1 2441 }; 2442 2443 struct iovec xcb_parts[6]; 2444 xcb_void_cookie_t xcb_ret; 2445 xcb_glx_create_pbuffer_request_t xcb_out; 2446 2447 xcb_out.screen = screen; 2448 xcb_out.fbconfig = fbconfig; 2449 xcb_out.pbuffer = pbuffer; 2450 xcb_out.num_attribs = num_attribs; 2451 2452 xcb_parts[2].iov_base = (char *) &xcb_out; 2453 xcb_parts[2].iov_len = sizeof(xcb_out); 2454 xcb_parts[3].iov_base = 0; 2455 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2456 /* uint32_t attribs */ 2457 xcb_parts[4].iov_base = (char *) attribs; 2458 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2459 xcb_parts[5].iov_base = 0; 2460 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2461 2462 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2463 return xcb_ret; 2464 } 2465 2466 xcb_void_cookie_t 2467 xcb_glx_create_pbuffer (xcb_connection_t *c, 2468 uint32_t screen, 2469 xcb_glx_fbconfig_t fbconfig, 2470 xcb_glx_pbuffer_t pbuffer, 2471 uint32_t num_attribs, 2472 const uint32_t *attribs) 2473 { 2474 static const xcb_protocol_request_t xcb_req = { 2475 .count = 4, 2476 .ext = &xcb_glx_id, 2477 .opcode = XCB_GLX_CREATE_PBUFFER, 2478 .isvoid = 1 2479 }; 2480 2481 struct iovec xcb_parts[6]; 2482 xcb_void_cookie_t xcb_ret; 2483 xcb_glx_create_pbuffer_request_t xcb_out; 2484 2485 xcb_out.screen = screen; 2486 xcb_out.fbconfig = fbconfig; 2487 xcb_out.pbuffer = pbuffer; 2488 xcb_out.num_attribs = num_attribs; 2489 2490 xcb_parts[2].iov_base = (char *) &xcb_out; 2491 xcb_parts[2].iov_len = sizeof(xcb_out); 2492 xcb_parts[3].iov_base = 0; 2493 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2494 /* uint32_t attribs */ 2495 xcb_parts[4].iov_base = (char *) attribs; 2496 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2497 xcb_parts[5].iov_base = 0; 2498 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2499 2500 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2501 return xcb_ret; 2502 } 2503 2504 uint32_t * 2505 xcb_glx_create_pbuffer_attribs (const xcb_glx_create_pbuffer_request_t *R) 2506 { 2507 return (uint32_t *) (R + 1); 2508 } 2509 2510 int 2511 xcb_glx_create_pbuffer_attribs_length (const xcb_glx_create_pbuffer_request_t *R) 2512 { 2513 return (R->num_attribs * 2); 2514 } 2515 2516 xcb_generic_iterator_t 2517 xcb_glx_create_pbuffer_attribs_end (const xcb_glx_create_pbuffer_request_t *R) 2518 { 2519 xcb_generic_iterator_t i; 2520 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2521 i.rem = 0; 2522 i.index = (char *) i.data - (char *) R; 2523 return i; 2524 } 2525 2526 xcb_void_cookie_t 2527 xcb_glx_destroy_pbuffer_checked (xcb_connection_t *c, 2528 xcb_glx_pbuffer_t pbuffer) 2529 { 2530 static const xcb_protocol_request_t xcb_req = { 2531 .count = 2, 2532 .ext = &xcb_glx_id, 2533 .opcode = XCB_GLX_DESTROY_PBUFFER, 2534 .isvoid = 1 2535 }; 2536 2537 struct iovec xcb_parts[4]; 2538 xcb_void_cookie_t xcb_ret; 2539 xcb_glx_destroy_pbuffer_request_t xcb_out; 2540 2541 xcb_out.pbuffer = pbuffer; 2542 2543 xcb_parts[2].iov_base = (char *) &xcb_out; 2544 xcb_parts[2].iov_len = sizeof(xcb_out); 2545 xcb_parts[3].iov_base = 0; 2546 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2547 2548 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2549 return xcb_ret; 2550 } 2551 2552 xcb_void_cookie_t 2553 xcb_glx_destroy_pbuffer (xcb_connection_t *c, 2554 xcb_glx_pbuffer_t pbuffer) 2555 { 2556 static const xcb_protocol_request_t xcb_req = { 2557 .count = 2, 2558 .ext = &xcb_glx_id, 2559 .opcode = XCB_GLX_DESTROY_PBUFFER, 2560 .isvoid = 1 2561 }; 2562 2563 struct iovec xcb_parts[4]; 2564 xcb_void_cookie_t xcb_ret; 2565 xcb_glx_destroy_pbuffer_request_t xcb_out; 2566 2567 xcb_out.pbuffer = pbuffer; 2568 2569 xcb_parts[2].iov_base = (char *) &xcb_out; 2570 xcb_parts[2].iov_len = sizeof(xcb_out); 2571 xcb_parts[3].iov_base = 0; 2572 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2573 2574 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2575 return xcb_ret; 2576 } 2577 2578 int 2579 xcb_glx_get_drawable_attributes_sizeof (const void *_buffer) 2580 { 2581 char *xcb_tmp = (char *)_buffer; 2582 const xcb_glx_get_drawable_attributes_reply_t *_aux = (xcb_glx_get_drawable_attributes_reply_t *)_buffer; 2583 unsigned int xcb_buffer_len = 0; 2584 unsigned int xcb_block_len = 0; 2585 unsigned int xcb_pad = 0; 2586 unsigned int xcb_align_to = 0; 2587 2588 2589 xcb_block_len += sizeof(xcb_glx_get_drawable_attributes_reply_t); 2590 xcb_tmp += xcb_block_len; 2591 xcb_buffer_len += xcb_block_len; 2592 xcb_block_len = 0; 2593 /* attribs */ 2594 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 2595 xcb_tmp += xcb_block_len; 2596 xcb_align_to = ALIGNOF(uint32_t); 2597 /* insert padding */ 2598 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2599 xcb_buffer_len += xcb_block_len + xcb_pad; 2600 if (0 != xcb_pad) { 2601 xcb_tmp += xcb_pad; 2602 xcb_pad = 0; 2603 } 2604 xcb_block_len = 0; 2605 2606 return xcb_buffer_len; 2607 } 2608 2609 xcb_glx_get_drawable_attributes_cookie_t 2610 xcb_glx_get_drawable_attributes (xcb_connection_t *c, 2611 xcb_glx_drawable_t drawable) 2612 { 2613 static const xcb_protocol_request_t xcb_req = { 2614 .count = 2, 2615 .ext = &xcb_glx_id, 2616 .opcode = XCB_GLX_GET_DRAWABLE_ATTRIBUTES, 2617 .isvoid = 0 2618 }; 2619 2620 struct iovec xcb_parts[4]; 2621 xcb_glx_get_drawable_attributes_cookie_t xcb_ret; 2622 xcb_glx_get_drawable_attributes_request_t xcb_out; 2623 2624 xcb_out.drawable = drawable; 2625 2626 xcb_parts[2].iov_base = (char *) &xcb_out; 2627 xcb_parts[2].iov_len = sizeof(xcb_out); 2628 xcb_parts[3].iov_base = 0; 2629 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2630 2631 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2632 return xcb_ret; 2633 } 2634 2635 xcb_glx_get_drawable_attributes_cookie_t 2636 xcb_glx_get_drawable_attributes_unchecked (xcb_connection_t *c, 2637 xcb_glx_drawable_t drawable) 2638 { 2639 static const xcb_protocol_request_t xcb_req = { 2640 .count = 2, 2641 .ext = &xcb_glx_id, 2642 .opcode = XCB_GLX_GET_DRAWABLE_ATTRIBUTES, 2643 .isvoid = 0 2644 }; 2645 2646 struct iovec xcb_parts[4]; 2647 xcb_glx_get_drawable_attributes_cookie_t xcb_ret; 2648 xcb_glx_get_drawable_attributes_request_t xcb_out; 2649 2650 xcb_out.drawable = drawable; 2651 2652 xcb_parts[2].iov_base = (char *) &xcb_out; 2653 xcb_parts[2].iov_len = sizeof(xcb_out); 2654 xcb_parts[3].iov_base = 0; 2655 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2656 2657 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2658 return xcb_ret; 2659 } 2660 2661 uint32_t * 2662 xcb_glx_get_drawable_attributes_attribs (const xcb_glx_get_drawable_attributes_reply_t *R) 2663 { 2664 return (uint32_t *) (R + 1); 2665 } 2666 2667 int 2668 xcb_glx_get_drawable_attributes_attribs_length (const xcb_glx_get_drawable_attributes_reply_t *R) 2669 { 2670 return (R->num_attribs * 2); 2671 } 2672 2673 xcb_generic_iterator_t 2674 xcb_glx_get_drawable_attributes_attribs_end (const xcb_glx_get_drawable_attributes_reply_t *R) 2675 { 2676 xcb_generic_iterator_t i; 2677 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2678 i.rem = 0; 2679 i.index = (char *) i.data - (char *) R; 2680 return i; 2681 } 2682 2683 xcb_glx_get_drawable_attributes_reply_t * 2684 xcb_glx_get_drawable_attributes_reply (xcb_connection_t *c, 2685 xcb_glx_get_drawable_attributes_cookie_t cookie /**< */, 2686 xcb_generic_error_t **e) 2687 { 2688 return (xcb_glx_get_drawable_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2689 } 2690 2691 int 2692 xcb_glx_change_drawable_attributes_sizeof (const void *_buffer) 2693 { 2694 char *xcb_tmp = (char *)_buffer; 2695 const xcb_glx_change_drawable_attributes_request_t *_aux = (xcb_glx_change_drawable_attributes_request_t *)_buffer; 2696 unsigned int xcb_buffer_len = 0; 2697 unsigned int xcb_block_len = 0; 2698 unsigned int xcb_pad = 0; 2699 unsigned int xcb_align_to = 0; 2700 2701 2702 xcb_block_len += sizeof(xcb_glx_change_drawable_attributes_request_t); 2703 xcb_tmp += xcb_block_len; 2704 xcb_buffer_len += xcb_block_len; 2705 xcb_block_len = 0; 2706 /* attribs */ 2707 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 2708 xcb_tmp += xcb_block_len; 2709 xcb_align_to = ALIGNOF(uint32_t); 2710 /* insert padding */ 2711 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2712 xcb_buffer_len += xcb_block_len + xcb_pad; 2713 if (0 != xcb_pad) { 2714 xcb_tmp += xcb_pad; 2715 xcb_pad = 0; 2716 } 2717 xcb_block_len = 0; 2718 2719 return xcb_buffer_len; 2720 } 2721 2722 xcb_void_cookie_t 2723 xcb_glx_change_drawable_attributes_checked (xcb_connection_t *c, 2724 xcb_glx_drawable_t drawable, 2725 uint32_t num_attribs, 2726 const uint32_t *attribs) 2727 { 2728 static const xcb_protocol_request_t xcb_req = { 2729 .count = 4, 2730 .ext = &xcb_glx_id, 2731 .opcode = XCB_GLX_CHANGE_DRAWABLE_ATTRIBUTES, 2732 .isvoid = 1 2733 }; 2734 2735 struct iovec xcb_parts[6]; 2736 xcb_void_cookie_t xcb_ret; 2737 xcb_glx_change_drawable_attributes_request_t xcb_out; 2738 2739 xcb_out.drawable = drawable; 2740 xcb_out.num_attribs = num_attribs; 2741 2742 xcb_parts[2].iov_base = (char *) &xcb_out; 2743 xcb_parts[2].iov_len = sizeof(xcb_out); 2744 xcb_parts[3].iov_base = 0; 2745 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2746 /* uint32_t attribs */ 2747 xcb_parts[4].iov_base = (char *) attribs; 2748 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2749 xcb_parts[5].iov_base = 0; 2750 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2751 2752 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2753 return xcb_ret; 2754 } 2755 2756 xcb_void_cookie_t 2757 xcb_glx_change_drawable_attributes (xcb_connection_t *c, 2758 xcb_glx_drawable_t drawable, 2759 uint32_t num_attribs, 2760 const uint32_t *attribs) 2761 { 2762 static const xcb_protocol_request_t xcb_req = { 2763 .count = 4, 2764 .ext = &xcb_glx_id, 2765 .opcode = XCB_GLX_CHANGE_DRAWABLE_ATTRIBUTES, 2766 .isvoid = 1 2767 }; 2768 2769 struct iovec xcb_parts[6]; 2770 xcb_void_cookie_t xcb_ret; 2771 xcb_glx_change_drawable_attributes_request_t xcb_out; 2772 2773 xcb_out.drawable = drawable; 2774 xcb_out.num_attribs = num_attribs; 2775 2776 xcb_parts[2].iov_base = (char *) &xcb_out; 2777 xcb_parts[2].iov_len = sizeof(xcb_out); 2778 xcb_parts[3].iov_base = 0; 2779 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2780 /* uint32_t attribs */ 2781 xcb_parts[4].iov_base = (char *) attribs; 2782 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2783 xcb_parts[5].iov_base = 0; 2784 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2785 2786 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2787 return xcb_ret; 2788 } 2789 2790 uint32_t * 2791 xcb_glx_change_drawable_attributes_attribs (const xcb_glx_change_drawable_attributes_request_t *R) 2792 { 2793 return (uint32_t *) (R + 1); 2794 } 2795 2796 int 2797 xcb_glx_change_drawable_attributes_attribs_length (const xcb_glx_change_drawable_attributes_request_t *R) 2798 { 2799 return (R->num_attribs * 2); 2800 } 2801 2802 xcb_generic_iterator_t 2803 xcb_glx_change_drawable_attributes_attribs_end (const xcb_glx_change_drawable_attributes_request_t *R) 2804 { 2805 xcb_generic_iterator_t i; 2806 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2807 i.rem = 0; 2808 i.index = (char *) i.data - (char *) R; 2809 return i; 2810 } 2811 2812 int 2813 xcb_glx_create_window_sizeof (const void *_buffer) 2814 { 2815 char *xcb_tmp = (char *)_buffer; 2816 const xcb_glx_create_window_request_t *_aux = (xcb_glx_create_window_request_t *)_buffer; 2817 unsigned int xcb_buffer_len = 0; 2818 unsigned int xcb_block_len = 0; 2819 unsigned int xcb_pad = 0; 2820 unsigned int xcb_align_to = 0; 2821 2822 2823 xcb_block_len += sizeof(xcb_glx_create_window_request_t); 2824 xcb_tmp += xcb_block_len; 2825 xcb_buffer_len += xcb_block_len; 2826 xcb_block_len = 0; 2827 /* attribs */ 2828 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 2829 xcb_tmp += xcb_block_len; 2830 xcb_align_to = ALIGNOF(uint32_t); 2831 /* insert padding */ 2832 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 2833 xcb_buffer_len += xcb_block_len + xcb_pad; 2834 if (0 != xcb_pad) { 2835 xcb_tmp += xcb_pad; 2836 xcb_pad = 0; 2837 } 2838 xcb_block_len = 0; 2839 2840 return xcb_buffer_len; 2841 } 2842 2843 xcb_void_cookie_t 2844 xcb_glx_create_window_checked (xcb_connection_t *c, 2845 uint32_t screen, 2846 xcb_glx_fbconfig_t fbconfig, 2847 xcb_window_t window, 2848 xcb_glx_window_t glx_window, 2849 uint32_t num_attribs, 2850 const uint32_t *attribs) 2851 { 2852 static const xcb_protocol_request_t xcb_req = { 2853 .count = 4, 2854 .ext = &xcb_glx_id, 2855 .opcode = XCB_GLX_CREATE_WINDOW, 2856 .isvoid = 1 2857 }; 2858 2859 struct iovec xcb_parts[6]; 2860 xcb_void_cookie_t xcb_ret; 2861 xcb_glx_create_window_request_t xcb_out; 2862 2863 xcb_out.screen = screen; 2864 xcb_out.fbconfig = fbconfig; 2865 xcb_out.window = window; 2866 xcb_out.glx_window = glx_window; 2867 xcb_out.num_attribs = num_attribs; 2868 2869 xcb_parts[2].iov_base = (char *) &xcb_out; 2870 xcb_parts[2].iov_len = sizeof(xcb_out); 2871 xcb_parts[3].iov_base = 0; 2872 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2873 /* uint32_t attribs */ 2874 xcb_parts[4].iov_base = (char *) attribs; 2875 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2876 xcb_parts[5].iov_base = 0; 2877 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2878 2879 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2880 return xcb_ret; 2881 } 2882 2883 xcb_void_cookie_t 2884 xcb_glx_create_window (xcb_connection_t *c, 2885 uint32_t screen, 2886 xcb_glx_fbconfig_t fbconfig, 2887 xcb_window_t window, 2888 xcb_glx_window_t glx_window, 2889 uint32_t num_attribs, 2890 const uint32_t *attribs) 2891 { 2892 static const xcb_protocol_request_t xcb_req = { 2893 .count = 4, 2894 .ext = &xcb_glx_id, 2895 .opcode = XCB_GLX_CREATE_WINDOW, 2896 .isvoid = 1 2897 }; 2898 2899 struct iovec xcb_parts[6]; 2900 xcb_void_cookie_t xcb_ret; 2901 xcb_glx_create_window_request_t xcb_out; 2902 2903 xcb_out.screen = screen; 2904 xcb_out.fbconfig = fbconfig; 2905 xcb_out.window = window; 2906 xcb_out.glx_window = glx_window; 2907 xcb_out.num_attribs = num_attribs; 2908 2909 xcb_parts[2].iov_base = (char *) &xcb_out; 2910 xcb_parts[2].iov_len = sizeof(xcb_out); 2911 xcb_parts[3].iov_base = 0; 2912 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2913 /* uint32_t attribs */ 2914 xcb_parts[4].iov_base = (char *) attribs; 2915 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 2916 xcb_parts[5].iov_base = 0; 2917 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2918 2919 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2920 return xcb_ret; 2921 } 2922 2923 uint32_t * 2924 xcb_glx_create_window_attribs (const xcb_glx_create_window_request_t *R) 2925 { 2926 return (uint32_t *) (R + 1); 2927 } 2928 2929 int 2930 xcb_glx_create_window_attribs_length (const xcb_glx_create_window_request_t *R) 2931 { 2932 return (R->num_attribs * 2); 2933 } 2934 2935 xcb_generic_iterator_t 2936 xcb_glx_create_window_attribs_end (const xcb_glx_create_window_request_t *R) 2937 { 2938 xcb_generic_iterator_t i; 2939 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 2940 i.rem = 0; 2941 i.index = (char *) i.data - (char *) R; 2942 return i; 2943 } 2944 2945 xcb_void_cookie_t 2946 xcb_glx_delete_window_checked (xcb_connection_t *c, 2947 xcb_glx_window_t glxwindow) 2948 { 2949 static const xcb_protocol_request_t xcb_req = { 2950 .count = 2, 2951 .ext = &xcb_glx_id, 2952 .opcode = XCB_GLX_DELETE_WINDOW, 2953 .isvoid = 1 2954 }; 2955 2956 struct iovec xcb_parts[4]; 2957 xcb_void_cookie_t xcb_ret; 2958 xcb_glx_delete_window_request_t xcb_out; 2959 2960 xcb_out.glxwindow = glxwindow; 2961 2962 xcb_parts[2].iov_base = (char *) &xcb_out; 2963 xcb_parts[2].iov_len = sizeof(xcb_out); 2964 xcb_parts[3].iov_base = 0; 2965 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2966 2967 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2968 return xcb_ret; 2969 } 2970 2971 xcb_void_cookie_t 2972 xcb_glx_delete_window (xcb_connection_t *c, 2973 xcb_glx_window_t glxwindow) 2974 { 2975 static const xcb_protocol_request_t xcb_req = { 2976 .count = 2, 2977 .ext = &xcb_glx_id, 2978 .opcode = XCB_GLX_DELETE_WINDOW, 2979 .isvoid = 1 2980 }; 2981 2982 struct iovec xcb_parts[4]; 2983 xcb_void_cookie_t xcb_ret; 2984 xcb_glx_delete_window_request_t xcb_out; 2985 2986 xcb_out.glxwindow = glxwindow; 2987 2988 xcb_parts[2].iov_base = (char *) &xcb_out; 2989 xcb_parts[2].iov_len = sizeof(xcb_out); 2990 xcb_parts[3].iov_base = 0; 2991 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2992 2993 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2994 return xcb_ret; 2995 } 2996 2997 int 2998 xcb_glx_set_client_info_arb_sizeof (const void *_buffer) 2999 { 3000 char *xcb_tmp = (char *)_buffer; 3001 const xcb_glx_set_client_info_arb_request_t *_aux = (xcb_glx_set_client_info_arb_request_t *)_buffer; 3002 unsigned int xcb_buffer_len = 0; 3003 unsigned int xcb_block_len = 0; 3004 unsigned int xcb_pad = 0; 3005 unsigned int xcb_align_to = 0; 3006 3007 3008 xcb_block_len += sizeof(xcb_glx_set_client_info_arb_request_t); 3009 xcb_tmp += xcb_block_len; 3010 xcb_buffer_len += xcb_block_len; 3011 xcb_block_len = 0; 3012 /* gl_versions */ 3013 xcb_block_len += (_aux->num_versions * 2) * sizeof(uint32_t); 3014 xcb_tmp += xcb_block_len; 3015 xcb_align_to = ALIGNOF(uint32_t); 3016 /* insert padding */ 3017 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3018 xcb_buffer_len += xcb_block_len + xcb_pad; 3019 if (0 != xcb_pad) { 3020 xcb_tmp += xcb_pad; 3021 xcb_pad = 0; 3022 } 3023 xcb_block_len = 0; 3024 /* gl_extension_string */ 3025 xcb_block_len += _aux->gl_str_len * sizeof(char); 3026 xcb_tmp += xcb_block_len; 3027 xcb_align_to = ALIGNOF(char); 3028 xcb_align_to = 4; 3029 /* insert padding */ 3030 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3031 xcb_buffer_len += xcb_block_len + xcb_pad; 3032 if (0 != xcb_pad) { 3033 xcb_tmp += xcb_pad; 3034 xcb_pad = 0; 3035 } 3036 xcb_block_len = 0; 3037 /* insert padding */ 3038 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3039 xcb_buffer_len += xcb_block_len + xcb_pad; 3040 if (0 != xcb_pad) { 3041 xcb_tmp += xcb_pad; 3042 xcb_pad = 0; 3043 } 3044 xcb_block_len = 0; 3045 /* glx_extension_string */ 3046 xcb_block_len += _aux->glx_str_len * sizeof(char); 3047 xcb_tmp += xcb_block_len; 3048 xcb_align_to = ALIGNOF(char); 3049 /* insert padding */ 3050 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3051 xcb_buffer_len += xcb_block_len + xcb_pad; 3052 if (0 != xcb_pad) { 3053 xcb_tmp += xcb_pad; 3054 xcb_pad = 0; 3055 } 3056 xcb_block_len = 0; 3057 3058 return xcb_buffer_len; 3059 } 3060 3061 xcb_void_cookie_t 3062 xcb_glx_set_client_info_arb_checked (xcb_connection_t *c, 3063 uint32_t major_version, 3064 uint32_t minor_version, 3065 uint32_t num_versions, 3066 uint32_t gl_str_len, 3067 uint32_t glx_str_len, 3068 const uint32_t *gl_versions, 3069 const char *gl_extension_string, 3070 const char *glx_extension_string) 3071 { 3072 static const xcb_protocol_request_t xcb_req = { 3073 .count = 8, 3074 .ext = &xcb_glx_id, 3075 .opcode = XCB_GLX_SET_CLIENT_INFO_ARB, 3076 .isvoid = 1 3077 }; 3078 3079 struct iovec xcb_parts[10]; 3080 xcb_void_cookie_t xcb_ret; 3081 xcb_glx_set_client_info_arb_request_t xcb_out; 3082 3083 xcb_out.major_version = major_version; 3084 xcb_out.minor_version = minor_version; 3085 xcb_out.num_versions = num_versions; 3086 xcb_out.gl_str_len = gl_str_len; 3087 xcb_out.glx_str_len = glx_str_len; 3088 3089 xcb_parts[2].iov_base = (char *) &xcb_out; 3090 xcb_parts[2].iov_len = sizeof(xcb_out); 3091 xcb_parts[3].iov_base = 0; 3092 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3093 /* uint32_t gl_versions */ 3094 xcb_parts[4].iov_base = (char *) gl_versions; 3095 xcb_parts[4].iov_len = (num_versions * 2) * sizeof(uint32_t); 3096 xcb_parts[5].iov_base = 0; 3097 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3098 /* char gl_extension_string */ 3099 xcb_parts[6].iov_base = (char *) gl_extension_string; 3100 xcb_parts[6].iov_len = gl_str_len * sizeof(char); 3101 xcb_parts[7].iov_base = 0; 3102 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3103 /* char glx_extension_string */ 3104 xcb_parts[8].iov_base = (char *) glx_extension_string; 3105 xcb_parts[8].iov_len = glx_str_len * sizeof(char); 3106 xcb_parts[9].iov_base = 0; 3107 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 3108 3109 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3110 return xcb_ret; 3111 } 3112 3113 xcb_void_cookie_t 3114 xcb_glx_set_client_info_arb (xcb_connection_t *c, 3115 uint32_t major_version, 3116 uint32_t minor_version, 3117 uint32_t num_versions, 3118 uint32_t gl_str_len, 3119 uint32_t glx_str_len, 3120 const uint32_t *gl_versions, 3121 const char *gl_extension_string, 3122 const char *glx_extension_string) 3123 { 3124 static const xcb_protocol_request_t xcb_req = { 3125 .count = 8, 3126 .ext = &xcb_glx_id, 3127 .opcode = XCB_GLX_SET_CLIENT_INFO_ARB, 3128 .isvoid = 1 3129 }; 3130 3131 struct iovec xcb_parts[10]; 3132 xcb_void_cookie_t xcb_ret; 3133 xcb_glx_set_client_info_arb_request_t xcb_out; 3134 3135 xcb_out.major_version = major_version; 3136 xcb_out.minor_version = minor_version; 3137 xcb_out.num_versions = num_versions; 3138 xcb_out.gl_str_len = gl_str_len; 3139 xcb_out.glx_str_len = glx_str_len; 3140 3141 xcb_parts[2].iov_base = (char *) &xcb_out; 3142 xcb_parts[2].iov_len = sizeof(xcb_out); 3143 xcb_parts[3].iov_base = 0; 3144 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3145 /* uint32_t gl_versions */ 3146 xcb_parts[4].iov_base = (char *) gl_versions; 3147 xcb_parts[4].iov_len = (num_versions * 2) * sizeof(uint32_t); 3148 xcb_parts[5].iov_base = 0; 3149 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3150 /* char gl_extension_string */ 3151 xcb_parts[6].iov_base = (char *) gl_extension_string; 3152 xcb_parts[6].iov_len = gl_str_len * sizeof(char); 3153 xcb_parts[7].iov_base = 0; 3154 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3155 /* char glx_extension_string */ 3156 xcb_parts[8].iov_base = (char *) glx_extension_string; 3157 xcb_parts[8].iov_len = glx_str_len * sizeof(char); 3158 xcb_parts[9].iov_base = 0; 3159 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 3160 3161 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3162 return xcb_ret; 3163 } 3164 3165 uint32_t * 3166 xcb_glx_set_client_info_arb_gl_versions (const xcb_glx_set_client_info_arb_request_t *R) 3167 { 3168 return (uint32_t *) (R + 1); 3169 } 3170 3171 int 3172 xcb_glx_set_client_info_arb_gl_versions_length (const xcb_glx_set_client_info_arb_request_t *R) 3173 { 3174 return (R->num_versions * 2); 3175 } 3176 3177 xcb_generic_iterator_t 3178 xcb_glx_set_client_info_arb_gl_versions_end (const xcb_glx_set_client_info_arb_request_t *R) 3179 { 3180 xcb_generic_iterator_t i; 3181 i.data = ((uint32_t *) (R + 1)) + ((R->num_versions * 2)); 3182 i.rem = 0; 3183 i.index = (char *) i.data - (char *) R; 3184 return i; 3185 } 3186 3187 char * 3188 xcb_glx_set_client_info_arb_gl_extension_string (const xcb_glx_set_client_info_arb_request_t *R) 3189 { 3190 xcb_generic_iterator_t prev = xcb_glx_set_client_info_arb_gl_versions_end(R); 3191 return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); 3192 } 3193 3194 int 3195 xcb_glx_set_client_info_arb_gl_extension_string_length (const xcb_glx_set_client_info_arb_request_t *R) 3196 { 3197 return R->gl_str_len; 3198 } 3199 3200 xcb_generic_iterator_t 3201 xcb_glx_set_client_info_arb_gl_extension_string_end (const xcb_glx_set_client_info_arb_request_t *R) 3202 { 3203 xcb_generic_iterator_t i; 3204 xcb_generic_iterator_t prev = xcb_glx_set_client_info_arb_gl_versions_end(R); 3205 i.data = ((char *) ((char*) prev.data + XCB_TYPE_PAD(char, prev.index))) + (R->gl_str_len); 3206 i.rem = 0; 3207 i.index = (char *) i.data - (char *) R; 3208 return i; 3209 } 3210 3211 char * 3212 xcb_glx_set_client_info_arb_glx_extension_string (const xcb_glx_set_client_info_arb_request_t *R) 3213 { 3214 xcb_generic_iterator_t prev = xcb_glx_set_client_info_arb_gl_extension_string_end(R); 3215 return (char *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0); 3216 } 3217 3218 int 3219 xcb_glx_set_client_info_arb_glx_extension_string_length (const xcb_glx_set_client_info_arb_request_t *R) 3220 { 3221 return R->glx_str_len; 3222 } 3223 3224 xcb_generic_iterator_t 3225 xcb_glx_set_client_info_arb_glx_extension_string_end (const xcb_glx_set_client_info_arb_request_t *R) 3226 { 3227 xcb_generic_iterator_t i; 3228 xcb_generic_iterator_t prev = xcb_glx_set_client_info_arb_gl_extension_string_end(R); 3229 i.data = ((char *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (R->glx_str_len); 3230 i.rem = 0; 3231 i.index = (char *) i.data - (char *) R; 3232 return i; 3233 } 3234 3235 int 3236 xcb_glx_create_context_attribs_arb_sizeof (const void *_buffer) 3237 { 3238 char *xcb_tmp = (char *)_buffer; 3239 const xcb_glx_create_context_attribs_arb_request_t *_aux = (xcb_glx_create_context_attribs_arb_request_t *)_buffer; 3240 unsigned int xcb_buffer_len = 0; 3241 unsigned int xcb_block_len = 0; 3242 unsigned int xcb_pad = 0; 3243 unsigned int xcb_align_to = 0; 3244 3245 3246 xcb_block_len += sizeof(xcb_glx_create_context_attribs_arb_request_t); 3247 xcb_tmp += xcb_block_len; 3248 xcb_buffer_len += xcb_block_len; 3249 xcb_block_len = 0; 3250 /* attribs */ 3251 xcb_block_len += (_aux->num_attribs * 2) * sizeof(uint32_t); 3252 xcb_tmp += xcb_block_len; 3253 xcb_align_to = ALIGNOF(uint32_t); 3254 /* insert padding */ 3255 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3256 xcb_buffer_len += xcb_block_len + xcb_pad; 3257 if (0 != xcb_pad) { 3258 xcb_tmp += xcb_pad; 3259 xcb_pad = 0; 3260 } 3261 xcb_block_len = 0; 3262 3263 return xcb_buffer_len; 3264 } 3265 3266 xcb_void_cookie_t 3267 xcb_glx_create_context_attribs_arb_checked (xcb_connection_t *c, 3268 xcb_glx_context_t context, 3269 xcb_glx_fbconfig_t fbconfig, 3270 uint32_t screen, 3271 xcb_glx_context_t share_list, 3272 uint8_t is_direct, 3273 uint32_t num_attribs, 3274 const uint32_t *attribs) 3275 { 3276 static const xcb_protocol_request_t xcb_req = { 3277 .count = 4, 3278 .ext = &xcb_glx_id, 3279 .opcode = XCB_GLX_CREATE_CONTEXT_ATTRIBS_ARB, 3280 .isvoid = 1 3281 }; 3282 3283 struct iovec xcb_parts[6]; 3284 xcb_void_cookie_t xcb_ret; 3285 xcb_glx_create_context_attribs_arb_request_t xcb_out; 3286 3287 xcb_out.context = context; 3288 xcb_out.fbconfig = fbconfig; 3289 xcb_out.screen = screen; 3290 xcb_out.share_list = share_list; 3291 xcb_out.is_direct = is_direct; 3292 memset(xcb_out.pad0, 0, 3); 3293 xcb_out.num_attribs = num_attribs; 3294 3295 xcb_parts[2].iov_base = (char *) &xcb_out; 3296 xcb_parts[2].iov_len = sizeof(xcb_out); 3297 xcb_parts[3].iov_base = 0; 3298 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3299 /* uint32_t attribs */ 3300 xcb_parts[4].iov_base = (char *) attribs; 3301 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 3302 xcb_parts[5].iov_base = 0; 3303 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3304 3305 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3306 return xcb_ret; 3307 } 3308 3309 xcb_void_cookie_t 3310 xcb_glx_create_context_attribs_arb (xcb_connection_t *c, 3311 xcb_glx_context_t context, 3312 xcb_glx_fbconfig_t fbconfig, 3313 uint32_t screen, 3314 xcb_glx_context_t share_list, 3315 uint8_t is_direct, 3316 uint32_t num_attribs, 3317 const uint32_t *attribs) 3318 { 3319 static const xcb_protocol_request_t xcb_req = { 3320 .count = 4, 3321 .ext = &xcb_glx_id, 3322 .opcode = XCB_GLX_CREATE_CONTEXT_ATTRIBS_ARB, 3323 .isvoid = 1 3324 }; 3325 3326 struct iovec xcb_parts[6]; 3327 xcb_void_cookie_t xcb_ret; 3328 xcb_glx_create_context_attribs_arb_request_t xcb_out; 3329 3330 xcb_out.context = context; 3331 xcb_out.fbconfig = fbconfig; 3332 xcb_out.screen = screen; 3333 xcb_out.share_list = share_list; 3334 xcb_out.is_direct = is_direct; 3335 memset(xcb_out.pad0, 0, 3); 3336 xcb_out.num_attribs = num_attribs; 3337 3338 xcb_parts[2].iov_base = (char *) &xcb_out; 3339 xcb_parts[2].iov_len = sizeof(xcb_out); 3340 xcb_parts[3].iov_base = 0; 3341 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3342 /* uint32_t attribs */ 3343 xcb_parts[4].iov_base = (char *) attribs; 3344 xcb_parts[4].iov_len = (num_attribs * 2) * sizeof(uint32_t); 3345 xcb_parts[5].iov_base = 0; 3346 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3347 3348 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3349 return xcb_ret; 3350 } 3351 3352 uint32_t * 3353 xcb_glx_create_context_attribs_arb_attribs (const xcb_glx_create_context_attribs_arb_request_t *R) 3354 { 3355 return (uint32_t *) (R + 1); 3356 } 3357 3358 int 3359 xcb_glx_create_context_attribs_arb_attribs_length (const xcb_glx_create_context_attribs_arb_request_t *R) 3360 { 3361 return (R->num_attribs * 2); 3362 } 3363 3364 xcb_generic_iterator_t 3365 xcb_glx_create_context_attribs_arb_attribs_end (const xcb_glx_create_context_attribs_arb_request_t *R) 3366 { 3367 xcb_generic_iterator_t i; 3368 i.data = ((uint32_t *) (R + 1)) + ((R->num_attribs * 2)); 3369 i.rem = 0; 3370 i.index = (char *) i.data - (char *) R; 3371 return i; 3372 } 3373 3374 int 3375 xcb_glx_set_client_info_2arb_sizeof (const void *_buffer) 3376 { 3377 char *xcb_tmp = (char *)_buffer; 3378 const xcb_glx_set_client_info_2arb_request_t *_aux = (xcb_glx_set_client_info_2arb_request_t *)_buffer; 3379 unsigned int xcb_buffer_len = 0; 3380 unsigned int xcb_block_len = 0; 3381 unsigned int xcb_pad = 0; 3382 unsigned int xcb_align_to = 0; 3383 3384 3385 xcb_block_len += sizeof(xcb_glx_set_client_info_2arb_request_t); 3386 xcb_tmp += xcb_block_len; 3387 xcb_buffer_len += xcb_block_len; 3388 xcb_block_len = 0; 3389 /* gl_versions */ 3390 xcb_block_len += (_aux->num_versions * 3) * sizeof(uint32_t); 3391 xcb_tmp += xcb_block_len; 3392 xcb_align_to = ALIGNOF(uint32_t); 3393 /* insert padding */ 3394 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3395 xcb_buffer_len += xcb_block_len + xcb_pad; 3396 if (0 != xcb_pad) { 3397 xcb_tmp += xcb_pad; 3398 xcb_pad = 0; 3399 } 3400 xcb_block_len = 0; 3401 /* gl_extension_string */ 3402 xcb_block_len += _aux->gl_str_len * sizeof(char); 3403 xcb_tmp += xcb_block_len; 3404 xcb_align_to = ALIGNOF(char); 3405 xcb_align_to = 4; 3406 /* insert padding */ 3407 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3408 xcb_buffer_len += xcb_block_len + xcb_pad; 3409 if (0 != xcb_pad) { 3410 xcb_tmp += xcb_pad; 3411 xcb_pad = 0; 3412 } 3413 xcb_block_len = 0; 3414 /* insert padding */ 3415 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3416 xcb_buffer_len += xcb_block_len + xcb_pad; 3417 if (0 != xcb_pad) { 3418 xcb_tmp += xcb_pad; 3419 xcb_pad = 0; 3420 } 3421 xcb_block_len = 0; 3422 /* glx_extension_string */ 3423 xcb_block_len += _aux->glx_str_len * sizeof(char); 3424 xcb_tmp += xcb_block_len; 3425 xcb_align_to = ALIGNOF(char); 3426 /* insert padding */ 3427 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3428 xcb_buffer_len += xcb_block_len + xcb_pad; 3429 if (0 != xcb_pad) { 3430 xcb_tmp += xcb_pad; 3431 xcb_pad = 0; 3432 } 3433 xcb_block_len = 0; 3434 3435 return xcb_buffer_len; 3436 } 3437 3438 xcb_void_cookie_t 3439 xcb_glx_set_client_info_2arb_checked (xcb_connection_t *c, 3440 uint32_t major_version, 3441 uint32_t minor_version, 3442 uint32_t num_versions, 3443 uint32_t gl_str_len, 3444 uint32_t glx_str_len, 3445 const uint32_t *gl_versions, 3446 const char *gl_extension_string, 3447 const char *glx_extension_string) 3448 { 3449 static const xcb_protocol_request_t xcb_req = { 3450 .count = 8, 3451 .ext = &xcb_glx_id, 3452 .opcode = XCB_GLX_SET_CLIENT_INFO_2ARB, 3453 .isvoid = 1 3454 }; 3455 3456 struct iovec xcb_parts[10]; 3457 xcb_void_cookie_t xcb_ret; 3458 xcb_glx_set_client_info_2arb_request_t xcb_out; 3459 3460 xcb_out.major_version = major_version; 3461 xcb_out.minor_version = minor_version; 3462 xcb_out.num_versions = num_versions; 3463 xcb_out.gl_str_len = gl_str_len; 3464 xcb_out.glx_str_len = glx_str_len; 3465 3466 xcb_parts[2].iov_base = (char *) &xcb_out; 3467 xcb_parts[2].iov_len = sizeof(xcb_out); 3468 xcb_parts[3].iov_base = 0; 3469 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3470 /* uint32_t gl_versions */ 3471 xcb_parts[4].iov_base = (char *) gl_versions; 3472 xcb_parts[4].iov_len = (num_versions * 3) * sizeof(uint32_t); 3473 xcb_parts[5].iov_base = 0; 3474 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3475 /* char gl_extension_string */ 3476 xcb_parts[6].iov_base = (char *) gl_extension_string; 3477 xcb_parts[6].iov_len = gl_str_len * sizeof(char); 3478 xcb_parts[7].iov_base = 0; 3479 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3480 /* char glx_extension_string */ 3481 xcb_parts[8].iov_base = (char *) glx_extension_string; 3482 xcb_parts[8].iov_len = glx_str_len * sizeof(char); 3483 xcb_parts[9].iov_base = 0; 3484 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 3485 3486 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3487 return xcb_ret; 3488 } 3489 3490 xcb_void_cookie_t 3491 xcb_glx_set_client_info_2arb (xcb_connection_t *c, 3492 uint32_t major_version, 3493 uint32_t minor_version, 3494 uint32_t num_versions, 3495 uint32_t gl_str_len, 3496 uint32_t glx_str_len, 3497 const uint32_t *gl_versions, 3498 const char *gl_extension_string, 3499 const char *glx_extension_string) 3500 { 3501 static const xcb_protocol_request_t xcb_req = { 3502 .count = 8, 3503 .ext = &xcb_glx_id, 3504 .opcode = XCB_GLX_SET_CLIENT_INFO_2ARB, 3505 .isvoid = 1 3506 }; 3507 3508 struct iovec xcb_parts[10]; 3509 xcb_void_cookie_t xcb_ret; 3510 xcb_glx_set_client_info_2arb_request_t xcb_out; 3511 3512 xcb_out.major_version = major_version; 3513 xcb_out.minor_version = minor_version; 3514 xcb_out.num_versions = num_versions; 3515 xcb_out.gl_str_len = gl_str_len; 3516 xcb_out.glx_str_len = glx_str_len; 3517 3518 xcb_parts[2].iov_base = (char *) &xcb_out; 3519 xcb_parts[2].iov_len = sizeof(xcb_out); 3520 xcb_parts[3].iov_base = 0; 3521 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3522 /* uint32_t gl_versions */ 3523 xcb_parts[4].iov_base = (char *) gl_versions; 3524 xcb_parts[4].iov_len = (num_versions * 3) * sizeof(uint32_t); 3525 xcb_parts[5].iov_base = 0; 3526 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 3527 /* char gl_extension_string */ 3528 xcb_parts[6].iov_base = (char *) gl_extension_string; 3529 xcb_parts[6].iov_len = gl_str_len * sizeof(char); 3530 xcb_parts[7].iov_base = 0; 3531 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; 3532 /* char glx_extension_string */ 3533 xcb_parts[8].iov_base = (char *) glx_extension_string; 3534 xcb_parts[8].iov_len = glx_str_len * sizeof(char); 3535 xcb_parts[9].iov_base = 0; 3536 xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; 3537 3538 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3539 return xcb_ret; 3540 } 3541 3542 uint32_t * 3543 xcb_glx_set_client_info_2arb_gl_versions (const xcb_glx_set_client_info_2arb_request_t *R) 3544 { 3545 return (uint32_t *) (R + 1); 3546 } 3547 3548 int 3549 xcb_glx_set_client_info_2arb_gl_versions_length (const xcb_glx_set_client_info_2arb_request_t *R) 3550 { 3551 return (R->num_versions * 3); 3552 } 3553 3554 xcb_generic_iterator_t 3555 xcb_glx_set_client_info_2arb_gl_versions_end (const xcb_glx_set_client_info_2arb_request_t *R) 3556 { 3557 xcb_generic_iterator_t i; 3558 i.data = ((uint32_t *) (R + 1)) + ((R->num_versions * 3)); 3559 i.rem = 0; 3560 i.index = (char *) i.data - (char *) R; 3561 return i; 3562 } 3563 3564 char * 3565 xcb_glx_set_client_info_2arb_gl_extension_string (const xcb_glx_set_client_info_2arb_request_t *R) 3566 { 3567 xcb_generic_iterator_t prev = xcb_glx_set_client_info_2arb_gl_versions_end(R); 3568 return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); 3569 } 3570 3571 int 3572 xcb_glx_set_client_info_2arb_gl_extension_string_length (const xcb_glx_set_client_info_2arb_request_t *R) 3573 { 3574 return R->gl_str_len; 3575 } 3576 3577 xcb_generic_iterator_t 3578 xcb_glx_set_client_info_2arb_gl_extension_string_end (const xcb_glx_set_client_info_2arb_request_t *R) 3579 { 3580 xcb_generic_iterator_t i; 3581 xcb_generic_iterator_t prev = xcb_glx_set_client_info_2arb_gl_versions_end(R); 3582 i.data = ((char *) ((char*) prev.data + XCB_TYPE_PAD(char, prev.index))) + (R->gl_str_len); 3583 i.rem = 0; 3584 i.index = (char *) i.data - (char *) R; 3585 return i; 3586 } 3587 3588 char * 3589 xcb_glx_set_client_info_2arb_glx_extension_string (const xcb_glx_set_client_info_2arb_request_t *R) 3590 { 3591 xcb_generic_iterator_t prev = xcb_glx_set_client_info_2arb_gl_extension_string_end(R); 3592 return (char *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0); 3593 } 3594 3595 int 3596 xcb_glx_set_client_info_2arb_glx_extension_string_length (const xcb_glx_set_client_info_2arb_request_t *R) 3597 { 3598 return R->glx_str_len; 3599 } 3600 3601 xcb_generic_iterator_t 3602 xcb_glx_set_client_info_2arb_glx_extension_string_end (const xcb_glx_set_client_info_2arb_request_t *R) 3603 { 3604 xcb_generic_iterator_t i; 3605 xcb_generic_iterator_t prev = xcb_glx_set_client_info_2arb_gl_extension_string_end(R); 3606 i.data = ((char *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (R->glx_str_len); 3607 i.rem = 0; 3608 i.index = (char *) i.data - (char *) R; 3609 return i; 3610 } 3611 3612 xcb_void_cookie_t 3613 xcb_glx_new_list_checked (xcb_connection_t *c, 3614 xcb_glx_context_tag_t context_tag, 3615 uint32_t list, 3616 uint32_t mode) 3617 { 3618 static const xcb_protocol_request_t xcb_req = { 3619 .count = 2, 3620 .ext = &xcb_glx_id, 3621 .opcode = XCB_GLX_NEW_LIST, 3622 .isvoid = 1 3623 }; 3624 3625 struct iovec xcb_parts[4]; 3626 xcb_void_cookie_t xcb_ret; 3627 xcb_glx_new_list_request_t xcb_out; 3628 3629 xcb_out.context_tag = context_tag; 3630 xcb_out.list = list; 3631 xcb_out.mode = mode; 3632 3633 xcb_parts[2].iov_base = (char *) &xcb_out; 3634 xcb_parts[2].iov_len = sizeof(xcb_out); 3635 xcb_parts[3].iov_base = 0; 3636 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3637 3638 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3639 return xcb_ret; 3640 } 3641 3642 xcb_void_cookie_t 3643 xcb_glx_new_list (xcb_connection_t *c, 3644 xcb_glx_context_tag_t context_tag, 3645 uint32_t list, 3646 uint32_t mode) 3647 { 3648 static const xcb_protocol_request_t xcb_req = { 3649 .count = 2, 3650 .ext = &xcb_glx_id, 3651 .opcode = XCB_GLX_NEW_LIST, 3652 .isvoid = 1 3653 }; 3654 3655 struct iovec xcb_parts[4]; 3656 xcb_void_cookie_t xcb_ret; 3657 xcb_glx_new_list_request_t xcb_out; 3658 3659 xcb_out.context_tag = context_tag; 3660 xcb_out.list = list; 3661 xcb_out.mode = mode; 3662 3663 xcb_parts[2].iov_base = (char *) &xcb_out; 3664 xcb_parts[2].iov_len = sizeof(xcb_out); 3665 xcb_parts[3].iov_base = 0; 3666 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3667 3668 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3669 return xcb_ret; 3670 } 3671 3672 xcb_void_cookie_t 3673 xcb_glx_end_list_checked (xcb_connection_t *c, 3674 xcb_glx_context_tag_t context_tag) 3675 { 3676 static const xcb_protocol_request_t xcb_req = { 3677 .count = 2, 3678 .ext = &xcb_glx_id, 3679 .opcode = XCB_GLX_END_LIST, 3680 .isvoid = 1 3681 }; 3682 3683 struct iovec xcb_parts[4]; 3684 xcb_void_cookie_t xcb_ret; 3685 xcb_glx_end_list_request_t xcb_out; 3686 3687 xcb_out.context_tag = context_tag; 3688 3689 xcb_parts[2].iov_base = (char *) &xcb_out; 3690 xcb_parts[2].iov_len = sizeof(xcb_out); 3691 xcb_parts[3].iov_base = 0; 3692 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3693 3694 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3695 return xcb_ret; 3696 } 3697 3698 xcb_void_cookie_t 3699 xcb_glx_end_list (xcb_connection_t *c, 3700 xcb_glx_context_tag_t context_tag) 3701 { 3702 static const xcb_protocol_request_t xcb_req = { 3703 .count = 2, 3704 .ext = &xcb_glx_id, 3705 .opcode = XCB_GLX_END_LIST, 3706 .isvoid = 1 3707 }; 3708 3709 struct iovec xcb_parts[4]; 3710 xcb_void_cookie_t xcb_ret; 3711 xcb_glx_end_list_request_t xcb_out; 3712 3713 xcb_out.context_tag = context_tag; 3714 3715 xcb_parts[2].iov_base = (char *) &xcb_out; 3716 xcb_parts[2].iov_len = sizeof(xcb_out); 3717 xcb_parts[3].iov_base = 0; 3718 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3719 3720 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3721 return xcb_ret; 3722 } 3723 3724 xcb_void_cookie_t 3725 xcb_glx_delete_lists_checked (xcb_connection_t *c, 3726 xcb_glx_context_tag_t context_tag, 3727 uint32_t list, 3728 int32_t range) 3729 { 3730 static const xcb_protocol_request_t xcb_req = { 3731 .count = 2, 3732 .ext = &xcb_glx_id, 3733 .opcode = XCB_GLX_DELETE_LISTS, 3734 .isvoid = 1 3735 }; 3736 3737 struct iovec xcb_parts[4]; 3738 xcb_void_cookie_t xcb_ret; 3739 xcb_glx_delete_lists_request_t xcb_out; 3740 3741 xcb_out.context_tag = context_tag; 3742 xcb_out.list = list; 3743 xcb_out.range = range; 3744 3745 xcb_parts[2].iov_base = (char *) &xcb_out; 3746 xcb_parts[2].iov_len = sizeof(xcb_out); 3747 xcb_parts[3].iov_base = 0; 3748 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3749 3750 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3751 return xcb_ret; 3752 } 3753 3754 xcb_void_cookie_t 3755 xcb_glx_delete_lists (xcb_connection_t *c, 3756 xcb_glx_context_tag_t context_tag, 3757 uint32_t list, 3758 int32_t range) 3759 { 3760 static const xcb_protocol_request_t xcb_req = { 3761 .count = 2, 3762 .ext = &xcb_glx_id, 3763 .opcode = XCB_GLX_DELETE_LISTS, 3764 .isvoid = 1 3765 }; 3766 3767 struct iovec xcb_parts[4]; 3768 xcb_void_cookie_t xcb_ret; 3769 xcb_glx_delete_lists_request_t xcb_out; 3770 3771 xcb_out.context_tag = context_tag; 3772 xcb_out.list = list; 3773 xcb_out.range = range; 3774 3775 xcb_parts[2].iov_base = (char *) &xcb_out; 3776 xcb_parts[2].iov_len = sizeof(xcb_out); 3777 xcb_parts[3].iov_base = 0; 3778 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3779 3780 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3781 return xcb_ret; 3782 } 3783 3784 xcb_glx_gen_lists_cookie_t 3785 xcb_glx_gen_lists (xcb_connection_t *c, 3786 xcb_glx_context_tag_t context_tag, 3787 int32_t range) 3788 { 3789 static const xcb_protocol_request_t xcb_req = { 3790 .count = 2, 3791 .ext = &xcb_glx_id, 3792 .opcode = XCB_GLX_GEN_LISTS, 3793 .isvoid = 0 3794 }; 3795 3796 struct iovec xcb_parts[4]; 3797 xcb_glx_gen_lists_cookie_t xcb_ret; 3798 xcb_glx_gen_lists_request_t xcb_out; 3799 3800 xcb_out.context_tag = context_tag; 3801 xcb_out.range = range; 3802 3803 xcb_parts[2].iov_base = (char *) &xcb_out; 3804 xcb_parts[2].iov_len = sizeof(xcb_out); 3805 xcb_parts[3].iov_base = 0; 3806 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3807 3808 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3809 return xcb_ret; 3810 } 3811 3812 xcb_glx_gen_lists_cookie_t 3813 xcb_glx_gen_lists_unchecked (xcb_connection_t *c, 3814 xcb_glx_context_tag_t context_tag, 3815 int32_t range) 3816 { 3817 static const xcb_protocol_request_t xcb_req = { 3818 .count = 2, 3819 .ext = &xcb_glx_id, 3820 .opcode = XCB_GLX_GEN_LISTS, 3821 .isvoid = 0 3822 }; 3823 3824 struct iovec xcb_parts[4]; 3825 xcb_glx_gen_lists_cookie_t xcb_ret; 3826 xcb_glx_gen_lists_request_t xcb_out; 3827 3828 xcb_out.context_tag = context_tag; 3829 xcb_out.range = range; 3830 3831 xcb_parts[2].iov_base = (char *) &xcb_out; 3832 xcb_parts[2].iov_len = sizeof(xcb_out); 3833 xcb_parts[3].iov_base = 0; 3834 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3835 3836 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3837 return xcb_ret; 3838 } 3839 3840 xcb_glx_gen_lists_reply_t * 3841 xcb_glx_gen_lists_reply (xcb_connection_t *c, 3842 xcb_glx_gen_lists_cookie_t cookie /**< */, 3843 xcb_generic_error_t **e) 3844 { 3845 return (xcb_glx_gen_lists_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3846 } 3847 3848 xcb_void_cookie_t 3849 xcb_glx_feedback_buffer_checked (xcb_connection_t *c, 3850 xcb_glx_context_tag_t context_tag, 3851 int32_t size, 3852 int32_t type) 3853 { 3854 static const xcb_protocol_request_t xcb_req = { 3855 .count = 2, 3856 .ext = &xcb_glx_id, 3857 .opcode = XCB_GLX_FEEDBACK_BUFFER, 3858 .isvoid = 1 3859 }; 3860 3861 struct iovec xcb_parts[4]; 3862 xcb_void_cookie_t xcb_ret; 3863 xcb_glx_feedback_buffer_request_t xcb_out; 3864 3865 xcb_out.context_tag = context_tag; 3866 xcb_out.size = size; 3867 xcb_out.type = type; 3868 3869 xcb_parts[2].iov_base = (char *) &xcb_out; 3870 xcb_parts[2].iov_len = sizeof(xcb_out); 3871 xcb_parts[3].iov_base = 0; 3872 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3873 3874 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3875 return xcb_ret; 3876 } 3877 3878 xcb_void_cookie_t 3879 xcb_glx_feedback_buffer (xcb_connection_t *c, 3880 xcb_glx_context_tag_t context_tag, 3881 int32_t size, 3882 int32_t type) 3883 { 3884 static const xcb_protocol_request_t xcb_req = { 3885 .count = 2, 3886 .ext = &xcb_glx_id, 3887 .opcode = XCB_GLX_FEEDBACK_BUFFER, 3888 .isvoid = 1 3889 }; 3890 3891 struct iovec xcb_parts[4]; 3892 xcb_void_cookie_t xcb_ret; 3893 xcb_glx_feedback_buffer_request_t xcb_out; 3894 3895 xcb_out.context_tag = context_tag; 3896 xcb_out.size = size; 3897 xcb_out.type = type; 3898 3899 xcb_parts[2].iov_base = (char *) &xcb_out; 3900 xcb_parts[2].iov_len = sizeof(xcb_out); 3901 xcb_parts[3].iov_base = 0; 3902 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3903 3904 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3905 return xcb_ret; 3906 } 3907 3908 xcb_void_cookie_t 3909 xcb_glx_select_buffer_checked (xcb_connection_t *c, 3910 xcb_glx_context_tag_t context_tag, 3911 int32_t size) 3912 { 3913 static const xcb_protocol_request_t xcb_req = { 3914 .count = 2, 3915 .ext = &xcb_glx_id, 3916 .opcode = XCB_GLX_SELECT_BUFFER, 3917 .isvoid = 1 3918 }; 3919 3920 struct iovec xcb_parts[4]; 3921 xcb_void_cookie_t xcb_ret; 3922 xcb_glx_select_buffer_request_t xcb_out; 3923 3924 xcb_out.context_tag = context_tag; 3925 xcb_out.size = size; 3926 3927 xcb_parts[2].iov_base = (char *) &xcb_out; 3928 xcb_parts[2].iov_len = sizeof(xcb_out); 3929 xcb_parts[3].iov_base = 0; 3930 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3931 3932 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3933 return xcb_ret; 3934 } 3935 3936 xcb_void_cookie_t 3937 xcb_glx_select_buffer (xcb_connection_t *c, 3938 xcb_glx_context_tag_t context_tag, 3939 int32_t size) 3940 { 3941 static const xcb_protocol_request_t xcb_req = { 3942 .count = 2, 3943 .ext = &xcb_glx_id, 3944 .opcode = XCB_GLX_SELECT_BUFFER, 3945 .isvoid = 1 3946 }; 3947 3948 struct iovec xcb_parts[4]; 3949 xcb_void_cookie_t xcb_ret; 3950 xcb_glx_select_buffer_request_t xcb_out; 3951 3952 xcb_out.context_tag = context_tag; 3953 xcb_out.size = size; 3954 3955 xcb_parts[2].iov_base = (char *) &xcb_out; 3956 xcb_parts[2].iov_len = sizeof(xcb_out); 3957 xcb_parts[3].iov_base = 0; 3958 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3959 3960 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3961 return xcb_ret; 3962 } 3963 3964 int 3965 xcb_glx_render_mode_sizeof (const void *_buffer) 3966 { 3967 char *xcb_tmp = (char *)_buffer; 3968 const xcb_glx_render_mode_reply_t *_aux = (xcb_glx_render_mode_reply_t *)_buffer; 3969 unsigned int xcb_buffer_len = 0; 3970 unsigned int xcb_block_len = 0; 3971 unsigned int xcb_pad = 0; 3972 unsigned int xcb_align_to = 0; 3973 3974 3975 xcb_block_len += sizeof(xcb_glx_render_mode_reply_t); 3976 xcb_tmp += xcb_block_len; 3977 xcb_buffer_len += xcb_block_len; 3978 xcb_block_len = 0; 3979 /* data */ 3980 xcb_block_len += _aux->n * sizeof(uint32_t); 3981 xcb_tmp += xcb_block_len; 3982 xcb_align_to = ALIGNOF(uint32_t); 3983 /* insert padding */ 3984 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 3985 xcb_buffer_len += xcb_block_len + xcb_pad; 3986 if (0 != xcb_pad) { 3987 xcb_tmp += xcb_pad; 3988 xcb_pad = 0; 3989 } 3990 xcb_block_len = 0; 3991 3992 return xcb_buffer_len; 3993 } 3994 3995 xcb_glx_render_mode_cookie_t 3996 xcb_glx_render_mode (xcb_connection_t *c, 3997 xcb_glx_context_tag_t context_tag, 3998 uint32_t mode) 3999 { 4000 static const xcb_protocol_request_t xcb_req = { 4001 .count = 2, 4002 .ext = &xcb_glx_id, 4003 .opcode = XCB_GLX_RENDER_MODE, 4004 .isvoid = 0 4005 }; 4006 4007 struct iovec xcb_parts[4]; 4008 xcb_glx_render_mode_cookie_t xcb_ret; 4009 xcb_glx_render_mode_request_t xcb_out; 4010 4011 xcb_out.context_tag = context_tag; 4012 xcb_out.mode = mode; 4013 4014 xcb_parts[2].iov_base = (char *) &xcb_out; 4015 xcb_parts[2].iov_len = sizeof(xcb_out); 4016 xcb_parts[3].iov_base = 0; 4017 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4018 4019 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4020 return xcb_ret; 4021 } 4022 4023 xcb_glx_render_mode_cookie_t 4024 xcb_glx_render_mode_unchecked (xcb_connection_t *c, 4025 xcb_glx_context_tag_t context_tag, 4026 uint32_t mode) 4027 { 4028 static const xcb_protocol_request_t xcb_req = { 4029 .count = 2, 4030 .ext = &xcb_glx_id, 4031 .opcode = XCB_GLX_RENDER_MODE, 4032 .isvoid = 0 4033 }; 4034 4035 struct iovec xcb_parts[4]; 4036 xcb_glx_render_mode_cookie_t xcb_ret; 4037 xcb_glx_render_mode_request_t xcb_out; 4038 4039 xcb_out.context_tag = context_tag; 4040 xcb_out.mode = mode; 4041 4042 xcb_parts[2].iov_base = (char *) &xcb_out; 4043 xcb_parts[2].iov_len = sizeof(xcb_out); 4044 xcb_parts[3].iov_base = 0; 4045 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4046 4047 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4048 return xcb_ret; 4049 } 4050 4051 uint32_t * 4052 xcb_glx_render_mode_data (const xcb_glx_render_mode_reply_t *R) 4053 { 4054 return (uint32_t *) (R + 1); 4055 } 4056 4057 int 4058 xcb_glx_render_mode_data_length (const xcb_glx_render_mode_reply_t *R) 4059 { 4060 return R->n; 4061 } 4062 4063 xcb_generic_iterator_t 4064 xcb_glx_render_mode_data_end (const xcb_glx_render_mode_reply_t *R) 4065 { 4066 xcb_generic_iterator_t i; 4067 i.data = ((uint32_t *) (R + 1)) + (R->n); 4068 i.rem = 0; 4069 i.index = (char *) i.data - (char *) R; 4070 return i; 4071 } 4072 4073 xcb_glx_render_mode_reply_t * 4074 xcb_glx_render_mode_reply (xcb_connection_t *c, 4075 xcb_glx_render_mode_cookie_t cookie /**< */, 4076 xcb_generic_error_t **e) 4077 { 4078 return (xcb_glx_render_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4079 } 4080 4081 xcb_glx_finish_cookie_t 4082 xcb_glx_finish (xcb_connection_t *c, 4083 xcb_glx_context_tag_t context_tag) 4084 { 4085 static const xcb_protocol_request_t xcb_req = { 4086 .count = 2, 4087 .ext = &xcb_glx_id, 4088 .opcode = XCB_GLX_FINISH, 4089 .isvoid = 0 4090 }; 4091 4092 struct iovec xcb_parts[4]; 4093 xcb_glx_finish_cookie_t xcb_ret; 4094 xcb_glx_finish_request_t xcb_out; 4095 4096 xcb_out.context_tag = context_tag; 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 4103 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4104 return xcb_ret; 4105 } 4106 4107 xcb_glx_finish_cookie_t 4108 xcb_glx_finish_unchecked (xcb_connection_t *c, 4109 xcb_glx_context_tag_t context_tag) 4110 { 4111 static const xcb_protocol_request_t xcb_req = { 4112 .count = 2, 4113 .ext = &xcb_glx_id, 4114 .opcode = XCB_GLX_FINISH, 4115 .isvoid = 0 4116 }; 4117 4118 struct iovec xcb_parts[4]; 4119 xcb_glx_finish_cookie_t xcb_ret; 4120 xcb_glx_finish_request_t xcb_out; 4121 4122 xcb_out.context_tag = context_tag; 4123 4124 xcb_parts[2].iov_base = (char *) &xcb_out; 4125 xcb_parts[2].iov_len = sizeof(xcb_out); 4126 xcb_parts[3].iov_base = 0; 4127 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4128 4129 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4130 return xcb_ret; 4131 } 4132 4133 xcb_glx_finish_reply_t * 4134 xcb_glx_finish_reply (xcb_connection_t *c, 4135 xcb_glx_finish_cookie_t cookie /**< */, 4136 xcb_generic_error_t **e) 4137 { 4138 return (xcb_glx_finish_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4139 } 4140 4141 xcb_void_cookie_t 4142 xcb_glx_pixel_storef_checked (xcb_connection_t *c, 4143 xcb_glx_context_tag_t context_tag, 4144 uint32_t pname, 4145 xcb_glx_float32_t datum) 4146 { 4147 static const xcb_protocol_request_t xcb_req = { 4148 .count = 2, 4149 .ext = &xcb_glx_id, 4150 .opcode = XCB_GLX_PIXEL_STOREF, 4151 .isvoid = 1 4152 }; 4153 4154 struct iovec xcb_parts[4]; 4155 xcb_void_cookie_t xcb_ret; 4156 xcb_glx_pixel_storef_request_t xcb_out; 4157 4158 xcb_out.context_tag = context_tag; 4159 xcb_out.pname = pname; 4160 xcb_out.datum = datum; 4161 4162 xcb_parts[2].iov_base = (char *) &xcb_out; 4163 xcb_parts[2].iov_len = sizeof(xcb_out); 4164 xcb_parts[3].iov_base = 0; 4165 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4166 4167 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4168 return xcb_ret; 4169 } 4170 4171 xcb_void_cookie_t 4172 xcb_glx_pixel_storef (xcb_connection_t *c, 4173 xcb_glx_context_tag_t context_tag, 4174 uint32_t pname, 4175 xcb_glx_float32_t datum) 4176 { 4177 static const xcb_protocol_request_t xcb_req = { 4178 .count = 2, 4179 .ext = &xcb_glx_id, 4180 .opcode = XCB_GLX_PIXEL_STOREF, 4181 .isvoid = 1 4182 }; 4183 4184 struct iovec xcb_parts[4]; 4185 xcb_void_cookie_t xcb_ret; 4186 xcb_glx_pixel_storef_request_t xcb_out; 4187 4188 xcb_out.context_tag = context_tag; 4189 xcb_out.pname = pname; 4190 xcb_out.datum = datum; 4191 4192 xcb_parts[2].iov_base = (char *) &xcb_out; 4193 xcb_parts[2].iov_len = sizeof(xcb_out); 4194 xcb_parts[3].iov_base = 0; 4195 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4196 4197 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4198 return xcb_ret; 4199 } 4200 4201 xcb_void_cookie_t 4202 xcb_glx_pixel_storei_checked (xcb_connection_t *c, 4203 xcb_glx_context_tag_t context_tag, 4204 uint32_t pname, 4205 int32_t datum) 4206 { 4207 static const xcb_protocol_request_t xcb_req = { 4208 .count = 2, 4209 .ext = &xcb_glx_id, 4210 .opcode = XCB_GLX_PIXEL_STOREI, 4211 .isvoid = 1 4212 }; 4213 4214 struct iovec xcb_parts[4]; 4215 xcb_void_cookie_t xcb_ret; 4216 xcb_glx_pixel_storei_request_t xcb_out; 4217 4218 xcb_out.context_tag = context_tag; 4219 xcb_out.pname = pname; 4220 xcb_out.datum = datum; 4221 4222 xcb_parts[2].iov_base = (char *) &xcb_out; 4223 xcb_parts[2].iov_len = sizeof(xcb_out); 4224 xcb_parts[3].iov_base = 0; 4225 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4226 4227 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4228 return xcb_ret; 4229 } 4230 4231 xcb_void_cookie_t 4232 xcb_glx_pixel_storei (xcb_connection_t *c, 4233 xcb_glx_context_tag_t context_tag, 4234 uint32_t pname, 4235 int32_t datum) 4236 { 4237 static const xcb_protocol_request_t xcb_req = { 4238 .count = 2, 4239 .ext = &xcb_glx_id, 4240 .opcode = XCB_GLX_PIXEL_STOREI, 4241 .isvoid = 1 4242 }; 4243 4244 struct iovec xcb_parts[4]; 4245 xcb_void_cookie_t xcb_ret; 4246 xcb_glx_pixel_storei_request_t xcb_out; 4247 4248 xcb_out.context_tag = context_tag; 4249 xcb_out.pname = pname; 4250 xcb_out.datum = datum; 4251 4252 xcb_parts[2].iov_base = (char *) &xcb_out; 4253 xcb_parts[2].iov_len = sizeof(xcb_out); 4254 xcb_parts[3].iov_base = 0; 4255 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4256 4257 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4258 return xcb_ret; 4259 } 4260 4261 int 4262 xcb_glx_read_pixels_sizeof (const void *_buffer) 4263 { 4264 char *xcb_tmp = (char *)_buffer; 4265 const xcb_glx_read_pixels_reply_t *_aux = (xcb_glx_read_pixels_reply_t *)_buffer; 4266 unsigned int xcb_buffer_len = 0; 4267 unsigned int xcb_block_len = 0; 4268 unsigned int xcb_pad = 0; 4269 unsigned int xcb_align_to = 0; 4270 4271 4272 xcb_block_len += sizeof(xcb_glx_read_pixels_reply_t); 4273 xcb_tmp += xcb_block_len; 4274 xcb_buffer_len += xcb_block_len; 4275 xcb_block_len = 0; 4276 /* data */ 4277 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 4278 xcb_tmp += xcb_block_len; 4279 xcb_align_to = ALIGNOF(uint8_t); 4280 /* insert padding */ 4281 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4282 xcb_buffer_len += xcb_block_len + xcb_pad; 4283 if (0 != xcb_pad) { 4284 xcb_tmp += xcb_pad; 4285 xcb_pad = 0; 4286 } 4287 xcb_block_len = 0; 4288 4289 return xcb_buffer_len; 4290 } 4291 4292 xcb_glx_read_pixels_cookie_t 4293 xcb_glx_read_pixels (xcb_connection_t *c, 4294 xcb_glx_context_tag_t context_tag, 4295 int32_t x, 4296 int32_t y, 4297 int32_t width, 4298 int32_t height, 4299 uint32_t format, 4300 uint32_t type, 4301 uint8_t swap_bytes, 4302 uint8_t lsb_first) 4303 { 4304 static const xcb_protocol_request_t xcb_req = { 4305 .count = 2, 4306 .ext = &xcb_glx_id, 4307 .opcode = XCB_GLX_READ_PIXELS, 4308 .isvoid = 0 4309 }; 4310 4311 struct iovec xcb_parts[4]; 4312 xcb_glx_read_pixels_cookie_t xcb_ret; 4313 xcb_glx_read_pixels_request_t xcb_out; 4314 4315 xcb_out.context_tag = context_tag; 4316 xcb_out.x = x; 4317 xcb_out.y = y; 4318 xcb_out.width = width; 4319 xcb_out.height = height; 4320 xcb_out.format = format; 4321 xcb_out.type = type; 4322 xcb_out.swap_bytes = swap_bytes; 4323 xcb_out.lsb_first = lsb_first; 4324 4325 xcb_parts[2].iov_base = (char *) &xcb_out; 4326 xcb_parts[2].iov_len = sizeof(xcb_out); 4327 xcb_parts[3].iov_base = 0; 4328 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4329 4330 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4331 return xcb_ret; 4332 } 4333 4334 xcb_glx_read_pixels_cookie_t 4335 xcb_glx_read_pixels_unchecked (xcb_connection_t *c, 4336 xcb_glx_context_tag_t context_tag, 4337 int32_t x, 4338 int32_t y, 4339 int32_t width, 4340 int32_t height, 4341 uint32_t format, 4342 uint32_t type, 4343 uint8_t swap_bytes, 4344 uint8_t lsb_first) 4345 { 4346 static const xcb_protocol_request_t xcb_req = { 4347 .count = 2, 4348 .ext = &xcb_glx_id, 4349 .opcode = XCB_GLX_READ_PIXELS, 4350 .isvoid = 0 4351 }; 4352 4353 struct iovec xcb_parts[4]; 4354 xcb_glx_read_pixels_cookie_t xcb_ret; 4355 xcb_glx_read_pixels_request_t xcb_out; 4356 4357 xcb_out.context_tag = context_tag; 4358 xcb_out.x = x; 4359 xcb_out.y = y; 4360 xcb_out.width = width; 4361 xcb_out.height = height; 4362 xcb_out.format = format; 4363 xcb_out.type = type; 4364 xcb_out.swap_bytes = swap_bytes; 4365 xcb_out.lsb_first = lsb_first; 4366 4367 xcb_parts[2].iov_base = (char *) &xcb_out; 4368 xcb_parts[2].iov_len = sizeof(xcb_out); 4369 xcb_parts[3].iov_base = 0; 4370 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4371 4372 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4373 return xcb_ret; 4374 } 4375 4376 uint8_t * 4377 xcb_glx_read_pixels_data (const xcb_glx_read_pixels_reply_t *R) 4378 { 4379 return (uint8_t *) (R + 1); 4380 } 4381 4382 int 4383 xcb_glx_read_pixels_data_length (const xcb_glx_read_pixels_reply_t *R) 4384 { 4385 return (R->length * 4); 4386 } 4387 4388 xcb_generic_iterator_t 4389 xcb_glx_read_pixels_data_end (const xcb_glx_read_pixels_reply_t *R) 4390 { 4391 xcb_generic_iterator_t i; 4392 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 4393 i.rem = 0; 4394 i.index = (char *) i.data - (char *) R; 4395 return i; 4396 } 4397 4398 xcb_glx_read_pixels_reply_t * 4399 xcb_glx_read_pixels_reply (xcb_connection_t *c, 4400 xcb_glx_read_pixels_cookie_t cookie /**< */, 4401 xcb_generic_error_t **e) 4402 { 4403 return (xcb_glx_read_pixels_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4404 } 4405 4406 int 4407 xcb_glx_get_booleanv_sizeof (const void *_buffer) 4408 { 4409 char *xcb_tmp = (char *)_buffer; 4410 const xcb_glx_get_booleanv_reply_t *_aux = (xcb_glx_get_booleanv_reply_t *)_buffer; 4411 unsigned int xcb_buffer_len = 0; 4412 unsigned int xcb_block_len = 0; 4413 unsigned int xcb_pad = 0; 4414 unsigned int xcb_align_to = 0; 4415 4416 4417 xcb_block_len += sizeof(xcb_glx_get_booleanv_reply_t); 4418 xcb_tmp += xcb_block_len; 4419 xcb_buffer_len += xcb_block_len; 4420 xcb_block_len = 0; 4421 /* data */ 4422 xcb_block_len += _aux->n * sizeof(uint8_t); 4423 xcb_tmp += xcb_block_len; 4424 xcb_align_to = ALIGNOF(uint8_t); 4425 /* insert padding */ 4426 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4427 xcb_buffer_len += xcb_block_len + xcb_pad; 4428 if (0 != xcb_pad) { 4429 xcb_tmp += xcb_pad; 4430 xcb_pad = 0; 4431 } 4432 xcb_block_len = 0; 4433 4434 return xcb_buffer_len; 4435 } 4436 4437 xcb_glx_get_booleanv_cookie_t 4438 xcb_glx_get_booleanv (xcb_connection_t *c, 4439 xcb_glx_context_tag_t context_tag, 4440 int32_t pname) 4441 { 4442 static const xcb_protocol_request_t xcb_req = { 4443 .count = 2, 4444 .ext = &xcb_glx_id, 4445 .opcode = XCB_GLX_GET_BOOLEANV, 4446 .isvoid = 0 4447 }; 4448 4449 struct iovec xcb_parts[4]; 4450 xcb_glx_get_booleanv_cookie_t xcb_ret; 4451 xcb_glx_get_booleanv_request_t xcb_out; 4452 4453 xcb_out.context_tag = context_tag; 4454 xcb_out.pname = pname; 4455 4456 xcb_parts[2].iov_base = (char *) &xcb_out; 4457 xcb_parts[2].iov_len = sizeof(xcb_out); 4458 xcb_parts[3].iov_base = 0; 4459 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4460 4461 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4462 return xcb_ret; 4463 } 4464 4465 xcb_glx_get_booleanv_cookie_t 4466 xcb_glx_get_booleanv_unchecked (xcb_connection_t *c, 4467 xcb_glx_context_tag_t context_tag, 4468 int32_t pname) 4469 { 4470 static const xcb_protocol_request_t xcb_req = { 4471 .count = 2, 4472 .ext = &xcb_glx_id, 4473 .opcode = XCB_GLX_GET_BOOLEANV, 4474 .isvoid = 0 4475 }; 4476 4477 struct iovec xcb_parts[4]; 4478 xcb_glx_get_booleanv_cookie_t xcb_ret; 4479 xcb_glx_get_booleanv_request_t xcb_out; 4480 4481 xcb_out.context_tag = context_tag; 4482 xcb_out.pname = pname; 4483 4484 xcb_parts[2].iov_base = (char *) &xcb_out; 4485 xcb_parts[2].iov_len = sizeof(xcb_out); 4486 xcb_parts[3].iov_base = 0; 4487 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4488 4489 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4490 return xcb_ret; 4491 } 4492 4493 uint8_t * 4494 xcb_glx_get_booleanv_data (const xcb_glx_get_booleanv_reply_t *R) 4495 { 4496 return (uint8_t *) (R + 1); 4497 } 4498 4499 int 4500 xcb_glx_get_booleanv_data_length (const xcb_glx_get_booleanv_reply_t *R) 4501 { 4502 return R->n; 4503 } 4504 4505 xcb_generic_iterator_t 4506 xcb_glx_get_booleanv_data_end (const xcb_glx_get_booleanv_reply_t *R) 4507 { 4508 xcb_generic_iterator_t i; 4509 i.data = ((uint8_t *) (R + 1)) + (R->n); 4510 i.rem = 0; 4511 i.index = (char *) i.data - (char *) R; 4512 return i; 4513 } 4514 4515 xcb_glx_get_booleanv_reply_t * 4516 xcb_glx_get_booleanv_reply (xcb_connection_t *c, 4517 xcb_glx_get_booleanv_cookie_t cookie /**< */, 4518 xcb_generic_error_t **e) 4519 { 4520 return (xcb_glx_get_booleanv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4521 } 4522 4523 int 4524 xcb_glx_get_clip_plane_sizeof (const void *_buffer) 4525 { 4526 char *xcb_tmp = (char *)_buffer; 4527 const xcb_glx_get_clip_plane_reply_t *_aux = (xcb_glx_get_clip_plane_reply_t *)_buffer; 4528 unsigned int xcb_buffer_len = 0; 4529 unsigned int xcb_block_len = 0; 4530 unsigned int xcb_pad = 0; 4531 unsigned int xcb_align_to = 0; 4532 4533 4534 xcb_block_len += sizeof(xcb_glx_get_clip_plane_reply_t); 4535 xcb_tmp += xcb_block_len; 4536 xcb_buffer_len += xcb_block_len; 4537 xcb_block_len = 0; 4538 /* data */ 4539 xcb_block_len += (_aux->length / 2) * sizeof(xcb_glx_float64_t); 4540 xcb_tmp += xcb_block_len; 4541 xcb_align_to = ALIGNOF(xcb_glx_float64_t); 4542 /* insert padding */ 4543 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4544 xcb_buffer_len += xcb_block_len + xcb_pad; 4545 if (0 != xcb_pad) { 4546 xcb_tmp += xcb_pad; 4547 xcb_pad = 0; 4548 } 4549 xcb_block_len = 0; 4550 4551 return xcb_buffer_len; 4552 } 4553 4554 xcb_glx_get_clip_plane_cookie_t 4555 xcb_glx_get_clip_plane (xcb_connection_t *c, 4556 xcb_glx_context_tag_t context_tag, 4557 int32_t plane) 4558 { 4559 static const xcb_protocol_request_t xcb_req = { 4560 .count = 2, 4561 .ext = &xcb_glx_id, 4562 .opcode = XCB_GLX_GET_CLIP_PLANE, 4563 .isvoid = 0 4564 }; 4565 4566 struct iovec xcb_parts[4]; 4567 xcb_glx_get_clip_plane_cookie_t xcb_ret; 4568 xcb_glx_get_clip_plane_request_t xcb_out; 4569 4570 xcb_out.context_tag = context_tag; 4571 xcb_out.plane = plane; 4572 4573 xcb_parts[2].iov_base = (char *) &xcb_out; 4574 xcb_parts[2].iov_len = sizeof(xcb_out); 4575 xcb_parts[3].iov_base = 0; 4576 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4577 4578 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4579 return xcb_ret; 4580 } 4581 4582 xcb_glx_get_clip_plane_cookie_t 4583 xcb_glx_get_clip_plane_unchecked (xcb_connection_t *c, 4584 xcb_glx_context_tag_t context_tag, 4585 int32_t plane) 4586 { 4587 static const xcb_protocol_request_t xcb_req = { 4588 .count = 2, 4589 .ext = &xcb_glx_id, 4590 .opcode = XCB_GLX_GET_CLIP_PLANE, 4591 .isvoid = 0 4592 }; 4593 4594 struct iovec xcb_parts[4]; 4595 xcb_glx_get_clip_plane_cookie_t xcb_ret; 4596 xcb_glx_get_clip_plane_request_t xcb_out; 4597 4598 xcb_out.context_tag = context_tag; 4599 xcb_out.plane = plane; 4600 4601 xcb_parts[2].iov_base = (char *) &xcb_out; 4602 xcb_parts[2].iov_len = sizeof(xcb_out); 4603 xcb_parts[3].iov_base = 0; 4604 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4605 4606 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4607 return xcb_ret; 4608 } 4609 4610 xcb_glx_float64_t * 4611 xcb_glx_get_clip_plane_data (const xcb_glx_get_clip_plane_reply_t *R) 4612 { 4613 return (xcb_glx_float64_t *) (R + 1); 4614 } 4615 4616 int 4617 xcb_glx_get_clip_plane_data_length (const xcb_glx_get_clip_plane_reply_t *R) 4618 { 4619 return (R->length / 2); 4620 } 4621 4622 xcb_generic_iterator_t 4623 xcb_glx_get_clip_plane_data_end (const xcb_glx_get_clip_plane_reply_t *R) 4624 { 4625 xcb_generic_iterator_t i; 4626 i.data = ((xcb_glx_float64_t *) (R + 1)) + ((R->length / 2)); 4627 i.rem = 0; 4628 i.index = (char *) i.data - (char *) R; 4629 return i; 4630 } 4631 4632 xcb_glx_get_clip_plane_reply_t * 4633 xcb_glx_get_clip_plane_reply (xcb_connection_t *c, 4634 xcb_glx_get_clip_plane_cookie_t cookie /**< */, 4635 xcb_generic_error_t **e) 4636 { 4637 return (xcb_glx_get_clip_plane_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4638 } 4639 4640 int 4641 xcb_glx_get_doublev_sizeof (const void *_buffer) 4642 { 4643 char *xcb_tmp = (char *)_buffer; 4644 const xcb_glx_get_doublev_reply_t *_aux = (xcb_glx_get_doublev_reply_t *)_buffer; 4645 unsigned int xcb_buffer_len = 0; 4646 unsigned int xcb_block_len = 0; 4647 unsigned int xcb_pad = 0; 4648 unsigned int xcb_align_to = 0; 4649 4650 4651 xcb_block_len += sizeof(xcb_glx_get_doublev_reply_t); 4652 xcb_tmp += xcb_block_len; 4653 xcb_buffer_len += xcb_block_len; 4654 xcb_block_len = 0; 4655 /* data */ 4656 xcb_block_len += _aux->n * sizeof(xcb_glx_float64_t); 4657 xcb_tmp += xcb_block_len; 4658 xcb_align_to = ALIGNOF(xcb_glx_float64_t); 4659 /* insert padding */ 4660 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4661 xcb_buffer_len += xcb_block_len + xcb_pad; 4662 if (0 != xcb_pad) { 4663 xcb_tmp += xcb_pad; 4664 xcb_pad = 0; 4665 } 4666 xcb_block_len = 0; 4667 4668 return xcb_buffer_len; 4669 } 4670 4671 xcb_glx_get_doublev_cookie_t 4672 xcb_glx_get_doublev (xcb_connection_t *c, 4673 xcb_glx_context_tag_t context_tag, 4674 uint32_t pname) 4675 { 4676 static const xcb_protocol_request_t xcb_req = { 4677 .count = 2, 4678 .ext = &xcb_glx_id, 4679 .opcode = XCB_GLX_GET_DOUBLEV, 4680 .isvoid = 0 4681 }; 4682 4683 struct iovec xcb_parts[4]; 4684 xcb_glx_get_doublev_cookie_t xcb_ret; 4685 xcb_glx_get_doublev_request_t xcb_out; 4686 4687 xcb_out.context_tag = context_tag; 4688 xcb_out.pname = pname; 4689 4690 xcb_parts[2].iov_base = (char *) &xcb_out; 4691 xcb_parts[2].iov_len = sizeof(xcb_out); 4692 xcb_parts[3].iov_base = 0; 4693 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4694 4695 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4696 return xcb_ret; 4697 } 4698 4699 xcb_glx_get_doublev_cookie_t 4700 xcb_glx_get_doublev_unchecked (xcb_connection_t *c, 4701 xcb_glx_context_tag_t context_tag, 4702 uint32_t pname) 4703 { 4704 static const xcb_protocol_request_t xcb_req = { 4705 .count = 2, 4706 .ext = &xcb_glx_id, 4707 .opcode = XCB_GLX_GET_DOUBLEV, 4708 .isvoid = 0 4709 }; 4710 4711 struct iovec xcb_parts[4]; 4712 xcb_glx_get_doublev_cookie_t xcb_ret; 4713 xcb_glx_get_doublev_request_t xcb_out; 4714 4715 xcb_out.context_tag = context_tag; 4716 xcb_out.pname = pname; 4717 4718 xcb_parts[2].iov_base = (char *) &xcb_out; 4719 xcb_parts[2].iov_len = sizeof(xcb_out); 4720 xcb_parts[3].iov_base = 0; 4721 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4722 4723 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4724 return xcb_ret; 4725 } 4726 4727 xcb_glx_float64_t * 4728 xcb_glx_get_doublev_data (const xcb_glx_get_doublev_reply_t *R) 4729 { 4730 return (xcb_glx_float64_t *) (R + 1); 4731 } 4732 4733 int 4734 xcb_glx_get_doublev_data_length (const xcb_glx_get_doublev_reply_t *R) 4735 { 4736 return R->n; 4737 } 4738 4739 xcb_generic_iterator_t 4740 xcb_glx_get_doublev_data_end (const xcb_glx_get_doublev_reply_t *R) 4741 { 4742 xcb_generic_iterator_t i; 4743 i.data = ((xcb_glx_float64_t *) (R + 1)) + (R->n); 4744 i.rem = 0; 4745 i.index = (char *) i.data - (char *) R; 4746 return i; 4747 } 4748 4749 xcb_glx_get_doublev_reply_t * 4750 xcb_glx_get_doublev_reply (xcb_connection_t *c, 4751 xcb_glx_get_doublev_cookie_t cookie /**< */, 4752 xcb_generic_error_t **e) 4753 { 4754 return (xcb_glx_get_doublev_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4755 } 4756 4757 xcb_glx_get_error_cookie_t 4758 xcb_glx_get_error (xcb_connection_t *c, 4759 xcb_glx_context_tag_t context_tag) 4760 { 4761 static const xcb_protocol_request_t xcb_req = { 4762 .count = 2, 4763 .ext = &xcb_glx_id, 4764 .opcode = XCB_GLX_GET_ERROR, 4765 .isvoid = 0 4766 }; 4767 4768 struct iovec xcb_parts[4]; 4769 xcb_glx_get_error_cookie_t xcb_ret; 4770 xcb_glx_get_error_request_t xcb_out; 4771 4772 xcb_out.context_tag = context_tag; 4773 4774 xcb_parts[2].iov_base = (char *) &xcb_out; 4775 xcb_parts[2].iov_len = sizeof(xcb_out); 4776 xcb_parts[3].iov_base = 0; 4777 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4778 4779 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4780 return xcb_ret; 4781 } 4782 4783 xcb_glx_get_error_cookie_t 4784 xcb_glx_get_error_unchecked (xcb_connection_t *c, 4785 xcb_glx_context_tag_t context_tag) 4786 { 4787 static const xcb_protocol_request_t xcb_req = { 4788 .count = 2, 4789 .ext = &xcb_glx_id, 4790 .opcode = XCB_GLX_GET_ERROR, 4791 .isvoid = 0 4792 }; 4793 4794 struct iovec xcb_parts[4]; 4795 xcb_glx_get_error_cookie_t xcb_ret; 4796 xcb_glx_get_error_request_t xcb_out; 4797 4798 xcb_out.context_tag = context_tag; 4799 4800 xcb_parts[2].iov_base = (char *) &xcb_out; 4801 xcb_parts[2].iov_len = sizeof(xcb_out); 4802 xcb_parts[3].iov_base = 0; 4803 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4804 4805 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4806 return xcb_ret; 4807 } 4808 4809 xcb_glx_get_error_reply_t * 4810 xcb_glx_get_error_reply (xcb_connection_t *c, 4811 xcb_glx_get_error_cookie_t cookie /**< */, 4812 xcb_generic_error_t **e) 4813 { 4814 return (xcb_glx_get_error_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4815 } 4816 4817 int 4818 xcb_glx_get_floatv_sizeof (const void *_buffer) 4819 { 4820 char *xcb_tmp = (char *)_buffer; 4821 const xcb_glx_get_floatv_reply_t *_aux = (xcb_glx_get_floatv_reply_t *)_buffer; 4822 unsigned int xcb_buffer_len = 0; 4823 unsigned int xcb_block_len = 0; 4824 unsigned int xcb_pad = 0; 4825 unsigned int xcb_align_to = 0; 4826 4827 4828 xcb_block_len += sizeof(xcb_glx_get_floatv_reply_t); 4829 xcb_tmp += xcb_block_len; 4830 xcb_buffer_len += xcb_block_len; 4831 xcb_block_len = 0; 4832 /* data */ 4833 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 4834 xcb_tmp += xcb_block_len; 4835 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 4836 /* insert padding */ 4837 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4838 xcb_buffer_len += xcb_block_len + xcb_pad; 4839 if (0 != xcb_pad) { 4840 xcb_tmp += xcb_pad; 4841 xcb_pad = 0; 4842 } 4843 xcb_block_len = 0; 4844 4845 return xcb_buffer_len; 4846 } 4847 4848 xcb_glx_get_floatv_cookie_t 4849 xcb_glx_get_floatv (xcb_connection_t *c, 4850 xcb_glx_context_tag_t context_tag, 4851 uint32_t pname) 4852 { 4853 static const xcb_protocol_request_t xcb_req = { 4854 .count = 2, 4855 .ext = &xcb_glx_id, 4856 .opcode = XCB_GLX_GET_FLOATV, 4857 .isvoid = 0 4858 }; 4859 4860 struct iovec xcb_parts[4]; 4861 xcb_glx_get_floatv_cookie_t xcb_ret; 4862 xcb_glx_get_floatv_request_t xcb_out; 4863 4864 xcb_out.context_tag = context_tag; 4865 xcb_out.pname = pname; 4866 4867 xcb_parts[2].iov_base = (char *) &xcb_out; 4868 xcb_parts[2].iov_len = sizeof(xcb_out); 4869 xcb_parts[3].iov_base = 0; 4870 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4871 4872 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4873 return xcb_ret; 4874 } 4875 4876 xcb_glx_get_floatv_cookie_t 4877 xcb_glx_get_floatv_unchecked (xcb_connection_t *c, 4878 xcb_glx_context_tag_t context_tag, 4879 uint32_t pname) 4880 { 4881 static const xcb_protocol_request_t xcb_req = { 4882 .count = 2, 4883 .ext = &xcb_glx_id, 4884 .opcode = XCB_GLX_GET_FLOATV, 4885 .isvoid = 0 4886 }; 4887 4888 struct iovec xcb_parts[4]; 4889 xcb_glx_get_floatv_cookie_t xcb_ret; 4890 xcb_glx_get_floatv_request_t xcb_out; 4891 4892 xcb_out.context_tag = context_tag; 4893 xcb_out.pname = pname; 4894 4895 xcb_parts[2].iov_base = (char *) &xcb_out; 4896 xcb_parts[2].iov_len = sizeof(xcb_out); 4897 xcb_parts[3].iov_base = 0; 4898 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4899 4900 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4901 return xcb_ret; 4902 } 4903 4904 xcb_glx_float32_t * 4905 xcb_glx_get_floatv_data (const xcb_glx_get_floatv_reply_t *R) 4906 { 4907 return (xcb_glx_float32_t *) (R + 1); 4908 } 4909 4910 int 4911 xcb_glx_get_floatv_data_length (const xcb_glx_get_floatv_reply_t *R) 4912 { 4913 return R->n; 4914 } 4915 4916 xcb_generic_iterator_t 4917 xcb_glx_get_floatv_data_end (const xcb_glx_get_floatv_reply_t *R) 4918 { 4919 xcb_generic_iterator_t i; 4920 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 4921 i.rem = 0; 4922 i.index = (char *) i.data - (char *) R; 4923 return i; 4924 } 4925 4926 xcb_glx_get_floatv_reply_t * 4927 xcb_glx_get_floatv_reply (xcb_connection_t *c, 4928 xcb_glx_get_floatv_cookie_t cookie /**< */, 4929 xcb_generic_error_t **e) 4930 { 4931 return (xcb_glx_get_floatv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4932 } 4933 4934 int 4935 xcb_glx_get_integerv_sizeof (const void *_buffer) 4936 { 4937 char *xcb_tmp = (char *)_buffer; 4938 const xcb_glx_get_integerv_reply_t *_aux = (xcb_glx_get_integerv_reply_t *)_buffer; 4939 unsigned int xcb_buffer_len = 0; 4940 unsigned int xcb_block_len = 0; 4941 unsigned int xcb_pad = 0; 4942 unsigned int xcb_align_to = 0; 4943 4944 4945 xcb_block_len += sizeof(xcb_glx_get_integerv_reply_t); 4946 xcb_tmp += xcb_block_len; 4947 xcb_buffer_len += xcb_block_len; 4948 xcb_block_len = 0; 4949 /* data */ 4950 xcb_block_len += _aux->n * sizeof(int32_t); 4951 xcb_tmp += xcb_block_len; 4952 xcb_align_to = ALIGNOF(int32_t); 4953 /* insert padding */ 4954 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 4955 xcb_buffer_len += xcb_block_len + xcb_pad; 4956 if (0 != xcb_pad) { 4957 xcb_tmp += xcb_pad; 4958 xcb_pad = 0; 4959 } 4960 xcb_block_len = 0; 4961 4962 return xcb_buffer_len; 4963 } 4964 4965 xcb_glx_get_integerv_cookie_t 4966 xcb_glx_get_integerv (xcb_connection_t *c, 4967 xcb_glx_context_tag_t context_tag, 4968 uint32_t pname) 4969 { 4970 static const xcb_protocol_request_t xcb_req = { 4971 .count = 2, 4972 .ext = &xcb_glx_id, 4973 .opcode = XCB_GLX_GET_INTEGERV, 4974 .isvoid = 0 4975 }; 4976 4977 struct iovec xcb_parts[4]; 4978 xcb_glx_get_integerv_cookie_t xcb_ret; 4979 xcb_glx_get_integerv_request_t xcb_out; 4980 4981 xcb_out.context_tag = context_tag; 4982 xcb_out.pname = pname; 4983 4984 xcb_parts[2].iov_base = (char *) &xcb_out; 4985 xcb_parts[2].iov_len = sizeof(xcb_out); 4986 xcb_parts[3].iov_base = 0; 4987 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 4988 4989 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4990 return xcb_ret; 4991 } 4992 4993 xcb_glx_get_integerv_cookie_t 4994 xcb_glx_get_integerv_unchecked (xcb_connection_t *c, 4995 xcb_glx_context_tag_t context_tag, 4996 uint32_t pname) 4997 { 4998 static const xcb_protocol_request_t xcb_req = { 4999 .count = 2, 5000 .ext = &xcb_glx_id, 5001 .opcode = XCB_GLX_GET_INTEGERV, 5002 .isvoid = 0 5003 }; 5004 5005 struct iovec xcb_parts[4]; 5006 xcb_glx_get_integerv_cookie_t xcb_ret; 5007 xcb_glx_get_integerv_request_t xcb_out; 5008 5009 xcb_out.context_tag = context_tag; 5010 xcb_out.pname = pname; 5011 5012 xcb_parts[2].iov_base = (char *) &xcb_out; 5013 xcb_parts[2].iov_len = sizeof(xcb_out); 5014 xcb_parts[3].iov_base = 0; 5015 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5016 5017 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5018 return xcb_ret; 5019 } 5020 5021 int32_t * 5022 xcb_glx_get_integerv_data (const xcb_glx_get_integerv_reply_t *R) 5023 { 5024 return (int32_t *) (R + 1); 5025 } 5026 5027 int 5028 xcb_glx_get_integerv_data_length (const xcb_glx_get_integerv_reply_t *R) 5029 { 5030 return R->n; 5031 } 5032 5033 xcb_generic_iterator_t 5034 xcb_glx_get_integerv_data_end (const xcb_glx_get_integerv_reply_t *R) 5035 { 5036 xcb_generic_iterator_t i; 5037 i.data = ((int32_t *) (R + 1)) + (R->n); 5038 i.rem = 0; 5039 i.index = (char *) i.data - (char *) R; 5040 return i; 5041 } 5042 5043 xcb_glx_get_integerv_reply_t * 5044 xcb_glx_get_integerv_reply (xcb_connection_t *c, 5045 xcb_glx_get_integerv_cookie_t cookie /**< */, 5046 xcb_generic_error_t **e) 5047 { 5048 return (xcb_glx_get_integerv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5049 } 5050 5051 int 5052 xcb_glx_get_lightfv_sizeof (const void *_buffer) 5053 { 5054 char *xcb_tmp = (char *)_buffer; 5055 const xcb_glx_get_lightfv_reply_t *_aux = (xcb_glx_get_lightfv_reply_t *)_buffer; 5056 unsigned int xcb_buffer_len = 0; 5057 unsigned int xcb_block_len = 0; 5058 unsigned int xcb_pad = 0; 5059 unsigned int xcb_align_to = 0; 5060 5061 5062 xcb_block_len += sizeof(xcb_glx_get_lightfv_reply_t); 5063 xcb_tmp += xcb_block_len; 5064 xcb_buffer_len += xcb_block_len; 5065 xcb_block_len = 0; 5066 /* data */ 5067 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 5068 xcb_tmp += xcb_block_len; 5069 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 5070 /* insert padding */ 5071 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5072 xcb_buffer_len += xcb_block_len + xcb_pad; 5073 if (0 != xcb_pad) { 5074 xcb_tmp += xcb_pad; 5075 xcb_pad = 0; 5076 } 5077 xcb_block_len = 0; 5078 5079 return xcb_buffer_len; 5080 } 5081 5082 xcb_glx_get_lightfv_cookie_t 5083 xcb_glx_get_lightfv (xcb_connection_t *c, 5084 xcb_glx_context_tag_t context_tag, 5085 uint32_t light, 5086 uint32_t pname) 5087 { 5088 static const xcb_protocol_request_t xcb_req = { 5089 .count = 2, 5090 .ext = &xcb_glx_id, 5091 .opcode = XCB_GLX_GET_LIGHTFV, 5092 .isvoid = 0 5093 }; 5094 5095 struct iovec xcb_parts[4]; 5096 xcb_glx_get_lightfv_cookie_t xcb_ret; 5097 xcb_glx_get_lightfv_request_t xcb_out; 5098 5099 xcb_out.context_tag = context_tag; 5100 xcb_out.light = light; 5101 xcb_out.pname = pname; 5102 5103 xcb_parts[2].iov_base = (char *) &xcb_out; 5104 xcb_parts[2].iov_len = sizeof(xcb_out); 5105 xcb_parts[3].iov_base = 0; 5106 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5107 5108 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5109 return xcb_ret; 5110 } 5111 5112 xcb_glx_get_lightfv_cookie_t 5113 xcb_glx_get_lightfv_unchecked (xcb_connection_t *c, 5114 xcb_glx_context_tag_t context_tag, 5115 uint32_t light, 5116 uint32_t pname) 5117 { 5118 static const xcb_protocol_request_t xcb_req = { 5119 .count = 2, 5120 .ext = &xcb_glx_id, 5121 .opcode = XCB_GLX_GET_LIGHTFV, 5122 .isvoid = 0 5123 }; 5124 5125 struct iovec xcb_parts[4]; 5126 xcb_glx_get_lightfv_cookie_t xcb_ret; 5127 xcb_glx_get_lightfv_request_t xcb_out; 5128 5129 xcb_out.context_tag = context_tag; 5130 xcb_out.light = light; 5131 xcb_out.pname = pname; 5132 5133 xcb_parts[2].iov_base = (char *) &xcb_out; 5134 xcb_parts[2].iov_len = sizeof(xcb_out); 5135 xcb_parts[3].iov_base = 0; 5136 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5137 5138 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5139 return xcb_ret; 5140 } 5141 5142 xcb_glx_float32_t * 5143 xcb_glx_get_lightfv_data (const xcb_glx_get_lightfv_reply_t *R) 5144 { 5145 return (xcb_glx_float32_t *) (R + 1); 5146 } 5147 5148 int 5149 xcb_glx_get_lightfv_data_length (const xcb_glx_get_lightfv_reply_t *R) 5150 { 5151 return R->n; 5152 } 5153 5154 xcb_generic_iterator_t 5155 xcb_glx_get_lightfv_data_end (const xcb_glx_get_lightfv_reply_t *R) 5156 { 5157 xcb_generic_iterator_t i; 5158 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 5159 i.rem = 0; 5160 i.index = (char *) i.data - (char *) R; 5161 return i; 5162 } 5163 5164 xcb_glx_get_lightfv_reply_t * 5165 xcb_glx_get_lightfv_reply (xcb_connection_t *c, 5166 xcb_glx_get_lightfv_cookie_t cookie /**< */, 5167 xcb_generic_error_t **e) 5168 { 5169 return (xcb_glx_get_lightfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5170 } 5171 5172 int 5173 xcb_glx_get_lightiv_sizeof (const void *_buffer) 5174 { 5175 char *xcb_tmp = (char *)_buffer; 5176 const xcb_glx_get_lightiv_reply_t *_aux = (xcb_glx_get_lightiv_reply_t *)_buffer; 5177 unsigned int xcb_buffer_len = 0; 5178 unsigned int xcb_block_len = 0; 5179 unsigned int xcb_pad = 0; 5180 unsigned int xcb_align_to = 0; 5181 5182 5183 xcb_block_len += sizeof(xcb_glx_get_lightiv_reply_t); 5184 xcb_tmp += xcb_block_len; 5185 xcb_buffer_len += xcb_block_len; 5186 xcb_block_len = 0; 5187 /* data */ 5188 xcb_block_len += _aux->n * sizeof(int32_t); 5189 xcb_tmp += xcb_block_len; 5190 xcb_align_to = ALIGNOF(int32_t); 5191 /* insert padding */ 5192 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5193 xcb_buffer_len += xcb_block_len + xcb_pad; 5194 if (0 != xcb_pad) { 5195 xcb_tmp += xcb_pad; 5196 xcb_pad = 0; 5197 } 5198 xcb_block_len = 0; 5199 5200 return xcb_buffer_len; 5201 } 5202 5203 xcb_glx_get_lightiv_cookie_t 5204 xcb_glx_get_lightiv (xcb_connection_t *c, 5205 xcb_glx_context_tag_t context_tag, 5206 uint32_t light, 5207 uint32_t pname) 5208 { 5209 static const xcb_protocol_request_t xcb_req = { 5210 .count = 2, 5211 .ext = &xcb_glx_id, 5212 .opcode = XCB_GLX_GET_LIGHTIV, 5213 .isvoid = 0 5214 }; 5215 5216 struct iovec xcb_parts[4]; 5217 xcb_glx_get_lightiv_cookie_t xcb_ret; 5218 xcb_glx_get_lightiv_request_t xcb_out; 5219 5220 xcb_out.context_tag = context_tag; 5221 xcb_out.light = light; 5222 xcb_out.pname = pname; 5223 5224 xcb_parts[2].iov_base = (char *) &xcb_out; 5225 xcb_parts[2].iov_len = sizeof(xcb_out); 5226 xcb_parts[3].iov_base = 0; 5227 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5228 5229 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5230 return xcb_ret; 5231 } 5232 5233 xcb_glx_get_lightiv_cookie_t 5234 xcb_glx_get_lightiv_unchecked (xcb_connection_t *c, 5235 xcb_glx_context_tag_t context_tag, 5236 uint32_t light, 5237 uint32_t pname) 5238 { 5239 static const xcb_protocol_request_t xcb_req = { 5240 .count = 2, 5241 .ext = &xcb_glx_id, 5242 .opcode = XCB_GLX_GET_LIGHTIV, 5243 .isvoid = 0 5244 }; 5245 5246 struct iovec xcb_parts[4]; 5247 xcb_glx_get_lightiv_cookie_t xcb_ret; 5248 xcb_glx_get_lightiv_request_t xcb_out; 5249 5250 xcb_out.context_tag = context_tag; 5251 xcb_out.light = light; 5252 xcb_out.pname = pname; 5253 5254 xcb_parts[2].iov_base = (char *) &xcb_out; 5255 xcb_parts[2].iov_len = sizeof(xcb_out); 5256 xcb_parts[3].iov_base = 0; 5257 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5258 5259 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5260 return xcb_ret; 5261 } 5262 5263 int32_t * 5264 xcb_glx_get_lightiv_data (const xcb_glx_get_lightiv_reply_t *R) 5265 { 5266 return (int32_t *) (R + 1); 5267 } 5268 5269 int 5270 xcb_glx_get_lightiv_data_length (const xcb_glx_get_lightiv_reply_t *R) 5271 { 5272 return R->n; 5273 } 5274 5275 xcb_generic_iterator_t 5276 xcb_glx_get_lightiv_data_end (const xcb_glx_get_lightiv_reply_t *R) 5277 { 5278 xcb_generic_iterator_t i; 5279 i.data = ((int32_t *) (R + 1)) + (R->n); 5280 i.rem = 0; 5281 i.index = (char *) i.data - (char *) R; 5282 return i; 5283 } 5284 5285 xcb_glx_get_lightiv_reply_t * 5286 xcb_glx_get_lightiv_reply (xcb_connection_t *c, 5287 xcb_glx_get_lightiv_cookie_t cookie /**< */, 5288 xcb_generic_error_t **e) 5289 { 5290 return (xcb_glx_get_lightiv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5291 } 5292 5293 int 5294 xcb_glx_get_mapdv_sizeof (const void *_buffer) 5295 { 5296 char *xcb_tmp = (char *)_buffer; 5297 const xcb_glx_get_mapdv_reply_t *_aux = (xcb_glx_get_mapdv_reply_t *)_buffer; 5298 unsigned int xcb_buffer_len = 0; 5299 unsigned int xcb_block_len = 0; 5300 unsigned int xcb_pad = 0; 5301 unsigned int xcb_align_to = 0; 5302 5303 5304 xcb_block_len += sizeof(xcb_glx_get_mapdv_reply_t); 5305 xcb_tmp += xcb_block_len; 5306 xcb_buffer_len += xcb_block_len; 5307 xcb_block_len = 0; 5308 /* data */ 5309 xcb_block_len += _aux->n * sizeof(xcb_glx_float64_t); 5310 xcb_tmp += xcb_block_len; 5311 xcb_align_to = ALIGNOF(xcb_glx_float64_t); 5312 /* insert padding */ 5313 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5314 xcb_buffer_len += xcb_block_len + xcb_pad; 5315 if (0 != xcb_pad) { 5316 xcb_tmp += xcb_pad; 5317 xcb_pad = 0; 5318 } 5319 xcb_block_len = 0; 5320 5321 return xcb_buffer_len; 5322 } 5323 5324 xcb_glx_get_mapdv_cookie_t 5325 xcb_glx_get_mapdv (xcb_connection_t *c, 5326 xcb_glx_context_tag_t context_tag, 5327 uint32_t target, 5328 uint32_t query) 5329 { 5330 static const xcb_protocol_request_t xcb_req = { 5331 .count = 2, 5332 .ext = &xcb_glx_id, 5333 .opcode = XCB_GLX_GET_MAPDV, 5334 .isvoid = 0 5335 }; 5336 5337 struct iovec xcb_parts[4]; 5338 xcb_glx_get_mapdv_cookie_t xcb_ret; 5339 xcb_glx_get_mapdv_request_t xcb_out; 5340 5341 xcb_out.context_tag = context_tag; 5342 xcb_out.target = target; 5343 xcb_out.query = query; 5344 5345 xcb_parts[2].iov_base = (char *) &xcb_out; 5346 xcb_parts[2].iov_len = sizeof(xcb_out); 5347 xcb_parts[3].iov_base = 0; 5348 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5349 5350 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5351 return xcb_ret; 5352 } 5353 5354 xcb_glx_get_mapdv_cookie_t 5355 xcb_glx_get_mapdv_unchecked (xcb_connection_t *c, 5356 xcb_glx_context_tag_t context_tag, 5357 uint32_t target, 5358 uint32_t query) 5359 { 5360 static const xcb_protocol_request_t xcb_req = { 5361 .count = 2, 5362 .ext = &xcb_glx_id, 5363 .opcode = XCB_GLX_GET_MAPDV, 5364 .isvoid = 0 5365 }; 5366 5367 struct iovec xcb_parts[4]; 5368 xcb_glx_get_mapdv_cookie_t xcb_ret; 5369 xcb_glx_get_mapdv_request_t xcb_out; 5370 5371 xcb_out.context_tag = context_tag; 5372 xcb_out.target = target; 5373 xcb_out.query = query; 5374 5375 xcb_parts[2].iov_base = (char *) &xcb_out; 5376 xcb_parts[2].iov_len = sizeof(xcb_out); 5377 xcb_parts[3].iov_base = 0; 5378 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5379 5380 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5381 return xcb_ret; 5382 } 5383 5384 xcb_glx_float64_t * 5385 xcb_glx_get_mapdv_data (const xcb_glx_get_mapdv_reply_t *R) 5386 { 5387 return (xcb_glx_float64_t *) (R + 1); 5388 } 5389 5390 int 5391 xcb_glx_get_mapdv_data_length (const xcb_glx_get_mapdv_reply_t *R) 5392 { 5393 return R->n; 5394 } 5395 5396 xcb_generic_iterator_t 5397 xcb_glx_get_mapdv_data_end (const xcb_glx_get_mapdv_reply_t *R) 5398 { 5399 xcb_generic_iterator_t i; 5400 i.data = ((xcb_glx_float64_t *) (R + 1)) + (R->n); 5401 i.rem = 0; 5402 i.index = (char *) i.data - (char *) R; 5403 return i; 5404 } 5405 5406 xcb_glx_get_mapdv_reply_t * 5407 xcb_glx_get_mapdv_reply (xcb_connection_t *c, 5408 xcb_glx_get_mapdv_cookie_t cookie /**< */, 5409 xcb_generic_error_t **e) 5410 { 5411 return (xcb_glx_get_mapdv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5412 } 5413 5414 int 5415 xcb_glx_get_mapfv_sizeof (const void *_buffer) 5416 { 5417 char *xcb_tmp = (char *)_buffer; 5418 const xcb_glx_get_mapfv_reply_t *_aux = (xcb_glx_get_mapfv_reply_t *)_buffer; 5419 unsigned int xcb_buffer_len = 0; 5420 unsigned int xcb_block_len = 0; 5421 unsigned int xcb_pad = 0; 5422 unsigned int xcb_align_to = 0; 5423 5424 5425 xcb_block_len += sizeof(xcb_glx_get_mapfv_reply_t); 5426 xcb_tmp += xcb_block_len; 5427 xcb_buffer_len += xcb_block_len; 5428 xcb_block_len = 0; 5429 /* data */ 5430 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 5431 xcb_tmp += xcb_block_len; 5432 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 5433 /* insert padding */ 5434 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5435 xcb_buffer_len += xcb_block_len + xcb_pad; 5436 if (0 != xcb_pad) { 5437 xcb_tmp += xcb_pad; 5438 xcb_pad = 0; 5439 } 5440 xcb_block_len = 0; 5441 5442 return xcb_buffer_len; 5443 } 5444 5445 xcb_glx_get_mapfv_cookie_t 5446 xcb_glx_get_mapfv (xcb_connection_t *c, 5447 xcb_glx_context_tag_t context_tag, 5448 uint32_t target, 5449 uint32_t query) 5450 { 5451 static const xcb_protocol_request_t xcb_req = { 5452 .count = 2, 5453 .ext = &xcb_glx_id, 5454 .opcode = XCB_GLX_GET_MAPFV, 5455 .isvoid = 0 5456 }; 5457 5458 struct iovec xcb_parts[4]; 5459 xcb_glx_get_mapfv_cookie_t xcb_ret; 5460 xcb_glx_get_mapfv_request_t xcb_out; 5461 5462 xcb_out.context_tag = context_tag; 5463 xcb_out.target = target; 5464 xcb_out.query = query; 5465 5466 xcb_parts[2].iov_base = (char *) &xcb_out; 5467 xcb_parts[2].iov_len = sizeof(xcb_out); 5468 xcb_parts[3].iov_base = 0; 5469 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5470 5471 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5472 return xcb_ret; 5473 } 5474 5475 xcb_glx_get_mapfv_cookie_t 5476 xcb_glx_get_mapfv_unchecked (xcb_connection_t *c, 5477 xcb_glx_context_tag_t context_tag, 5478 uint32_t target, 5479 uint32_t query) 5480 { 5481 static const xcb_protocol_request_t xcb_req = { 5482 .count = 2, 5483 .ext = &xcb_glx_id, 5484 .opcode = XCB_GLX_GET_MAPFV, 5485 .isvoid = 0 5486 }; 5487 5488 struct iovec xcb_parts[4]; 5489 xcb_glx_get_mapfv_cookie_t xcb_ret; 5490 xcb_glx_get_mapfv_request_t xcb_out; 5491 5492 xcb_out.context_tag = context_tag; 5493 xcb_out.target = target; 5494 xcb_out.query = query; 5495 5496 xcb_parts[2].iov_base = (char *) &xcb_out; 5497 xcb_parts[2].iov_len = sizeof(xcb_out); 5498 xcb_parts[3].iov_base = 0; 5499 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5500 5501 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5502 return xcb_ret; 5503 } 5504 5505 xcb_glx_float32_t * 5506 xcb_glx_get_mapfv_data (const xcb_glx_get_mapfv_reply_t *R) 5507 { 5508 return (xcb_glx_float32_t *) (R + 1); 5509 } 5510 5511 int 5512 xcb_glx_get_mapfv_data_length (const xcb_glx_get_mapfv_reply_t *R) 5513 { 5514 return R->n; 5515 } 5516 5517 xcb_generic_iterator_t 5518 xcb_glx_get_mapfv_data_end (const xcb_glx_get_mapfv_reply_t *R) 5519 { 5520 xcb_generic_iterator_t i; 5521 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 5522 i.rem = 0; 5523 i.index = (char *) i.data - (char *) R; 5524 return i; 5525 } 5526 5527 xcb_glx_get_mapfv_reply_t * 5528 xcb_glx_get_mapfv_reply (xcb_connection_t *c, 5529 xcb_glx_get_mapfv_cookie_t cookie /**< */, 5530 xcb_generic_error_t **e) 5531 { 5532 return (xcb_glx_get_mapfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5533 } 5534 5535 int 5536 xcb_glx_get_mapiv_sizeof (const void *_buffer) 5537 { 5538 char *xcb_tmp = (char *)_buffer; 5539 const xcb_glx_get_mapiv_reply_t *_aux = (xcb_glx_get_mapiv_reply_t *)_buffer; 5540 unsigned int xcb_buffer_len = 0; 5541 unsigned int xcb_block_len = 0; 5542 unsigned int xcb_pad = 0; 5543 unsigned int xcb_align_to = 0; 5544 5545 5546 xcb_block_len += sizeof(xcb_glx_get_mapiv_reply_t); 5547 xcb_tmp += xcb_block_len; 5548 xcb_buffer_len += xcb_block_len; 5549 xcb_block_len = 0; 5550 /* data */ 5551 xcb_block_len += _aux->n * sizeof(int32_t); 5552 xcb_tmp += xcb_block_len; 5553 xcb_align_to = ALIGNOF(int32_t); 5554 /* insert padding */ 5555 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5556 xcb_buffer_len += xcb_block_len + xcb_pad; 5557 if (0 != xcb_pad) { 5558 xcb_tmp += xcb_pad; 5559 xcb_pad = 0; 5560 } 5561 xcb_block_len = 0; 5562 5563 return xcb_buffer_len; 5564 } 5565 5566 xcb_glx_get_mapiv_cookie_t 5567 xcb_glx_get_mapiv (xcb_connection_t *c, 5568 xcb_glx_context_tag_t context_tag, 5569 uint32_t target, 5570 uint32_t query) 5571 { 5572 static const xcb_protocol_request_t xcb_req = { 5573 .count = 2, 5574 .ext = &xcb_glx_id, 5575 .opcode = XCB_GLX_GET_MAPIV, 5576 .isvoid = 0 5577 }; 5578 5579 struct iovec xcb_parts[4]; 5580 xcb_glx_get_mapiv_cookie_t xcb_ret; 5581 xcb_glx_get_mapiv_request_t xcb_out; 5582 5583 xcb_out.context_tag = context_tag; 5584 xcb_out.target = target; 5585 xcb_out.query = query; 5586 5587 xcb_parts[2].iov_base = (char *) &xcb_out; 5588 xcb_parts[2].iov_len = sizeof(xcb_out); 5589 xcb_parts[3].iov_base = 0; 5590 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5591 5592 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5593 return xcb_ret; 5594 } 5595 5596 xcb_glx_get_mapiv_cookie_t 5597 xcb_glx_get_mapiv_unchecked (xcb_connection_t *c, 5598 xcb_glx_context_tag_t context_tag, 5599 uint32_t target, 5600 uint32_t query) 5601 { 5602 static const xcb_protocol_request_t xcb_req = { 5603 .count = 2, 5604 .ext = &xcb_glx_id, 5605 .opcode = XCB_GLX_GET_MAPIV, 5606 .isvoid = 0 5607 }; 5608 5609 struct iovec xcb_parts[4]; 5610 xcb_glx_get_mapiv_cookie_t xcb_ret; 5611 xcb_glx_get_mapiv_request_t xcb_out; 5612 5613 xcb_out.context_tag = context_tag; 5614 xcb_out.target = target; 5615 xcb_out.query = query; 5616 5617 xcb_parts[2].iov_base = (char *) &xcb_out; 5618 xcb_parts[2].iov_len = sizeof(xcb_out); 5619 xcb_parts[3].iov_base = 0; 5620 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5621 5622 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5623 return xcb_ret; 5624 } 5625 5626 int32_t * 5627 xcb_glx_get_mapiv_data (const xcb_glx_get_mapiv_reply_t *R) 5628 { 5629 return (int32_t *) (R + 1); 5630 } 5631 5632 int 5633 xcb_glx_get_mapiv_data_length (const xcb_glx_get_mapiv_reply_t *R) 5634 { 5635 return R->n; 5636 } 5637 5638 xcb_generic_iterator_t 5639 xcb_glx_get_mapiv_data_end (const xcb_glx_get_mapiv_reply_t *R) 5640 { 5641 xcb_generic_iterator_t i; 5642 i.data = ((int32_t *) (R + 1)) + (R->n); 5643 i.rem = 0; 5644 i.index = (char *) i.data - (char *) R; 5645 return i; 5646 } 5647 5648 xcb_glx_get_mapiv_reply_t * 5649 xcb_glx_get_mapiv_reply (xcb_connection_t *c, 5650 xcb_glx_get_mapiv_cookie_t cookie /**< */, 5651 xcb_generic_error_t **e) 5652 { 5653 return (xcb_glx_get_mapiv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5654 } 5655 5656 int 5657 xcb_glx_get_materialfv_sizeof (const void *_buffer) 5658 { 5659 char *xcb_tmp = (char *)_buffer; 5660 const xcb_glx_get_materialfv_reply_t *_aux = (xcb_glx_get_materialfv_reply_t *)_buffer; 5661 unsigned int xcb_buffer_len = 0; 5662 unsigned int xcb_block_len = 0; 5663 unsigned int xcb_pad = 0; 5664 unsigned int xcb_align_to = 0; 5665 5666 5667 xcb_block_len += sizeof(xcb_glx_get_materialfv_reply_t); 5668 xcb_tmp += xcb_block_len; 5669 xcb_buffer_len += xcb_block_len; 5670 xcb_block_len = 0; 5671 /* data */ 5672 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 5673 xcb_tmp += xcb_block_len; 5674 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 5675 /* insert padding */ 5676 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5677 xcb_buffer_len += xcb_block_len + xcb_pad; 5678 if (0 != xcb_pad) { 5679 xcb_tmp += xcb_pad; 5680 xcb_pad = 0; 5681 } 5682 xcb_block_len = 0; 5683 5684 return xcb_buffer_len; 5685 } 5686 5687 xcb_glx_get_materialfv_cookie_t 5688 xcb_glx_get_materialfv (xcb_connection_t *c, 5689 xcb_glx_context_tag_t context_tag, 5690 uint32_t face, 5691 uint32_t pname) 5692 { 5693 static const xcb_protocol_request_t xcb_req = { 5694 .count = 2, 5695 .ext = &xcb_glx_id, 5696 .opcode = XCB_GLX_GET_MATERIALFV, 5697 .isvoid = 0 5698 }; 5699 5700 struct iovec xcb_parts[4]; 5701 xcb_glx_get_materialfv_cookie_t xcb_ret; 5702 xcb_glx_get_materialfv_request_t xcb_out; 5703 5704 xcb_out.context_tag = context_tag; 5705 xcb_out.face = face; 5706 xcb_out.pname = pname; 5707 5708 xcb_parts[2].iov_base = (char *) &xcb_out; 5709 xcb_parts[2].iov_len = sizeof(xcb_out); 5710 xcb_parts[3].iov_base = 0; 5711 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5712 5713 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5714 return xcb_ret; 5715 } 5716 5717 xcb_glx_get_materialfv_cookie_t 5718 xcb_glx_get_materialfv_unchecked (xcb_connection_t *c, 5719 xcb_glx_context_tag_t context_tag, 5720 uint32_t face, 5721 uint32_t pname) 5722 { 5723 static const xcb_protocol_request_t xcb_req = { 5724 .count = 2, 5725 .ext = &xcb_glx_id, 5726 .opcode = XCB_GLX_GET_MATERIALFV, 5727 .isvoid = 0 5728 }; 5729 5730 struct iovec xcb_parts[4]; 5731 xcb_glx_get_materialfv_cookie_t xcb_ret; 5732 xcb_glx_get_materialfv_request_t xcb_out; 5733 5734 xcb_out.context_tag = context_tag; 5735 xcb_out.face = face; 5736 xcb_out.pname = pname; 5737 5738 xcb_parts[2].iov_base = (char *) &xcb_out; 5739 xcb_parts[2].iov_len = sizeof(xcb_out); 5740 xcb_parts[3].iov_base = 0; 5741 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5742 5743 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5744 return xcb_ret; 5745 } 5746 5747 xcb_glx_float32_t * 5748 xcb_glx_get_materialfv_data (const xcb_glx_get_materialfv_reply_t *R) 5749 { 5750 return (xcb_glx_float32_t *) (R + 1); 5751 } 5752 5753 int 5754 xcb_glx_get_materialfv_data_length (const xcb_glx_get_materialfv_reply_t *R) 5755 { 5756 return R->n; 5757 } 5758 5759 xcb_generic_iterator_t 5760 xcb_glx_get_materialfv_data_end (const xcb_glx_get_materialfv_reply_t *R) 5761 { 5762 xcb_generic_iterator_t i; 5763 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 5764 i.rem = 0; 5765 i.index = (char *) i.data - (char *) R; 5766 return i; 5767 } 5768 5769 xcb_glx_get_materialfv_reply_t * 5770 xcb_glx_get_materialfv_reply (xcb_connection_t *c, 5771 xcb_glx_get_materialfv_cookie_t cookie /**< */, 5772 xcb_generic_error_t **e) 5773 { 5774 return (xcb_glx_get_materialfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5775 } 5776 5777 int 5778 xcb_glx_get_materialiv_sizeof (const void *_buffer) 5779 { 5780 char *xcb_tmp = (char *)_buffer; 5781 const xcb_glx_get_materialiv_reply_t *_aux = (xcb_glx_get_materialiv_reply_t *)_buffer; 5782 unsigned int xcb_buffer_len = 0; 5783 unsigned int xcb_block_len = 0; 5784 unsigned int xcb_pad = 0; 5785 unsigned int xcb_align_to = 0; 5786 5787 5788 xcb_block_len += sizeof(xcb_glx_get_materialiv_reply_t); 5789 xcb_tmp += xcb_block_len; 5790 xcb_buffer_len += xcb_block_len; 5791 xcb_block_len = 0; 5792 /* data */ 5793 xcb_block_len += _aux->n * sizeof(int32_t); 5794 xcb_tmp += xcb_block_len; 5795 xcb_align_to = ALIGNOF(int32_t); 5796 /* insert padding */ 5797 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5798 xcb_buffer_len += xcb_block_len + xcb_pad; 5799 if (0 != xcb_pad) { 5800 xcb_tmp += xcb_pad; 5801 xcb_pad = 0; 5802 } 5803 xcb_block_len = 0; 5804 5805 return xcb_buffer_len; 5806 } 5807 5808 xcb_glx_get_materialiv_cookie_t 5809 xcb_glx_get_materialiv (xcb_connection_t *c, 5810 xcb_glx_context_tag_t context_tag, 5811 uint32_t face, 5812 uint32_t pname) 5813 { 5814 static const xcb_protocol_request_t xcb_req = { 5815 .count = 2, 5816 .ext = &xcb_glx_id, 5817 .opcode = XCB_GLX_GET_MATERIALIV, 5818 .isvoid = 0 5819 }; 5820 5821 struct iovec xcb_parts[4]; 5822 xcb_glx_get_materialiv_cookie_t xcb_ret; 5823 xcb_glx_get_materialiv_request_t xcb_out; 5824 5825 xcb_out.context_tag = context_tag; 5826 xcb_out.face = face; 5827 xcb_out.pname = pname; 5828 5829 xcb_parts[2].iov_base = (char *) &xcb_out; 5830 xcb_parts[2].iov_len = sizeof(xcb_out); 5831 xcb_parts[3].iov_base = 0; 5832 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5833 5834 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5835 return xcb_ret; 5836 } 5837 5838 xcb_glx_get_materialiv_cookie_t 5839 xcb_glx_get_materialiv_unchecked (xcb_connection_t *c, 5840 xcb_glx_context_tag_t context_tag, 5841 uint32_t face, 5842 uint32_t pname) 5843 { 5844 static const xcb_protocol_request_t xcb_req = { 5845 .count = 2, 5846 .ext = &xcb_glx_id, 5847 .opcode = XCB_GLX_GET_MATERIALIV, 5848 .isvoid = 0 5849 }; 5850 5851 struct iovec xcb_parts[4]; 5852 xcb_glx_get_materialiv_cookie_t xcb_ret; 5853 xcb_glx_get_materialiv_request_t xcb_out; 5854 5855 xcb_out.context_tag = context_tag; 5856 xcb_out.face = face; 5857 xcb_out.pname = pname; 5858 5859 xcb_parts[2].iov_base = (char *) &xcb_out; 5860 xcb_parts[2].iov_len = sizeof(xcb_out); 5861 xcb_parts[3].iov_base = 0; 5862 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5863 5864 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5865 return xcb_ret; 5866 } 5867 5868 int32_t * 5869 xcb_glx_get_materialiv_data (const xcb_glx_get_materialiv_reply_t *R) 5870 { 5871 return (int32_t *) (R + 1); 5872 } 5873 5874 int 5875 xcb_glx_get_materialiv_data_length (const xcb_glx_get_materialiv_reply_t *R) 5876 { 5877 return R->n; 5878 } 5879 5880 xcb_generic_iterator_t 5881 xcb_glx_get_materialiv_data_end (const xcb_glx_get_materialiv_reply_t *R) 5882 { 5883 xcb_generic_iterator_t i; 5884 i.data = ((int32_t *) (R + 1)) + (R->n); 5885 i.rem = 0; 5886 i.index = (char *) i.data - (char *) R; 5887 return i; 5888 } 5889 5890 xcb_glx_get_materialiv_reply_t * 5891 xcb_glx_get_materialiv_reply (xcb_connection_t *c, 5892 xcb_glx_get_materialiv_cookie_t cookie /**< */, 5893 xcb_generic_error_t **e) 5894 { 5895 return (xcb_glx_get_materialiv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5896 } 5897 5898 int 5899 xcb_glx_get_pixel_mapfv_sizeof (const void *_buffer) 5900 { 5901 char *xcb_tmp = (char *)_buffer; 5902 const xcb_glx_get_pixel_mapfv_reply_t *_aux = (xcb_glx_get_pixel_mapfv_reply_t *)_buffer; 5903 unsigned int xcb_buffer_len = 0; 5904 unsigned int xcb_block_len = 0; 5905 unsigned int xcb_pad = 0; 5906 unsigned int xcb_align_to = 0; 5907 5908 5909 xcb_block_len += sizeof(xcb_glx_get_pixel_mapfv_reply_t); 5910 xcb_tmp += xcb_block_len; 5911 xcb_buffer_len += xcb_block_len; 5912 xcb_block_len = 0; 5913 /* data */ 5914 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 5915 xcb_tmp += xcb_block_len; 5916 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 5917 /* insert padding */ 5918 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 5919 xcb_buffer_len += xcb_block_len + xcb_pad; 5920 if (0 != xcb_pad) { 5921 xcb_tmp += xcb_pad; 5922 xcb_pad = 0; 5923 } 5924 xcb_block_len = 0; 5925 5926 return xcb_buffer_len; 5927 } 5928 5929 xcb_glx_get_pixel_mapfv_cookie_t 5930 xcb_glx_get_pixel_mapfv (xcb_connection_t *c, 5931 xcb_glx_context_tag_t context_tag, 5932 uint32_t map) 5933 { 5934 static const xcb_protocol_request_t xcb_req = { 5935 .count = 2, 5936 .ext = &xcb_glx_id, 5937 .opcode = XCB_GLX_GET_PIXEL_MAPFV, 5938 .isvoid = 0 5939 }; 5940 5941 struct iovec xcb_parts[4]; 5942 xcb_glx_get_pixel_mapfv_cookie_t xcb_ret; 5943 xcb_glx_get_pixel_mapfv_request_t xcb_out; 5944 5945 xcb_out.context_tag = context_tag; 5946 xcb_out.map = map; 5947 5948 xcb_parts[2].iov_base = (char *) &xcb_out; 5949 xcb_parts[2].iov_len = sizeof(xcb_out); 5950 xcb_parts[3].iov_base = 0; 5951 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5952 5953 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5954 return xcb_ret; 5955 } 5956 5957 xcb_glx_get_pixel_mapfv_cookie_t 5958 xcb_glx_get_pixel_mapfv_unchecked (xcb_connection_t *c, 5959 xcb_glx_context_tag_t context_tag, 5960 uint32_t map) 5961 { 5962 static const xcb_protocol_request_t xcb_req = { 5963 .count = 2, 5964 .ext = &xcb_glx_id, 5965 .opcode = XCB_GLX_GET_PIXEL_MAPFV, 5966 .isvoid = 0 5967 }; 5968 5969 struct iovec xcb_parts[4]; 5970 xcb_glx_get_pixel_mapfv_cookie_t xcb_ret; 5971 xcb_glx_get_pixel_mapfv_request_t xcb_out; 5972 5973 xcb_out.context_tag = context_tag; 5974 xcb_out.map = map; 5975 5976 xcb_parts[2].iov_base = (char *) &xcb_out; 5977 xcb_parts[2].iov_len = sizeof(xcb_out); 5978 xcb_parts[3].iov_base = 0; 5979 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 5980 5981 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5982 return xcb_ret; 5983 } 5984 5985 xcb_glx_float32_t * 5986 xcb_glx_get_pixel_mapfv_data (const xcb_glx_get_pixel_mapfv_reply_t *R) 5987 { 5988 return (xcb_glx_float32_t *) (R + 1); 5989 } 5990 5991 int 5992 xcb_glx_get_pixel_mapfv_data_length (const xcb_glx_get_pixel_mapfv_reply_t *R) 5993 { 5994 return R->n; 5995 } 5996 5997 xcb_generic_iterator_t 5998 xcb_glx_get_pixel_mapfv_data_end (const xcb_glx_get_pixel_mapfv_reply_t *R) 5999 { 6000 xcb_generic_iterator_t i; 6001 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 6002 i.rem = 0; 6003 i.index = (char *) i.data - (char *) R; 6004 return i; 6005 } 6006 6007 xcb_glx_get_pixel_mapfv_reply_t * 6008 xcb_glx_get_pixel_mapfv_reply (xcb_connection_t *c, 6009 xcb_glx_get_pixel_mapfv_cookie_t cookie /**< */, 6010 xcb_generic_error_t **e) 6011 { 6012 return (xcb_glx_get_pixel_mapfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6013 } 6014 6015 int 6016 xcb_glx_get_pixel_mapuiv_sizeof (const void *_buffer) 6017 { 6018 char *xcb_tmp = (char *)_buffer; 6019 const xcb_glx_get_pixel_mapuiv_reply_t *_aux = (xcb_glx_get_pixel_mapuiv_reply_t *)_buffer; 6020 unsigned int xcb_buffer_len = 0; 6021 unsigned int xcb_block_len = 0; 6022 unsigned int xcb_pad = 0; 6023 unsigned int xcb_align_to = 0; 6024 6025 6026 xcb_block_len += sizeof(xcb_glx_get_pixel_mapuiv_reply_t); 6027 xcb_tmp += xcb_block_len; 6028 xcb_buffer_len += xcb_block_len; 6029 xcb_block_len = 0; 6030 /* data */ 6031 xcb_block_len += _aux->n * sizeof(uint32_t); 6032 xcb_tmp += xcb_block_len; 6033 xcb_align_to = ALIGNOF(uint32_t); 6034 /* insert padding */ 6035 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6036 xcb_buffer_len += xcb_block_len + xcb_pad; 6037 if (0 != xcb_pad) { 6038 xcb_tmp += xcb_pad; 6039 xcb_pad = 0; 6040 } 6041 xcb_block_len = 0; 6042 6043 return xcb_buffer_len; 6044 } 6045 6046 xcb_glx_get_pixel_mapuiv_cookie_t 6047 xcb_glx_get_pixel_mapuiv (xcb_connection_t *c, 6048 xcb_glx_context_tag_t context_tag, 6049 uint32_t map) 6050 { 6051 static const xcb_protocol_request_t xcb_req = { 6052 .count = 2, 6053 .ext = &xcb_glx_id, 6054 .opcode = XCB_GLX_GET_PIXEL_MAPUIV, 6055 .isvoid = 0 6056 }; 6057 6058 struct iovec xcb_parts[4]; 6059 xcb_glx_get_pixel_mapuiv_cookie_t xcb_ret; 6060 xcb_glx_get_pixel_mapuiv_request_t xcb_out; 6061 6062 xcb_out.context_tag = context_tag; 6063 xcb_out.map = map; 6064 6065 xcb_parts[2].iov_base = (char *) &xcb_out; 6066 xcb_parts[2].iov_len = sizeof(xcb_out); 6067 xcb_parts[3].iov_base = 0; 6068 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6069 6070 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6071 return xcb_ret; 6072 } 6073 6074 xcb_glx_get_pixel_mapuiv_cookie_t 6075 xcb_glx_get_pixel_mapuiv_unchecked (xcb_connection_t *c, 6076 xcb_glx_context_tag_t context_tag, 6077 uint32_t map) 6078 { 6079 static const xcb_protocol_request_t xcb_req = { 6080 .count = 2, 6081 .ext = &xcb_glx_id, 6082 .opcode = XCB_GLX_GET_PIXEL_MAPUIV, 6083 .isvoid = 0 6084 }; 6085 6086 struct iovec xcb_parts[4]; 6087 xcb_glx_get_pixel_mapuiv_cookie_t xcb_ret; 6088 xcb_glx_get_pixel_mapuiv_request_t xcb_out; 6089 6090 xcb_out.context_tag = context_tag; 6091 xcb_out.map = map; 6092 6093 xcb_parts[2].iov_base = (char *) &xcb_out; 6094 xcb_parts[2].iov_len = sizeof(xcb_out); 6095 xcb_parts[3].iov_base = 0; 6096 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6097 6098 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6099 return xcb_ret; 6100 } 6101 6102 uint32_t * 6103 xcb_glx_get_pixel_mapuiv_data (const xcb_glx_get_pixel_mapuiv_reply_t *R) 6104 { 6105 return (uint32_t *) (R + 1); 6106 } 6107 6108 int 6109 xcb_glx_get_pixel_mapuiv_data_length (const xcb_glx_get_pixel_mapuiv_reply_t *R) 6110 { 6111 return R->n; 6112 } 6113 6114 xcb_generic_iterator_t 6115 xcb_glx_get_pixel_mapuiv_data_end (const xcb_glx_get_pixel_mapuiv_reply_t *R) 6116 { 6117 xcb_generic_iterator_t i; 6118 i.data = ((uint32_t *) (R + 1)) + (R->n); 6119 i.rem = 0; 6120 i.index = (char *) i.data - (char *) R; 6121 return i; 6122 } 6123 6124 xcb_glx_get_pixel_mapuiv_reply_t * 6125 xcb_glx_get_pixel_mapuiv_reply (xcb_connection_t *c, 6126 xcb_glx_get_pixel_mapuiv_cookie_t cookie /**< */, 6127 xcb_generic_error_t **e) 6128 { 6129 return (xcb_glx_get_pixel_mapuiv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6130 } 6131 6132 int 6133 xcb_glx_get_pixel_mapusv_sizeof (const void *_buffer) 6134 { 6135 char *xcb_tmp = (char *)_buffer; 6136 const xcb_glx_get_pixel_mapusv_reply_t *_aux = (xcb_glx_get_pixel_mapusv_reply_t *)_buffer; 6137 unsigned int xcb_buffer_len = 0; 6138 unsigned int xcb_block_len = 0; 6139 unsigned int xcb_pad = 0; 6140 unsigned int xcb_align_to = 0; 6141 6142 6143 xcb_block_len += sizeof(xcb_glx_get_pixel_mapusv_reply_t); 6144 xcb_tmp += xcb_block_len; 6145 xcb_buffer_len += xcb_block_len; 6146 xcb_block_len = 0; 6147 /* data */ 6148 xcb_block_len += _aux->n * sizeof(uint16_t); 6149 xcb_tmp += xcb_block_len; 6150 xcb_align_to = ALIGNOF(uint16_t); 6151 /* insert padding */ 6152 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6153 xcb_buffer_len += xcb_block_len + xcb_pad; 6154 if (0 != xcb_pad) { 6155 xcb_tmp += xcb_pad; 6156 xcb_pad = 0; 6157 } 6158 xcb_block_len = 0; 6159 6160 return xcb_buffer_len; 6161 } 6162 6163 xcb_glx_get_pixel_mapusv_cookie_t 6164 xcb_glx_get_pixel_mapusv (xcb_connection_t *c, 6165 xcb_glx_context_tag_t context_tag, 6166 uint32_t map) 6167 { 6168 static const xcb_protocol_request_t xcb_req = { 6169 .count = 2, 6170 .ext = &xcb_glx_id, 6171 .opcode = XCB_GLX_GET_PIXEL_MAPUSV, 6172 .isvoid = 0 6173 }; 6174 6175 struct iovec xcb_parts[4]; 6176 xcb_glx_get_pixel_mapusv_cookie_t xcb_ret; 6177 xcb_glx_get_pixel_mapusv_request_t xcb_out; 6178 6179 xcb_out.context_tag = context_tag; 6180 xcb_out.map = map; 6181 6182 xcb_parts[2].iov_base = (char *) &xcb_out; 6183 xcb_parts[2].iov_len = sizeof(xcb_out); 6184 xcb_parts[3].iov_base = 0; 6185 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6186 6187 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6188 return xcb_ret; 6189 } 6190 6191 xcb_glx_get_pixel_mapusv_cookie_t 6192 xcb_glx_get_pixel_mapusv_unchecked (xcb_connection_t *c, 6193 xcb_glx_context_tag_t context_tag, 6194 uint32_t map) 6195 { 6196 static const xcb_protocol_request_t xcb_req = { 6197 .count = 2, 6198 .ext = &xcb_glx_id, 6199 .opcode = XCB_GLX_GET_PIXEL_MAPUSV, 6200 .isvoid = 0 6201 }; 6202 6203 struct iovec xcb_parts[4]; 6204 xcb_glx_get_pixel_mapusv_cookie_t xcb_ret; 6205 xcb_glx_get_pixel_mapusv_request_t xcb_out; 6206 6207 xcb_out.context_tag = context_tag; 6208 xcb_out.map = map; 6209 6210 xcb_parts[2].iov_base = (char *) &xcb_out; 6211 xcb_parts[2].iov_len = sizeof(xcb_out); 6212 xcb_parts[3].iov_base = 0; 6213 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6214 6215 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6216 return xcb_ret; 6217 } 6218 6219 uint16_t * 6220 xcb_glx_get_pixel_mapusv_data (const xcb_glx_get_pixel_mapusv_reply_t *R) 6221 { 6222 return (uint16_t *) (R + 1); 6223 } 6224 6225 int 6226 xcb_glx_get_pixel_mapusv_data_length (const xcb_glx_get_pixel_mapusv_reply_t *R) 6227 { 6228 return R->n; 6229 } 6230 6231 xcb_generic_iterator_t 6232 xcb_glx_get_pixel_mapusv_data_end (const xcb_glx_get_pixel_mapusv_reply_t *R) 6233 { 6234 xcb_generic_iterator_t i; 6235 i.data = ((uint16_t *) (R + 1)) + (R->n); 6236 i.rem = 0; 6237 i.index = (char *) i.data - (char *) R; 6238 return i; 6239 } 6240 6241 xcb_glx_get_pixel_mapusv_reply_t * 6242 xcb_glx_get_pixel_mapusv_reply (xcb_connection_t *c, 6243 xcb_glx_get_pixel_mapusv_cookie_t cookie /**< */, 6244 xcb_generic_error_t **e) 6245 { 6246 return (xcb_glx_get_pixel_mapusv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6247 } 6248 6249 int 6250 xcb_glx_get_polygon_stipple_sizeof (const void *_buffer) 6251 { 6252 char *xcb_tmp = (char *)_buffer; 6253 const xcb_glx_get_polygon_stipple_reply_t *_aux = (xcb_glx_get_polygon_stipple_reply_t *)_buffer; 6254 unsigned int xcb_buffer_len = 0; 6255 unsigned int xcb_block_len = 0; 6256 unsigned int xcb_pad = 0; 6257 unsigned int xcb_align_to = 0; 6258 6259 6260 xcb_block_len += sizeof(xcb_glx_get_polygon_stipple_reply_t); 6261 xcb_tmp += xcb_block_len; 6262 xcb_buffer_len += xcb_block_len; 6263 xcb_block_len = 0; 6264 /* data */ 6265 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 6266 xcb_tmp += xcb_block_len; 6267 xcb_align_to = ALIGNOF(uint8_t); 6268 /* insert padding */ 6269 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6270 xcb_buffer_len += xcb_block_len + xcb_pad; 6271 if (0 != xcb_pad) { 6272 xcb_tmp += xcb_pad; 6273 xcb_pad = 0; 6274 } 6275 xcb_block_len = 0; 6276 6277 return xcb_buffer_len; 6278 } 6279 6280 xcb_glx_get_polygon_stipple_cookie_t 6281 xcb_glx_get_polygon_stipple (xcb_connection_t *c, 6282 xcb_glx_context_tag_t context_tag, 6283 uint8_t lsb_first) 6284 { 6285 static const xcb_protocol_request_t xcb_req = { 6286 .count = 2, 6287 .ext = &xcb_glx_id, 6288 .opcode = XCB_GLX_GET_POLYGON_STIPPLE, 6289 .isvoid = 0 6290 }; 6291 6292 struct iovec xcb_parts[4]; 6293 xcb_glx_get_polygon_stipple_cookie_t xcb_ret; 6294 xcb_glx_get_polygon_stipple_request_t xcb_out; 6295 6296 xcb_out.context_tag = context_tag; 6297 xcb_out.lsb_first = lsb_first; 6298 6299 xcb_parts[2].iov_base = (char *) &xcb_out; 6300 xcb_parts[2].iov_len = sizeof(xcb_out); 6301 xcb_parts[3].iov_base = 0; 6302 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6303 6304 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6305 return xcb_ret; 6306 } 6307 6308 xcb_glx_get_polygon_stipple_cookie_t 6309 xcb_glx_get_polygon_stipple_unchecked (xcb_connection_t *c, 6310 xcb_glx_context_tag_t context_tag, 6311 uint8_t lsb_first) 6312 { 6313 static const xcb_protocol_request_t xcb_req = { 6314 .count = 2, 6315 .ext = &xcb_glx_id, 6316 .opcode = XCB_GLX_GET_POLYGON_STIPPLE, 6317 .isvoid = 0 6318 }; 6319 6320 struct iovec xcb_parts[4]; 6321 xcb_glx_get_polygon_stipple_cookie_t xcb_ret; 6322 xcb_glx_get_polygon_stipple_request_t xcb_out; 6323 6324 xcb_out.context_tag = context_tag; 6325 xcb_out.lsb_first = lsb_first; 6326 6327 xcb_parts[2].iov_base = (char *) &xcb_out; 6328 xcb_parts[2].iov_len = sizeof(xcb_out); 6329 xcb_parts[3].iov_base = 0; 6330 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6331 6332 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6333 return xcb_ret; 6334 } 6335 6336 uint8_t * 6337 xcb_glx_get_polygon_stipple_data (const xcb_glx_get_polygon_stipple_reply_t *R) 6338 { 6339 return (uint8_t *) (R + 1); 6340 } 6341 6342 int 6343 xcb_glx_get_polygon_stipple_data_length (const xcb_glx_get_polygon_stipple_reply_t *R) 6344 { 6345 return (R->length * 4); 6346 } 6347 6348 xcb_generic_iterator_t 6349 xcb_glx_get_polygon_stipple_data_end (const xcb_glx_get_polygon_stipple_reply_t *R) 6350 { 6351 xcb_generic_iterator_t i; 6352 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 6353 i.rem = 0; 6354 i.index = (char *) i.data - (char *) R; 6355 return i; 6356 } 6357 6358 xcb_glx_get_polygon_stipple_reply_t * 6359 xcb_glx_get_polygon_stipple_reply (xcb_connection_t *c, 6360 xcb_glx_get_polygon_stipple_cookie_t cookie /**< */, 6361 xcb_generic_error_t **e) 6362 { 6363 return (xcb_glx_get_polygon_stipple_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6364 } 6365 6366 int 6367 xcb_glx_get_string_sizeof (const void *_buffer) 6368 { 6369 char *xcb_tmp = (char *)_buffer; 6370 const xcb_glx_get_string_reply_t *_aux = (xcb_glx_get_string_reply_t *)_buffer; 6371 unsigned int xcb_buffer_len = 0; 6372 unsigned int xcb_block_len = 0; 6373 unsigned int xcb_pad = 0; 6374 unsigned int xcb_align_to = 0; 6375 6376 6377 xcb_block_len += sizeof(xcb_glx_get_string_reply_t); 6378 xcb_tmp += xcb_block_len; 6379 xcb_buffer_len += xcb_block_len; 6380 xcb_block_len = 0; 6381 /* string */ 6382 xcb_block_len += _aux->n * sizeof(char); 6383 xcb_tmp += xcb_block_len; 6384 xcb_align_to = ALIGNOF(char); 6385 /* insert padding */ 6386 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6387 xcb_buffer_len += xcb_block_len + xcb_pad; 6388 if (0 != xcb_pad) { 6389 xcb_tmp += xcb_pad; 6390 xcb_pad = 0; 6391 } 6392 xcb_block_len = 0; 6393 6394 return xcb_buffer_len; 6395 } 6396 6397 xcb_glx_get_string_cookie_t 6398 xcb_glx_get_string (xcb_connection_t *c, 6399 xcb_glx_context_tag_t context_tag, 6400 uint32_t name) 6401 { 6402 static const xcb_protocol_request_t xcb_req = { 6403 .count = 2, 6404 .ext = &xcb_glx_id, 6405 .opcode = XCB_GLX_GET_STRING, 6406 .isvoid = 0 6407 }; 6408 6409 struct iovec xcb_parts[4]; 6410 xcb_glx_get_string_cookie_t xcb_ret; 6411 xcb_glx_get_string_request_t xcb_out; 6412 6413 xcb_out.context_tag = context_tag; 6414 xcb_out.name = name; 6415 6416 xcb_parts[2].iov_base = (char *) &xcb_out; 6417 xcb_parts[2].iov_len = sizeof(xcb_out); 6418 xcb_parts[3].iov_base = 0; 6419 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6420 6421 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6422 return xcb_ret; 6423 } 6424 6425 xcb_glx_get_string_cookie_t 6426 xcb_glx_get_string_unchecked (xcb_connection_t *c, 6427 xcb_glx_context_tag_t context_tag, 6428 uint32_t name) 6429 { 6430 static const xcb_protocol_request_t xcb_req = { 6431 .count = 2, 6432 .ext = &xcb_glx_id, 6433 .opcode = XCB_GLX_GET_STRING, 6434 .isvoid = 0 6435 }; 6436 6437 struct iovec xcb_parts[4]; 6438 xcb_glx_get_string_cookie_t xcb_ret; 6439 xcb_glx_get_string_request_t xcb_out; 6440 6441 xcb_out.context_tag = context_tag; 6442 xcb_out.name = name; 6443 6444 xcb_parts[2].iov_base = (char *) &xcb_out; 6445 xcb_parts[2].iov_len = sizeof(xcb_out); 6446 xcb_parts[3].iov_base = 0; 6447 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6448 6449 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6450 return xcb_ret; 6451 } 6452 6453 char * 6454 xcb_glx_get_string_string (const xcb_glx_get_string_reply_t *R) 6455 { 6456 return (char *) (R + 1); 6457 } 6458 6459 int 6460 xcb_glx_get_string_string_length (const xcb_glx_get_string_reply_t *R) 6461 { 6462 return R->n; 6463 } 6464 6465 xcb_generic_iterator_t 6466 xcb_glx_get_string_string_end (const xcb_glx_get_string_reply_t *R) 6467 { 6468 xcb_generic_iterator_t i; 6469 i.data = ((char *) (R + 1)) + (R->n); 6470 i.rem = 0; 6471 i.index = (char *) i.data - (char *) R; 6472 return i; 6473 } 6474 6475 xcb_glx_get_string_reply_t * 6476 xcb_glx_get_string_reply (xcb_connection_t *c, 6477 xcb_glx_get_string_cookie_t cookie /**< */, 6478 xcb_generic_error_t **e) 6479 { 6480 return (xcb_glx_get_string_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6481 } 6482 6483 int 6484 xcb_glx_get_tex_envfv_sizeof (const void *_buffer) 6485 { 6486 char *xcb_tmp = (char *)_buffer; 6487 const xcb_glx_get_tex_envfv_reply_t *_aux = (xcb_glx_get_tex_envfv_reply_t *)_buffer; 6488 unsigned int xcb_buffer_len = 0; 6489 unsigned int xcb_block_len = 0; 6490 unsigned int xcb_pad = 0; 6491 unsigned int xcb_align_to = 0; 6492 6493 6494 xcb_block_len += sizeof(xcb_glx_get_tex_envfv_reply_t); 6495 xcb_tmp += xcb_block_len; 6496 xcb_buffer_len += xcb_block_len; 6497 xcb_block_len = 0; 6498 /* data */ 6499 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 6500 xcb_tmp += xcb_block_len; 6501 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 6502 /* insert padding */ 6503 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6504 xcb_buffer_len += xcb_block_len + xcb_pad; 6505 if (0 != xcb_pad) { 6506 xcb_tmp += xcb_pad; 6507 xcb_pad = 0; 6508 } 6509 xcb_block_len = 0; 6510 6511 return xcb_buffer_len; 6512 } 6513 6514 xcb_glx_get_tex_envfv_cookie_t 6515 xcb_glx_get_tex_envfv (xcb_connection_t *c, 6516 xcb_glx_context_tag_t context_tag, 6517 uint32_t target, 6518 uint32_t pname) 6519 { 6520 static const xcb_protocol_request_t xcb_req = { 6521 .count = 2, 6522 .ext = &xcb_glx_id, 6523 .opcode = XCB_GLX_GET_TEX_ENVFV, 6524 .isvoid = 0 6525 }; 6526 6527 struct iovec xcb_parts[4]; 6528 xcb_glx_get_tex_envfv_cookie_t xcb_ret; 6529 xcb_glx_get_tex_envfv_request_t xcb_out; 6530 6531 xcb_out.context_tag = context_tag; 6532 xcb_out.target = target; 6533 xcb_out.pname = pname; 6534 6535 xcb_parts[2].iov_base = (char *) &xcb_out; 6536 xcb_parts[2].iov_len = sizeof(xcb_out); 6537 xcb_parts[3].iov_base = 0; 6538 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6539 6540 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6541 return xcb_ret; 6542 } 6543 6544 xcb_glx_get_tex_envfv_cookie_t 6545 xcb_glx_get_tex_envfv_unchecked (xcb_connection_t *c, 6546 xcb_glx_context_tag_t context_tag, 6547 uint32_t target, 6548 uint32_t pname) 6549 { 6550 static const xcb_protocol_request_t xcb_req = { 6551 .count = 2, 6552 .ext = &xcb_glx_id, 6553 .opcode = XCB_GLX_GET_TEX_ENVFV, 6554 .isvoid = 0 6555 }; 6556 6557 struct iovec xcb_parts[4]; 6558 xcb_glx_get_tex_envfv_cookie_t xcb_ret; 6559 xcb_glx_get_tex_envfv_request_t xcb_out; 6560 6561 xcb_out.context_tag = context_tag; 6562 xcb_out.target = target; 6563 xcb_out.pname = pname; 6564 6565 xcb_parts[2].iov_base = (char *) &xcb_out; 6566 xcb_parts[2].iov_len = sizeof(xcb_out); 6567 xcb_parts[3].iov_base = 0; 6568 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6569 6570 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6571 return xcb_ret; 6572 } 6573 6574 xcb_glx_float32_t * 6575 xcb_glx_get_tex_envfv_data (const xcb_glx_get_tex_envfv_reply_t *R) 6576 { 6577 return (xcb_glx_float32_t *) (R + 1); 6578 } 6579 6580 int 6581 xcb_glx_get_tex_envfv_data_length (const xcb_glx_get_tex_envfv_reply_t *R) 6582 { 6583 return R->n; 6584 } 6585 6586 xcb_generic_iterator_t 6587 xcb_glx_get_tex_envfv_data_end (const xcb_glx_get_tex_envfv_reply_t *R) 6588 { 6589 xcb_generic_iterator_t i; 6590 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 6591 i.rem = 0; 6592 i.index = (char *) i.data - (char *) R; 6593 return i; 6594 } 6595 6596 xcb_glx_get_tex_envfv_reply_t * 6597 xcb_glx_get_tex_envfv_reply (xcb_connection_t *c, 6598 xcb_glx_get_tex_envfv_cookie_t cookie /**< */, 6599 xcb_generic_error_t **e) 6600 { 6601 return (xcb_glx_get_tex_envfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6602 } 6603 6604 int 6605 xcb_glx_get_tex_enviv_sizeof (const void *_buffer) 6606 { 6607 char *xcb_tmp = (char *)_buffer; 6608 const xcb_glx_get_tex_enviv_reply_t *_aux = (xcb_glx_get_tex_enviv_reply_t *)_buffer; 6609 unsigned int xcb_buffer_len = 0; 6610 unsigned int xcb_block_len = 0; 6611 unsigned int xcb_pad = 0; 6612 unsigned int xcb_align_to = 0; 6613 6614 6615 xcb_block_len += sizeof(xcb_glx_get_tex_enviv_reply_t); 6616 xcb_tmp += xcb_block_len; 6617 xcb_buffer_len += xcb_block_len; 6618 xcb_block_len = 0; 6619 /* data */ 6620 xcb_block_len += _aux->n * sizeof(int32_t); 6621 xcb_tmp += xcb_block_len; 6622 xcb_align_to = ALIGNOF(int32_t); 6623 /* insert padding */ 6624 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6625 xcb_buffer_len += xcb_block_len + xcb_pad; 6626 if (0 != xcb_pad) { 6627 xcb_tmp += xcb_pad; 6628 xcb_pad = 0; 6629 } 6630 xcb_block_len = 0; 6631 6632 return xcb_buffer_len; 6633 } 6634 6635 xcb_glx_get_tex_enviv_cookie_t 6636 xcb_glx_get_tex_enviv (xcb_connection_t *c, 6637 xcb_glx_context_tag_t context_tag, 6638 uint32_t target, 6639 uint32_t pname) 6640 { 6641 static const xcb_protocol_request_t xcb_req = { 6642 .count = 2, 6643 .ext = &xcb_glx_id, 6644 .opcode = XCB_GLX_GET_TEX_ENVIV, 6645 .isvoid = 0 6646 }; 6647 6648 struct iovec xcb_parts[4]; 6649 xcb_glx_get_tex_enviv_cookie_t xcb_ret; 6650 xcb_glx_get_tex_enviv_request_t xcb_out; 6651 6652 xcb_out.context_tag = context_tag; 6653 xcb_out.target = target; 6654 xcb_out.pname = pname; 6655 6656 xcb_parts[2].iov_base = (char *) &xcb_out; 6657 xcb_parts[2].iov_len = sizeof(xcb_out); 6658 xcb_parts[3].iov_base = 0; 6659 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6660 6661 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6662 return xcb_ret; 6663 } 6664 6665 xcb_glx_get_tex_enviv_cookie_t 6666 xcb_glx_get_tex_enviv_unchecked (xcb_connection_t *c, 6667 xcb_glx_context_tag_t context_tag, 6668 uint32_t target, 6669 uint32_t pname) 6670 { 6671 static const xcb_protocol_request_t xcb_req = { 6672 .count = 2, 6673 .ext = &xcb_glx_id, 6674 .opcode = XCB_GLX_GET_TEX_ENVIV, 6675 .isvoid = 0 6676 }; 6677 6678 struct iovec xcb_parts[4]; 6679 xcb_glx_get_tex_enviv_cookie_t xcb_ret; 6680 xcb_glx_get_tex_enviv_request_t xcb_out; 6681 6682 xcb_out.context_tag = context_tag; 6683 xcb_out.target = target; 6684 xcb_out.pname = pname; 6685 6686 xcb_parts[2].iov_base = (char *) &xcb_out; 6687 xcb_parts[2].iov_len = sizeof(xcb_out); 6688 xcb_parts[3].iov_base = 0; 6689 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6690 6691 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6692 return xcb_ret; 6693 } 6694 6695 int32_t * 6696 xcb_glx_get_tex_enviv_data (const xcb_glx_get_tex_enviv_reply_t *R) 6697 { 6698 return (int32_t *) (R + 1); 6699 } 6700 6701 int 6702 xcb_glx_get_tex_enviv_data_length (const xcb_glx_get_tex_enviv_reply_t *R) 6703 { 6704 return R->n; 6705 } 6706 6707 xcb_generic_iterator_t 6708 xcb_glx_get_tex_enviv_data_end (const xcb_glx_get_tex_enviv_reply_t *R) 6709 { 6710 xcb_generic_iterator_t i; 6711 i.data = ((int32_t *) (R + 1)) + (R->n); 6712 i.rem = 0; 6713 i.index = (char *) i.data - (char *) R; 6714 return i; 6715 } 6716 6717 xcb_glx_get_tex_enviv_reply_t * 6718 xcb_glx_get_tex_enviv_reply (xcb_connection_t *c, 6719 xcb_glx_get_tex_enviv_cookie_t cookie /**< */, 6720 xcb_generic_error_t **e) 6721 { 6722 return (xcb_glx_get_tex_enviv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6723 } 6724 6725 int 6726 xcb_glx_get_tex_gendv_sizeof (const void *_buffer) 6727 { 6728 char *xcb_tmp = (char *)_buffer; 6729 const xcb_glx_get_tex_gendv_reply_t *_aux = (xcb_glx_get_tex_gendv_reply_t *)_buffer; 6730 unsigned int xcb_buffer_len = 0; 6731 unsigned int xcb_block_len = 0; 6732 unsigned int xcb_pad = 0; 6733 unsigned int xcb_align_to = 0; 6734 6735 6736 xcb_block_len += sizeof(xcb_glx_get_tex_gendv_reply_t); 6737 xcb_tmp += xcb_block_len; 6738 xcb_buffer_len += xcb_block_len; 6739 xcb_block_len = 0; 6740 /* data */ 6741 xcb_block_len += _aux->n * sizeof(xcb_glx_float64_t); 6742 xcb_tmp += xcb_block_len; 6743 xcb_align_to = ALIGNOF(xcb_glx_float64_t); 6744 /* insert padding */ 6745 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6746 xcb_buffer_len += xcb_block_len + xcb_pad; 6747 if (0 != xcb_pad) { 6748 xcb_tmp += xcb_pad; 6749 xcb_pad = 0; 6750 } 6751 xcb_block_len = 0; 6752 6753 return xcb_buffer_len; 6754 } 6755 6756 xcb_glx_get_tex_gendv_cookie_t 6757 xcb_glx_get_tex_gendv (xcb_connection_t *c, 6758 xcb_glx_context_tag_t context_tag, 6759 uint32_t coord, 6760 uint32_t pname) 6761 { 6762 static const xcb_protocol_request_t xcb_req = { 6763 .count = 2, 6764 .ext = &xcb_glx_id, 6765 .opcode = XCB_GLX_GET_TEX_GENDV, 6766 .isvoid = 0 6767 }; 6768 6769 struct iovec xcb_parts[4]; 6770 xcb_glx_get_tex_gendv_cookie_t xcb_ret; 6771 xcb_glx_get_tex_gendv_request_t xcb_out; 6772 6773 xcb_out.context_tag = context_tag; 6774 xcb_out.coord = coord; 6775 xcb_out.pname = pname; 6776 6777 xcb_parts[2].iov_base = (char *) &xcb_out; 6778 xcb_parts[2].iov_len = sizeof(xcb_out); 6779 xcb_parts[3].iov_base = 0; 6780 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6781 6782 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6783 return xcb_ret; 6784 } 6785 6786 xcb_glx_get_tex_gendv_cookie_t 6787 xcb_glx_get_tex_gendv_unchecked (xcb_connection_t *c, 6788 xcb_glx_context_tag_t context_tag, 6789 uint32_t coord, 6790 uint32_t pname) 6791 { 6792 static const xcb_protocol_request_t xcb_req = { 6793 .count = 2, 6794 .ext = &xcb_glx_id, 6795 .opcode = XCB_GLX_GET_TEX_GENDV, 6796 .isvoid = 0 6797 }; 6798 6799 struct iovec xcb_parts[4]; 6800 xcb_glx_get_tex_gendv_cookie_t xcb_ret; 6801 xcb_glx_get_tex_gendv_request_t xcb_out; 6802 6803 xcb_out.context_tag = context_tag; 6804 xcb_out.coord = coord; 6805 xcb_out.pname = pname; 6806 6807 xcb_parts[2].iov_base = (char *) &xcb_out; 6808 xcb_parts[2].iov_len = sizeof(xcb_out); 6809 xcb_parts[3].iov_base = 0; 6810 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6811 6812 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6813 return xcb_ret; 6814 } 6815 6816 xcb_glx_float64_t * 6817 xcb_glx_get_tex_gendv_data (const xcb_glx_get_tex_gendv_reply_t *R) 6818 { 6819 return (xcb_glx_float64_t *) (R + 1); 6820 } 6821 6822 int 6823 xcb_glx_get_tex_gendv_data_length (const xcb_glx_get_tex_gendv_reply_t *R) 6824 { 6825 return R->n; 6826 } 6827 6828 xcb_generic_iterator_t 6829 xcb_glx_get_tex_gendv_data_end (const xcb_glx_get_tex_gendv_reply_t *R) 6830 { 6831 xcb_generic_iterator_t i; 6832 i.data = ((xcb_glx_float64_t *) (R + 1)) + (R->n); 6833 i.rem = 0; 6834 i.index = (char *) i.data - (char *) R; 6835 return i; 6836 } 6837 6838 xcb_glx_get_tex_gendv_reply_t * 6839 xcb_glx_get_tex_gendv_reply (xcb_connection_t *c, 6840 xcb_glx_get_tex_gendv_cookie_t cookie /**< */, 6841 xcb_generic_error_t **e) 6842 { 6843 return (xcb_glx_get_tex_gendv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6844 } 6845 6846 int 6847 xcb_glx_get_tex_genfv_sizeof (const void *_buffer) 6848 { 6849 char *xcb_tmp = (char *)_buffer; 6850 const xcb_glx_get_tex_genfv_reply_t *_aux = (xcb_glx_get_tex_genfv_reply_t *)_buffer; 6851 unsigned int xcb_buffer_len = 0; 6852 unsigned int xcb_block_len = 0; 6853 unsigned int xcb_pad = 0; 6854 unsigned int xcb_align_to = 0; 6855 6856 6857 xcb_block_len += sizeof(xcb_glx_get_tex_genfv_reply_t); 6858 xcb_tmp += xcb_block_len; 6859 xcb_buffer_len += xcb_block_len; 6860 xcb_block_len = 0; 6861 /* data */ 6862 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 6863 xcb_tmp += xcb_block_len; 6864 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 6865 /* insert padding */ 6866 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6867 xcb_buffer_len += xcb_block_len + xcb_pad; 6868 if (0 != xcb_pad) { 6869 xcb_tmp += xcb_pad; 6870 xcb_pad = 0; 6871 } 6872 xcb_block_len = 0; 6873 6874 return xcb_buffer_len; 6875 } 6876 6877 xcb_glx_get_tex_genfv_cookie_t 6878 xcb_glx_get_tex_genfv (xcb_connection_t *c, 6879 xcb_glx_context_tag_t context_tag, 6880 uint32_t coord, 6881 uint32_t pname) 6882 { 6883 static const xcb_protocol_request_t xcb_req = { 6884 .count = 2, 6885 .ext = &xcb_glx_id, 6886 .opcode = XCB_GLX_GET_TEX_GENFV, 6887 .isvoid = 0 6888 }; 6889 6890 struct iovec xcb_parts[4]; 6891 xcb_glx_get_tex_genfv_cookie_t xcb_ret; 6892 xcb_glx_get_tex_genfv_request_t xcb_out; 6893 6894 xcb_out.context_tag = context_tag; 6895 xcb_out.coord = coord; 6896 xcb_out.pname = pname; 6897 6898 xcb_parts[2].iov_base = (char *) &xcb_out; 6899 xcb_parts[2].iov_len = sizeof(xcb_out); 6900 xcb_parts[3].iov_base = 0; 6901 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6902 6903 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6904 return xcb_ret; 6905 } 6906 6907 xcb_glx_get_tex_genfv_cookie_t 6908 xcb_glx_get_tex_genfv_unchecked (xcb_connection_t *c, 6909 xcb_glx_context_tag_t context_tag, 6910 uint32_t coord, 6911 uint32_t pname) 6912 { 6913 static const xcb_protocol_request_t xcb_req = { 6914 .count = 2, 6915 .ext = &xcb_glx_id, 6916 .opcode = XCB_GLX_GET_TEX_GENFV, 6917 .isvoid = 0 6918 }; 6919 6920 struct iovec xcb_parts[4]; 6921 xcb_glx_get_tex_genfv_cookie_t xcb_ret; 6922 xcb_glx_get_tex_genfv_request_t xcb_out; 6923 6924 xcb_out.context_tag = context_tag; 6925 xcb_out.coord = coord; 6926 xcb_out.pname = pname; 6927 6928 xcb_parts[2].iov_base = (char *) &xcb_out; 6929 xcb_parts[2].iov_len = sizeof(xcb_out); 6930 xcb_parts[3].iov_base = 0; 6931 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 6932 6933 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6934 return xcb_ret; 6935 } 6936 6937 xcb_glx_float32_t * 6938 xcb_glx_get_tex_genfv_data (const xcb_glx_get_tex_genfv_reply_t *R) 6939 { 6940 return (xcb_glx_float32_t *) (R + 1); 6941 } 6942 6943 int 6944 xcb_glx_get_tex_genfv_data_length (const xcb_glx_get_tex_genfv_reply_t *R) 6945 { 6946 return R->n; 6947 } 6948 6949 xcb_generic_iterator_t 6950 xcb_glx_get_tex_genfv_data_end (const xcb_glx_get_tex_genfv_reply_t *R) 6951 { 6952 xcb_generic_iterator_t i; 6953 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 6954 i.rem = 0; 6955 i.index = (char *) i.data - (char *) R; 6956 return i; 6957 } 6958 6959 xcb_glx_get_tex_genfv_reply_t * 6960 xcb_glx_get_tex_genfv_reply (xcb_connection_t *c, 6961 xcb_glx_get_tex_genfv_cookie_t cookie /**< */, 6962 xcb_generic_error_t **e) 6963 { 6964 return (xcb_glx_get_tex_genfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6965 } 6966 6967 int 6968 xcb_glx_get_tex_geniv_sizeof (const void *_buffer) 6969 { 6970 char *xcb_tmp = (char *)_buffer; 6971 const xcb_glx_get_tex_geniv_reply_t *_aux = (xcb_glx_get_tex_geniv_reply_t *)_buffer; 6972 unsigned int xcb_buffer_len = 0; 6973 unsigned int xcb_block_len = 0; 6974 unsigned int xcb_pad = 0; 6975 unsigned int xcb_align_to = 0; 6976 6977 6978 xcb_block_len += sizeof(xcb_glx_get_tex_geniv_reply_t); 6979 xcb_tmp += xcb_block_len; 6980 xcb_buffer_len += xcb_block_len; 6981 xcb_block_len = 0; 6982 /* data */ 6983 xcb_block_len += _aux->n * sizeof(int32_t); 6984 xcb_tmp += xcb_block_len; 6985 xcb_align_to = ALIGNOF(int32_t); 6986 /* insert padding */ 6987 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 6988 xcb_buffer_len += xcb_block_len + xcb_pad; 6989 if (0 != xcb_pad) { 6990 xcb_tmp += xcb_pad; 6991 xcb_pad = 0; 6992 } 6993 xcb_block_len = 0; 6994 6995 return xcb_buffer_len; 6996 } 6997 6998 xcb_glx_get_tex_geniv_cookie_t 6999 xcb_glx_get_tex_geniv (xcb_connection_t *c, 7000 xcb_glx_context_tag_t context_tag, 7001 uint32_t coord, 7002 uint32_t pname) 7003 { 7004 static const xcb_protocol_request_t xcb_req = { 7005 .count = 2, 7006 .ext = &xcb_glx_id, 7007 .opcode = XCB_GLX_GET_TEX_GENIV, 7008 .isvoid = 0 7009 }; 7010 7011 struct iovec xcb_parts[4]; 7012 xcb_glx_get_tex_geniv_cookie_t xcb_ret; 7013 xcb_glx_get_tex_geniv_request_t xcb_out; 7014 7015 xcb_out.context_tag = context_tag; 7016 xcb_out.coord = coord; 7017 xcb_out.pname = pname; 7018 7019 xcb_parts[2].iov_base = (char *) &xcb_out; 7020 xcb_parts[2].iov_len = sizeof(xcb_out); 7021 xcb_parts[3].iov_base = 0; 7022 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7023 7024 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7025 return xcb_ret; 7026 } 7027 7028 xcb_glx_get_tex_geniv_cookie_t 7029 xcb_glx_get_tex_geniv_unchecked (xcb_connection_t *c, 7030 xcb_glx_context_tag_t context_tag, 7031 uint32_t coord, 7032 uint32_t pname) 7033 { 7034 static const xcb_protocol_request_t xcb_req = { 7035 .count = 2, 7036 .ext = &xcb_glx_id, 7037 .opcode = XCB_GLX_GET_TEX_GENIV, 7038 .isvoid = 0 7039 }; 7040 7041 struct iovec xcb_parts[4]; 7042 xcb_glx_get_tex_geniv_cookie_t xcb_ret; 7043 xcb_glx_get_tex_geniv_request_t xcb_out; 7044 7045 xcb_out.context_tag = context_tag; 7046 xcb_out.coord = coord; 7047 xcb_out.pname = pname; 7048 7049 xcb_parts[2].iov_base = (char *) &xcb_out; 7050 xcb_parts[2].iov_len = sizeof(xcb_out); 7051 xcb_parts[3].iov_base = 0; 7052 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7053 7054 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7055 return xcb_ret; 7056 } 7057 7058 int32_t * 7059 xcb_glx_get_tex_geniv_data (const xcb_glx_get_tex_geniv_reply_t *R) 7060 { 7061 return (int32_t *) (R + 1); 7062 } 7063 7064 int 7065 xcb_glx_get_tex_geniv_data_length (const xcb_glx_get_tex_geniv_reply_t *R) 7066 { 7067 return R->n; 7068 } 7069 7070 xcb_generic_iterator_t 7071 xcb_glx_get_tex_geniv_data_end (const xcb_glx_get_tex_geniv_reply_t *R) 7072 { 7073 xcb_generic_iterator_t i; 7074 i.data = ((int32_t *) (R + 1)) + (R->n); 7075 i.rem = 0; 7076 i.index = (char *) i.data - (char *) R; 7077 return i; 7078 } 7079 7080 xcb_glx_get_tex_geniv_reply_t * 7081 xcb_glx_get_tex_geniv_reply (xcb_connection_t *c, 7082 xcb_glx_get_tex_geniv_cookie_t cookie /**< */, 7083 xcb_generic_error_t **e) 7084 { 7085 return (xcb_glx_get_tex_geniv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7086 } 7087 7088 int 7089 xcb_glx_get_tex_image_sizeof (const void *_buffer) 7090 { 7091 char *xcb_tmp = (char *)_buffer; 7092 const xcb_glx_get_tex_image_reply_t *_aux = (xcb_glx_get_tex_image_reply_t *)_buffer; 7093 unsigned int xcb_buffer_len = 0; 7094 unsigned int xcb_block_len = 0; 7095 unsigned int xcb_pad = 0; 7096 unsigned int xcb_align_to = 0; 7097 7098 7099 xcb_block_len += sizeof(xcb_glx_get_tex_image_reply_t); 7100 xcb_tmp += xcb_block_len; 7101 xcb_buffer_len += xcb_block_len; 7102 xcb_block_len = 0; 7103 /* data */ 7104 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 7105 xcb_tmp += xcb_block_len; 7106 xcb_align_to = ALIGNOF(uint8_t); 7107 /* insert padding */ 7108 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7109 xcb_buffer_len += xcb_block_len + xcb_pad; 7110 if (0 != xcb_pad) { 7111 xcb_tmp += xcb_pad; 7112 xcb_pad = 0; 7113 } 7114 xcb_block_len = 0; 7115 7116 return xcb_buffer_len; 7117 } 7118 7119 xcb_glx_get_tex_image_cookie_t 7120 xcb_glx_get_tex_image (xcb_connection_t *c, 7121 xcb_glx_context_tag_t context_tag, 7122 uint32_t target, 7123 int32_t level, 7124 uint32_t format, 7125 uint32_t type, 7126 uint8_t swap_bytes) 7127 { 7128 static const xcb_protocol_request_t xcb_req = { 7129 .count = 2, 7130 .ext = &xcb_glx_id, 7131 .opcode = XCB_GLX_GET_TEX_IMAGE, 7132 .isvoid = 0 7133 }; 7134 7135 struct iovec xcb_parts[4]; 7136 xcb_glx_get_tex_image_cookie_t xcb_ret; 7137 xcb_glx_get_tex_image_request_t xcb_out; 7138 7139 xcb_out.context_tag = context_tag; 7140 xcb_out.target = target; 7141 xcb_out.level = level; 7142 xcb_out.format = format; 7143 xcb_out.type = type; 7144 xcb_out.swap_bytes = swap_bytes; 7145 7146 xcb_parts[2].iov_base = (char *) &xcb_out; 7147 xcb_parts[2].iov_len = sizeof(xcb_out); 7148 xcb_parts[3].iov_base = 0; 7149 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7150 7151 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7152 return xcb_ret; 7153 } 7154 7155 xcb_glx_get_tex_image_cookie_t 7156 xcb_glx_get_tex_image_unchecked (xcb_connection_t *c, 7157 xcb_glx_context_tag_t context_tag, 7158 uint32_t target, 7159 int32_t level, 7160 uint32_t format, 7161 uint32_t type, 7162 uint8_t swap_bytes) 7163 { 7164 static const xcb_protocol_request_t xcb_req = { 7165 .count = 2, 7166 .ext = &xcb_glx_id, 7167 .opcode = XCB_GLX_GET_TEX_IMAGE, 7168 .isvoid = 0 7169 }; 7170 7171 struct iovec xcb_parts[4]; 7172 xcb_glx_get_tex_image_cookie_t xcb_ret; 7173 xcb_glx_get_tex_image_request_t xcb_out; 7174 7175 xcb_out.context_tag = context_tag; 7176 xcb_out.target = target; 7177 xcb_out.level = level; 7178 xcb_out.format = format; 7179 xcb_out.type = type; 7180 xcb_out.swap_bytes = swap_bytes; 7181 7182 xcb_parts[2].iov_base = (char *) &xcb_out; 7183 xcb_parts[2].iov_len = sizeof(xcb_out); 7184 xcb_parts[3].iov_base = 0; 7185 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7186 7187 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7188 return xcb_ret; 7189 } 7190 7191 uint8_t * 7192 xcb_glx_get_tex_image_data (const xcb_glx_get_tex_image_reply_t *R) 7193 { 7194 return (uint8_t *) (R + 1); 7195 } 7196 7197 int 7198 xcb_glx_get_tex_image_data_length (const xcb_glx_get_tex_image_reply_t *R) 7199 { 7200 return (R->length * 4); 7201 } 7202 7203 xcb_generic_iterator_t 7204 xcb_glx_get_tex_image_data_end (const xcb_glx_get_tex_image_reply_t *R) 7205 { 7206 xcb_generic_iterator_t i; 7207 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 7208 i.rem = 0; 7209 i.index = (char *) i.data - (char *) R; 7210 return i; 7211 } 7212 7213 xcb_glx_get_tex_image_reply_t * 7214 xcb_glx_get_tex_image_reply (xcb_connection_t *c, 7215 xcb_glx_get_tex_image_cookie_t cookie /**< */, 7216 xcb_generic_error_t **e) 7217 { 7218 return (xcb_glx_get_tex_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7219 } 7220 7221 int 7222 xcb_glx_get_tex_parameterfv_sizeof (const void *_buffer) 7223 { 7224 char *xcb_tmp = (char *)_buffer; 7225 const xcb_glx_get_tex_parameterfv_reply_t *_aux = (xcb_glx_get_tex_parameterfv_reply_t *)_buffer; 7226 unsigned int xcb_buffer_len = 0; 7227 unsigned int xcb_block_len = 0; 7228 unsigned int xcb_pad = 0; 7229 unsigned int xcb_align_to = 0; 7230 7231 7232 xcb_block_len += sizeof(xcb_glx_get_tex_parameterfv_reply_t); 7233 xcb_tmp += xcb_block_len; 7234 xcb_buffer_len += xcb_block_len; 7235 xcb_block_len = 0; 7236 /* data */ 7237 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 7238 xcb_tmp += xcb_block_len; 7239 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 7240 /* insert padding */ 7241 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7242 xcb_buffer_len += xcb_block_len + xcb_pad; 7243 if (0 != xcb_pad) { 7244 xcb_tmp += xcb_pad; 7245 xcb_pad = 0; 7246 } 7247 xcb_block_len = 0; 7248 7249 return xcb_buffer_len; 7250 } 7251 7252 xcb_glx_get_tex_parameterfv_cookie_t 7253 xcb_glx_get_tex_parameterfv (xcb_connection_t *c, 7254 xcb_glx_context_tag_t context_tag, 7255 uint32_t target, 7256 uint32_t pname) 7257 { 7258 static const xcb_protocol_request_t xcb_req = { 7259 .count = 2, 7260 .ext = &xcb_glx_id, 7261 .opcode = XCB_GLX_GET_TEX_PARAMETERFV, 7262 .isvoid = 0 7263 }; 7264 7265 struct iovec xcb_parts[4]; 7266 xcb_glx_get_tex_parameterfv_cookie_t xcb_ret; 7267 xcb_glx_get_tex_parameterfv_request_t xcb_out; 7268 7269 xcb_out.context_tag = context_tag; 7270 xcb_out.target = target; 7271 xcb_out.pname = pname; 7272 7273 xcb_parts[2].iov_base = (char *) &xcb_out; 7274 xcb_parts[2].iov_len = sizeof(xcb_out); 7275 xcb_parts[3].iov_base = 0; 7276 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7277 7278 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7279 return xcb_ret; 7280 } 7281 7282 xcb_glx_get_tex_parameterfv_cookie_t 7283 xcb_glx_get_tex_parameterfv_unchecked (xcb_connection_t *c, 7284 xcb_glx_context_tag_t context_tag, 7285 uint32_t target, 7286 uint32_t pname) 7287 { 7288 static const xcb_protocol_request_t xcb_req = { 7289 .count = 2, 7290 .ext = &xcb_glx_id, 7291 .opcode = XCB_GLX_GET_TEX_PARAMETERFV, 7292 .isvoid = 0 7293 }; 7294 7295 struct iovec xcb_parts[4]; 7296 xcb_glx_get_tex_parameterfv_cookie_t xcb_ret; 7297 xcb_glx_get_tex_parameterfv_request_t xcb_out; 7298 7299 xcb_out.context_tag = context_tag; 7300 xcb_out.target = target; 7301 xcb_out.pname = pname; 7302 7303 xcb_parts[2].iov_base = (char *) &xcb_out; 7304 xcb_parts[2].iov_len = sizeof(xcb_out); 7305 xcb_parts[3].iov_base = 0; 7306 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7307 7308 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7309 return xcb_ret; 7310 } 7311 7312 xcb_glx_float32_t * 7313 xcb_glx_get_tex_parameterfv_data (const xcb_glx_get_tex_parameterfv_reply_t *R) 7314 { 7315 return (xcb_glx_float32_t *) (R + 1); 7316 } 7317 7318 int 7319 xcb_glx_get_tex_parameterfv_data_length (const xcb_glx_get_tex_parameterfv_reply_t *R) 7320 { 7321 return R->n; 7322 } 7323 7324 xcb_generic_iterator_t 7325 xcb_glx_get_tex_parameterfv_data_end (const xcb_glx_get_tex_parameterfv_reply_t *R) 7326 { 7327 xcb_generic_iterator_t i; 7328 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 7329 i.rem = 0; 7330 i.index = (char *) i.data - (char *) R; 7331 return i; 7332 } 7333 7334 xcb_glx_get_tex_parameterfv_reply_t * 7335 xcb_glx_get_tex_parameterfv_reply (xcb_connection_t *c, 7336 xcb_glx_get_tex_parameterfv_cookie_t cookie /**< */, 7337 xcb_generic_error_t **e) 7338 { 7339 return (xcb_glx_get_tex_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7340 } 7341 7342 int 7343 xcb_glx_get_tex_parameteriv_sizeof (const void *_buffer) 7344 { 7345 char *xcb_tmp = (char *)_buffer; 7346 const xcb_glx_get_tex_parameteriv_reply_t *_aux = (xcb_glx_get_tex_parameteriv_reply_t *)_buffer; 7347 unsigned int xcb_buffer_len = 0; 7348 unsigned int xcb_block_len = 0; 7349 unsigned int xcb_pad = 0; 7350 unsigned int xcb_align_to = 0; 7351 7352 7353 xcb_block_len += sizeof(xcb_glx_get_tex_parameteriv_reply_t); 7354 xcb_tmp += xcb_block_len; 7355 xcb_buffer_len += xcb_block_len; 7356 xcb_block_len = 0; 7357 /* data */ 7358 xcb_block_len += _aux->n * sizeof(int32_t); 7359 xcb_tmp += xcb_block_len; 7360 xcb_align_to = ALIGNOF(int32_t); 7361 /* insert padding */ 7362 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7363 xcb_buffer_len += xcb_block_len + xcb_pad; 7364 if (0 != xcb_pad) { 7365 xcb_tmp += xcb_pad; 7366 xcb_pad = 0; 7367 } 7368 xcb_block_len = 0; 7369 7370 return xcb_buffer_len; 7371 } 7372 7373 xcb_glx_get_tex_parameteriv_cookie_t 7374 xcb_glx_get_tex_parameteriv (xcb_connection_t *c, 7375 xcb_glx_context_tag_t context_tag, 7376 uint32_t target, 7377 uint32_t pname) 7378 { 7379 static const xcb_protocol_request_t xcb_req = { 7380 .count = 2, 7381 .ext = &xcb_glx_id, 7382 .opcode = XCB_GLX_GET_TEX_PARAMETERIV, 7383 .isvoid = 0 7384 }; 7385 7386 struct iovec xcb_parts[4]; 7387 xcb_glx_get_tex_parameteriv_cookie_t xcb_ret; 7388 xcb_glx_get_tex_parameteriv_request_t xcb_out; 7389 7390 xcb_out.context_tag = context_tag; 7391 xcb_out.target = target; 7392 xcb_out.pname = pname; 7393 7394 xcb_parts[2].iov_base = (char *) &xcb_out; 7395 xcb_parts[2].iov_len = sizeof(xcb_out); 7396 xcb_parts[3].iov_base = 0; 7397 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7398 7399 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7400 return xcb_ret; 7401 } 7402 7403 xcb_glx_get_tex_parameteriv_cookie_t 7404 xcb_glx_get_tex_parameteriv_unchecked (xcb_connection_t *c, 7405 xcb_glx_context_tag_t context_tag, 7406 uint32_t target, 7407 uint32_t pname) 7408 { 7409 static const xcb_protocol_request_t xcb_req = { 7410 .count = 2, 7411 .ext = &xcb_glx_id, 7412 .opcode = XCB_GLX_GET_TEX_PARAMETERIV, 7413 .isvoid = 0 7414 }; 7415 7416 struct iovec xcb_parts[4]; 7417 xcb_glx_get_tex_parameteriv_cookie_t xcb_ret; 7418 xcb_glx_get_tex_parameteriv_request_t xcb_out; 7419 7420 xcb_out.context_tag = context_tag; 7421 xcb_out.target = target; 7422 xcb_out.pname = pname; 7423 7424 xcb_parts[2].iov_base = (char *) &xcb_out; 7425 xcb_parts[2].iov_len = sizeof(xcb_out); 7426 xcb_parts[3].iov_base = 0; 7427 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7428 7429 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7430 return xcb_ret; 7431 } 7432 7433 int32_t * 7434 xcb_glx_get_tex_parameteriv_data (const xcb_glx_get_tex_parameteriv_reply_t *R) 7435 { 7436 return (int32_t *) (R + 1); 7437 } 7438 7439 int 7440 xcb_glx_get_tex_parameteriv_data_length (const xcb_glx_get_tex_parameteriv_reply_t *R) 7441 { 7442 return R->n; 7443 } 7444 7445 xcb_generic_iterator_t 7446 xcb_glx_get_tex_parameteriv_data_end (const xcb_glx_get_tex_parameteriv_reply_t *R) 7447 { 7448 xcb_generic_iterator_t i; 7449 i.data = ((int32_t *) (R + 1)) + (R->n); 7450 i.rem = 0; 7451 i.index = (char *) i.data - (char *) R; 7452 return i; 7453 } 7454 7455 xcb_glx_get_tex_parameteriv_reply_t * 7456 xcb_glx_get_tex_parameteriv_reply (xcb_connection_t *c, 7457 xcb_glx_get_tex_parameteriv_cookie_t cookie /**< */, 7458 xcb_generic_error_t **e) 7459 { 7460 return (xcb_glx_get_tex_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7461 } 7462 7463 int 7464 xcb_glx_get_tex_level_parameterfv_sizeof (const void *_buffer) 7465 { 7466 char *xcb_tmp = (char *)_buffer; 7467 const xcb_glx_get_tex_level_parameterfv_reply_t *_aux = (xcb_glx_get_tex_level_parameterfv_reply_t *)_buffer; 7468 unsigned int xcb_buffer_len = 0; 7469 unsigned int xcb_block_len = 0; 7470 unsigned int xcb_pad = 0; 7471 unsigned int xcb_align_to = 0; 7472 7473 7474 xcb_block_len += sizeof(xcb_glx_get_tex_level_parameterfv_reply_t); 7475 xcb_tmp += xcb_block_len; 7476 xcb_buffer_len += xcb_block_len; 7477 xcb_block_len = 0; 7478 /* data */ 7479 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 7480 xcb_tmp += xcb_block_len; 7481 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 7482 /* insert padding */ 7483 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7484 xcb_buffer_len += xcb_block_len + xcb_pad; 7485 if (0 != xcb_pad) { 7486 xcb_tmp += xcb_pad; 7487 xcb_pad = 0; 7488 } 7489 xcb_block_len = 0; 7490 7491 return xcb_buffer_len; 7492 } 7493 7494 xcb_glx_get_tex_level_parameterfv_cookie_t 7495 xcb_glx_get_tex_level_parameterfv (xcb_connection_t *c, 7496 xcb_glx_context_tag_t context_tag, 7497 uint32_t target, 7498 int32_t level, 7499 uint32_t pname) 7500 { 7501 static const xcb_protocol_request_t xcb_req = { 7502 .count = 2, 7503 .ext = &xcb_glx_id, 7504 .opcode = XCB_GLX_GET_TEX_LEVEL_PARAMETERFV, 7505 .isvoid = 0 7506 }; 7507 7508 struct iovec xcb_parts[4]; 7509 xcb_glx_get_tex_level_parameterfv_cookie_t xcb_ret; 7510 xcb_glx_get_tex_level_parameterfv_request_t xcb_out; 7511 7512 xcb_out.context_tag = context_tag; 7513 xcb_out.target = target; 7514 xcb_out.level = level; 7515 xcb_out.pname = pname; 7516 7517 xcb_parts[2].iov_base = (char *) &xcb_out; 7518 xcb_parts[2].iov_len = sizeof(xcb_out); 7519 xcb_parts[3].iov_base = 0; 7520 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7521 7522 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7523 return xcb_ret; 7524 } 7525 7526 xcb_glx_get_tex_level_parameterfv_cookie_t 7527 xcb_glx_get_tex_level_parameterfv_unchecked (xcb_connection_t *c, 7528 xcb_glx_context_tag_t context_tag, 7529 uint32_t target, 7530 int32_t level, 7531 uint32_t pname) 7532 { 7533 static const xcb_protocol_request_t xcb_req = { 7534 .count = 2, 7535 .ext = &xcb_glx_id, 7536 .opcode = XCB_GLX_GET_TEX_LEVEL_PARAMETERFV, 7537 .isvoid = 0 7538 }; 7539 7540 struct iovec xcb_parts[4]; 7541 xcb_glx_get_tex_level_parameterfv_cookie_t xcb_ret; 7542 xcb_glx_get_tex_level_parameterfv_request_t xcb_out; 7543 7544 xcb_out.context_tag = context_tag; 7545 xcb_out.target = target; 7546 xcb_out.level = level; 7547 xcb_out.pname = pname; 7548 7549 xcb_parts[2].iov_base = (char *) &xcb_out; 7550 xcb_parts[2].iov_len = sizeof(xcb_out); 7551 xcb_parts[3].iov_base = 0; 7552 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7553 7554 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7555 return xcb_ret; 7556 } 7557 7558 xcb_glx_float32_t * 7559 xcb_glx_get_tex_level_parameterfv_data (const xcb_glx_get_tex_level_parameterfv_reply_t *R) 7560 { 7561 return (xcb_glx_float32_t *) (R + 1); 7562 } 7563 7564 int 7565 xcb_glx_get_tex_level_parameterfv_data_length (const xcb_glx_get_tex_level_parameterfv_reply_t *R) 7566 { 7567 return R->n; 7568 } 7569 7570 xcb_generic_iterator_t 7571 xcb_glx_get_tex_level_parameterfv_data_end (const xcb_glx_get_tex_level_parameterfv_reply_t *R) 7572 { 7573 xcb_generic_iterator_t i; 7574 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 7575 i.rem = 0; 7576 i.index = (char *) i.data - (char *) R; 7577 return i; 7578 } 7579 7580 xcb_glx_get_tex_level_parameterfv_reply_t * 7581 xcb_glx_get_tex_level_parameterfv_reply (xcb_connection_t *c, 7582 xcb_glx_get_tex_level_parameterfv_cookie_t cookie /**< */, 7583 xcb_generic_error_t **e) 7584 { 7585 return (xcb_glx_get_tex_level_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7586 } 7587 7588 int 7589 xcb_glx_get_tex_level_parameteriv_sizeof (const void *_buffer) 7590 { 7591 char *xcb_tmp = (char *)_buffer; 7592 const xcb_glx_get_tex_level_parameteriv_reply_t *_aux = (xcb_glx_get_tex_level_parameteriv_reply_t *)_buffer; 7593 unsigned int xcb_buffer_len = 0; 7594 unsigned int xcb_block_len = 0; 7595 unsigned int xcb_pad = 0; 7596 unsigned int xcb_align_to = 0; 7597 7598 7599 xcb_block_len += sizeof(xcb_glx_get_tex_level_parameteriv_reply_t); 7600 xcb_tmp += xcb_block_len; 7601 xcb_buffer_len += xcb_block_len; 7602 xcb_block_len = 0; 7603 /* data */ 7604 xcb_block_len += _aux->n * sizeof(int32_t); 7605 xcb_tmp += xcb_block_len; 7606 xcb_align_to = ALIGNOF(int32_t); 7607 /* insert padding */ 7608 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7609 xcb_buffer_len += xcb_block_len + xcb_pad; 7610 if (0 != xcb_pad) { 7611 xcb_tmp += xcb_pad; 7612 xcb_pad = 0; 7613 } 7614 xcb_block_len = 0; 7615 7616 return xcb_buffer_len; 7617 } 7618 7619 xcb_glx_get_tex_level_parameteriv_cookie_t 7620 xcb_glx_get_tex_level_parameteriv (xcb_connection_t *c, 7621 xcb_glx_context_tag_t context_tag, 7622 uint32_t target, 7623 int32_t level, 7624 uint32_t pname) 7625 { 7626 static const xcb_protocol_request_t xcb_req = { 7627 .count = 2, 7628 .ext = &xcb_glx_id, 7629 .opcode = XCB_GLX_GET_TEX_LEVEL_PARAMETERIV, 7630 .isvoid = 0 7631 }; 7632 7633 struct iovec xcb_parts[4]; 7634 xcb_glx_get_tex_level_parameteriv_cookie_t xcb_ret; 7635 xcb_glx_get_tex_level_parameteriv_request_t xcb_out; 7636 7637 xcb_out.context_tag = context_tag; 7638 xcb_out.target = target; 7639 xcb_out.level = level; 7640 xcb_out.pname = pname; 7641 7642 xcb_parts[2].iov_base = (char *) &xcb_out; 7643 xcb_parts[2].iov_len = sizeof(xcb_out); 7644 xcb_parts[3].iov_base = 0; 7645 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7646 7647 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7648 return xcb_ret; 7649 } 7650 7651 xcb_glx_get_tex_level_parameteriv_cookie_t 7652 xcb_glx_get_tex_level_parameteriv_unchecked (xcb_connection_t *c, 7653 xcb_glx_context_tag_t context_tag, 7654 uint32_t target, 7655 int32_t level, 7656 uint32_t pname) 7657 { 7658 static const xcb_protocol_request_t xcb_req = { 7659 .count = 2, 7660 .ext = &xcb_glx_id, 7661 .opcode = XCB_GLX_GET_TEX_LEVEL_PARAMETERIV, 7662 .isvoid = 0 7663 }; 7664 7665 struct iovec xcb_parts[4]; 7666 xcb_glx_get_tex_level_parameteriv_cookie_t xcb_ret; 7667 xcb_glx_get_tex_level_parameteriv_request_t xcb_out; 7668 7669 xcb_out.context_tag = context_tag; 7670 xcb_out.target = target; 7671 xcb_out.level = level; 7672 xcb_out.pname = pname; 7673 7674 xcb_parts[2].iov_base = (char *) &xcb_out; 7675 xcb_parts[2].iov_len = sizeof(xcb_out); 7676 xcb_parts[3].iov_base = 0; 7677 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7678 7679 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7680 return xcb_ret; 7681 } 7682 7683 int32_t * 7684 xcb_glx_get_tex_level_parameteriv_data (const xcb_glx_get_tex_level_parameteriv_reply_t *R) 7685 { 7686 return (int32_t *) (R + 1); 7687 } 7688 7689 int 7690 xcb_glx_get_tex_level_parameteriv_data_length (const xcb_glx_get_tex_level_parameteriv_reply_t *R) 7691 { 7692 return R->n; 7693 } 7694 7695 xcb_generic_iterator_t 7696 xcb_glx_get_tex_level_parameteriv_data_end (const xcb_glx_get_tex_level_parameteriv_reply_t *R) 7697 { 7698 xcb_generic_iterator_t i; 7699 i.data = ((int32_t *) (R + 1)) + (R->n); 7700 i.rem = 0; 7701 i.index = (char *) i.data - (char *) R; 7702 return i; 7703 } 7704 7705 xcb_glx_get_tex_level_parameteriv_reply_t * 7706 xcb_glx_get_tex_level_parameteriv_reply (xcb_connection_t *c, 7707 xcb_glx_get_tex_level_parameteriv_cookie_t cookie /**< */, 7708 xcb_generic_error_t **e) 7709 { 7710 return (xcb_glx_get_tex_level_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7711 } 7712 7713 xcb_glx_is_enabled_cookie_t 7714 xcb_glx_is_enabled (xcb_connection_t *c, 7715 xcb_glx_context_tag_t context_tag, 7716 uint32_t capability) 7717 { 7718 static const xcb_protocol_request_t xcb_req = { 7719 .count = 2, 7720 .ext = &xcb_glx_id, 7721 .opcode = XCB_GLX_IS_ENABLED, 7722 .isvoid = 0 7723 }; 7724 7725 struct iovec xcb_parts[4]; 7726 xcb_glx_is_enabled_cookie_t xcb_ret; 7727 xcb_glx_is_enabled_request_t xcb_out; 7728 7729 xcb_out.context_tag = context_tag; 7730 xcb_out.capability = capability; 7731 7732 xcb_parts[2].iov_base = (char *) &xcb_out; 7733 xcb_parts[2].iov_len = sizeof(xcb_out); 7734 xcb_parts[3].iov_base = 0; 7735 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7736 7737 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7738 return xcb_ret; 7739 } 7740 7741 xcb_glx_is_enabled_cookie_t 7742 xcb_glx_is_enabled_unchecked (xcb_connection_t *c, 7743 xcb_glx_context_tag_t context_tag, 7744 uint32_t capability) 7745 { 7746 static const xcb_protocol_request_t xcb_req = { 7747 .count = 2, 7748 .ext = &xcb_glx_id, 7749 .opcode = XCB_GLX_IS_ENABLED, 7750 .isvoid = 0 7751 }; 7752 7753 struct iovec xcb_parts[4]; 7754 xcb_glx_is_enabled_cookie_t xcb_ret; 7755 xcb_glx_is_enabled_request_t xcb_out; 7756 7757 xcb_out.context_tag = context_tag; 7758 xcb_out.capability = capability; 7759 7760 xcb_parts[2].iov_base = (char *) &xcb_out; 7761 xcb_parts[2].iov_len = sizeof(xcb_out); 7762 xcb_parts[3].iov_base = 0; 7763 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7764 7765 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7766 return xcb_ret; 7767 } 7768 7769 xcb_glx_is_enabled_reply_t * 7770 xcb_glx_is_enabled_reply (xcb_connection_t *c, 7771 xcb_glx_is_enabled_cookie_t cookie /**< */, 7772 xcb_generic_error_t **e) 7773 { 7774 return (xcb_glx_is_enabled_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7775 } 7776 7777 xcb_glx_is_list_cookie_t 7778 xcb_glx_is_list (xcb_connection_t *c, 7779 xcb_glx_context_tag_t context_tag, 7780 uint32_t list) 7781 { 7782 static const xcb_protocol_request_t xcb_req = { 7783 .count = 2, 7784 .ext = &xcb_glx_id, 7785 .opcode = XCB_GLX_IS_LIST, 7786 .isvoid = 0 7787 }; 7788 7789 struct iovec xcb_parts[4]; 7790 xcb_glx_is_list_cookie_t xcb_ret; 7791 xcb_glx_is_list_request_t xcb_out; 7792 7793 xcb_out.context_tag = context_tag; 7794 xcb_out.list = list; 7795 7796 xcb_parts[2].iov_base = (char *) &xcb_out; 7797 xcb_parts[2].iov_len = sizeof(xcb_out); 7798 xcb_parts[3].iov_base = 0; 7799 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7800 7801 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7802 return xcb_ret; 7803 } 7804 7805 xcb_glx_is_list_cookie_t 7806 xcb_glx_is_list_unchecked (xcb_connection_t *c, 7807 xcb_glx_context_tag_t context_tag, 7808 uint32_t list) 7809 { 7810 static const xcb_protocol_request_t xcb_req = { 7811 .count = 2, 7812 .ext = &xcb_glx_id, 7813 .opcode = XCB_GLX_IS_LIST, 7814 .isvoid = 0 7815 }; 7816 7817 struct iovec xcb_parts[4]; 7818 xcb_glx_is_list_cookie_t xcb_ret; 7819 xcb_glx_is_list_request_t xcb_out; 7820 7821 xcb_out.context_tag = context_tag; 7822 xcb_out.list = list; 7823 7824 xcb_parts[2].iov_base = (char *) &xcb_out; 7825 xcb_parts[2].iov_len = sizeof(xcb_out); 7826 xcb_parts[3].iov_base = 0; 7827 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7828 7829 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7830 return xcb_ret; 7831 } 7832 7833 xcb_glx_is_list_reply_t * 7834 xcb_glx_is_list_reply (xcb_connection_t *c, 7835 xcb_glx_is_list_cookie_t cookie /**< */, 7836 xcb_generic_error_t **e) 7837 { 7838 return (xcb_glx_is_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7839 } 7840 7841 xcb_void_cookie_t 7842 xcb_glx_flush_checked (xcb_connection_t *c, 7843 xcb_glx_context_tag_t context_tag) 7844 { 7845 static const xcb_protocol_request_t xcb_req = { 7846 .count = 2, 7847 .ext = &xcb_glx_id, 7848 .opcode = XCB_GLX_FLUSH, 7849 .isvoid = 1 7850 }; 7851 7852 struct iovec xcb_parts[4]; 7853 xcb_void_cookie_t xcb_ret; 7854 xcb_glx_flush_request_t xcb_out; 7855 7856 xcb_out.context_tag = context_tag; 7857 7858 xcb_parts[2].iov_base = (char *) &xcb_out; 7859 xcb_parts[2].iov_len = sizeof(xcb_out); 7860 xcb_parts[3].iov_base = 0; 7861 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7862 7863 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7864 return xcb_ret; 7865 } 7866 7867 xcb_void_cookie_t 7868 xcb_glx_flush (xcb_connection_t *c, 7869 xcb_glx_context_tag_t context_tag) 7870 { 7871 static const xcb_protocol_request_t xcb_req = { 7872 .count = 2, 7873 .ext = &xcb_glx_id, 7874 .opcode = XCB_GLX_FLUSH, 7875 .isvoid = 1 7876 }; 7877 7878 struct iovec xcb_parts[4]; 7879 xcb_void_cookie_t xcb_ret; 7880 xcb_glx_flush_request_t xcb_out; 7881 7882 xcb_out.context_tag = context_tag; 7883 7884 xcb_parts[2].iov_base = (char *) &xcb_out; 7885 xcb_parts[2].iov_len = sizeof(xcb_out); 7886 xcb_parts[3].iov_base = 0; 7887 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7888 7889 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7890 return xcb_ret; 7891 } 7892 7893 int 7894 xcb_glx_are_textures_resident_sizeof (const void *_buffer) 7895 { 7896 char *xcb_tmp = (char *)_buffer; 7897 const xcb_glx_are_textures_resident_request_t *_aux = (xcb_glx_are_textures_resident_request_t *)_buffer; 7898 unsigned int xcb_buffer_len = 0; 7899 unsigned int xcb_block_len = 0; 7900 unsigned int xcb_pad = 0; 7901 unsigned int xcb_align_to = 0; 7902 7903 7904 xcb_block_len += sizeof(xcb_glx_are_textures_resident_request_t); 7905 xcb_tmp += xcb_block_len; 7906 xcb_buffer_len += xcb_block_len; 7907 xcb_block_len = 0; 7908 /* textures */ 7909 xcb_block_len += _aux->n * sizeof(uint32_t); 7910 xcb_tmp += xcb_block_len; 7911 xcb_align_to = ALIGNOF(uint32_t); 7912 /* insert padding */ 7913 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 7914 xcb_buffer_len += xcb_block_len + xcb_pad; 7915 if (0 != xcb_pad) { 7916 xcb_tmp += xcb_pad; 7917 xcb_pad = 0; 7918 } 7919 xcb_block_len = 0; 7920 7921 return xcb_buffer_len; 7922 } 7923 7924 xcb_glx_are_textures_resident_cookie_t 7925 xcb_glx_are_textures_resident (xcb_connection_t *c, 7926 xcb_glx_context_tag_t context_tag, 7927 int32_t n, 7928 const uint32_t *textures) 7929 { 7930 static const xcb_protocol_request_t xcb_req = { 7931 .count = 4, 7932 .ext = &xcb_glx_id, 7933 .opcode = XCB_GLX_ARE_TEXTURES_RESIDENT, 7934 .isvoid = 0 7935 }; 7936 7937 struct iovec xcb_parts[6]; 7938 xcb_glx_are_textures_resident_cookie_t xcb_ret; 7939 xcb_glx_are_textures_resident_request_t xcb_out; 7940 7941 xcb_out.context_tag = context_tag; 7942 xcb_out.n = n; 7943 7944 xcb_parts[2].iov_base = (char *) &xcb_out; 7945 xcb_parts[2].iov_len = sizeof(xcb_out); 7946 xcb_parts[3].iov_base = 0; 7947 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7948 /* uint32_t textures */ 7949 xcb_parts[4].iov_base = (char *) textures; 7950 xcb_parts[4].iov_len = n * sizeof(xcb_glx_bool32_t); 7951 xcb_parts[5].iov_base = 0; 7952 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7953 7954 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7955 return xcb_ret; 7956 } 7957 7958 xcb_glx_are_textures_resident_cookie_t 7959 xcb_glx_are_textures_resident_unchecked (xcb_connection_t *c, 7960 xcb_glx_context_tag_t context_tag, 7961 int32_t n, 7962 const uint32_t *textures) 7963 { 7964 static const xcb_protocol_request_t xcb_req = { 7965 .count = 4, 7966 .ext = &xcb_glx_id, 7967 .opcode = XCB_GLX_ARE_TEXTURES_RESIDENT, 7968 .isvoid = 0 7969 }; 7970 7971 struct iovec xcb_parts[6]; 7972 xcb_glx_are_textures_resident_cookie_t xcb_ret; 7973 xcb_glx_are_textures_resident_request_t xcb_out; 7974 7975 xcb_out.context_tag = context_tag; 7976 xcb_out.n = n; 7977 7978 xcb_parts[2].iov_base = (char *) &xcb_out; 7979 xcb_parts[2].iov_len = sizeof(xcb_out); 7980 xcb_parts[3].iov_base = 0; 7981 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 7982 /* uint32_t textures */ 7983 xcb_parts[4].iov_base = (char *) textures; 7984 xcb_parts[4].iov_len = n * sizeof(xcb_glx_bool32_t); 7985 xcb_parts[5].iov_base = 0; 7986 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 7987 7988 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7989 return xcb_ret; 7990 } 7991 7992 uint8_t * 7993 xcb_glx_are_textures_resident_data (const xcb_glx_are_textures_resident_reply_t *R) 7994 { 7995 return (uint8_t *) (R + 1); 7996 } 7997 7998 int 7999 xcb_glx_are_textures_resident_data_length (const xcb_glx_are_textures_resident_reply_t *R) 8000 { 8001 return (R->length * 4); 8002 } 8003 8004 xcb_generic_iterator_t 8005 xcb_glx_are_textures_resident_data_end (const xcb_glx_are_textures_resident_reply_t *R) 8006 { 8007 xcb_generic_iterator_t i; 8008 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 8009 i.rem = 0; 8010 i.index = (char *) i.data - (char *) R; 8011 return i; 8012 } 8013 8014 xcb_glx_are_textures_resident_reply_t * 8015 xcb_glx_are_textures_resident_reply (xcb_connection_t *c, 8016 xcb_glx_are_textures_resident_cookie_t cookie /**< */, 8017 xcb_generic_error_t **e) 8018 { 8019 return (xcb_glx_are_textures_resident_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8020 } 8021 8022 int 8023 xcb_glx_delete_textures_sizeof (const void *_buffer) 8024 { 8025 char *xcb_tmp = (char *)_buffer; 8026 const xcb_glx_delete_textures_request_t *_aux = (xcb_glx_delete_textures_request_t *)_buffer; 8027 unsigned int xcb_buffer_len = 0; 8028 unsigned int xcb_block_len = 0; 8029 unsigned int xcb_pad = 0; 8030 unsigned int xcb_align_to = 0; 8031 8032 8033 xcb_block_len += sizeof(xcb_glx_delete_textures_request_t); 8034 xcb_tmp += xcb_block_len; 8035 xcb_buffer_len += xcb_block_len; 8036 xcb_block_len = 0; 8037 /* textures */ 8038 xcb_block_len += _aux->n * sizeof(uint32_t); 8039 xcb_tmp += xcb_block_len; 8040 xcb_align_to = ALIGNOF(uint32_t); 8041 /* insert padding */ 8042 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8043 xcb_buffer_len += xcb_block_len + xcb_pad; 8044 if (0 != xcb_pad) { 8045 xcb_tmp += xcb_pad; 8046 xcb_pad = 0; 8047 } 8048 xcb_block_len = 0; 8049 8050 return xcb_buffer_len; 8051 } 8052 8053 xcb_void_cookie_t 8054 xcb_glx_delete_textures_checked (xcb_connection_t *c, 8055 xcb_glx_context_tag_t context_tag, 8056 int32_t n, 8057 const uint32_t *textures) 8058 { 8059 static const xcb_protocol_request_t xcb_req = { 8060 .count = 4, 8061 .ext = &xcb_glx_id, 8062 .opcode = XCB_GLX_DELETE_TEXTURES, 8063 .isvoid = 1 8064 }; 8065 8066 struct iovec xcb_parts[6]; 8067 xcb_void_cookie_t xcb_ret; 8068 xcb_glx_delete_textures_request_t xcb_out; 8069 8070 xcb_out.context_tag = context_tag; 8071 xcb_out.n = n; 8072 8073 xcb_parts[2].iov_base = (char *) &xcb_out; 8074 xcb_parts[2].iov_len = sizeof(xcb_out); 8075 xcb_parts[3].iov_base = 0; 8076 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8077 /* uint32_t textures */ 8078 xcb_parts[4].iov_base = (char *) textures; 8079 xcb_parts[4].iov_len = n * sizeof(uint32_t); 8080 xcb_parts[5].iov_base = 0; 8081 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8082 8083 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8084 return xcb_ret; 8085 } 8086 8087 xcb_void_cookie_t 8088 xcb_glx_delete_textures (xcb_connection_t *c, 8089 xcb_glx_context_tag_t context_tag, 8090 int32_t n, 8091 const uint32_t *textures) 8092 { 8093 static const xcb_protocol_request_t xcb_req = { 8094 .count = 4, 8095 .ext = &xcb_glx_id, 8096 .opcode = XCB_GLX_DELETE_TEXTURES, 8097 .isvoid = 1 8098 }; 8099 8100 struct iovec xcb_parts[6]; 8101 xcb_void_cookie_t xcb_ret; 8102 xcb_glx_delete_textures_request_t xcb_out; 8103 8104 xcb_out.context_tag = context_tag; 8105 xcb_out.n = n; 8106 8107 xcb_parts[2].iov_base = (char *) &xcb_out; 8108 xcb_parts[2].iov_len = sizeof(xcb_out); 8109 xcb_parts[3].iov_base = 0; 8110 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8111 /* uint32_t textures */ 8112 xcb_parts[4].iov_base = (char *) textures; 8113 xcb_parts[4].iov_len = n * sizeof(uint32_t); 8114 xcb_parts[5].iov_base = 0; 8115 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 8116 8117 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8118 return xcb_ret; 8119 } 8120 8121 uint32_t * 8122 xcb_glx_delete_textures_textures (const xcb_glx_delete_textures_request_t *R) 8123 { 8124 return (uint32_t *) (R + 1); 8125 } 8126 8127 int 8128 xcb_glx_delete_textures_textures_length (const xcb_glx_delete_textures_request_t *R) 8129 { 8130 return R->n; 8131 } 8132 8133 xcb_generic_iterator_t 8134 xcb_glx_delete_textures_textures_end (const xcb_glx_delete_textures_request_t *R) 8135 { 8136 xcb_generic_iterator_t i; 8137 i.data = ((uint32_t *) (R + 1)) + (R->n); 8138 i.rem = 0; 8139 i.index = (char *) i.data - (char *) R; 8140 return i; 8141 } 8142 8143 int 8144 xcb_glx_gen_textures_sizeof (const void *_buffer) 8145 { 8146 char *xcb_tmp = (char *)_buffer; 8147 const xcb_glx_gen_textures_reply_t *_aux = (xcb_glx_gen_textures_reply_t *)_buffer; 8148 unsigned int xcb_buffer_len = 0; 8149 unsigned int xcb_block_len = 0; 8150 unsigned int xcb_pad = 0; 8151 unsigned int xcb_align_to = 0; 8152 8153 8154 xcb_block_len += sizeof(xcb_glx_gen_textures_reply_t); 8155 xcb_tmp += xcb_block_len; 8156 xcb_buffer_len += xcb_block_len; 8157 xcb_block_len = 0; 8158 /* data */ 8159 xcb_block_len += _aux->length * sizeof(uint32_t); 8160 xcb_tmp += xcb_block_len; 8161 xcb_align_to = ALIGNOF(uint32_t); 8162 /* insert padding */ 8163 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8164 xcb_buffer_len += xcb_block_len + xcb_pad; 8165 if (0 != xcb_pad) { 8166 xcb_tmp += xcb_pad; 8167 xcb_pad = 0; 8168 } 8169 xcb_block_len = 0; 8170 8171 return xcb_buffer_len; 8172 } 8173 8174 xcb_glx_gen_textures_cookie_t 8175 xcb_glx_gen_textures (xcb_connection_t *c, 8176 xcb_glx_context_tag_t context_tag, 8177 int32_t n) 8178 { 8179 static const xcb_protocol_request_t xcb_req = { 8180 .count = 2, 8181 .ext = &xcb_glx_id, 8182 .opcode = XCB_GLX_GEN_TEXTURES, 8183 .isvoid = 0 8184 }; 8185 8186 struct iovec xcb_parts[4]; 8187 xcb_glx_gen_textures_cookie_t xcb_ret; 8188 xcb_glx_gen_textures_request_t xcb_out; 8189 8190 xcb_out.context_tag = context_tag; 8191 xcb_out.n = n; 8192 8193 xcb_parts[2].iov_base = (char *) &xcb_out; 8194 xcb_parts[2].iov_len = sizeof(xcb_out); 8195 xcb_parts[3].iov_base = 0; 8196 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8197 8198 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8199 return xcb_ret; 8200 } 8201 8202 xcb_glx_gen_textures_cookie_t 8203 xcb_glx_gen_textures_unchecked (xcb_connection_t *c, 8204 xcb_glx_context_tag_t context_tag, 8205 int32_t n) 8206 { 8207 static const xcb_protocol_request_t xcb_req = { 8208 .count = 2, 8209 .ext = &xcb_glx_id, 8210 .opcode = XCB_GLX_GEN_TEXTURES, 8211 .isvoid = 0 8212 }; 8213 8214 struct iovec xcb_parts[4]; 8215 xcb_glx_gen_textures_cookie_t xcb_ret; 8216 xcb_glx_gen_textures_request_t xcb_out; 8217 8218 xcb_out.context_tag = context_tag; 8219 xcb_out.n = n; 8220 8221 xcb_parts[2].iov_base = (char *) &xcb_out; 8222 xcb_parts[2].iov_len = sizeof(xcb_out); 8223 xcb_parts[3].iov_base = 0; 8224 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8225 8226 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8227 return xcb_ret; 8228 } 8229 8230 uint32_t * 8231 xcb_glx_gen_textures_data (const xcb_glx_gen_textures_reply_t *R) 8232 { 8233 return (uint32_t *) (R + 1); 8234 } 8235 8236 int 8237 xcb_glx_gen_textures_data_length (const xcb_glx_gen_textures_reply_t *R) 8238 { 8239 return R->length; 8240 } 8241 8242 xcb_generic_iterator_t 8243 xcb_glx_gen_textures_data_end (const xcb_glx_gen_textures_reply_t *R) 8244 { 8245 xcb_generic_iterator_t i; 8246 i.data = ((uint32_t *) (R + 1)) + (R->length); 8247 i.rem = 0; 8248 i.index = (char *) i.data - (char *) R; 8249 return i; 8250 } 8251 8252 xcb_glx_gen_textures_reply_t * 8253 xcb_glx_gen_textures_reply (xcb_connection_t *c, 8254 xcb_glx_gen_textures_cookie_t cookie /**< */, 8255 xcb_generic_error_t **e) 8256 { 8257 return (xcb_glx_gen_textures_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8258 } 8259 8260 xcb_glx_is_texture_cookie_t 8261 xcb_glx_is_texture (xcb_connection_t *c, 8262 xcb_glx_context_tag_t context_tag, 8263 uint32_t texture) 8264 { 8265 static const xcb_protocol_request_t xcb_req = { 8266 .count = 2, 8267 .ext = &xcb_glx_id, 8268 .opcode = XCB_GLX_IS_TEXTURE, 8269 .isvoid = 0 8270 }; 8271 8272 struct iovec xcb_parts[4]; 8273 xcb_glx_is_texture_cookie_t xcb_ret; 8274 xcb_glx_is_texture_request_t xcb_out; 8275 8276 xcb_out.context_tag = context_tag; 8277 xcb_out.texture = texture; 8278 8279 xcb_parts[2].iov_base = (char *) &xcb_out; 8280 xcb_parts[2].iov_len = sizeof(xcb_out); 8281 xcb_parts[3].iov_base = 0; 8282 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8283 8284 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8285 return xcb_ret; 8286 } 8287 8288 xcb_glx_is_texture_cookie_t 8289 xcb_glx_is_texture_unchecked (xcb_connection_t *c, 8290 xcb_glx_context_tag_t context_tag, 8291 uint32_t texture) 8292 { 8293 static const xcb_protocol_request_t xcb_req = { 8294 .count = 2, 8295 .ext = &xcb_glx_id, 8296 .opcode = XCB_GLX_IS_TEXTURE, 8297 .isvoid = 0 8298 }; 8299 8300 struct iovec xcb_parts[4]; 8301 xcb_glx_is_texture_cookie_t xcb_ret; 8302 xcb_glx_is_texture_request_t xcb_out; 8303 8304 xcb_out.context_tag = context_tag; 8305 xcb_out.texture = texture; 8306 8307 xcb_parts[2].iov_base = (char *) &xcb_out; 8308 xcb_parts[2].iov_len = sizeof(xcb_out); 8309 xcb_parts[3].iov_base = 0; 8310 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8311 8312 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8313 return xcb_ret; 8314 } 8315 8316 xcb_glx_is_texture_reply_t * 8317 xcb_glx_is_texture_reply (xcb_connection_t *c, 8318 xcb_glx_is_texture_cookie_t cookie /**< */, 8319 xcb_generic_error_t **e) 8320 { 8321 return (xcb_glx_is_texture_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8322 } 8323 8324 int 8325 xcb_glx_get_color_table_sizeof (const void *_buffer) 8326 { 8327 char *xcb_tmp = (char *)_buffer; 8328 const xcb_glx_get_color_table_reply_t *_aux = (xcb_glx_get_color_table_reply_t *)_buffer; 8329 unsigned int xcb_buffer_len = 0; 8330 unsigned int xcb_block_len = 0; 8331 unsigned int xcb_pad = 0; 8332 unsigned int xcb_align_to = 0; 8333 8334 8335 xcb_block_len += sizeof(xcb_glx_get_color_table_reply_t); 8336 xcb_tmp += xcb_block_len; 8337 xcb_buffer_len += xcb_block_len; 8338 xcb_block_len = 0; 8339 /* data */ 8340 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 8341 xcb_tmp += xcb_block_len; 8342 xcb_align_to = ALIGNOF(uint8_t); 8343 /* insert padding */ 8344 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8345 xcb_buffer_len += xcb_block_len + xcb_pad; 8346 if (0 != xcb_pad) { 8347 xcb_tmp += xcb_pad; 8348 xcb_pad = 0; 8349 } 8350 xcb_block_len = 0; 8351 8352 return xcb_buffer_len; 8353 } 8354 8355 xcb_glx_get_color_table_cookie_t 8356 xcb_glx_get_color_table (xcb_connection_t *c, 8357 xcb_glx_context_tag_t context_tag, 8358 uint32_t target, 8359 uint32_t format, 8360 uint32_t type, 8361 uint8_t swap_bytes) 8362 { 8363 static const xcb_protocol_request_t xcb_req = { 8364 .count = 2, 8365 .ext = &xcb_glx_id, 8366 .opcode = XCB_GLX_GET_COLOR_TABLE, 8367 .isvoid = 0 8368 }; 8369 8370 struct iovec xcb_parts[4]; 8371 xcb_glx_get_color_table_cookie_t xcb_ret; 8372 xcb_glx_get_color_table_request_t xcb_out; 8373 8374 xcb_out.context_tag = context_tag; 8375 xcb_out.target = target; 8376 xcb_out.format = format; 8377 xcb_out.type = type; 8378 xcb_out.swap_bytes = swap_bytes; 8379 8380 xcb_parts[2].iov_base = (char *) &xcb_out; 8381 xcb_parts[2].iov_len = sizeof(xcb_out); 8382 xcb_parts[3].iov_base = 0; 8383 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8384 8385 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8386 return xcb_ret; 8387 } 8388 8389 xcb_glx_get_color_table_cookie_t 8390 xcb_glx_get_color_table_unchecked (xcb_connection_t *c, 8391 xcb_glx_context_tag_t context_tag, 8392 uint32_t target, 8393 uint32_t format, 8394 uint32_t type, 8395 uint8_t swap_bytes) 8396 { 8397 static const xcb_protocol_request_t xcb_req = { 8398 .count = 2, 8399 .ext = &xcb_glx_id, 8400 .opcode = XCB_GLX_GET_COLOR_TABLE, 8401 .isvoid = 0 8402 }; 8403 8404 struct iovec xcb_parts[4]; 8405 xcb_glx_get_color_table_cookie_t xcb_ret; 8406 xcb_glx_get_color_table_request_t xcb_out; 8407 8408 xcb_out.context_tag = context_tag; 8409 xcb_out.target = target; 8410 xcb_out.format = format; 8411 xcb_out.type = type; 8412 xcb_out.swap_bytes = swap_bytes; 8413 8414 xcb_parts[2].iov_base = (char *) &xcb_out; 8415 xcb_parts[2].iov_len = sizeof(xcb_out); 8416 xcb_parts[3].iov_base = 0; 8417 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8418 8419 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8420 return xcb_ret; 8421 } 8422 8423 uint8_t * 8424 xcb_glx_get_color_table_data (const xcb_glx_get_color_table_reply_t *R) 8425 { 8426 return (uint8_t *) (R + 1); 8427 } 8428 8429 int 8430 xcb_glx_get_color_table_data_length (const xcb_glx_get_color_table_reply_t *R) 8431 { 8432 return (R->length * 4); 8433 } 8434 8435 xcb_generic_iterator_t 8436 xcb_glx_get_color_table_data_end (const xcb_glx_get_color_table_reply_t *R) 8437 { 8438 xcb_generic_iterator_t i; 8439 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 8440 i.rem = 0; 8441 i.index = (char *) i.data - (char *) R; 8442 return i; 8443 } 8444 8445 xcb_glx_get_color_table_reply_t * 8446 xcb_glx_get_color_table_reply (xcb_connection_t *c, 8447 xcb_glx_get_color_table_cookie_t cookie /**< */, 8448 xcb_generic_error_t **e) 8449 { 8450 return (xcb_glx_get_color_table_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8451 } 8452 8453 int 8454 xcb_glx_get_color_table_parameterfv_sizeof (const void *_buffer) 8455 { 8456 char *xcb_tmp = (char *)_buffer; 8457 const xcb_glx_get_color_table_parameterfv_reply_t *_aux = (xcb_glx_get_color_table_parameterfv_reply_t *)_buffer; 8458 unsigned int xcb_buffer_len = 0; 8459 unsigned int xcb_block_len = 0; 8460 unsigned int xcb_pad = 0; 8461 unsigned int xcb_align_to = 0; 8462 8463 8464 xcb_block_len += sizeof(xcb_glx_get_color_table_parameterfv_reply_t); 8465 xcb_tmp += xcb_block_len; 8466 xcb_buffer_len += xcb_block_len; 8467 xcb_block_len = 0; 8468 /* data */ 8469 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 8470 xcb_tmp += xcb_block_len; 8471 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 8472 /* insert padding */ 8473 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8474 xcb_buffer_len += xcb_block_len + xcb_pad; 8475 if (0 != xcb_pad) { 8476 xcb_tmp += xcb_pad; 8477 xcb_pad = 0; 8478 } 8479 xcb_block_len = 0; 8480 8481 return xcb_buffer_len; 8482 } 8483 8484 xcb_glx_get_color_table_parameterfv_cookie_t 8485 xcb_glx_get_color_table_parameterfv (xcb_connection_t *c, 8486 xcb_glx_context_tag_t context_tag, 8487 uint32_t target, 8488 uint32_t pname) 8489 { 8490 static const xcb_protocol_request_t xcb_req = { 8491 .count = 2, 8492 .ext = &xcb_glx_id, 8493 .opcode = XCB_GLX_GET_COLOR_TABLE_PARAMETERFV, 8494 .isvoid = 0 8495 }; 8496 8497 struct iovec xcb_parts[4]; 8498 xcb_glx_get_color_table_parameterfv_cookie_t xcb_ret; 8499 xcb_glx_get_color_table_parameterfv_request_t xcb_out; 8500 8501 xcb_out.context_tag = context_tag; 8502 xcb_out.target = target; 8503 xcb_out.pname = pname; 8504 8505 xcb_parts[2].iov_base = (char *) &xcb_out; 8506 xcb_parts[2].iov_len = sizeof(xcb_out); 8507 xcb_parts[3].iov_base = 0; 8508 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8509 8510 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8511 return xcb_ret; 8512 } 8513 8514 xcb_glx_get_color_table_parameterfv_cookie_t 8515 xcb_glx_get_color_table_parameterfv_unchecked (xcb_connection_t *c, 8516 xcb_glx_context_tag_t context_tag, 8517 uint32_t target, 8518 uint32_t pname) 8519 { 8520 static const xcb_protocol_request_t xcb_req = { 8521 .count = 2, 8522 .ext = &xcb_glx_id, 8523 .opcode = XCB_GLX_GET_COLOR_TABLE_PARAMETERFV, 8524 .isvoid = 0 8525 }; 8526 8527 struct iovec xcb_parts[4]; 8528 xcb_glx_get_color_table_parameterfv_cookie_t xcb_ret; 8529 xcb_glx_get_color_table_parameterfv_request_t xcb_out; 8530 8531 xcb_out.context_tag = context_tag; 8532 xcb_out.target = target; 8533 xcb_out.pname = pname; 8534 8535 xcb_parts[2].iov_base = (char *) &xcb_out; 8536 xcb_parts[2].iov_len = sizeof(xcb_out); 8537 xcb_parts[3].iov_base = 0; 8538 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8539 8540 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8541 return xcb_ret; 8542 } 8543 8544 xcb_glx_float32_t * 8545 xcb_glx_get_color_table_parameterfv_data (const xcb_glx_get_color_table_parameterfv_reply_t *R) 8546 { 8547 return (xcb_glx_float32_t *) (R + 1); 8548 } 8549 8550 int 8551 xcb_glx_get_color_table_parameterfv_data_length (const xcb_glx_get_color_table_parameterfv_reply_t *R) 8552 { 8553 return R->n; 8554 } 8555 8556 xcb_generic_iterator_t 8557 xcb_glx_get_color_table_parameterfv_data_end (const xcb_glx_get_color_table_parameterfv_reply_t *R) 8558 { 8559 xcb_generic_iterator_t i; 8560 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 8561 i.rem = 0; 8562 i.index = (char *) i.data - (char *) R; 8563 return i; 8564 } 8565 8566 xcb_glx_get_color_table_parameterfv_reply_t * 8567 xcb_glx_get_color_table_parameterfv_reply (xcb_connection_t *c, 8568 xcb_glx_get_color_table_parameterfv_cookie_t cookie /**< */, 8569 xcb_generic_error_t **e) 8570 { 8571 return (xcb_glx_get_color_table_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8572 } 8573 8574 int 8575 xcb_glx_get_color_table_parameteriv_sizeof (const void *_buffer) 8576 { 8577 char *xcb_tmp = (char *)_buffer; 8578 const xcb_glx_get_color_table_parameteriv_reply_t *_aux = (xcb_glx_get_color_table_parameteriv_reply_t *)_buffer; 8579 unsigned int xcb_buffer_len = 0; 8580 unsigned int xcb_block_len = 0; 8581 unsigned int xcb_pad = 0; 8582 unsigned int xcb_align_to = 0; 8583 8584 8585 xcb_block_len += sizeof(xcb_glx_get_color_table_parameteriv_reply_t); 8586 xcb_tmp += xcb_block_len; 8587 xcb_buffer_len += xcb_block_len; 8588 xcb_block_len = 0; 8589 /* data */ 8590 xcb_block_len += _aux->n * sizeof(int32_t); 8591 xcb_tmp += xcb_block_len; 8592 xcb_align_to = ALIGNOF(int32_t); 8593 /* insert padding */ 8594 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8595 xcb_buffer_len += xcb_block_len + xcb_pad; 8596 if (0 != xcb_pad) { 8597 xcb_tmp += xcb_pad; 8598 xcb_pad = 0; 8599 } 8600 xcb_block_len = 0; 8601 8602 return xcb_buffer_len; 8603 } 8604 8605 xcb_glx_get_color_table_parameteriv_cookie_t 8606 xcb_glx_get_color_table_parameteriv (xcb_connection_t *c, 8607 xcb_glx_context_tag_t context_tag, 8608 uint32_t target, 8609 uint32_t pname) 8610 { 8611 static const xcb_protocol_request_t xcb_req = { 8612 .count = 2, 8613 .ext = &xcb_glx_id, 8614 .opcode = XCB_GLX_GET_COLOR_TABLE_PARAMETERIV, 8615 .isvoid = 0 8616 }; 8617 8618 struct iovec xcb_parts[4]; 8619 xcb_glx_get_color_table_parameteriv_cookie_t xcb_ret; 8620 xcb_glx_get_color_table_parameteriv_request_t xcb_out; 8621 8622 xcb_out.context_tag = context_tag; 8623 xcb_out.target = target; 8624 xcb_out.pname = pname; 8625 8626 xcb_parts[2].iov_base = (char *) &xcb_out; 8627 xcb_parts[2].iov_len = sizeof(xcb_out); 8628 xcb_parts[3].iov_base = 0; 8629 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8630 8631 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8632 return xcb_ret; 8633 } 8634 8635 xcb_glx_get_color_table_parameteriv_cookie_t 8636 xcb_glx_get_color_table_parameteriv_unchecked (xcb_connection_t *c, 8637 xcb_glx_context_tag_t context_tag, 8638 uint32_t target, 8639 uint32_t pname) 8640 { 8641 static const xcb_protocol_request_t xcb_req = { 8642 .count = 2, 8643 .ext = &xcb_glx_id, 8644 .opcode = XCB_GLX_GET_COLOR_TABLE_PARAMETERIV, 8645 .isvoid = 0 8646 }; 8647 8648 struct iovec xcb_parts[4]; 8649 xcb_glx_get_color_table_parameteriv_cookie_t xcb_ret; 8650 xcb_glx_get_color_table_parameteriv_request_t xcb_out; 8651 8652 xcb_out.context_tag = context_tag; 8653 xcb_out.target = target; 8654 xcb_out.pname = pname; 8655 8656 xcb_parts[2].iov_base = (char *) &xcb_out; 8657 xcb_parts[2].iov_len = sizeof(xcb_out); 8658 xcb_parts[3].iov_base = 0; 8659 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8660 8661 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8662 return xcb_ret; 8663 } 8664 8665 int32_t * 8666 xcb_glx_get_color_table_parameteriv_data (const xcb_glx_get_color_table_parameteriv_reply_t *R) 8667 { 8668 return (int32_t *) (R + 1); 8669 } 8670 8671 int 8672 xcb_glx_get_color_table_parameteriv_data_length (const xcb_glx_get_color_table_parameteriv_reply_t *R) 8673 { 8674 return R->n; 8675 } 8676 8677 xcb_generic_iterator_t 8678 xcb_glx_get_color_table_parameteriv_data_end (const xcb_glx_get_color_table_parameteriv_reply_t *R) 8679 { 8680 xcb_generic_iterator_t i; 8681 i.data = ((int32_t *) (R + 1)) + (R->n); 8682 i.rem = 0; 8683 i.index = (char *) i.data - (char *) R; 8684 return i; 8685 } 8686 8687 xcb_glx_get_color_table_parameteriv_reply_t * 8688 xcb_glx_get_color_table_parameteriv_reply (xcb_connection_t *c, 8689 xcb_glx_get_color_table_parameteriv_cookie_t cookie /**< */, 8690 xcb_generic_error_t **e) 8691 { 8692 return (xcb_glx_get_color_table_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8693 } 8694 8695 int 8696 xcb_glx_get_convolution_filter_sizeof (const void *_buffer) 8697 { 8698 char *xcb_tmp = (char *)_buffer; 8699 const xcb_glx_get_convolution_filter_reply_t *_aux = (xcb_glx_get_convolution_filter_reply_t *)_buffer; 8700 unsigned int xcb_buffer_len = 0; 8701 unsigned int xcb_block_len = 0; 8702 unsigned int xcb_pad = 0; 8703 unsigned int xcb_align_to = 0; 8704 8705 8706 xcb_block_len += sizeof(xcb_glx_get_convolution_filter_reply_t); 8707 xcb_tmp += xcb_block_len; 8708 xcb_buffer_len += xcb_block_len; 8709 xcb_block_len = 0; 8710 /* data */ 8711 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 8712 xcb_tmp += xcb_block_len; 8713 xcb_align_to = ALIGNOF(uint8_t); 8714 /* insert padding */ 8715 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8716 xcb_buffer_len += xcb_block_len + xcb_pad; 8717 if (0 != xcb_pad) { 8718 xcb_tmp += xcb_pad; 8719 xcb_pad = 0; 8720 } 8721 xcb_block_len = 0; 8722 8723 return xcb_buffer_len; 8724 } 8725 8726 xcb_glx_get_convolution_filter_cookie_t 8727 xcb_glx_get_convolution_filter (xcb_connection_t *c, 8728 xcb_glx_context_tag_t context_tag, 8729 uint32_t target, 8730 uint32_t format, 8731 uint32_t type, 8732 uint8_t swap_bytes) 8733 { 8734 static const xcb_protocol_request_t xcb_req = { 8735 .count = 2, 8736 .ext = &xcb_glx_id, 8737 .opcode = XCB_GLX_GET_CONVOLUTION_FILTER, 8738 .isvoid = 0 8739 }; 8740 8741 struct iovec xcb_parts[4]; 8742 xcb_glx_get_convolution_filter_cookie_t xcb_ret; 8743 xcb_glx_get_convolution_filter_request_t xcb_out; 8744 8745 xcb_out.context_tag = context_tag; 8746 xcb_out.target = target; 8747 xcb_out.format = format; 8748 xcb_out.type = type; 8749 xcb_out.swap_bytes = swap_bytes; 8750 8751 xcb_parts[2].iov_base = (char *) &xcb_out; 8752 xcb_parts[2].iov_len = sizeof(xcb_out); 8753 xcb_parts[3].iov_base = 0; 8754 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8755 8756 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8757 return xcb_ret; 8758 } 8759 8760 xcb_glx_get_convolution_filter_cookie_t 8761 xcb_glx_get_convolution_filter_unchecked (xcb_connection_t *c, 8762 xcb_glx_context_tag_t context_tag, 8763 uint32_t target, 8764 uint32_t format, 8765 uint32_t type, 8766 uint8_t swap_bytes) 8767 { 8768 static const xcb_protocol_request_t xcb_req = { 8769 .count = 2, 8770 .ext = &xcb_glx_id, 8771 .opcode = XCB_GLX_GET_CONVOLUTION_FILTER, 8772 .isvoid = 0 8773 }; 8774 8775 struct iovec xcb_parts[4]; 8776 xcb_glx_get_convolution_filter_cookie_t xcb_ret; 8777 xcb_glx_get_convolution_filter_request_t xcb_out; 8778 8779 xcb_out.context_tag = context_tag; 8780 xcb_out.target = target; 8781 xcb_out.format = format; 8782 xcb_out.type = type; 8783 xcb_out.swap_bytes = swap_bytes; 8784 8785 xcb_parts[2].iov_base = (char *) &xcb_out; 8786 xcb_parts[2].iov_len = sizeof(xcb_out); 8787 xcb_parts[3].iov_base = 0; 8788 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8789 8790 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8791 return xcb_ret; 8792 } 8793 8794 uint8_t * 8795 xcb_glx_get_convolution_filter_data (const xcb_glx_get_convolution_filter_reply_t *R) 8796 { 8797 return (uint8_t *) (R + 1); 8798 } 8799 8800 int 8801 xcb_glx_get_convolution_filter_data_length (const xcb_glx_get_convolution_filter_reply_t *R) 8802 { 8803 return (R->length * 4); 8804 } 8805 8806 xcb_generic_iterator_t 8807 xcb_glx_get_convolution_filter_data_end (const xcb_glx_get_convolution_filter_reply_t *R) 8808 { 8809 xcb_generic_iterator_t i; 8810 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 8811 i.rem = 0; 8812 i.index = (char *) i.data - (char *) R; 8813 return i; 8814 } 8815 8816 xcb_glx_get_convolution_filter_reply_t * 8817 xcb_glx_get_convolution_filter_reply (xcb_connection_t *c, 8818 xcb_glx_get_convolution_filter_cookie_t cookie /**< */, 8819 xcb_generic_error_t **e) 8820 { 8821 return (xcb_glx_get_convolution_filter_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8822 } 8823 8824 int 8825 xcb_glx_get_convolution_parameterfv_sizeof (const void *_buffer) 8826 { 8827 char *xcb_tmp = (char *)_buffer; 8828 const xcb_glx_get_convolution_parameterfv_reply_t *_aux = (xcb_glx_get_convolution_parameterfv_reply_t *)_buffer; 8829 unsigned int xcb_buffer_len = 0; 8830 unsigned int xcb_block_len = 0; 8831 unsigned int xcb_pad = 0; 8832 unsigned int xcb_align_to = 0; 8833 8834 8835 xcb_block_len += sizeof(xcb_glx_get_convolution_parameterfv_reply_t); 8836 xcb_tmp += xcb_block_len; 8837 xcb_buffer_len += xcb_block_len; 8838 xcb_block_len = 0; 8839 /* data */ 8840 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 8841 xcb_tmp += xcb_block_len; 8842 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 8843 /* insert padding */ 8844 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8845 xcb_buffer_len += xcb_block_len + xcb_pad; 8846 if (0 != xcb_pad) { 8847 xcb_tmp += xcb_pad; 8848 xcb_pad = 0; 8849 } 8850 xcb_block_len = 0; 8851 8852 return xcb_buffer_len; 8853 } 8854 8855 xcb_glx_get_convolution_parameterfv_cookie_t 8856 xcb_glx_get_convolution_parameterfv (xcb_connection_t *c, 8857 xcb_glx_context_tag_t context_tag, 8858 uint32_t target, 8859 uint32_t pname) 8860 { 8861 static const xcb_protocol_request_t xcb_req = { 8862 .count = 2, 8863 .ext = &xcb_glx_id, 8864 .opcode = XCB_GLX_GET_CONVOLUTION_PARAMETERFV, 8865 .isvoid = 0 8866 }; 8867 8868 struct iovec xcb_parts[4]; 8869 xcb_glx_get_convolution_parameterfv_cookie_t xcb_ret; 8870 xcb_glx_get_convolution_parameterfv_request_t xcb_out; 8871 8872 xcb_out.context_tag = context_tag; 8873 xcb_out.target = target; 8874 xcb_out.pname = pname; 8875 8876 xcb_parts[2].iov_base = (char *) &xcb_out; 8877 xcb_parts[2].iov_len = sizeof(xcb_out); 8878 xcb_parts[3].iov_base = 0; 8879 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8880 8881 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8882 return xcb_ret; 8883 } 8884 8885 xcb_glx_get_convolution_parameterfv_cookie_t 8886 xcb_glx_get_convolution_parameterfv_unchecked (xcb_connection_t *c, 8887 xcb_glx_context_tag_t context_tag, 8888 uint32_t target, 8889 uint32_t pname) 8890 { 8891 static const xcb_protocol_request_t xcb_req = { 8892 .count = 2, 8893 .ext = &xcb_glx_id, 8894 .opcode = XCB_GLX_GET_CONVOLUTION_PARAMETERFV, 8895 .isvoid = 0 8896 }; 8897 8898 struct iovec xcb_parts[4]; 8899 xcb_glx_get_convolution_parameterfv_cookie_t xcb_ret; 8900 xcb_glx_get_convolution_parameterfv_request_t xcb_out; 8901 8902 xcb_out.context_tag = context_tag; 8903 xcb_out.target = target; 8904 xcb_out.pname = pname; 8905 8906 xcb_parts[2].iov_base = (char *) &xcb_out; 8907 xcb_parts[2].iov_len = sizeof(xcb_out); 8908 xcb_parts[3].iov_base = 0; 8909 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 8910 8911 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8912 return xcb_ret; 8913 } 8914 8915 xcb_glx_float32_t * 8916 xcb_glx_get_convolution_parameterfv_data (const xcb_glx_get_convolution_parameterfv_reply_t *R) 8917 { 8918 return (xcb_glx_float32_t *) (R + 1); 8919 } 8920 8921 int 8922 xcb_glx_get_convolution_parameterfv_data_length (const xcb_glx_get_convolution_parameterfv_reply_t *R) 8923 { 8924 return R->n; 8925 } 8926 8927 xcb_generic_iterator_t 8928 xcb_glx_get_convolution_parameterfv_data_end (const xcb_glx_get_convolution_parameterfv_reply_t *R) 8929 { 8930 xcb_generic_iterator_t i; 8931 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 8932 i.rem = 0; 8933 i.index = (char *) i.data - (char *) R; 8934 return i; 8935 } 8936 8937 xcb_glx_get_convolution_parameterfv_reply_t * 8938 xcb_glx_get_convolution_parameterfv_reply (xcb_connection_t *c, 8939 xcb_glx_get_convolution_parameterfv_cookie_t cookie /**< */, 8940 xcb_generic_error_t **e) 8941 { 8942 return (xcb_glx_get_convolution_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 8943 } 8944 8945 int 8946 xcb_glx_get_convolution_parameteriv_sizeof (const void *_buffer) 8947 { 8948 char *xcb_tmp = (char *)_buffer; 8949 const xcb_glx_get_convolution_parameteriv_reply_t *_aux = (xcb_glx_get_convolution_parameteriv_reply_t *)_buffer; 8950 unsigned int xcb_buffer_len = 0; 8951 unsigned int xcb_block_len = 0; 8952 unsigned int xcb_pad = 0; 8953 unsigned int xcb_align_to = 0; 8954 8955 8956 xcb_block_len += sizeof(xcb_glx_get_convolution_parameteriv_reply_t); 8957 xcb_tmp += xcb_block_len; 8958 xcb_buffer_len += xcb_block_len; 8959 xcb_block_len = 0; 8960 /* data */ 8961 xcb_block_len += _aux->n * sizeof(int32_t); 8962 xcb_tmp += xcb_block_len; 8963 xcb_align_to = ALIGNOF(int32_t); 8964 /* insert padding */ 8965 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 8966 xcb_buffer_len += xcb_block_len + xcb_pad; 8967 if (0 != xcb_pad) { 8968 xcb_tmp += xcb_pad; 8969 xcb_pad = 0; 8970 } 8971 xcb_block_len = 0; 8972 8973 return xcb_buffer_len; 8974 } 8975 8976 xcb_glx_get_convolution_parameteriv_cookie_t 8977 xcb_glx_get_convolution_parameteriv (xcb_connection_t *c, 8978 xcb_glx_context_tag_t context_tag, 8979 uint32_t target, 8980 uint32_t pname) 8981 { 8982 static const xcb_protocol_request_t xcb_req = { 8983 .count = 2, 8984 .ext = &xcb_glx_id, 8985 .opcode = XCB_GLX_GET_CONVOLUTION_PARAMETERIV, 8986 .isvoid = 0 8987 }; 8988 8989 struct iovec xcb_parts[4]; 8990 xcb_glx_get_convolution_parameteriv_cookie_t xcb_ret; 8991 xcb_glx_get_convolution_parameteriv_request_t xcb_out; 8992 8993 xcb_out.context_tag = context_tag; 8994 xcb_out.target = target; 8995 xcb_out.pname = pname; 8996 8997 xcb_parts[2].iov_base = (char *) &xcb_out; 8998 xcb_parts[2].iov_len = sizeof(xcb_out); 8999 xcb_parts[3].iov_base = 0; 9000 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9001 9002 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9003 return xcb_ret; 9004 } 9005 9006 xcb_glx_get_convolution_parameteriv_cookie_t 9007 xcb_glx_get_convolution_parameteriv_unchecked (xcb_connection_t *c, 9008 xcb_glx_context_tag_t context_tag, 9009 uint32_t target, 9010 uint32_t pname) 9011 { 9012 static const xcb_protocol_request_t xcb_req = { 9013 .count = 2, 9014 .ext = &xcb_glx_id, 9015 .opcode = XCB_GLX_GET_CONVOLUTION_PARAMETERIV, 9016 .isvoid = 0 9017 }; 9018 9019 struct iovec xcb_parts[4]; 9020 xcb_glx_get_convolution_parameteriv_cookie_t xcb_ret; 9021 xcb_glx_get_convolution_parameteriv_request_t xcb_out; 9022 9023 xcb_out.context_tag = context_tag; 9024 xcb_out.target = target; 9025 xcb_out.pname = pname; 9026 9027 xcb_parts[2].iov_base = (char *) &xcb_out; 9028 xcb_parts[2].iov_len = sizeof(xcb_out); 9029 xcb_parts[3].iov_base = 0; 9030 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9031 9032 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9033 return xcb_ret; 9034 } 9035 9036 int32_t * 9037 xcb_glx_get_convolution_parameteriv_data (const xcb_glx_get_convolution_parameteriv_reply_t *R) 9038 { 9039 return (int32_t *) (R + 1); 9040 } 9041 9042 int 9043 xcb_glx_get_convolution_parameteriv_data_length (const xcb_glx_get_convolution_parameteriv_reply_t *R) 9044 { 9045 return R->n; 9046 } 9047 9048 xcb_generic_iterator_t 9049 xcb_glx_get_convolution_parameteriv_data_end (const xcb_glx_get_convolution_parameteriv_reply_t *R) 9050 { 9051 xcb_generic_iterator_t i; 9052 i.data = ((int32_t *) (R + 1)) + (R->n); 9053 i.rem = 0; 9054 i.index = (char *) i.data - (char *) R; 9055 return i; 9056 } 9057 9058 xcb_glx_get_convolution_parameteriv_reply_t * 9059 xcb_glx_get_convolution_parameteriv_reply (xcb_connection_t *c, 9060 xcb_glx_get_convolution_parameteriv_cookie_t cookie /**< */, 9061 xcb_generic_error_t **e) 9062 { 9063 return (xcb_glx_get_convolution_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9064 } 9065 9066 int 9067 xcb_glx_get_separable_filter_sizeof (const void *_buffer) 9068 { 9069 char *xcb_tmp = (char *)_buffer; 9070 const xcb_glx_get_separable_filter_reply_t *_aux = (xcb_glx_get_separable_filter_reply_t *)_buffer; 9071 unsigned int xcb_buffer_len = 0; 9072 unsigned int xcb_block_len = 0; 9073 unsigned int xcb_pad = 0; 9074 unsigned int xcb_align_to = 0; 9075 9076 9077 xcb_block_len += sizeof(xcb_glx_get_separable_filter_reply_t); 9078 xcb_tmp += xcb_block_len; 9079 xcb_buffer_len += xcb_block_len; 9080 xcb_block_len = 0; 9081 /* rows_and_cols */ 9082 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 9083 xcb_tmp += xcb_block_len; 9084 xcb_align_to = ALIGNOF(uint8_t); 9085 /* insert padding */ 9086 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9087 xcb_buffer_len += xcb_block_len + xcb_pad; 9088 if (0 != xcb_pad) { 9089 xcb_tmp += xcb_pad; 9090 xcb_pad = 0; 9091 } 9092 xcb_block_len = 0; 9093 9094 return xcb_buffer_len; 9095 } 9096 9097 xcb_glx_get_separable_filter_cookie_t 9098 xcb_glx_get_separable_filter (xcb_connection_t *c, 9099 xcb_glx_context_tag_t context_tag, 9100 uint32_t target, 9101 uint32_t format, 9102 uint32_t type, 9103 uint8_t swap_bytes) 9104 { 9105 static const xcb_protocol_request_t xcb_req = { 9106 .count = 2, 9107 .ext = &xcb_glx_id, 9108 .opcode = XCB_GLX_GET_SEPARABLE_FILTER, 9109 .isvoid = 0 9110 }; 9111 9112 struct iovec xcb_parts[4]; 9113 xcb_glx_get_separable_filter_cookie_t xcb_ret; 9114 xcb_glx_get_separable_filter_request_t xcb_out; 9115 9116 xcb_out.context_tag = context_tag; 9117 xcb_out.target = target; 9118 xcb_out.format = format; 9119 xcb_out.type = type; 9120 xcb_out.swap_bytes = swap_bytes; 9121 9122 xcb_parts[2].iov_base = (char *) &xcb_out; 9123 xcb_parts[2].iov_len = sizeof(xcb_out); 9124 xcb_parts[3].iov_base = 0; 9125 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9126 9127 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9128 return xcb_ret; 9129 } 9130 9131 xcb_glx_get_separable_filter_cookie_t 9132 xcb_glx_get_separable_filter_unchecked (xcb_connection_t *c, 9133 xcb_glx_context_tag_t context_tag, 9134 uint32_t target, 9135 uint32_t format, 9136 uint32_t type, 9137 uint8_t swap_bytes) 9138 { 9139 static const xcb_protocol_request_t xcb_req = { 9140 .count = 2, 9141 .ext = &xcb_glx_id, 9142 .opcode = XCB_GLX_GET_SEPARABLE_FILTER, 9143 .isvoid = 0 9144 }; 9145 9146 struct iovec xcb_parts[4]; 9147 xcb_glx_get_separable_filter_cookie_t xcb_ret; 9148 xcb_glx_get_separable_filter_request_t xcb_out; 9149 9150 xcb_out.context_tag = context_tag; 9151 xcb_out.target = target; 9152 xcb_out.format = format; 9153 xcb_out.type = type; 9154 xcb_out.swap_bytes = swap_bytes; 9155 9156 xcb_parts[2].iov_base = (char *) &xcb_out; 9157 xcb_parts[2].iov_len = sizeof(xcb_out); 9158 xcb_parts[3].iov_base = 0; 9159 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9160 9161 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9162 return xcb_ret; 9163 } 9164 9165 uint8_t * 9166 xcb_glx_get_separable_filter_rows_and_cols (const xcb_glx_get_separable_filter_reply_t *R) 9167 { 9168 return (uint8_t *) (R + 1); 9169 } 9170 9171 int 9172 xcb_glx_get_separable_filter_rows_and_cols_length (const xcb_glx_get_separable_filter_reply_t *R) 9173 { 9174 return (R->length * 4); 9175 } 9176 9177 xcb_generic_iterator_t 9178 xcb_glx_get_separable_filter_rows_and_cols_end (const xcb_glx_get_separable_filter_reply_t *R) 9179 { 9180 xcb_generic_iterator_t i; 9181 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 9182 i.rem = 0; 9183 i.index = (char *) i.data - (char *) R; 9184 return i; 9185 } 9186 9187 xcb_glx_get_separable_filter_reply_t * 9188 xcb_glx_get_separable_filter_reply (xcb_connection_t *c, 9189 xcb_glx_get_separable_filter_cookie_t cookie /**< */, 9190 xcb_generic_error_t **e) 9191 { 9192 return (xcb_glx_get_separable_filter_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9193 } 9194 9195 int 9196 xcb_glx_get_histogram_sizeof (const void *_buffer) 9197 { 9198 char *xcb_tmp = (char *)_buffer; 9199 const xcb_glx_get_histogram_reply_t *_aux = (xcb_glx_get_histogram_reply_t *)_buffer; 9200 unsigned int xcb_buffer_len = 0; 9201 unsigned int xcb_block_len = 0; 9202 unsigned int xcb_pad = 0; 9203 unsigned int xcb_align_to = 0; 9204 9205 9206 xcb_block_len += sizeof(xcb_glx_get_histogram_reply_t); 9207 xcb_tmp += xcb_block_len; 9208 xcb_buffer_len += xcb_block_len; 9209 xcb_block_len = 0; 9210 /* data */ 9211 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 9212 xcb_tmp += xcb_block_len; 9213 xcb_align_to = ALIGNOF(uint8_t); 9214 /* insert padding */ 9215 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9216 xcb_buffer_len += xcb_block_len + xcb_pad; 9217 if (0 != xcb_pad) { 9218 xcb_tmp += xcb_pad; 9219 xcb_pad = 0; 9220 } 9221 xcb_block_len = 0; 9222 9223 return xcb_buffer_len; 9224 } 9225 9226 xcb_glx_get_histogram_cookie_t 9227 xcb_glx_get_histogram (xcb_connection_t *c, 9228 xcb_glx_context_tag_t context_tag, 9229 uint32_t target, 9230 uint32_t format, 9231 uint32_t type, 9232 uint8_t swap_bytes, 9233 uint8_t reset) 9234 { 9235 static const xcb_protocol_request_t xcb_req = { 9236 .count = 2, 9237 .ext = &xcb_glx_id, 9238 .opcode = XCB_GLX_GET_HISTOGRAM, 9239 .isvoid = 0 9240 }; 9241 9242 struct iovec xcb_parts[4]; 9243 xcb_glx_get_histogram_cookie_t xcb_ret; 9244 xcb_glx_get_histogram_request_t xcb_out; 9245 9246 xcb_out.context_tag = context_tag; 9247 xcb_out.target = target; 9248 xcb_out.format = format; 9249 xcb_out.type = type; 9250 xcb_out.swap_bytes = swap_bytes; 9251 xcb_out.reset = reset; 9252 9253 xcb_parts[2].iov_base = (char *) &xcb_out; 9254 xcb_parts[2].iov_len = sizeof(xcb_out); 9255 xcb_parts[3].iov_base = 0; 9256 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9257 9258 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9259 return xcb_ret; 9260 } 9261 9262 xcb_glx_get_histogram_cookie_t 9263 xcb_glx_get_histogram_unchecked (xcb_connection_t *c, 9264 xcb_glx_context_tag_t context_tag, 9265 uint32_t target, 9266 uint32_t format, 9267 uint32_t type, 9268 uint8_t swap_bytes, 9269 uint8_t reset) 9270 { 9271 static const xcb_protocol_request_t xcb_req = { 9272 .count = 2, 9273 .ext = &xcb_glx_id, 9274 .opcode = XCB_GLX_GET_HISTOGRAM, 9275 .isvoid = 0 9276 }; 9277 9278 struct iovec xcb_parts[4]; 9279 xcb_glx_get_histogram_cookie_t xcb_ret; 9280 xcb_glx_get_histogram_request_t xcb_out; 9281 9282 xcb_out.context_tag = context_tag; 9283 xcb_out.target = target; 9284 xcb_out.format = format; 9285 xcb_out.type = type; 9286 xcb_out.swap_bytes = swap_bytes; 9287 xcb_out.reset = reset; 9288 9289 xcb_parts[2].iov_base = (char *) &xcb_out; 9290 xcb_parts[2].iov_len = sizeof(xcb_out); 9291 xcb_parts[3].iov_base = 0; 9292 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9293 9294 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9295 return xcb_ret; 9296 } 9297 9298 uint8_t * 9299 xcb_glx_get_histogram_data (const xcb_glx_get_histogram_reply_t *R) 9300 { 9301 return (uint8_t *) (R + 1); 9302 } 9303 9304 int 9305 xcb_glx_get_histogram_data_length (const xcb_glx_get_histogram_reply_t *R) 9306 { 9307 return (R->length * 4); 9308 } 9309 9310 xcb_generic_iterator_t 9311 xcb_glx_get_histogram_data_end (const xcb_glx_get_histogram_reply_t *R) 9312 { 9313 xcb_generic_iterator_t i; 9314 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 9315 i.rem = 0; 9316 i.index = (char *) i.data - (char *) R; 9317 return i; 9318 } 9319 9320 xcb_glx_get_histogram_reply_t * 9321 xcb_glx_get_histogram_reply (xcb_connection_t *c, 9322 xcb_glx_get_histogram_cookie_t cookie /**< */, 9323 xcb_generic_error_t **e) 9324 { 9325 return (xcb_glx_get_histogram_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9326 } 9327 9328 int 9329 xcb_glx_get_histogram_parameterfv_sizeof (const void *_buffer) 9330 { 9331 char *xcb_tmp = (char *)_buffer; 9332 const xcb_glx_get_histogram_parameterfv_reply_t *_aux = (xcb_glx_get_histogram_parameterfv_reply_t *)_buffer; 9333 unsigned int xcb_buffer_len = 0; 9334 unsigned int xcb_block_len = 0; 9335 unsigned int xcb_pad = 0; 9336 unsigned int xcb_align_to = 0; 9337 9338 9339 xcb_block_len += sizeof(xcb_glx_get_histogram_parameterfv_reply_t); 9340 xcb_tmp += xcb_block_len; 9341 xcb_buffer_len += xcb_block_len; 9342 xcb_block_len = 0; 9343 /* data */ 9344 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 9345 xcb_tmp += xcb_block_len; 9346 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 9347 /* insert padding */ 9348 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9349 xcb_buffer_len += xcb_block_len + xcb_pad; 9350 if (0 != xcb_pad) { 9351 xcb_tmp += xcb_pad; 9352 xcb_pad = 0; 9353 } 9354 xcb_block_len = 0; 9355 9356 return xcb_buffer_len; 9357 } 9358 9359 xcb_glx_get_histogram_parameterfv_cookie_t 9360 xcb_glx_get_histogram_parameterfv (xcb_connection_t *c, 9361 xcb_glx_context_tag_t context_tag, 9362 uint32_t target, 9363 uint32_t pname) 9364 { 9365 static const xcb_protocol_request_t xcb_req = { 9366 .count = 2, 9367 .ext = &xcb_glx_id, 9368 .opcode = XCB_GLX_GET_HISTOGRAM_PARAMETERFV, 9369 .isvoid = 0 9370 }; 9371 9372 struct iovec xcb_parts[4]; 9373 xcb_glx_get_histogram_parameterfv_cookie_t xcb_ret; 9374 xcb_glx_get_histogram_parameterfv_request_t xcb_out; 9375 9376 xcb_out.context_tag = context_tag; 9377 xcb_out.target = target; 9378 xcb_out.pname = pname; 9379 9380 xcb_parts[2].iov_base = (char *) &xcb_out; 9381 xcb_parts[2].iov_len = sizeof(xcb_out); 9382 xcb_parts[3].iov_base = 0; 9383 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9384 9385 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9386 return xcb_ret; 9387 } 9388 9389 xcb_glx_get_histogram_parameterfv_cookie_t 9390 xcb_glx_get_histogram_parameterfv_unchecked (xcb_connection_t *c, 9391 xcb_glx_context_tag_t context_tag, 9392 uint32_t target, 9393 uint32_t pname) 9394 { 9395 static const xcb_protocol_request_t xcb_req = { 9396 .count = 2, 9397 .ext = &xcb_glx_id, 9398 .opcode = XCB_GLX_GET_HISTOGRAM_PARAMETERFV, 9399 .isvoid = 0 9400 }; 9401 9402 struct iovec xcb_parts[4]; 9403 xcb_glx_get_histogram_parameterfv_cookie_t xcb_ret; 9404 xcb_glx_get_histogram_parameterfv_request_t xcb_out; 9405 9406 xcb_out.context_tag = context_tag; 9407 xcb_out.target = target; 9408 xcb_out.pname = pname; 9409 9410 xcb_parts[2].iov_base = (char *) &xcb_out; 9411 xcb_parts[2].iov_len = sizeof(xcb_out); 9412 xcb_parts[3].iov_base = 0; 9413 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9414 9415 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9416 return xcb_ret; 9417 } 9418 9419 xcb_glx_float32_t * 9420 xcb_glx_get_histogram_parameterfv_data (const xcb_glx_get_histogram_parameterfv_reply_t *R) 9421 { 9422 return (xcb_glx_float32_t *) (R + 1); 9423 } 9424 9425 int 9426 xcb_glx_get_histogram_parameterfv_data_length (const xcb_glx_get_histogram_parameterfv_reply_t *R) 9427 { 9428 return R->n; 9429 } 9430 9431 xcb_generic_iterator_t 9432 xcb_glx_get_histogram_parameterfv_data_end (const xcb_glx_get_histogram_parameterfv_reply_t *R) 9433 { 9434 xcb_generic_iterator_t i; 9435 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 9436 i.rem = 0; 9437 i.index = (char *) i.data - (char *) R; 9438 return i; 9439 } 9440 9441 xcb_glx_get_histogram_parameterfv_reply_t * 9442 xcb_glx_get_histogram_parameterfv_reply (xcb_connection_t *c, 9443 xcb_glx_get_histogram_parameterfv_cookie_t cookie /**< */, 9444 xcb_generic_error_t **e) 9445 { 9446 return (xcb_glx_get_histogram_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9447 } 9448 9449 int 9450 xcb_glx_get_histogram_parameteriv_sizeof (const void *_buffer) 9451 { 9452 char *xcb_tmp = (char *)_buffer; 9453 const xcb_glx_get_histogram_parameteriv_reply_t *_aux = (xcb_glx_get_histogram_parameteriv_reply_t *)_buffer; 9454 unsigned int xcb_buffer_len = 0; 9455 unsigned int xcb_block_len = 0; 9456 unsigned int xcb_pad = 0; 9457 unsigned int xcb_align_to = 0; 9458 9459 9460 xcb_block_len += sizeof(xcb_glx_get_histogram_parameteriv_reply_t); 9461 xcb_tmp += xcb_block_len; 9462 xcb_buffer_len += xcb_block_len; 9463 xcb_block_len = 0; 9464 /* data */ 9465 xcb_block_len += _aux->n * sizeof(int32_t); 9466 xcb_tmp += xcb_block_len; 9467 xcb_align_to = ALIGNOF(int32_t); 9468 /* insert padding */ 9469 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9470 xcb_buffer_len += xcb_block_len + xcb_pad; 9471 if (0 != xcb_pad) { 9472 xcb_tmp += xcb_pad; 9473 xcb_pad = 0; 9474 } 9475 xcb_block_len = 0; 9476 9477 return xcb_buffer_len; 9478 } 9479 9480 xcb_glx_get_histogram_parameteriv_cookie_t 9481 xcb_glx_get_histogram_parameteriv (xcb_connection_t *c, 9482 xcb_glx_context_tag_t context_tag, 9483 uint32_t target, 9484 uint32_t pname) 9485 { 9486 static const xcb_protocol_request_t xcb_req = { 9487 .count = 2, 9488 .ext = &xcb_glx_id, 9489 .opcode = XCB_GLX_GET_HISTOGRAM_PARAMETERIV, 9490 .isvoid = 0 9491 }; 9492 9493 struct iovec xcb_parts[4]; 9494 xcb_glx_get_histogram_parameteriv_cookie_t xcb_ret; 9495 xcb_glx_get_histogram_parameteriv_request_t xcb_out; 9496 9497 xcb_out.context_tag = context_tag; 9498 xcb_out.target = target; 9499 xcb_out.pname = pname; 9500 9501 xcb_parts[2].iov_base = (char *) &xcb_out; 9502 xcb_parts[2].iov_len = sizeof(xcb_out); 9503 xcb_parts[3].iov_base = 0; 9504 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9505 9506 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9507 return xcb_ret; 9508 } 9509 9510 xcb_glx_get_histogram_parameteriv_cookie_t 9511 xcb_glx_get_histogram_parameteriv_unchecked (xcb_connection_t *c, 9512 xcb_glx_context_tag_t context_tag, 9513 uint32_t target, 9514 uint32_t pname) 9515 { 9516 static const xcb_protocol_request_t xcb_req = { 9517 .count = 2, 9518 .ext = &xcb_glx_id, 9519 .opcode = XCB_GLX_GET_HISTOGRAM_PARAMETERIV, 9520 .isvoid = 0 9521 }; 9522 9523 struct iovec xcb_parts[4]; 9524 xcb_glx_get_histogram_parameteriv_cookie_t xcb_ret; 9525 xcb_glx_get_histogram_parameteriv_request_t xcb_out; 9526 9527 xcb_out.context_tag = context_tag; 9528 xcb_out.target = target; 9529 xcb_out.pname = pname; 9530 9531 xcb_parts[2].iov_base = (char *) &xcb_out; 9532 xcb_parts[2].iov_len = sizeof(xcb_out); 9533 xcb_parts[3].iov_base = 0; 9534 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9535 9536 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9537 return xcb_ret; 9538 } 9539 9540 int32_t * 9541 xcb_glx_get_histogram_parameteriv_data (const xcb_glx_get_histogram_parameteriv_reply_t *R) 9542 { 9543 return (int32_t *) (R + 1); 9544 } 9545 9546 int 9547 xcb_glx_get_histogram_parameteriv_data_length (const xcb_glx_get_histogram_parameteriv_reply_t *R) 9548 { 9549 return R->n; 9550 } 9551 9552 xcb_generic_iterator_t 9553 xcb_glx_get_histogram_parameteriv_data_end (const xcb_glx_get_histogram_parameteriv_reply_t *R) 9554 { 9555 xcb_generic_iterator_t i; 9556 i.data = ((int32_t *) (R + 1)) + (R->n); 9557 i.rem = 0; 9558 i.index = (char *) i.data - (char *) R; 9559 return i; 9560 } 9561 9562 xcb_glx_get_histogram_parameteriv_reply_t * 9563 xcb_glx_get_histogram_parameteriv_reply (xcb_connection_t *c, 9564 xcb_glx_get_histogram_parameteriv_cookie_t cookie /**< */, 9565 xcb_generic_error_t **e) 9566 { 9567 return (xcb_glx_get_histogram_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9568 } 9569 9570 int 9571 xcb_glx_get_minmax_sizeof (const void *_buffer) 9572 { 9573 char *xcb_tmp = (char *)_buffer; 9574 const xcb_glx_get_minmax_reply_t *_aux = (xcb_glx_get_minmax_reply_t *)_buffer; 9575 unsigned int xcb_buffer_len = 0; 9576 unsigned int xcb_block_len = 0; 9577 unsigned int xcb_pad = 0; 9578 unsigned int xcb_align_to = 0; 9579 9580 9581 xcb_block_len += sizeof(xcb_glx_get_minmax_reply_t); 9582 xcb_tmp += xcb_block_len; 9583 xcb_buffer_len += xcb_block_len; 9584 xcb_block_len = 0; 9585 /* data */ 9586 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 9587 xcb_tmp += xcb_block_len; 9588 xcb_align_to = ALIGNOF(uint8_t); 9589 /* insert padding */ 9590 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9591 xcb_buffer_len += xcb_block_len + xcb_pad; 9592 if (0 != xcb_pad) { 9593 xcb_tmp += xcb_pad; 9594 xcb_pad = 0; 9595 } 9596 xcb_block_len = 0; 9597 9598 return xcb_buffer_len; 9599 } 9600 9601 xcb_glx_get_minmax_cookie_t 9602 xcb_glx_get_minmax (xcb_connection_t *c, 9603 xcb_glx_context_tag_t context_tag, 9604 uint32_t target, 9605 uint32_t format, 9606 uint32_t type, 9607 uint8_t swap_bytes, 9608 uint8_t reset) 9609 { 9610 static const xcb_protocol_request_t xcb_req = { 9611 .count = 2, 9612 .ext = &xcb_glx_id, 9613 .opcode = XCB_GLX_GET_MINMAX, 9614 .isvoid = 0 9615 }; 9616 9617 struct iovec xcb_parts[4]; 9618 xcb_glx_get_minmax_cookie_t xcb_ret; 9619 xcb_glx_get_minmax_request_t xcb_out; 9620 9621 xcb_out.context_tag = context_tag; 9622 xcb_out.target = target; 9623 xcb_out.format = format; 9624 xcb_out.type = type; 9625 xcb_out.swap_bytes = swap_bytes; 9626 xcb_out.reset = reset; 9627 9628 xcb_parts[2].iov_base = (char *) &xcb_out; 9629 xcb_parts[2].iov_len = sizeof(xcb_out); 9630 xcb_parts[3].iov_base = 0; 9631 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9632 9633 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9634 return xcb_ret; 9635 } 9636 9637 xcb_glx_get_minmax_cookie_t 9638 xcb_glx_get_minmax_unchecked (xcb_connection_t *c, 9639 xcb_glx_context_tag_t context_tag, 9640 uint32_t target, 9641 uint32_t format, 9642 uint32_t type, 9643 uint8_t swap_bytes, 9644 uint8_t reset) 9645 { 9646 static const xcb_protocol_request_t xcb_req = { 9647 .count = 2, 9648 .ext = &xcb_glx_id, 9649 .opcode = XCB_GLX_GET_MINMAX, 9650 .isvoid = 0 9651 }; 9652 9653 struct iovec xcb_parts[4]; 9654 xcb_glx_get_minmax_cookie_t xcb_ret; 9655 xcb_glx_get_minmax_request_t xcb_out; 9656 9657 xcb_out.context_tag = context_tag; 9658 xcb_out.target = target; 9659 xcb_out.format = format; 9660 xcb_out.type = type; 9661 xcb_out.swap_bytes = swap_bytes; 9662 xcb_out.reset = reset; 9663 9664 xcb_parts[2].iov_base = (char *) &xcb_out; 9665 xcb_parts[2].iov_len = sizeof(xcb_out); 9666 xcb_parts[3].iov_base = 0; 9667 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9668 9669 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9670 return xcb_ret; 9671 } 9672 9673 uint8_t * 9674 xcb_glx_get_minmax_data (const xcb_glx_get_minmax_reply_t *R) 9675 { 9676 return (uint8_t *) (R + 1); 9677 } 9678 9679 int 9680 xcb_glx_get_minmax_data_length (const xcb_glx_get_minmax_reply_t *R) 9681 { 9682 return (R->length * 4); 9683 } 9684 9685 xcb_generic_iterator_t 9686 xcb_glx_get_minmax_data_end (const xcb_glx_get_minmax_reply_t *R) 9687 { 9688 xcb_generic_iterator_t i; 9689 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 9690 i.rem = 0; 9691 i.index = (char *) i.data - (char *) R; 9692 return i; 9693 } 9694 9695 xcb_glx_get_minmax_reply_t * 9696 xcb_glx_get_minmax_reply (xcb_connection_t *c, 9697 xcb_glx_get_minmax_cookie_t cookie /**< */, 9698 xcb_generic_error_t **e) 9699 { 9700 return (xcb_glx_get_minmax_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9701 } 9702 9703 int 9704 xcb_glx_get_minmax_parameterfv_sizeof (const void *_buffer) 9705 { 9706 char *xcb_tmp = (char *)_buffer; 9707 const xcb_glx_get_minmax_parameterfv_reply_t *_aux = (xcb_glx_get_minmax_parameterfv_reply_t *)_buffer; 9708 unsigned int xcb_buffer_len = 0; 9709 unsigned int xcb_block_len = 0; 9710 unsigned int xcb_pad = 0; 9711 unsigned int xcb_align_to = 0; 9712 9713 9714 xcb_block_len += sizeof(xcb_glx_get_minmax_parameterfv_reply_t); 9715 xcb_tmp += xcb_block_len; 9716 xcb_buffer_len += xcb_block_len; 9717 xcb_block_len = 0; 9718 /* data */ 9719 xcb_block_len += _aux->n * sizeof(xcb_glx_float32_t); 9720 xcb_tmp += xcb_block_len; 9721 xcb_align_to = ALIGNOF(xcb_glx_float32_t); 9722 /* insert padding */ 9723 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9724 xcb_buffer_len += xcb_block_len + xcb_pad; 9725 if (0 != xcb_pad) { 9726 xcb_tmp += xcb_pad; 9727 xcb_pad = 0; 9728 } 9729 xcb_block_len = 0; 9730 9731 return xcb_buffer_len; 9732 } 9733 9734 xcb_glx_get_minmax_parameterfv_cookie_t 9735 xcb_glx_get_minmax_parameterfv (xcb_connection_t *c, 9736 xcb_glx_context_tag_t context_tag, 9737 uint32_t target, 9738 uint32_t pname) 9739 { 9740 static const xcb_protocol_request_t xcb_req = { 9741 .count = 2, 9742 .ext = &xcb_glx_id, 9743 .opcode = XCB_GLX_GET_MINMAX_PARAMETERFV, 9744 .isvoid = 0 9745 }; 9746 9747 struct iovec xcb_parts[4]; 9748 xcb_glx_get_minmax_parameterfv_cookie_t xcb_ret; 9749 xcb_glx_get_minmax_parameterfv_request_t xcb_out; 9750 9751 xcb_out.context_tag = context_tag; 9752 xcb_out.target = target; 9753 xcb_out.pname = pname; 9754 9755 xcb_parts[2].iov_base = (char *) &xcb_out; 9756 xcb_parts[2].iov_len = sizeof(xcb_out); 9757 xcb_parts[3].iov_base = 0; 9758 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9759 9760 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9761 return xcb_ret; 9762 } 9763 9764 xcb_glx_get_minmax_parameterfv_cookie_t 9765 xcb_glx_get_minmax_parameterfv_unchecked (xcb_connection_t *c, 9766 xcb_glx_context_tag_t context_tag, 9767 uint32_t target, 9768 uint32_t pname) 9769 { 9770 static const xcb_protocol_request_t xcb_req = { 9771 .count = 2, 9772 .ext = &xcb_glx_id, 9773 .opcode = XCB_GLX_GET_MINMAX_PARAMETERFV, 9774 .isvoid = 0 9775 }; 9776 9777 struct iovec xcb_parts[4]; 9778 xcb_glx_get_minmax_parameterfv_cookie_t xcb_ret; 9779 xcb_glx_get_minmax_parameterfv_request_t xcb_out; 9780 9781 xcb_out.context_tag = context_tag; 9782 xcb_out.target = target; 9783 xcb_out.pname = pname; 9784 9785 xcb_parts[2].iov_base = (char *) &xcb_out; 9786 xcb_parts[2].iov_len = sizeof(xcb_out); 9787 xcb_parts[3].iov_base = 0; 9788 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9789 9790 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9791 return xcb_ret; 9792 } 9793 9794 xcb_glx_float32_t * 9795 xcb_glx_get_minmax_parameterfv_data (const xcb_glx_get_minmax_parameterfv_reply_t *R) 9796 { 9797 return (xcb_glx_float32_t *) (R + 1); 9798 } 9799 9800 int 9801 xcb_glx_get_minmax_parameterfv_data_length (const xcb_glx_get_minmax_parameterfv_reply_t *R) 9802 { 9803 return R->n; 9804 } 9805 9806 xcb_generic_iterator_t 9807 xcb_glx_get_minmax_parameterfv_data_end (const xcb_glx_get_minmax_parameterfv_reply_t *R) 9808 { 9809 xcb_generic_iterator_t i; 9810 i.data = ((xcb_glx_float32_t *) (R + 1)) + (R->n); 9811 i.rem = 0; 9812 i.index = (char *) i.data - (char *) R; 9813 return i; 9814 } 9815 9816 xcb_glx_get_minmax_parameterfv_reply_t * 9817 xcb_glx_get_minmax_parameterfv_reply (xcb_connection_t *c, 9818 xcb_glx_get_minmax_parameterfv_cookie_t cookie /**< */, 9819 xcb_generic_error_t **e) 9820 { 9821 return (xcb_glx_get_minmax_parameterfv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9822 } 9823 9824 int 9825 xcb_glx_get_minmax_parameteriv_sizeof (const void *_buffer) 9826 { 9827 char *xcb_tmp = (char *)_buffer; 9828 const xcb_glx_get_minmax_parameteriv_reply_t *_aux = (xcb_glx_get_minmax_parameteriv_reply_t *)_buffer; 9829 unsigned int xcb_buffer_len = 0; 9830 unsigned int xcb_block_len = 0; 9831 unsigned int xcb_pad = 0; 9832 unsigned int xcb_align_to = 0; 9833 9834 9835 xcb_block_len += sizeof(xcb_glx_get_minmax_parameteriv_reply_t); 9836 xcb_tmp += xcb_block_len; 9837 xcb_buffer_len += xcb_block_len; 9838 xcb_block_len = 0; 9839 /* data */ 9840 xcb_block_len += _aux->n * sizeof(int32_t); 9841 xcb_tmp += xcb_block_len; 9842 xcb_align_to = ALIGNOF(int32_t); 9843 /* insert padding */ 9844 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9845 xcb_buffer_len += xcb_block_len + xcb_pad; 9846 if (0 != xcb_pad) { 9847 xcb_tmp += xcb_pad; 9848 xcb_pad = 0; 9849 } 9850 xcb_block_len = 0; 9851 9852 return xcb_buffer_len; 9853 } 9854 9855 xcb_glx_get_minmax_parameteriv_cookie_t 9856 xcb_glx_get_minmax_parameteriv (xcb_connection_t *c, 9857 xcb_glx_context_tag_t context_tag, 9858 uint32_t target, 9859 uint32_t pname) 9860 { 9861 static const xcb_protocol_request_t xcb_req = { 9862 .count = 2, 9863 .ext = &xcb_glx_id, 9864 .opcode = XCB_GLX_GET_MINMAX_PARAMETERIV, 9865 .isvoid = 0 9866 }; 9867 9868 struct iovec xcb_parts[4]; 9869 xcb_glx_get_minmax_parameteriv_cookie_t xcb_ret; 9870 xcb_glx_get_minmax_parameteriv_request_t xcb_out; 9871 9872 xcb_out.context_tag = context_tag; 9873 xcb_out.target = target; 9874 xcb_out.pname = pname; 9875 9876 xcb_parts[2].iov_base = (char *) &xcb_out; 9877 xcb_parts[2].iov_len = sizeof(xcb_out); 9878 xcb_parts[3].iov_base = 0; 9879 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9880 9881 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9882 return xcb_ret; 9883 } 9884 9885 xcb_glx_get_minmax_parameteriv_cookie_t 9886 xcb_glx_get_minmax_parameteriv_unchecked (xcb_connection_t *c, 9887 xcb_glx_context_tag_t context_tag, 9888 uint32_t target, 9889 uint32_t pname) 9890 { 9891 static const xcb_protocol_request_t xcb_req = { 9892 .count = 2, 9893 .ext = &xcb_glx_id, 9894 .opcode = XCB_GLX_GET_MINMAX_PARAMETERIV, 9895 .isvoid = 0 9896 }; 9897 9898 struct iovec xcb_parts[4]; 9899 xcb_glx_get_minmax_parameteriv_cookie_t xcb_ret; 9900 xcb_glx_get_minmax_parameteriv_request_t xcb_out; 9901 9902 xcb_out.context_tag = context_tag; 9903 xcb_out.target = target; 9904 xcb_out.pname = pname; 9905 9906 xcb_parts[2].iov_base = (char *) &xcb_out; 9907 xcb_parts[2].iov_len = sizeof(xcb_out); 9908 xcb_parts[3].iov_base = 0; 9909 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 9910 9911 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9912 return xcb_ret; 9913 } 9914 9915 int32_t * 9916 xcb_glx_get_minmax_parameteriv_data (const xcb_glx_get_minmax_parameteriv_reply_t *R) 9917 { 9918 return (int32_t *) (R + 1); 9919 } 9920 9921 int 9922 xcb_glx_get_minmax_parameteriv_data_length (const xcb_glx_get_minmax_parameteriv_reply_t *R) 9923 { 9924 return R->n; 9925 } 9926 9927 xcb_generic_iterator_t 9928 xcb_glx_get_minmax_parameteriv_data_end (const xcb_glx_get_minmax_parameteriv_reply_t *R) 9929 { 9930 xcb_generic_iterator_t i; 9931 i.data = ((int32_t *) (R + 1)) + (R->n); 9932 i.rem = 0; 9933 i.index = (char *) i.data - (char *) R; 9934 return i; 9935 } 9936 9937 xcb_glx_get_minmax_parameteriv_reply_t * 9938 xcb_glx_get_minmax_parameteriv_reply (xcb_connection_t *c, 9939 xcb_glx_get_minmax_parameteriv_cookie_t cookie /**< */, 9940 xcb_generic_error_t **e) 9941 { 9942 return (xcb_glx_get_minmax_parameteriv_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9943 } 9944 9945 int 9946 xcb_glx_get_compressed_tex_image_arb_sizeof (const void *_buffer) 9947 { 9948 char *xcb_tmp = (char *)_buffer; 9949 const xcb_glx_get_compressed_tex_image_arb_reply_t *_aux = (xcb_glx_get_compressed_tex_image_arb_reply_t *)_buffer; 9950 unsigned int xcb_buffer_len = 0; 9951 unsigned int xcb_block_len = 0; 9952 unsigned int xcb_pad = 0; 9953 unsigned int xcb_align_to = 0; 9954 9955 9956 xcb_block_len += sizeof(xcb_glx_get_compressed_tex_image_arb_reply_t); 9957 xcb_tmp += xcb_block_len; 9958 xcb_buffer_len += xcb_block_len; 9959 xcb_block_len = 0; 9960 /* data */ 9961 xcb_block_len += (_aux->length * 4) * sizeof(uint8_t); 9962 xcb_tmp += xcb_block_len; 9963 xcb_align_to = ALIGNOF(uint8_t); 9964 /* insert padding */ 9965 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 9966 xcb_buffer_len += xcb_block_len + xcb_pad; 9967 if (0 != xcb_pad) { 9968 xcb_tmp += xcb_pad; 9969 xcb_pad = 0; 9970 } 9971 xcb_block_len = 0; 9972 9973 return xcb_buffer_len; 9974 } 9975 9976 xcb_glx_get_compressed_tex_image_arb_cookie_t 9977 xcb_glx_get_compressed_tex_image_arb (xcb_connection_t *c, 9978 xcb_glx_context_tag_t context_tag, 9979 uint32_t target, 9980 int32_t level) 9981 { 9982 static const xcb_protocol_request_t xcb_req = { 9983 .count = 2, 9984 .ext = &xcb_glx_id, 9985 .opcode = XCB_GLX_GET_COMPRESSED_TEX_IMAGE_ARB, 9986 .isvoid = 0 9987 }; 9988 9989 struct iovec xcb_parts[4]; 9990 xcb_glx_get_compressed_tex_image_arb_cookie_t xcb_ret; 9991 xcb_glx_get_compressed_tex_image_arb_request_t xcb_out; 9992 9993 xcb_out.context_tag = context_tag; 9994 xcb_out.target = target; 9995 xcb_out.level = level; 9996 9997 xcb_parts[2].iov_base = (char *) &xcb_out; 9998 xcb_parts[2].iov_len = sizeof(xcb_out); 9999 xcb_parts[3].iov_base = 0; 10000 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10001 10002 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10003 return xcb_ret; 10004 } 10005 10006 xcb_glx_get_compressed_tex_image_arb_cookie_t 10007 xcb_glx_get_compressed_tex_image_arb_unchecked (xcb_connection_t *c, 10008 xcb_glx_context_tag_t context_tag, 10009 uint32_t target, 10010 int32_t level) 10011 { 10012 static const xcb_protocol_request_t xcb_req = { 10013 .count = 2, 10014 .ext = &xcb_glx_id, 10015 .opcode = XCB_GLX_GET_COMPRESSED_TEX_IMAGE_ARB, 10016 .isvoid = 0 10017 }; 10018 10019 struct iovec xcb_parts[4]; 10020 xcb_glx_get_compressed_tex_image_arb_cookie_t xcb_ret; 10021 xcb_glx_get_compressed_tex_image_arb_request_t xcb_out; 10022 10023 xcb_out.context_tag = context_tag; 10024 xcb_out.target = target; 10025 xcb_out.level = level; 10026 10027 xcb_parts[2].iov_base = (char *) &xcb_out; 10028 xcb_parts[2].iov_len = sizeof(xcb_out); 10029 xcb_parts[3].iov_base = 0; 10030 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10031 10032 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10033 return xcb_ret; 10034 } 10035 10036 uint8_t * 10037 xcb_glx_get_compressed_tex_image_arb_data (const xcb_glx_get_compressed_tex_image_arb_reply_t *R) 10038 { 10039 return (uint8_t *) (R + 1); 10040 } 10041 10042 int 10043 xcb_glx_get_compressed_tex_image_arb_data_length (const xcb_glx_get_compressed_tex_image_arb_reply_t *R) 10044 { 10045 return (R->length * 4); 10046 } 10047 10048 xcb_generic_iterator_t 10049 xcb_glx_get_compressed_tex_image_arb_data_end (const xcb_glx_get_compressed_tex_image_arb_reply_t *R) 10050 { 10051 xcb_generic_iterator_t i; 10052 i.data = ((uint8_t *) (R + 1)) + ((R->length * 4)); 10053 i.rem = 0; 10054 i.index = (char *) i.data - (char *) R; 10055 return i; 10056 } 10057 10058 xcb_glx_get_compressed_tex_image_arb_reply_t * 10059 xcb_glx_get_compressed_tex_image_arb_reply (xcb_connection_t *c, 10060 xcb_glx_get_compressed_tex_image_arb_cookie_t cookie /**< */, 10061 xcb_generic_error_t **e) 10062 { 10063 return (xcb_glx_get_compressed_tex_image_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10064 } 10065 10066 int 10067 xcb_glx_delete_queries_arb_sizeof (const void *_buffer) 10068 { 10069 char *xcb_tmp = (char *)_buffer; 10070 const xcb_glx_delete_queries_arb_request_t *_aux = (xcb_glx_delete_queries_arb_request_t *)_buffer; 10071 unsigned int xcb_buffer_len = 0; 10072 unsigned int xcb_block_len = 0; 10073 unsigned int xcb_pad = 0; 10074 unsigned int xcb_align_to = 0; 10075 10076 10077 xcb_block_len += sizeof(xcb_glx_delete_queries_arb_request_t); 10078 xcb_tmp += xcb_block_len; 10079 xcb_buffer_len += xcb_block_len; 10080 xcb_block_len = 0; 10081 /* ids */ 10082 xcb_block_len += _aux->n * sizeof(uint32_t); 10083 xcb_tmp += xcb_block_len; 10084 xcb_align_to = ALIGNOF(uint32_t); 10085 /* insert padding */ 10086 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10087 xcb_buffer_len += xcb_block_len + xcb_pad; 10088 if (0 != xcb_pad) { 10089 xcb_tmp += xcb_pad; 10090 xcb_pad = 0; 10091 } 10092 xcb_block_len = 0; 10093 10094 return xcb_buffer_len; 10095 } 10096 10097 xcb_void_cookie_t 10098 xcb_glx_delete_queries_arb_checked (xcb_connection_t *c, 10099 xcb_glx_context_tag_t context_tag, 10100 int32_t n, 10101 const uint32_t *ids) 10102 { 10103 static const xcb_protocol_request_t xcb_req = { 10104 .count = 4, 10105 .ext = &xcb_glx_id, 10106 .opcode = XCB_GLX_DELETE_QUERIES_ARB, 10107 .isvoid = 1 10108 }; 10109 10110 struct iovec xcb_parts[6]; 10111 xcb_void_cookie_t xcb_ret; 10112 xcb_glx_delete_queries_arb_request_t xcb_out; 10113 10114 xcb_out.context_tag = context_tag; 10115 xcb_out.n = n; 10116 10117 xcb_parts[2].iov_base = (char *) &xcb_out; 10118 xcb_parts[2].iov_len = sizeof(xcb_out); 10119 xcb_parts[3].iov_base = 0; 10120 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10121 /* uint32_t ids */ 10122 xcb_parts[4].iov_base = (char *) ids; 10123 xcb_parts[4].iov_len = n * sizeof(uint32_t); 10124 xcb_parts[5].iov_base = 0; 10125 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10126 10127 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10128 return xcb_ret; 10129 } 10130 10131 xcb_void_cookie_t 10132 xcb_glx_delete_queries_arb (xcb_connection_t *c, 10133 xcb_glx_context_tag_t context_tag, 10134 int32_t n, 10135 const uint32_t *ids) 10136 { 10137 static const xcb_protocol_request_t xcb_req = { 10138 .count = 4, 10139 .ext = &xcb_glx_id, 10140 .opcode = XCB_GLX_DELETE_QUERIES_ARB, 10141 .isvoid = 1 10142 }; 10143 10144 struct iovec xcb_parts[6]; 10145 xcb_void_cookie_t xcb_ret; 10146 xcb_glx_delete_queries_arb_request_t xcb_out; 10147 10148 xcb_out.context_tag = context_tag; 10149 xcb_out.n = n; 10150 10151 xcb_parts[2].iov_base = (char *) &xcb_out; 10152 xcb_parts[2].iov_len = sizeof(xcb_out); 10153 xcb_parts[3].iov_base = 0; 10154 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10155 /* uint32_t ids */ 10156 xcb_parts[4].iov_base = (char *) ids; 10157 xcb_parts[4].iov_len = n * sizeof(uint32_t); 10158 xcb_parts[5].iov_base = 0; 10159 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10160 10161 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10162 return xcb_ret; 10163 } 10164 10165 uint32_t * 10166 xcb_glx_delete_queries_arb_ids (const xcb_glx_delete_queries_arb_request_t *R) 10167 { 10168 return (uint32_t *) (R + 1); 10169 } 10170 10171 int 10172 xcb_glx_delete_queries_arb_ids_length (const xcb_glx_delete_queries_arb_request_t *R) 10173 { 10174 return R->n; 10175 } 10176 10177 xcb_generic_iterator_t 10178 xcb_glx_delete_queries_arb_ids_end (const xcb_glx_delete_queries_arb_request_t *R) 10179 { 10180 xcb_generic_iterator_t i; 10181 i.data = ((uint32_t *) (R + 1)) + (R->n); 10182 i.rem = 0; 10183 i.index = (char *) i.data - (char *) R; 10184 return i; 10185 } 10186 10187 int 10188 xcb_glx_gen_queries_arb_sizeof (const void *_buffer) 10189 { 10190 char *xcb_tmp = (char *)_buffer; 10191 const xcb_glx_gen_queries_arb_reply_t *_aux = (xcb_glx_gen_queries_arb_reply_t *)_buffer; 10192 unsigned int xcb_buffer_len = 0; 10193 unsigned int xcb_block_len = 0; 10194 unsigned int xcb_pad = 0; 10195 unsigned int xcb_align_to = 0; 10196 10197 10198 xcb_block_len += sizeof(xcb_glx_gen_queries_arb_reply_t); 10199 xcb_tmp += xcb_block_len; 10200 xcb_buffer_len += xcb_block_len; 10201 xcb_block_len = 0; 10202 /* data */ 10203 xcb_block_len += _aux->length * sizeof(uint32_t); 10204 xcb_tmp += xcb_block_len; 10205 xcb_align_to = ALIGNOF(uint32_t); 10206 /* insert padding */ 10207 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10208 xcb_buffer_len += xcb_block_len + xcb_pad; 10209 if (0 != xcb_pad) { 10210 xcb_tmp += xcb_pad; 10211 xcb_pad = 0; 10212 } 10213 xcb_block_len = 0; 10214 10215 return xcb_buffer_len; 10216 } 10217 10218 xcb_glx_gen_queries_arb_cookie_t 10219 xcb_glx_gen_queries_arb (xcb_connection_t *c, 10220 xcb_glx_context_tag_t context_tag, 10221 int32_t n) 10222 { 10223 static const xcb_protocol_request_t xcb_req = { 10224 .count = 2, 10225 .ext = &xcb_glx_id, 10226 .opcode = XCB_GLX_GEN_QUERIES_ARB, 10227 .isvoid = 0 10228 }; 10229 10230 struct iovec xcb_parts[4]; 10231 xcb_glx_gen_queries_arb_cookie_t xcb_ret; 10232 xcb_glx_gen_queries_arb_request_t xcb_out; 10233 10234 xcb_out.context_tag = context_tag; 10235 xcb_out.n = n; 10236 10237 xcb_parts[2].iov_base = (char *) &xcb_out; 10238 xcb_parts[2].iov_len = sizeof(xcb_out); 10239 xcb_parts[3].iov_base = 0; 10240 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10241 10242 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10243 return xcb_ret; 10244 } 10245 10246 xcb_glx_gen_queries_arb_cookie_t 10247 xcb_glx_gen_queries_arb_unchecked (xcb_connection_t *c, 10248 xcb_glx_context_tag_t context_tag, 10249 int32_t n) 10250 { 10251 static const xcb_protocol_request_t xcb_req = { 10252 .count = 2, 10253 .ext = &xcb_glx_id, 10254 .opcode = XCB_GLX_GEN_QUERIES_ARB, 10255 .isvoid = 0 10256 }; 10257 10258 struct iovec xcb_parts[4]; 10259 xcb_glx_gen_queries_arb_cookie_t xcb_ret; 10260 xcb_glx_gen_queries_arb_request_t xcb_out; 10261 10262 xcb_out.context_tag = context_tag; 10263 xcb_out.n = n; 10264 10265 xcb_parts[2].iov_base = (char *) &xcb_out; 10266 xcb_parts[2].iov_len = sizeof(xcb_out); 10267 xcb_parts[3].iov_base = 0; 10268 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10269 10270 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10271 return xcb_ret; 10272 } 10273 10274 uint32_t * 10275 xcb_glx_gen_queries_arb_data (const xcb_glx_gen_queries_arb_reply_t *R) 10276 { 10277 return (uint32_t *) (R + 1); 10278 } 10279 10280 int 10281 xcb_glx_gen_queries_arb_data_length (const xcb_glx_gen_queries_arb_reply_t *R) 10282 { 10283 return R->length; 10284 } 10285 10286 xcb_generic_iterator_t 10287 xcb_glx_gen_queries_arb_data_end (const xcb_glx_gen_queries_arb_reply_t *R) 10288 { 10289 xcb_generic_iterator_t i; 10290 i.data = ((uint32_t *) (R + 1)) + (R->length); 10291 i.rem = 0; 10292 i.index = (char *) i.data - (char *) R; 10293 return i; 10294 } 10295 10296 xcb_glx_gen_queries_arb_reply_t * 10297 xcb_glx_gen_queries_arb_reply (xcb_connection_t *c, 10298 xcb_glx_gen_queries_arb_cookie_t cookie /**< */, 10299 xcb_generic_error_t **e) 10300 { 10301 return (xcb_glx_gen_queries_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10302 } 10303 10304 xcb_glx_is_query_arb_cookie_t 10305 xcb_glx_is_query_arb (xcb_connection_t *c, 10306 xcb_glx_context_tag_t context_tag, 10307 uint32_t id) 10308 { 10309 static const xcb_protocol_request_t xcb_req = { 10310 .count = 2, 10311 .ext = &xcb_glx_id, 10312 .opcode = XCB_GLX_IS_QUERY_ARB, 10313 .isvoid = 0 10314 }; 10315 10316 struct iovec xcb_parts[4]; 10317 xcb_glx_is_query_arb_cookie_t xcb_ret; 10318 xcb_glx_is_query_arb_request_t xcb_out; 10319 10320 xcb_out.context_tag = context_tag; 10321 xcb_out.id = id; 10322 10323 xcb_parts[2].iov_base = (char *) &xcb_out; 10324 xcb_parts[2].iov_len = sizeof(xcb_out); 10325 xcb_parts[3].iov_base = 0; 10326 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10327 10328 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10329 return xcb_ret; 10330 } 10331 10332 xcb_glx_is_query_arb_cookie_t 10333 xcb_glx_is_query_arb_unchecked (xcb_connection_t *c, 10334 xcb_glx_context_tag_t context_tag, 10335 uint32_t id) 10336 { 10337 static const xcb_protocol_request_t xcb_req = { 10338 .count = 2, 10339 .ext = &xcb_glx_id, 10340 .opcode = XCB_GLX_IS_QUERY_ARB, 10341 .isvoid = 0 10342 }; 10343 10344 struct iovec xcb_parts[4]; 10345 xcb_glx_is_query_arb_cookie_t xcb_ret; 10346 xcb_glx_is_query_arb_request_t xcb_out; 10347 10348 xcb_out.context_tag = context_tag; 10349 xcb_out.id = id; 10350 10351 xcb_parts[2].iov_base = (char *) &xcb_out; 10352 xcb_parts[2].iov_len = sizeof(xcb_out); 10353 xcb_parts[3].iov_base = 0; 10354 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10355 10356 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10357 return xcb_ret; 10358 } 10359 10360 xcb_glx_is_query_arb_reply_t * 10361 xcb_glx_is_query_arb_reply (xcb_connection_t *c, 10362 xcb_glx_is_query_arb_cookie_t cookie /**< */, 10363 xcb_generic_error_t **e) 10364 { 10365 return (xcb_glx_is_query_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10366 } 10367 10368 int 10369 xcb_glx_get_queryiv_arb_sizeof (const void *_buffer) 10370 { 10371 char *xcb_tmp = (char *)_buffer; 10372 const xcb_glx_get_queryiv_arb_reply_t *_aux = (xcb_glx_get_queryiv_arb_reply_t *)_buffer; 10373 unsigned int xcb_buffer_len = 0; 10374 unsigned int xcb_block_len = 0; 10375 unsigned int xcb_pad = 0; 10376 unsigned int xcb_align_to = 0; 10377 10378 10379 xcb_block_len += sizeof(xcb_glx_get_queryiv_arb_reply_t); 10380 xcb_tmp += xcb_block_len; 10381 xcb_buffer_len += xcb_block_len; 10382 xcb_block_len = 0; 10383 /* data */ 10384 xcb_block_len += _aux->n * sizeof(int32_t); 10385 xcb_tmp += xcb_block_len; 10386 xcb_align_to = ALIGNOF(int32_t); 10387 /* insert padding */ 10388 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10389 xcb_buffer_len += xcb_block_len + xcb_pad; 10390 if (0 != xcb_pad) { 10391 xcb_tmp += xcb_pad; 10392 xcb_pad = 0; 10393 } 10394 xcb_block_len = 0; 10395 10396 return xcb_buffer_len; 10397 } 10398 10399 xcb_glx_get_queryiv_arb_cookie_t 10400 xcb_glx_get_queryiv_arb (xcb_connection_t *c, 10401 xcb_glx_context_tag_t context_tag, 10402 uint32_t target, 10403 uint32_t pname) 10404 { 10405 static const xcb_protocol_request_t xcb_req = { 10406 .count = 2, 10407 .ext = &xcb_glx_id, 10408 .opcode = XCB_GLX_GET_QUERYIV_ARB, 10409 .isvoid = 0 10410 }; 10411 10412 struct iovec xcb_parts[4]; 10413 xcb_glx_get_queryiv_arb_cookie_t xcb_ret; 10414 xcb_glx_get_queryiv_arb_request_t xcb_out; 10415 10416 xcb_out.context_tag = context_tag; 10417 xcb_out.target = target; 10418 xcb_out.pname = pname; 10419 10420 xcb_parts[2].iov_base = (char *) &xcb_out; 10421 xcb_parts[2].iov_len = sizeof(xcb_out); 10422 xcb_parts[3].iov_base = 0; 10423 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10424 10425 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10426 return xcb_ret; 10427 } 10428 10429 xcb_glx_get_queryiv_arb_cookie_t 10430 xcb_glx_get_queryiv_arb_unchecked (xcb_connection_t *c, 10431 xcb_glx_context_tag_t context_tag, 10432 uint32_t target, 10433 uint32_t pname) 10434 { 10435 static const xcb_protocol_request_t xcb_req = { 10436 .count = 2, 10437 .ext = &xcb_glx_id, 10438 .opcode = XCB_GLX_GET_QUERYIV_ARB, 10439 .isvoid = 0 10440 }; 10441 10442 struct iovec xcb_parts[4]; 10443 xcb_glx_get_queryiv_arb_cookie_t xcb_ret; 10444 xcb_glx_get_queryiv_arb_request_t xcb_out; 10445 10446 xcb_out.context_tag = context_tag; 10447 xcb_out.target = target; 10448 xcb_out.pname = pname; 10449 10450 xcb_parts[2].iov_base = (char *) &xcb_out; 10451 xcb_parts[2].iov_len = sizeof(xcb_out); 10452 xcb_parts[3].iov_base = 0; 10453 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10454 10455 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10456 return xcb_ret; 10457 } 10458 10459 int32_t * 10460 xcb_glx_get_queryiv_arb_data (const xcb_glx_get_queryiv_arb_reply_t *R) 10461 { 10462 return (int32_t *) (R + 1); 10463 } 10464 10465 int 10466 xcb_glx_get_queryiv_arb_data_length (const xcb_glx_get_queryiv_arb_reply_t *R) 10467 { 10468 return R->n; 10469 } 10470 10471 xcb_generic_iterator_t 10472 xcb_glx_get_queryiv_arb_data_end (const xcb_glx_get_queryiv_arb_reply_t *R) 10473 { 10474 xcb_generic_iterator_t i; 10475 i.data = ((int32_t *) (R + 1)) + (R->n); 10476 i.rem = 0; 10477 i.index = (char *) i.data - (char *) R; 10478 return i; 10479 } 10480 10481 xcb_glx_get_queryiv_arb_reply_t * 10482 xcb_glx_get_queryiv_arb_reply (xcb_connection_t *c, 10483 xcb_glx_get_queryiv_arb_cookie_t cookie /**< */, 10484 xcb_generic_error_t **e) 10485 { 10486 return (xcb_glx_get_queryiv_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10487 } 10488 10489 int 10490 xcb_glx_get_query_objectiv_arb_sizeof (const void *_buffer) 10491 { 10492 char *xcb_tmp = (char *)_buffer; 10493 const xcb_glx_get_query_objectiv_arb_reply_t *_aux = (xcb_glx_get_query_objectiv_arb_reply_t *)_buffer; 10494 unsigned int xcb_buffer_len = 0; 10495 unsigned int xcb_block_len = 0; 10496 unsigned int xcb_pad = 0; 10497 unsigned int xcb_align_to = 0; 10498 10499 10500 xcb_block_len += sizeof(xcb_glx_get_query_objectiv_arb_reply_t); 10501 xcb_tmp += xcb_block_len; 10502 xcb_buffer_len += xcb_block_len; 10503 xcb_block_len = 0; 10504 /* data */ 10505 xcb_block_len += _aux->n * sizeof(int32_t); 10506 xcb_tmp += xcb_block_len; 10507 xcb_align_to = ALIGNOF(int32_t); 10508 /* insert padding */ 10509 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10510 xcb_buffer_len += xcb_block_len + xcb_pad; 10511 if (0 != xcb_pad) { 10512 xcb_tmp += xcb_pad; 10513 xcb_pad = 0; 10514 } 10515 xcb_block_len = 0; 10516 10517 return xcb_buffer_len; 10518 } 10519 10520 xcb_glx_get_query_objectiv_arb_cookie_t 10521 xcb_glx_get_query_objectiv_arb (xcb_connection_t *c, 10522 xcb_glx_context_tag_t context_tag, 10523 uint32_t id, 10524 uint32_t pname) 10525 { 10526 static const xcb_protocol_request_t xcb_req = { 10527 .count = 2, 10528 .ext = &xcb_glx_id, 10529 .opcode = XCB_GLX_GET_QUERY_OBJECTIV_ARB, 10530 .isvoid = 0 10531 }; 10532 10533 struct iovec xcb_parts[4]; 10534 xcb_glx_get_query_objectiv_arb_cookie_t xcb_ret; 10535 xcb_glx_get_query_objectiv_arb_request_t xcb_out; 10536 10537 xcb_out.context_tag = context_tag; 10538 xcb_out.id = id; 10539 xcb_out.pname = pname; 10540 10541 xcb_parts[2].iov_base = (char *) &xcb_out; 10542 xcb_parts[2].iov_len = sizeof(xcb_out); 10543 xcb_parts[3].iov_base = 0; 10544 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10545 10546 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10547 return xcb_ret; 10548 } 10549 10550 xcb_glx_get_query_objectiv_arb_cookie_t 10551 xcb_glx_get_query_objectiv_arb_unchecked (xcb_connection_t *c, 10552 xcb_glx_context_tag_t context_tag, 10553 uint32_t id, 10554 uint32_t pname) 10555 { 10556 static const xcb_protocol_request_t xcb_req = { 10557 .count = 2, 10558 .ext = &xcb_glx_id, 10559 .opcode = XCB_GLX_GET_QUERY_OBJECTIV_ARB, 10560 .isvoid = 0 10561 }; 10562 10563 struct iovec xcb_parts[4]; 10564 xcb_glx_get_query_objectiv_arb_cookie_t xcb_ret; 10565 xcb_glx_get_query_objectiv_arb_request_t xcb_out; 10566 10567 xcb_out.context_tag = context_tag; 10568 xcb_out.id = id; 10569 xcb_out.pname = pname; 10570 10571 xcb_parts[2].iov_base = (char *) &xcb_out; 10572 xcb_parts[2].iov_len = sizeof(xcb_out); 10573 xcb_parts[3].iov_base = 0; 10574 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10575 10576 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10577 return xcb_ret; 10578 } 10579 10580 int32_t * 10581 xcb_glx_get_query_objectiv_arb_data (const xcb_glx_get_query_objectiv_arb_reply_t *R) 10582 { 10583 return (int32_t *) (R + 1); 10584 } 10585 10586 int 10587 xcb_glx_get_query_objectiv_arb_data_length (const xcb_glx_get_query_objectiv_arb_reply_t *R) 10588 { 10589 return R->n; 10590 } 10591 10592 xcb_generic_iterator_t 10593 xcb_glx_get_query_objectiv_arb_data_end (const xcb_glx_get_query_objectiv_arb_reply_t *R) 10594 { 10595 xcb_generic_iterator_t i; 10596 i.data = ((int32_t *) (R + 1)) + (R->n); 10597 i.rem = 0; 10598 i.index = (char *) i.data - (char *) R; 10599 return i; 10600 } 10601 10602 xcb_glx_get_query_objectiv_arb_reply_t * 10603 xcb_glx_get_query_objectiv_arb_reply (xcb_connection_t *c, 10604 xcb_glx_get_query_objectiv_arb_cookie_t cookie /**< */, 10605 xcb_generic_error_t **e) 10606 { 10607 return (xcb_glx_get_query_objectiv_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10608 } 10609 10610 int 10611 xcb_glx_get_query_objectuiv_arb_sizeof (const void *_buffer) 10612 { 10613 char *xcb_tmp = (char *)_buffer; 10614 const xcb_glx_get_query_objectuiv_arb_reply_t *_aux = (xcb_glx_get_query_objectuiv_arb_reply_t *)_buffer; 10615 unsigned int xcb_buffer_len = 0; 10616 unsigned int xcb_block_len = 0; 10617 unsigned int xcb_pad = 0; 10618 unsigned int xcb_align_to = 0; 10619 10620 10621 xcb_block_len += sizeof(xcb_glx_get_query_objectuiv_arb_reply_t); 10622 xcb_tmp += xcb_block_len; 10623 xcb_buffer_len += xcb_block_len; 10624 xcb_block_len = 0; 10625 /* data */ 10626 xcb_block_len += _aux->n * sizeof(uint32_t); 10627 xcb_tmp += xcb_block_len; 10628 xcb_align_to = ALIGNOF(uint32_t); 10629 /* insert padding */ 10630 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 10631 xcb_buffer_len += xcb_block_len + xcb_pad; 10632 if (0 != xcb_pad) { 10633 xcb_tmp += xcb_pad; 10634 xcb_pad = 0; 10635 } 10636 xcb_block_len = 0; 10637 10638 return xcb_buffer_len; 10639 } 10640 10641 xcb_glx_get_query_objectuiv_arb_cookie_t 10642 xcb_glx_get_query_objectuiv_arb (xcb_connection_t *c, 10643 xcb_glx_context_tag_t context_tag, 10644 uint32_t id, 10645 uint32_t pname) 10646 { 10647 static const xcb_protocol_request_t xcb_req = { 10648 .count = 2, 10649 .ext = &xcb_glx_id, 10650 .opcode = XCB_GLX_GET_QUERY_OBJECTUIV_ARB, 10651 .isvoid = 0 10652 }; 10653 10654 struct iovec xcb_parts[4]; 10655 xcb_glx_get_query_objectuiv_arb_cookie_t xcb_ret; 10656 xcb_glx_get_query_objectuiv_arb_request_t xcb_out; 10657 10658 xcb_out.context_tag = context_tag; 10659 xcb_out.id = id; 10660 xcb_out.pname = pname; 10661 10662 xcb_parts[2].iov_base = (char *) &xcb_out; 10663 xcb_parts[2].iov_len = sizeof(xcb_out); 10664 xcb_parts[3].iov_base = 0; 10665 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10666 10667 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10668 return xcb_ret; 10669 } 10670 10671 xcb_glx_get_query_objectuiv_arb_cookie_t 10672 xcb_glx_get_query_objectuiv_arb_unchecked (xcb_connection_t *c, 10673 xcb_glx_context_tag_t context_tag, 10674 uint32_t id, 10675 uint32_t pname) 10676 { 10677 static const xcb_protocol_request_t xcb_req = { 10678 .count = 2, 10679 .ext = &xcb_glx_id, 10680 .opcode = XCB_GLX_GET_QUERY_OBJECTUIV_ARB, 10681 .isvoid = 0 10682 }; 10683 10684 struct iovec xcb_parts[4]; 10685 xcb_glx_get_query_objectuiv_arb_cookie_t xcb_ret; 10686 xcb_glx_get_query_objectuiv_arb_request_t xcb_out; 10687 10688 xcb_out.context_tag = context_tag; 10689 xcb_out.id = id; 10690 xcb_out.pname = pname; 10691 10692 xcb_parts[2].iov_base = (char *) &xcb_out; 10693 xcb_parts[2].iov_len = sizeof(xcb_out); 10694 xcb_parts[3].iov_base = 0; 10695 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 10696 10697 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10698 return xcb_ret; 10699 } 10700 10701 uint32_t * 10702 xcb_glx_get_query_objectuiv_arb_data (const xcb_glx_get_query_objectuiv_arb_reply_t *R) 10703 { 10704 return (uint32_t *) (R + 1); 10705 } 10706 10707 int 10708 xcb_glx_get_query_objectuiv_arb_data_length (const xcb_glx_get_query_objectuiv_arb_reply_t *R) 10709 { 10710 return R->n; 10711 } 10712 10713 xcb_generic_iterator_t 10714 xcb_glx_get_query_objectuiv_arb_data_end (const xcb_glx_get_query_objectuiv_arb_reply_t *R) 10715 { 10716 xcb_generic_iterator_t i; 10717 i.data = ((uint32_t *) (R + 1)) + (R->n); 10718 i.rem = 0; 10719 i.index = (char *) i.data - (char *) R; 10720 return i; 10721 } 10722 10723 xcb_glx_get_query_objectuiv_arb_reply_t * 10724 xcb_glx_get_query_objectuiv_arb_reply (xcb_connection_t *c, 10725 xcb_glx_get_query_objectuiv_arb_cookie_t cookie /**< */, 10726 xcb_generic_error_t **e) 10727 { 10728 return (xcb_glx_get_query_objectuiv_arb_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10729 } 10730 10731