1 #ifndef _GLX_glxproto_h_ 2 #define _GLX_glxproto_h_ 3 4 /* 5 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) 6 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a 9 * copy of this software and associated documentation files (the "Software"), 10 * to deal in the Software without restriction, including without limitation 11 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 * and/or sell copies of the Software, and to permit persons to whom the 13 * Software is furnished to do so, subject to the following conditions: 14 * 15 * The above copyright notice including the dates of first publication and 16 * either this permission notice or a reference to 17 * http://oss.sgi.com/projects/FreeB/ 18 * shall be included in all copies or substantial portions of the Software. 19 * 20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 21 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 25 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 * SOFTWARE. 27 * 28 * Except as contained in this notice, the name of Silicon Graphics, Inc. 29 * shall not be used in advertising or otherwise to promote the sale, use or 30 * other dealings in this Software without prior written authorization from 31 * Silicon Graphics, Inc. 32 */ 33 34 #include <GL/glxmd.h> 35 36 /*****************************************************************************/ 37 38 /* 39 ** Errors. 40 */ 41 #define GLXBadContext 0 42 #define GLXBadContextState 1 43 #define GLXBadDrawable 2 44 #define GLXBadPixmap 3 45 #define GLXBadContextTag 4 46 #define GLXBadCurrentWindow 5 47 #define GLXBadRenderRequest 6 48 #define GLXBadLargeRequest 7 49 #define GLXUnsupportedPrivateRequest 8 50 #define GLXBadFBConfig 9 51 #define GLXBadPbuffer 10 52 #define GLXBadCurrentDrawable 11 53 #define GLXBadWindow 12 54 #define GLXBadProfileARB 13 55 56 #define __GLX_NUMBER_ERRORS 14 57 58 /* 59 ** Events. 60 ** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX 61 ** event - this helps initialization if the server supports the pbuffer 62 ** extension and the client doesn't. 63 */ 64 #define GLX_PbufferClobber 0 65 #define GLX_BufferSwapComplete 1 66 67 #define __GLX_NUMBER_EVENTS 17 68 69 #define GLX_EXTENSION_NAME "GLX" 70 #define GLX_EXTENSION_ALIAS "SGI-GLX" 71 72 #define __GLX_MAX_CONTEXT_PROPS 3 73 74 #ifndef GLX_VENDOR 75 #define GLX_VENDOR 0x1 76 #endif 77 #ifndef GLX_VERSION 78 #define GLX_VERSION 0x2 79 #endif 80 #ifndef GLX_EXTENSIONS 81 #define GLX_EXTENSIONS 0x3 82 #endif 83 84 /*****************************************************************************/ 85 86 /* 87 ** For the structure definitions in this file, we must redefine these types in 88 ** terms of Xmd.h types, which may include bitfields. All of these are 89 ** undef'ed at the end of this file, restoring the definitions in glx.h. 90 */ 91 #define GLXContextID CARD32 92 #define GLXPixmap CARD32 93 #define GLXDrawable CARD32 94 #define GLXPbuffer CARD32 95 #define GLXWindow CARD32 96 #define GLXFBConfigID CARD32 97 #define GLXFBConfigIDSGIX CARD32 98 #define GLXPbufferSGIX CARD32 99 100 /* 101 ** ContextTag is not exposed to the API. 102 */ 103 typedef CARD32 GLXContextTag; 104 105 /*****************************************************************************/ 106 107 /* 108 ** Sizes of basic wire types. 109 */ 110 #define __GLX_SIZE_INT8 1 111 #define __GLX_SIZE_INT16 2 112 #define __GLX_SIZE_INT32 4 113 #define __GLX_SIZE_CARD8 1 114 #define __GLX_SIZE_CARD16 2 115 #define __GLX_SIZE_CARD32 4 116 #define __GLX_SIZE_FLOAT32 4 117 #define __GLX_SIZE_FLOAT64 8 118 119 /*****************************************************************************/ 120 121 /* Requests */ 122 123 /* 124 ** Render command request. A bunch of rendering commands are packed into 125 ** a single X extension request. 126 */ 127 typedef struct GLXRender { 128 CARD8 reqType; 129 CARD8 glxCode; 130 CARD16 length; 131 GLXContextTag contextTag; 132 } xGLXRenderReq; 133 #define sz_xGLXRenderReq 8 134 135 /* 136 ** The maximum size that a GLXRender command can be. The value must fit 137 ** in 16 bits and should be a multiple of 4. 138 */ 139 #define __GLX_MAX_RENDER_CMD_SIZE 64000 140 141 /* 142 ** Large render command request. A single large rendering command 143 ** is output in multiple X extension requests. The first packet 144 ** contains an opcode dependent header (see below) that describes 145 ** the data that follows. 146 */ 147 typedef struct GLXRenderLarge { 148 CARD8 reqType; 149 CARD8 glxCode; 150 CARD16 length; 151 GLXContextTag contextTag; 152 CARD16 requestNumber; 153 CARD16 requestTotal; 154 CARD32 dataBytes; 155 } xGLXRenderLargeReq; 156 #define sz_xGLXRenderLargeReq 16 157 158 /* 159 ** GLX single request. Commands that go over as single GLX protocol 160 ** requests use this structure. The glxCode will be one of the X_GLsop 161 ** opcodes. 162 */ 163 typedef struct GLXSingle { 164 CARD8 reqType; 165 CARD8 glxCode; 166 CARD16 length; 167 GLXContextTag contextTag; 168 } xGLXSingleReq; 169 #define sz_xGLXSingleReq 8 170 171 /* 172 ** glXQueryVersion request 173 */ 174 typedef struct GLXQueryVersion { 175 CARD8 reqType; 176 CARD8 glxCode; 177 CARD16 length; 178 CARD32 majorVersion; 179 CARD32 minorVersion; 180 } xGLXQueryVersionReq; 181 #define sz_xGLXQueryVersionReq 12 182 183 /* 184 ** glXIsDirect request 185 */ 186 typedef struct GLXIsDirect { 187 CARD8 reqType; 188 CARD8 glxCode; 189 CARD16 length; 190 GLXContextID context; 191 } xGLXIsDirectReq; 192 #define sz_xGLXIsDirectReq 8 193 194 /* 195 ** glXCreateContext request 196 */ 197 typedef struct GLXCreateContext { 198 CARD8 reqType; 199 CARD8 glxCode; 200 CARD16 length; 201 GLXContextID context; 202 CARD32 visual; 203 CARD32 screen; 204 GLXContextID shareList; 205 BOOL isDirect; 206 CARD8 reserved1; 207 CARD16 reserved2; 208 } xGLXCreateContextReq; 209 #define sz_xGLXCreateContextReq 24 210 211 /* 212 ** glXDestroyContext request 213 */ 214 typedef struct GLXDestroyContext { 215 CARD8 reqType; 216 CARD8 glxCode; 217 CARD16 length; 218 GLXContextID context; 219 } xGLXDestroyContextReq; 220 #define sz_xGLXDestroyContextReq 8 221 222 /* 223 ** glXMakeCurrent request 224 */ 225 typedef struct GLXMakeCurrent { 226 CARD8 reqType; 227 CARD8 glxCode; 228 CARD16 length; 229 GLXDrawable drawable; 230 GLXContextID context; 231 GLXContextTag oldContextTag; 232 } xGLXMakeCurrentReq; 233 #define sz_xGLXMakeCurrentReq 16 234 235 /* 236 ** glXWaitGL request 237 */ 238 typedef struct GLXWaitGL { 239 CARD8 reqType; 240 CARD8 glxCode; 241 CARD16 length; 242 GLXContextTag contextTag; 243 } xGLXWaitGLReq; 244 #define sz_xGLXWaitGLReq 8 245 246 /* 247 ** glXWaitX request 248 */ 249 typedef struct GLXWaitX { 250 CARD8 reqType; 251 CARD8 glxCode; 252 CARD16 length; 253 GLXContextTag contextTag; 254 } xGLXWaitXReq; 255 #define sz_xGLXWaitXReq 8 256 257 /* 258 ** glXCopyContext request 259 */ 260 typedef struct GLXCopyContext { 261 CARD8 reqType; 262 CARD8 glxCode; 263 CARD16 length; 264 GLXContextID source; 265 GLXContextID dest; 266 CARD32 mask; 267 GLXContextTag contextTag; 268 } xGLXCopyContextReq; 269 #define sz_xGLXCopyContextReq 20 270 271 /* 272 ** glXSwapBuffers request 273 */ 274 typedef struct GLXSwapBuffers { 275 CARD8 reqType; 276 CARD8 glxCode; 277 CARD16 length; 278 GLXContextTag contextTag; 279 GLXDrawable drawable; 280 } xGLXSwapBuffersReq; 281 #define sz_xGLXSwapBuffersReq 12 282 283 /* 284 ** glXUseXFont request 285 */ 286 typedef struct GLXUseXFont { 287 CARD8 reqType; 288 CARD8 glxCode; 289 CARD16 length; 290 GLXContextTag contextTag; 291 CARD32 font; 292 CARD32 first; 293 CARD32 count; 294 CARD32 listBase; 295 } xGLXUseXFontReq; 296 #define sz_xGLXUseXFontReq 24 297 298 /* 299 ** glXCreateGLXPixmap request 300 */ 301 typedef struct GLXCreateGLXPixmap { 302 CARD8 reqType; 303 CARD8 glxCode; 304 CARD16 length; 305 CARD32 screen; 306 CARD32 visual; 307 CARD32 pixmap; 308 GLXPixmap glxpixmap; 309 } xGLXCreateGLXPixmapReq; 310 #define sz_xGLXCreateGLXPixmapReq 20 311 312 /* 313 ** glXDestroyGLXPixmap request 314 */ 315 typedef struct GLXDestroyGLXPixmap { 316 CARD8 reqType; 317 CARD8 glxCode; 318 CARD16 length; 319 GLXPixmap glxpixmap; 320 } xGLXDestroyGLXPixmapReq; 321 #define sz_xGLXDestroyGLXPixmapReq 8 322 323 /* 324 ** glXGetVisualConfigs request 325 */ 326 typedef struct GLXGetVisualConfigs { 327 CARD8 reqType; 328 CARD8 glxCode; 329 CARD16 length; 330 CARD32 screen; 331 } xGLXGetVisualConfigsReq; 332 #define sz_xGLXGetVisualConfigsReq 8 333 334 /* 335 ** glXVendorPrivate request. 336 */ 337 typedef struct GLXVendorPrivate { 338 CARD8 reqType; 339 CARD8 glxCode; 340 CARD16 length; 341 CARD32 vendorCode; /* vendor-specific opcode */ 342 GLXContextTag contextTag; 343 /* 344 ** More data may follow; this is just the header. 345 */ 346 } xGLXVendorPrivateReq; 347 #define sz_xGLXVendorPrivateReq 12 348 349 /* 350 ** glXVendorPrivateWithReply request 351 */ 352 typedef struct GLXVendorPrivateWithReply { 353 CARD8 reqType; 354 CARD8 glxCode; 355 CARD16 length; 356 CARD32 vendorCode; /* vendor-specific opcode */ 357 GLXContextTag contextTag; 358 /* 359 ** More data may follow; this is just the header. 360 */ 361 } xGLXVendorPrivateWithReplyReq; 362 #define sz_xGLXVendorPrivateWithReplyReq 12 363 364 /* 365 ** glXQueryExtensionsString request 366 */ 367 typedef struct GLXQueryExtensionsString { 368 CARD8 reqType; 369 CARD8 glxCode; 370 CARD16 length; 371 CARD32 screen; 372 } xGLXQueryExtensionsStringReq; 373 #define sz_xGLXQueryExtensionsStringReq 8 374 375 /* 376 ** glXQueryServerString request 377 */ 378 typedef struct GLXQueryServerString { 379 CARD8 reqType; 380 CARD8 glxCode; 381 CARD16 length; 382 CARD32 screen; 383 CARD32 name; 384 } xGLXQueryServerStringReq; 385 #define sz_xGLXQueryServerStringReq 12 386 387 /* 388 ** glXClientInfo request 389 */ 390 typedef struct GLXClientInfo { 391 CARD8 reqType; 392 CARD8 glxCode; 393 CARD16 length; 394 CARD32 major; 395 CARD32 minor; 396 CARD32 numbytes; 397 } xGLXClientInfoReq; 398 #define sz_xGLXClientInfoReq 16 399 400 /*** Start of GLX 1.3 requests */ 401 402 /* 403 ** glXGetFBConfigs request 404 */ 405 typedef struct GLXGetFBConfigs { 406 CARD8 reqType; 407 CARD8 glxCode; 408 CARD16 length; 409 CARD32 screen; 410 } xGLXGetFBConfigsReq; 411 #define sz_xGLXGetFBConfigsReq 8 412 413 /* 414 ** glXCreatePixmap request 415 */ 416 typedef struct GLXCreatePixmap { 417 CARD8 reqType; 418 CARD8 glxCode; 419 CARD16 length; 420 CARD32 screen; 421 GLXFBConfigID fbconfig; 422 CARD32 pixmap; 423 GLXPixmap glxpixmap; 424 CARD32 numAttribs; 425 /* followed by attribute list */ 426 } xGLXCreatePixmapReq; 427 #define sz_xGLXCreatePixmapReq 24 428 429 /* 430 ** glXDestroyPixmap request 431 */ 432 typedef struct GLXDestroyPixmap { 433 CARD8 reqType; 434 CARD8 glxCode; 435 CARD16 length; 436 GLXPixmap glxpixmap; 437 } xGLXDestroyPixmapReq; 438 #define sz_xGLXDestroyPixmapReq 8 439 440 /* 441 ** glXCreateNewContext request 442 */ 443 typedef struct GLXCreateNewContext { 444 CARD8 reqType; 445 CARD8 glxCode; 446 CARD16 length; 447 GLXContextID context; 448 GLXFBConfigID fbconfig; 449 CARD32 screen; 450 CARD32 renderType; 451 GLXContextID shareList; 452 BOOL isDirect; 453 CARD8 reserved1; 454 CARD16 reserved2; 455 } xGLXCreateNewContextReq; 456 #define sz_xGLXCreateNewContextReq 28 457 458 /* 459 ** glXQueryContext request 460 */ 461 typedef struct GLXQueryContext { 462 CARD8 reqType; 463 CARD8 glxCode; 464 CARD16 length; 465 GLXContextID context; 466 } xGLXQueryContextReq; 467 #define sz_xGLXQueryContextReq 8 468 469 /* 470 ** glXMakeContextCurrent request 471 */ 472 typedef struct GLXMakeContextCurrent { 473 CARD8 reqType; 474 CARD8 glxCode; 475 CARD16 length; 476 GLXContextTag oldContextTag; 477 GLXDrawable drawable; 478 GLXDrawable readdrawable; 479 GLXContextID context; 480 } xGLXMakeContextCurrentReq; 481 #define sz_xGLXMakeContextCurrentReq 20 482 483 /* 484 ** glXCreatePbuffer request 485 */ 486 typedef struct GLXCreatePbuffer { 487 CARD8 reqType; 488 CARD8 glxCode; 489 CARD16 length; 490 CARD32 screen; 491 GLXFBConfigID fbconfig; 492 GLXPbuffer pbuffer; 493 CARD32 numAttribs; 494 /* followed by attribute list */ 495 } xGLXCreatePbufferReq; 496 #define sz_xGLXCreatePbufferReq 20 497 498 /* 499 ** glXDestroyPbuffer request 500 */ 501 typedef struct GLXDestroyPbuffer { 502 CARD8 reqType; 503 CARD8 glxCode; 504 CARD16 length; 505 GLXPbuffer pbuffer; 506 } xGLXDestroyPbufferReq; 507 #define sz_xGLXDestroyPbufferReq 8 508 509 /* 510 ** glXGetDrawableAttributes request 511 */ 512 typedef struct GLXGetDrawableAttributes { 513 CARD8 reqType; 514 CARD8 glxCode; 515 CARD16 length; 516 GLXDrawable drawable; 517 } xGLXGetDrawableAttributesReq; 518 #define sz_xGLXGetDrawableAttributesReq 8 519 520 /* 521 ** glXChangeDrawableAttributes request 522 */ 523 typedef struct GLXChangeDrawableAttributes { 524 CARD8 reqType; 525 CARD8 glxCode; 526 CARD16 length; 527 GLXDrawable drawable; 528 CARD32 numAttribs; 529 /* followed by attribute list */ 530 } xGLXChangeDrawableAttributesReq; 531 #define sz_xGLXChangeDrawableAttributesReq 12 532 533 /* 534 ** glXCreateWindow request 535 */ 536 typedef struct GLXCreateWindow { 537 CARD8 reqType; 538 CARD8 glxCode; 539 CARD16 length; 540 CARD32 screen; 541 GLXFBConfigID fbconfig; 542 CARD32 window; 543 GLXWindow glxwindow; 544 CARD32 numAttribs; 545 /* followed by attribute list */ 546 } xGLXCreateWindowReq; 547 #define sz_xGLXCreateWindowReq 24 548 549 /* 550 ** glXDestroyWindow request 551 */ 552 typedef struct GLXDestroyWindow { 553 CARD8 reqType; 554 CARD8 glxCode; 555 CARD16 length; 556 GLXWindow glxwindow; 557 } xGLXDestroyWindowReq; 558 #define sz_xGLXDestroyWindowReq 8 559 560 /* Replies */ 561 562 typedef struct { 563 BYTE type; /* X_Reply */ 564 CARD8 unused; /* not used */ 565 CARD16 sequenceNumber; 566 CARD32 length; 567 CARD32 error; 568 CARD32 pad2; 569 CARD32 pad3; 570 CARD32 pad4; 571 CARD32 pad5; 572 CARD32 pad6; 573 } xGLXGetErrorReply; 574 #define sz_xGLXGetErrorReply 32 575 576 typedef struct { 577 BYTE type; /* X_Reply */ 578 CARD8 unused; /* not used */ 579 CARD16 sequenceNumber; 580 CARD32 length; 581 GLXContextTag contextTag; 582 CARD32 pad2; 583 CARD32 pad3; 584 CARD32 pad4; 585 CARD32 pad5; 586 CARD32 pad6; 587 } xGLXMakeCurrentReply; 588 #define sz_xGLXMakeCurrentReply 32 589 590 typedef struct { 591 BYTE type; /* X_Reply */ 592 CARD8 unused; /* not used */ 593 CARD16 sequenceNumber; 594 CARD32 length; 595 CARD32 pad1; 596 CARD32 pad2; 597 CARD32 pad3; 598 CARD32 pad4; 599 CARD32 pad5; 600 CARD32 pad6; 601 } xGLXReadPixelsReply; 602 #define sz_xGLXReadPixelsReply 32 603 604 typedef struct { 605 BYTE type; /* X_Reply */ 606 CARD8 unused; /* not used */ 607 CARD16 sequenceNumber; 608 CARD32 length; 609 CARD32 pad1; 610 CARD32 pad2; 611 CARD32 width; 612 CARD32 height; 613 CARD32 depth; 614 CARD32 pad6; 615 } xGLXGetTexImageReply; 616 #define sz_xGLXGetTexImageReply 32 617 618 typedef struct { 619 BYTE type; /* X_Reply */ 620 CARD8 unused; /* not used */ 621 CARD16 sequenceNumber; 622 CARD32 length; 623 CARD32 pad1; 624 CARD32 pad2; 625 CARD32 width; 626 CARD32 height; 627 CARD32 pad5; 628 CARD32 pad6; 629 } xGLXGetSeparableFilterReply; 630 #define sz_xGLXGetSeparableFilterReply 32 631 632 typedef struct { 633 BYTE type; /* X_Reply */ 634 CARD8 unused; /* not used */ 635 CARD16 sequenceNumber; 636 CARD32 length; 637 CARD32 pad1; 638 CARD32 pad2; 639 CARD32 width; 640 CARD32 height; 641 CARD32 pad5; 642 CARD32 pad6; 643 } xGLXGetConvolutionFilterReply; 644 #define sz_xGLXGetConvolutionFilterReply 32 645 646 typedef struct { 647 BYTE type; /* X_Reply */ 648 CARD8 unused; /* not used */ 649 CARD16 sequenceNumber; 650 CARD32 length; 651 CARD32 pad1; 652 CARD32 pad2; 653 CARD32 width; 654 CARD32 pad4; 655 CARD32 pad5; 656 CARD32 pad6; 657 } xGLXGetHistogramReply; 658 #define sz_xGLXGetHistogramReply 32 659 660 typedef struct { 661 BYTE type; /* X_Reply */ 662 CARD8 unused; /* not used */ 663 CARD16 sequenceNumber; 664 CARD32 length; 665 CARD32 pad1; 666 CARD32 pad2; 667 CARD32 pad3; 668 CARD32 pad4; 669 CARD32 pad5; 670 CARD32 pad6; 671 } xGLXGetMinmaxReply; 672 #define sz_xGLXGetMinmaxReply 32 673 674 typedef struct { 675 BYTE type; /* X_Reply */ 676 CARD8 unused; /* not used */ 677 CARD16 sequenceNumber; 678 CARD32 length; 679 CARD32 retval; 680 CARD32 size; 681 CARD32 newMode; 682 CARD32 pad4; 683 CARD32 pad5; 684 CARD32 pad6; 685 } xGLXRenderModeReply; 686 #define sz_xGLXRenderModeReply 32 687 688 typedef struct { 689 BYTE type; /* X_Reply */ 690 CARD8 unused; /* not used */ 691 CARD16 sequenceNumber; 692 CARD32 length; 693 CARD32 majorVersion; 694 CARD32 minorVersion; 695 CARD32 pad3; 696 CARD32 pad4; 697 CARD32 pad5; 698 CARD32 pad6; 699 } xGLXQueryVersionReply; 700 #define sz_xGLXQueryVersionReply 32 701 702 typedef struct { 703 BYTE type; /* X_Reply */ 704 CARD8 unused; /* not used */ 705 CARD16 sequenceNumber; 706 CARD32 length; 707 CARD32 numVisuals; 708 CARD32 numProps; 709 CARD32 pad3; 710 CARD32 pad4; 711 CARD32 pad5; 712 CARD32 pad6; 713 } xGLXGetVisualConfigsReply; 714 #define sz_xGLXGetVisualConfigsReply 32 715 716 typedef struct { 717 BYTE type; /* X_Reply */ 718 CARD8 unused; /* not used */ 719 CARD16 sequenceNumber; 720 CARD32 length; 721 BOOL isDirect; 722 CARD8 pad1; 723 CARD16 pad2; 724 CARD32 pad3; 725 CARD32 pad4; 726 CARD32 pad5; 727 CARD32 pad6; 728 CARD32 pad7; 729 } xGLXIsDirectReply; 730 #define sz_xGLXIsDirectReply 32 731 732 /* 733 ** This reply structure is used for all single replies. Single replies 734 ** ship either 1 piece of data or N pieces of data. In these cases 735 ** size indicates how much data is to be returned. 736 */ 737 typedef struct { 738 BYTE type; /* X_Reply */ 739 CARD8 unused; /* not used */ 740 CARD16 sequenceNumber; 741 CARD32 length; 742 CARD32 retval; 743 CARD32 size; 744 CARD32 pad3; /* NOTE: may hold a single value */ 745 CARD32 pad4; /* NOTE: may hold half a double */ 746 CARD32 pad5; 747 CARD32 pad6; 748 } xGLXSingleReply; 749 #define sz_xGLXSingleReply 32 750 751 /* 752 ** This reply structure is used for all Vendor Private replies. Vendor 753 ** Private replies can ship up to 24 bytes within the header or can 754 ** be variable sized, in which case, the reply length field indicates 755 ** the number of words of data which follow the header. 756 */ 757 typedef struct { 758 BYTE type; /* X_Reply */ 759 CARD8 unused; /* not used */ 760 CARD16 sequenceNumber; 761 CARD32 length; 762 CARD32 retval; 763 CARD32 size; 764 CARD32 pad3; 765 CARD32 pad4; 766 CARD32 pad5; 767 CARD32 pad6; 768 } xGLXVendorPrivReply; 769 #define sz_xGLXVendorPrivReply 32 770 771 /* 772 ** QueryExtensionsStringReply 773 ** n indicates the number of bytes to be returned. 774 */ 775 typedef struct { 776 BYTE type; /* X_Reply */ 777 CARD8 unused; /* not used */ 778 CARD16 sequenceNumber; 779 CARD32 length; 780 CARD32 pad1; 781 CARD32 n; 782 CARD32 pad3; 783 CARD32 pad4; 784 CARD32 pad5; 785 CARD32 pad6; 786 } xGLXQueryExtensionsStringReply; 787 #define sz_xGLXQueryExtensionsStringReply 32 788 789 /* 790 ** QueryServerString Reply struct 791 ** n indicates the number of bytes to be returned. 792 */ 793 typedef struct { 794 BYTE type; /* X_Reply */ 795 CARD8 unused; /* not used */ 796 CARD16 sequenceNumber; 797 CARD32 length; 798 CARD32 pad1; 799 CARD32 n; 800 CARD32 pad3; /* NOTE: may hold a single value */ 801 CARD32 pad4; /* NOTE: may hold half a double */ 802 CARD32 pad5; 803 CARD32 pad6; 804 } xGLXQueryServerStringReply; 805 #define sz_xGLXQueryServerStringReply 32 806 807 /*** Start of GLX 1.3 replies */ 808 809 /* 810 ** glXGetFBConfigs reply 811 */ 812 typedef struct { 813 BYTE type; /* X_Reply */ 814 CARD8 unused; /* not used */ 815 CARD16 sequenceNumber; 816 CARD32 length; 817 CARD32 numFBConfigs; 818 CARD32 numAttribs; 819 CARD32 pad3; 820 CARD32 pad4; 821 CARD32 pad5; 822 CARD32 pad6; 823 } xGLXGetFBConfigsReply; 824 #define sz_xGLXGetFBConfigsReply 32 825 826 /* 827 ** glXQueryContext reply 828 */ 829 typedef struct { 830 BYTE type; /* X_Reply */ 831 CARD8 unused; /* not used */ 832 CARD16 sequenceNumber; 833 CARD32 length; 834 CARD32 n; /* number of attribute/value pairs */ 835 CARD32 pad2; 836 CARD32 pad3; 837 CARD32 pad4; 838 CARD32 pad5; 839 CARD32 pad6; 840 } xGLXQueryContextReply; 841 #define sz_xGLXQueryContextReply 32 842 843 /* 844 ** glXMakeContextCurrent reply 845 */ 846 typedef struct { 847 BYTE type; /* X_Reply */ 848 CARD8 unused; /* not used */ 849 CARD16 sequenceNumber; 850 CARD32 length; 851 GLXContextTag contextTag; 852 CARD32 pad2; 853 CARD32 pad3; 854 CARD32 pad4; 855 CARD32 pad5; 856 CARD32 pad6; 857 } xGLXMakeContextCurrentReply; 858 #define sz_xGLXMakeContextCurrentReply 32 859 860 /* 861 ** glXCreateGLXPbuffer reply 862 ** This is used only in the direct rendering case on SGIs - otherwise 863 ** CreateGLXPbuffer has no reply. It is not part of GLX 1.3. 864 */ 865 typedef struct { 866 BYTE type; /* X_Reply */ 867 CARD8 success; 868 CARD16 sequenceNumber; 869 CARD32 length; 870 CARD32 pad1; 871 CARD32 pad2; 872 CARD32 pad3; 873 CARD32 pad4; 874 CARD32 pad5; 875 CARD32 pad6; 876 } xGLXCreateGLXPbufferReply; 877 #define sz_xGLXCreateGLXPbufferReply 32 878 879 /* 880 ** glXGetDrawableAttributes reply 881 */ 882 typedef struct { 883 BYTE type; /* X_Reply */ 884 CARD8 unused; /* not used */ 885 CARD16 sequenceNumber; 886 CARD32 length; 887 CARD32 numAttribs; 888 CARD32 pad2; 889 CARD32 pad3; 890 CARD32 pad4; 891 CARD32 pad5; 892 CARD32 pad6; 893 } xGLXGetDrawableAttributesReply; 894 #define sz_xGLXGetDrawableAttributesReply 32 895 896 /* 897 ** glXGetColorTable reply 898 */ 899 typedef struct { 900 BYTE type; /* X_Reply */ 901 CARD8 unused; /* not used */ 902 CARD16 sequenceNumber; 903 CARD32 length; 904 CARD32 pad1; 905 CARD32 pad2; 906 CARD32 width; 907 CARD32 pad4; 908 CARD32 pad5; 909 CARD32 pad6; 910 } xGLXGetColorTableReply; 911 #define sz_xGLXGetColorTableReply 32 912 913 /************************************************************************/ 914 915 /* GLX extension requests and replies */ 916 917 /* 918 ** glXQueryContextInfoEXT request 919 */ 920 typedef struct GLXQueryContextInfoEXT { 921 CARD8 reqType; 922 CARD8 glxCode; 923 CARD16 length; 924 CARD32 vendorCode; /* vendor-specific opcode */ 925 CARD32 pad1; /* unused; corresponds to contextTag in header */ 926 GLXContextID context; 927 } xGLXQueryContextInfoEXTReq; 928 #define sz_xGLXQueryContextInfoEXTReq 16 929 930 /* 931 ** glXQueryContextInfoEXT reply 932 */ 933 typedef struct { 934 BYTE type; /* X_Reply */ 935 CARD8 unused; /* not used */ 936 CARD16 sequenceNumber; 937 CARD32 length; 938 CARD32 n; /* number of attribute/value pairs */ 939 CARD32 pad2; 940 CARD32 pad3; 941 CARD32 pad4; 942 CARD32 pad5; 943 CARD32 pad6; 944 } xGLXQueryContextInfoEXTReply; 945 #define sz_xGLXQueryContextInfoEXTReply 32 946 947 /* 948 ** glXMakeCurrentReadSGI request 949 */ 950 typedef struct GLXMakeCurrentReadSGI { 951 CARD8 reqType; 952 CARD8 glxCode; 953 CARD16 length; 954 CARD32 vendorCode; /* vendor-specific opcode */ 955 GLXContextTag oldContextTag; 956 GLXDrawable drawable; 957 GLXDrawable readable; 958 GLXContextID context; 959 } xGLXMakeCurrentReadSGIReq; 960 #define sz_xGLXMakeCurrentReadSGIReq 24 961 962 typedef struct { 963 BYTE type; /* X_Reply */ 964 CARD8 unused; /* not used */ 965 CARD16 sequenceNumber; 966 CARD32 length; 967 GLXContextTag contextTag; 968 CARD32 writeVid; 969 CARD32 writeType; 970 CARD32 readVid; 971 CARD32 readType; 972 CARD32 pad6; 973 } xGLXMakeCurrentReadSGIReply; 974 #define sz_xGLXMakeCurrentReadSGIReply 32 975 976 /* 977 ** glXGetFBConfigsSGIX request 978 */ 979 typedef struct GLXGetFBConfigsSGIX { 980 CARD8 reqType; 981 CARD8 glxCode; 982 CARD16 length; 983 CARD32 vendorCode; /* vendor-specific opcode */ 984 CARD32 pad1; /* unused; corresponds to contextTag in header */ 985 CARD32 screen; 986 } xGLXGetFBConfigsSGIXReq; 987 #define sz_xGLXGetFBConfigsSGIXReq 16 988 989 /* 990 ** glXCreateContextWithConfigSGIX request 991 */ 992 993 typedef struct GLXCreateContextWithConfigSGIX { 994 CARD8 reqType; 995 CARD8 glxCode; 996 CARD16 length; 997 CARD32 vendorCode; /* vendor-specific opcode */ 998 CARD32 pad1; /* unused; corresponds to contextTag in header */ 999 GLXContextID context; 1000 GLXFBConfigID fbconfig; 1001 CARD32 screen; 1002 CARD32 renderType; 1003 GLXContextID shareList; 1004 BOOL isDirect; 1005 CARD8 reserved1; 1006 CARD16 reserved2; 1007 } xGLXCreateContextWithConfigSGIXReq; 1008 #define sz_xGLXCreateContextWithConfigSGIXReq 36 1009 1010 /* 1011 ** glXCreatePixmapWithConfigSGIX request 1012 */ 1013 1014 typedef struct GLXCreateGLXPixmapWithConfigSGIX { 1015 CARD8 reqType; 1016 CARD8 glxCode; 1017 CARD16 length; 1018 CARD32 vendorCode; /* vendor-specific opcode */ 1019 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1020 CARD32 screen; 1021 GLXFBConfigID fbconfig; 1022 CARD32 pixmap; 1023 GLXPixmap glxpixmap; 1024 } xGLXCreateGLXPixmapWithConfigSGIXReq; 1025 #define sz_xGLXCreateGLXPixmapWithConfigSGIXReq 28 1026 1027 /* 1028 ** glXCreateGLXPbufferSGIX request 1029 */ 1030 typedef struct GLXCreateGLXPbufferSGIX { 1031 CARD8 reqType; 1032 CARD8 glxCode; 1033 CARD16 length; 1034 CARD32 vendorCode; /* vendor-specific opcode */ 1035 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1036 CARD32 screen; 1037 GLXFBConfigID fbconfig; 1038 GLXPbuffer pbuffer; 1039 CARD32 width; 1040 CARD32 height; 1041 /* followed by attribute list */ 1042 } xGLXCreateGLXPbufferSGIXReq; 1043 #define sz_xGLXCreateGLXPbufferSGIXReq 32 1044 1045 /* 1046 ** glXDestroyGLXPbufferSGIX request 1047 */ 1048 typedef struct GLXDestroyGLXPbuffer { 1049 CARD8 reqType; 1050 CARD8 glxCode; 1051 CARD16 length; 1052 CARD32 vendorCode; /* vendor-specific opcode */ 1053 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1054 GLXPbuffer pbuffer; 1055 } xGLXDestroyGLXPbufferSGIXReq; 1056 #define sz_xGLXDestroyGLXPbufferSGIXReq 16 1057 1058 /* 1059 ** glXChangeDrawableAttributesSGIX request 1060 */ 1061 typedef struct GLXChangeDrawableAttributesSGIX { 1062 CARD8 reqType; 1063 CARD8 glxCode; 1064 CARD16 length; 1065 CARD32 vendorCode; /* vendor-specific opcode */ 1066 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1067 GLXDrawable drawable; 1068 CARD32 numAttribs; 1069 /* followed by attribute list */ 1070 } xGLXChangeDrawableAttributesSGIXReq; 1071 #define sz_xGLXChangeDrawableAttributesSGIXReq 20 1072 1073 /* 1074 ** glXGetDrawableAttributesSGIX request 1075 */ 1076 typedef struct GLXGetDrawableAttributesSGIX { 1077 CARD8 reqType; 1078 CARD8 glxCode; 1079 CARD16 length; 1080 CARD32 vendorCode; /* vendor-specific opcode */ 1081 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1082 GLXDrawable drawable; 1083 } xGLXGetDrawableAttributesSGIXReq; 1084 #define sz_xGLXGetDrawableAttributesSGIXReq 16 1085 1086 /* 1087 ** glXGetDrawableAttributesSGIX reply 1088 */ 1089 typedef struct { 1090 BYTE type; /* X_Reply */ 1091 CARD8 unused; /* not used */ 1092 CARD16 sequenceNumber; 1093 CARD32 length; 1094 CARD32 numAttribs; 1095 CARD32 pad2; 1096 CARD32 pad3; 1097 CARD32 pad4; 1098 CARD32 pad5; 1099 CARD32 pad6; 1100 } xGLXGetDrawableAttributesSGIXReply; 1101 #define sz_xGLXGetDrawableAttributesSGIXReply 32 1102 1103 /* 1104 ** glXJoinSwapGroupSGIX request 1105 */ 1106 typedef struct GLXJoinSwapGroupSGIX { 1107 CARD8 reqType; 1108 CARD8 glxCode; 1109 CARD16 length; 1110 CARD32 vendorCode; /* vendor-specific opcode */ 1111 CARD32 unused; /* corresponds to contextTag in hdr */ 1112 GLXDrawable drawable; 1113 GLXDrawable member; 1114 } xGLXJoinSwapGroupSGIXReq; 1115 #define sz_xGLXJoinSwapGroupSGIXReq 20 1116 1117 /* 1118 ** glXBindSwapBarrierSGIX request 1119 */ 1120 typedef struct GLXBindSwapBarrierSGIX { 1121 CARD8 reqType; 1122 CARD8 glxCode; 1123 CARD16 length; 1124 CARD32 vendorCode; /* vendor-specific opcode */ 1125 CARD32 unused; /* corresponds to contextTag in hdr */ 1126 GLXDrawable drawable; 1127 CARD32 barrier; 1128 } xGLXBindSwapBarrierSGIXReq; 1129 #define sz_xGLXBindSwapBarrierSGIXReq 20 1130 1131 /* 1132 ** glXQueryMaxSwapBarriersSGIX request 1133 */ 1134 typedef struct GLXQueryMaxSwapBarriersSGIX { 1135 CARD8 reqType; 1136 CARD8 glxCode; 1137 CARD16 length; 1138 CARD32 vendorCode; /* vendor-specific opcode */ 1139 CARD32 unused; /* corresponds to contextTag in hdr */ 1140 CARD32 screen; 1141 } xGLXQueryMaxSwapBarriersSGIXReq; 1142 #define sz_xGLXQueryMaxSwapBarriersSGIXReq 16 1143 1144 typedef struct { 1145 BYTE type; /* X_Reply */ 1146 CARD8 unused; /* not used */ 1147 CARD16 sequenceNumber; 1148 CARD32 length; 1149 CARD32 max; 1150 CARD32 size; 1151 CARD32 pad3; 1152 CARD32 pad4; 1153 CARD32 pad5; 1154 CARD32 pad6; 1155 } xGLXQueryMaxSwapBarriersSGIXReply; 1156 #define sz_xGLXQueryMaxSwapBarriersSGIXReply 32 1157 1158 /* 1159 ** glXQueryHyperpipeNetworkSGIX request 1160 */ 1161 typedef struct GLXQueryHyperpipeNetworkSGIX { 1162 CARD8 reqType; 1163 CARD8 glxCode; 1164 CARD16 length; 1165 CARD32 vendorCode; /* vendor-specific opcode */ 1166 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1167 CARD32 screen; 1168 } xGLXQueryHyperpipeNetworkSGIXReq; 1169 #define sz_xGLXQueryHyperpipeNetworkSGIXReq 16 1170 1171 /* 1172 ** glXQueryHyperpipeNetworkSGIX reply 1173 */ 1174 typedef struct { 1175 BYTE type; /* X_Reply */ 1176 CARD8 unused; /* not used */ 1177 CARD16 sequenceNumber; 1178 CARD32 length; 1179 CARD32 pad1; 1180 CARD32 n; 1181 CARD32 npipes; /* NOTE: may hold a single value */ 1182 CARD32 pad4; /* NOTE: may hold half a double */ 1183 CARD32 pad5; 1184 CARD32 pad6; 1185 } xGLXQueryHyperpipeNetworkSGIXReply; 1186 #define sz_xGLXQueryHyperpipeNetworkSGIXReply 32 1187 1188 /* 1189 ** glXDestroyHyperpipeConfigSGIX request 1190 */ 1191 typedef struct GLXDestroyHyperpipeConfigSGIX { 1192 CARD8 reqType; 1193 CARD8 glxCode; 1194 CARD16 length; 1195 CARD32 vendorCode; /* vendor-specific opcode */ 1196 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1197 CARD32 screen; 1198 CARD32 hpId; 1199 CARD32 pad2; 1200 CARD32 pad3; 1201 CARD32 pad4; 1202 } xGLXDestroyHyperpipeConfigSGIXReq; 1203 #define sz_xGLXDestroyHyperpipeConfigSGIXReq 32 1204 1205 /* 1206 ** glXDestroyHyperpipeConfigSGIX reply 1207 */ 1208 typedef struct { 1209 BYTE type; /* X_Reply */ 1210 CARD8 unused; /* not used */ 1211 CARD16 sequenceNumber; 1212 CARD32 length; 1213 CARD32 pad1; 1214 CARD32 n; 1215 CARD32 success; /* NOTE: may hold a single value */ 1216 CARD32 pad4; /* NOTE: may hold half a double */ 1217 CARD32 pad5; 1218 CARD32 pad6; 1219 } xGLXDestroyHyperpipeConfigSGIXReply; 1220 #define sz_xGLXDestroyHyperpipeConfigSGIXReply 32 1221 1222 /* 1223 ** glXQueryHyperpipeConfigSGIX request 1224 */ 1225 typedef struct GLXQueryHyperpipeConfigSGIX { 1226 CARD8 reqType; 1227 CARD8 glxCode; 1228 CARD16 length; 1229 CARD32 vendorCode; /* vendor-specific opcode */ 1230 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1231 CARD32 screen; 1232 CARD32 hpId; 1233 CARD32 pad2; 1234 CARD32 pad3; 1235 CARD32 pad4; 1236 } xGLXQueryHyperpipeConfigSGIXReq; 1237 #define sz_xGLXQueryHyperpipeConfigSGIXReq 32 1238 1239 /* 1240 ** glXQueryHyperpipeConfigSGIX reply 1241 */ 1242 typedef struct { 1243 BYTE type; /* X_Reply */ 1244 CARD8 unused; /* not used */ 1245 CARD16 sequenceNumber; 1246 CARD32 length; 1247 CARD32 pad1; 1248 CARD32 n; 1249 CARD32 npipes; 1250 CARD32 pad4; 1251 CARD32 pad5; 1252 CARD32 pad6; 1253 } xGLXQueryHyperpipeConfigSGIXReply; 1254 #define sz_xGLXQueryHyperpipeConfigSGIXReply 32 1255 1256 /* 1257 ** glXHyperpipeConfigSGIX request 1258 */ 1259 typedef struct { 1260 CARD8 reqType; 1261 CARD8 glxCode; 1262 CARD16 length; 1263 CARD32 vendorCode; /* vendor-specific opcode */ 1264 CARD32 pad1; /* unused; corresponds to contextTag in header */ 1265 CARD32 screen; 1266 CARD32 npipes; 1267 CARD32 networkId; 1268 CARD32 pad2; 1269 CARD32 pad3; 1270 /* followed by attribute list */ 1271 } xGLXHyperpipeConfigSGIXReq; 1272 #define sz_xGLXHyperpipeConfigSGIXReq 32 1273 1274 /* 1275 ** glXHyperpipeConfigSGIX reply 1276 */ 1277 typedef struct { 1278 BYTE type; /* X_Reply */ 1279 CARD8 unused; /* not used */ 1280 CARD16 sequenceNumber; 1281 CARD32 length; 1282 CARD32 pad1; 1283 CARD32 n; 1284 CARD32 npipes; 1285 CARD32 hpId; 1286 CARD32 pad5; 1287 CARD32 pad6; 1288 } xGLXHyperpipeConfigSGIXReply; 1289 #define sz_xGLXHyperpipeConfigSGIXReply 32 1290 1291 /** 1292 * \name Protocol structures for GLX_ARB_create_context and 1293 * GLX_ARB_create_context_profile 1294 */ 1295 /*@{*/ 1296 /** 1297 * Protocol header for glXSetClientInfoARB 1298 * 1299 * This structure is followed by \c numVersions * 2 \c CARD32 values listing 1300 * the OpenGL versions supported by the client. The pairs of values are an 1301 * OpenGL major version followed by a minor version. For example, 1302 * 1303 * CARD32 versions[4] = { 2, 1, 3, 0 }; 1304 * 1305 * says that the client supports OpenGL 2.1 and OpenGL 3.0. 1306 * 1307 * These are followed by \c numGLExtensionBytes bytes of \c STRING8 containing 1308 * the OpenGL extension string supported by the client and up to 3 bytes of 1309 * padding. 1310 * 1311 * The list of OpenGL extensions is followed by \c numGLXExtensionBytes bytes 1312 * of \c STRING8 containing the GLX extension string supported by the client 1313 * and up to 3 bytes of padding. 1314 * 1315 * This protocol replaces \c GLXClientInfo. 1316 * 1317 * \sa GLXClientInfo, GLXSetClientInfo2ARB 1318 */ 1319 typedef struct GLXSetClientInfoARB { 1320 CARD8 reqType; 1321 CARD8 glxCode; 1322 CARD16 length; 1323 CARD32 major; 1324 CARD32 minor; 1325 CARD32 numVersions; 1326 CARD32 numGLExtensionBytes; 1327 CARD32 numGLXExtensionBytes; 1328 /* 1329 ** More data may follow; this is just the header. 1330 */ 1331 } xGLXSetClientInfoARBReq; 1332 #define sz_xGLXSetClientInfoARBReq 24 1333 1334 /** 1335 * Protocol head for glXCreateContextAttribsARB 1336 * 1337 * This protocol replaces \c GLXCreateContext, \c GLXCreateNewContext, and 1338 * \c GLXCreateContextWithConfigSGIX. 1339 */ 1340 typedef struct GLXCreateContextAttribsARB { 1341 CARD8 reqType; 1342 CARD8 glxCode; 1343 CARD16 length; 1344 GLXContextID context; 1345 GLXFBConfigID fbconfig; 1346 CARD32 screen; 1347 GLXContextID shareList; 1348 BOOL isDirect; 1349 CARD8 reserved1; 1350 CARD16 reserved2; 1351 CARD32 numAttribs; 1352 /* followed by attribute list */ 1353 } xGLXCreateContextAttribsARBReq; 1354 #define sz_xGLXCreateContextAttribsARBReq 28 1355 1356 /** 1357 * Protocol header for glXSetClientInfo2ARB 1358 * 1359 * The glXSetClientInfo2ARB protocol differs from glXSetClientInfoARB in that 1360 * the list of OpenGL versions supported by the client is 3 \c CARD32 values 1361 * per version: major version, minor version, and supported profile mask. 1362 * 1363 * This protocol replaces \c GLXClientInfo and \c GLXSetClientInfoARB. 1364 * 1365 * \sa GLXClientInfo, GLXSetClientInfoARB 1366 */ 1367 typedef struct GLXSetClientInfo2ARB { 1368 CARD8 reqType; 1369 CARD8 glxCode; 1370 CARD16 length; 1371 CARD32 major; 1372 CARD32 minor; 1373 CARD32 numVersions; 1374 CARD32 numGLExtensionBytes; 1375 CARD32 numGLXExtensionBytes; 1376 /* 1377 ** More data may follow; this is just the header. 1378 */ 1379 } xGLXSetClientInfo2ARBReq; 1380 #define sz_xGLXSetClientInfo2ARBReq 24 1381 /*@}*/ 1382 1383 /************************************************************************/ 1384 1385 /* 1386 ** Events 1387 */ 1388 1389 typedef struct { 1390 BYTE type; 1391 BYTE pad; 1392 CARD16 sequenceNumber; 1393 CARD16 event_type; /*** was clobber_class */ 1394 CARD16 draw_type; 1395 CARD32 drawable; 1396 CARD32 buffer_mask; /*** was mask */ 1397 CARD16 aux_buffer; 1398 CARD16 x; 1399 CARD16 y; 1400 CARD16 width; 1401 CARD16 height; 1402 CARD16 count; 1403 CARD32 unused2; 1404 } xGLXPbufferClobberEvent; 1405 1406 typedef struct { 1407 BYTE type; 1408 BYTE pad; 1409 CARD16 sequenceNumber; 1410 CARD16 event_type; 1411 CARD32 drawable; 1412 CARD32 ust_hi; 1413 CARD32 ust_lo; 1414 CARD32 msc_hi; 1415 CARD32 msc_lo; 1416 CARD32 sbc_hi; 1417 CARD32 sbc_lo; 1418 } xGLXBufferSwapComplete; 1419 1420 typedef struct { 1421 BYTE type; 1422 BYTE pad; 1423 CARD16 sequenceNumber; 1424 CARD16 event_type; 1425 CARD16 pad2; 1426 CARD32 drawable; 1427 CARD32 ust_hi; 1428 CARD32 ust_lo; 1429 CARD32 msc_hi; 1430 CARD32 msc_lo; 1431 CARD32 sbc; 1432 } xGLXBufferSwapComplete2; 1433 1434 /************************************************************************/ 1435 1436 /* 1437 ** Size of the standard X request header. 1438 */ 1439 #define __GLX_SINGLE_HDR_SIZE sz_xGLXSingleReq 1440 #define __GLX_VENDPRIV_HDR_SIZE sz_xGLXVendorPrivateReq 1441 1442 #define __GLX_RENDER_HDR \ 1443 CARD16 length; \ 1444 CARD16 opcode 1445 1446 #define __GLX_RENDER_HDR_SIZE 4 1447 1448 typedef struct { 1449 __GLX_RENDER_HDR; 1450 } __GLXrenderHeader; 1451 1452 #define __GLX_RENDER_LARGE_HDR \ 1453 CARD32 length; \ 1454 CARD32 opcode 1455 1456 #define __GLX_RENDER_LARGE_HDR_SIZE 8 1457 1458 typedef struct { 1459 __GLX_RENDER_LARGE_HDR; 1460 } __GLXrenderLargeHeader; 1461 1462 /* 1463 ** The glBitmap, glPolygonStipple, glTexImage[12]D, glTexSubImage[12]D 1464 ** and glDrawPixels calls all have a pixel header transmitted after the 1465 ** Render or RenderLarge header and before their own opcode specific 1466 ** headers. 1467 */ 1468 #define __GLX_PIXEL_HDR \ 1469 BOOL swapBytes; \ 1470 BOOL lsbFirst; \ 1471 CARD8 reserved0; \ 1472 CARD8 reserved1; \ 1473 CARD32 rowLength; \ 1474 CARD32 skipRows; \ 1475 CARD32 skipPixels; \ 1476 CARD32 alignment 1477 1478 #define __GLX_PIXEL_HDR_SIZE 20 1479 1480 typedef struct { 1481 __GLX_PIXEL_HDR; 1482 } __GLXpixelHeader; 1483 1484 /* 1485 ** glTexImage[34]D and glTexSubImage[34]D calls 1486 ** all have a pixel header transmitted after the Render or RenderLarge 1487 ** header and before their own opcode specific headers. 1488 */ 1489 #define __GLX_PIXEL_3D_HDR \ 1490 BOOL swapBytes; \ 1491 BOOL lsbFirst; \ 1492 CARD8 reserved0; \ 1493 CARD8 reserved1; \ 1494 CARD32 rowLength; \ 1495 CARD32 imageHeight; \ 1496 CARD32 imageDepth; \ 1497 CARD32 skipRows; \ 1498 CARD32 skipImages; \ 1499 CARD32 skipVolumes; \ 1500 CARD32 skipPixels; \ 1501 CARD32 alignment 1502 1503 #define __GLX_PIXEL_3D_HDR_SIZE 36 1504 1505 /* 1506 ** Data that is specific to a glBitmap call. The data is sent in the 1507 ** following order: 1508 ** Render or RenderLarge header 1509 ** Pixel header 1510 ** Bitmap header 1511 */ 1512 #define __GLX_BITMAP_HDR \ 1513 CARD32 width; \ 1514 CARD32 height; \ 1515 FLOAT32 xorig F32; \ 1516 FLOAT32 yorig F32; \ 1517 FLOAT32 xmove F32; \ 1518 FLOAT32 ymove F32 1519 1520 typedef struct { 1521 __GLX_RENDER_HDR; 1522 __GLX_PIXEL_HDR; 1523 __GLX_BITMAP_HDR; 1524 } __GLXbitmapHeader; 1525 1526 typedef struct { 1527 __GLX_RENDER_LARGE_HDR; 1528 __GLX_PIXEL_HDR; 1529 __GLX_BITMAP_HDR; 1530 } __GLXbitmapLargeHeader; 1531 1532 typedef struct { 1533 __GLX_PIXEL_HDR; 1534 __GLX_BITMAP_HDR; 1535 } __GLXdispatchBitmapHeader; 1536 1537 #define __GLX_BITMAP_HDR_SIZE 24 1538 1539 #define __GLX_BITMAP_CMD_HDR_SIZE \ 1540 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE) 1541 1542 #define __GLX_BITMAP_CMD_DISPATCH_HDR_SIZE \ 1543 (__GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE) 1544 1545 typedef struct { 1546 __GLX_RENDER_HDR; 1547 __GLX_PIXEL_HDR; 1548 } __GLXpolygonStippleHeader; 1549 1550 #define __GLX_POLYGONSTIPPLE_CMD_HDR_SIZE \ 1551 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE) 1552 1553 /* 1554 ** Data that is specific to a glTexImage1D or glTexImage2D call. The 1555 ** data is sent in the following order: 1556 ** Render or RenderLarge header 1557 ** Pixel header 1558 ** TexImage header 1559 ** When a glTexImage1D call the height field is unexamined by the server. 1560 */ 1561 #define __GLX_TEXIMAGE_HDR \ 1562 CARD32 target; \ 1563 CARD32 level; \ 1564 CARD32 components; \ 1565 CARD32 width; \ 1566 CARD32 height; \ 1567 CARD32 border; \ 1568 CARD32 format; \ 1569 CARD32 type 1570 1571 #define __GLX_TEXIMAGE_HDR_SIZE 32 1572 1573 #define __GLX_TEXIMAGE_CMD_HDR_SIZE \ 1574 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE) 1575 1576 #define __GLX_TEXIMAGE_CMD_DISPATCH_HDR_SIZE \ 1577 (__GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE) 1578 1579 typedef struct { 1580 __GLX_RENDER_HDR; 1581 __GLX_PIXEL_HDR; 1582 __GLX_TEXIMAGE_HDR; 1583 } __GLXtexImageHeader; 1584 1585 typedef struct { 1586 __GLX_RENDER_LARGE_HDR; 1587 __GLX_PIXEL_HDR; 1588 __GLX_TEXIMAGE_HDR; 1589 } __GLXtexImageLargeHeader; 1590 1591 typedef struct { 1592 __GLX_PIXEL_HDR; 1593 __GLX_TEXIMAGE_HDR; 1594 } __GLXdispatchTexImageHeader; 1595 1596 /* 1597 ** Data that is specific to a glTexImage3D or glTexImage4D call. The 1598 ** data is sent in the following order: 1599 ** Render or RenderLarge header 1600 ** Pixel 3D header 1601 ** TexImage 3D header 1602 ** When a glTexImage3D call the size4d and woffset fields are unexamined 1603 ** by the server. 1604 ** Could be used by all TexImage commands and perhaps should be in the 1605 ** future. 1606 */ 1607 #define __GLX_TEXIMAGE_3D_HDR \ 1608 CARD32 target; \ 1609 CARD32 level; \ 1610 CARD32 internalformat; \ 1611 CARD32 width; \ 1612 CARD32 height; \ 1613 CARD32 depth; \ 1614 CARD32 size4d; \ 1615 CARD32 border; \ 1616 CARD32 format; \ 1617 CARD32 type; \ 1618 CARD32 nullimage 1619 1620 #define __GLX_TEXIMAGE_3D_HDR_SIZE 44 1621 1622 #define __GLX_TEXIMAGE_3D_CMD_HDR_SIZE \ 1623 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \ 1624 __GLX_TEXIMAGE_3D_HDR_SIZE) 1625 1626 #define __GLX_TEXIMAGE_3D_CMD_DISPATCH_HDR_SIZE \ 1627 (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXIMAGE_3D_HDR_SIZE) 1628 1629 typedef struct { 1630 __GLX_RENDER_HDR; 1631 __GLX_PIXEL_3D_HDR; 1632 __GLX_TEXIMAGE_3D_HDR; 1633 } __GLXtexImage3DHeader; 1634 1635 typedef struct { 1636 __GLX_RENDER_LARGE_HDR; 1637 __GLX_PIXEL_3D_HDR; 1638 __GLX_TEXIMAGE_3D_HDR; 1639 } __GLXtexImage3DLargeHeader; 1640 1641 typedef struct { 1642 __GLX_PIXEL_3D_HDR; 1643 __GLX_TEXIMAGE_3D_HDR; 1644 } __GLXdispatchTexImage3DHeader; 1645 1646 /* 1647 ** Data that is specific to a glTexSubImage1D or glTexSubImage2D call. The 1648 ** data is sent in the following order: 1649 ** Render or RenderLarge header 1650 ** Pixel header 1651 ** TexSubImage header 1652 ** When a glTexSubImage1D call is made, the yoffset and height fields 1653 ** are unexamined by the server and are considered to be padding. 1654 */ 1655 #define __GLX_TEXSUBIMAGE_HDR \ 1656 CARD32 target; \ 1657 CARD32 level; \ 1658 CARD32 xoffset; \ 1659 CARD32 yoffset; \ 1660 CARD32 width; \ 1661 CARD32 height; \ 1662 CARD32 format; \ 1663 CARD32 type; \ 1664 CARD32 nullImage \ 1665 1666 #define __GLX_TEXSUBIMAGE_HDR_SIZE 36 1667 1668 #define __GLX_TEXSUBIMAGE_CMD_HDR_SIZE \ 1669 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE) 1670 1671 #define __GLX_TEXSUBIMAGE_CMD_DISPATCH_HDR_SIZE \ 1672 (__GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE) 1673 1674 typedef struct { 1675 __GLX_RENDER_HDR; 1676 __GLX_PIXEL_HDR; 1677 __GLX_TEXSUBIMAGE_HDR; 1678 } __GLXtexSubImageHeader; 1679 1680 typedef struct { 1681 __GLX_RENDER_LARGE_HDR; 1682 __GLX_PIXEL_HDR; 1683 __GLX_TEXSUBIMAGE_HDR; 1684 } __GLXtexSubImageLargeHeader; 1685 1686 typedef struct { 1687 __GLX_PIXEL_HDR; 1688 __GLX_TEXSUBIMAGE_HDR; 1689 } __GLXdispatchTexSubImageHeader; 1690 1691 /* 1692 ** Data that is specific to a glTexSubImage3D and 4D calls. The 1693 ** data is sent in the following order: 1694 ** Render or RenderLarge header 1695 ** Pixel 3D header 1696 ** TexSubImage 3D header 1697 ** When a glTexSubImage3D call is made, the woffset and size4d fields 1698 ** are unexamined by the server and are considered to be padding. 1699 */ 1700 #define __GLX_TEXSUBIMAGE_3D_HDR \ 1701 CARD32 target; \ 1702 CARD32 level; \ 1703 CARD32 xoffset; \ 1704 CARD32 yoffset; \ 1705 CARD32 zoffset; \ 1706 CARD32 woffset; \ 1707 CARD32 width; \ 1708 CARD32 height; \ 1709 CARD32 depth; \ 1710 CARD32 size4d; \ 1711 CARD32 format; \ 1712 CARD32 type; \ 1713 CARD32 nullImage \ 1714 1715 #define __GLX_TEXSUBIMAGE_3D_HDR_SIZE 52 1716 1717 #define __GLX_TEXSUBIMAGE_3D_CMD_HDR_SIZE \ 1718 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \ 1719 __GLX_TEXSUBIMAGE_3D_HDR_SIZE) 1720 1721 #define __GLX_TEXSUBIMAGE_3D_CMD_DISPATCH_HDR_SIZE \ 1722 (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D_HDR_SIZE) 1723 1724 typedef struct { 1725 __GLX_RENDER_HDR; 1726 __GLX_PIXEL_3D_HDR; 1727 __GLX_TEXSUBIMAGE_3D_HDR; 1728 } __GLXtexSubImage3DHeader; 1729 1730 typedef struct { 1731 __GLX_RENDER_LARGE_HDR; 1732 __GLX_PIXEL_3D_HDR; 1733 __GLX_TEXSUBIMAGE_3D_HDR; 1734 } __GLXtexSubImage3DLargeHeader; 1735 1736 typedef struct { 1737 __GLX_PIXEL_3D_HDR; 1738 __GLX_TEXSUBIMAGE_3D_HDR; 1739 } __GLXdispatchTexSubImage3DHeader; 1740 1741 /** 1742 * Data that is specific to a \c glCompressedTexImage1D or 1743 * \c glCompressedTexImage2D call. The data is sent in the following 1744 * order: 1745 * - Render or RenderLarge header 1746 * - CompressedTexImage header 1747 * 1748 * When a \c glCompressedTexImage1D call is made, the \c height field is 1749 * not examined by the server and is considered padding. 1750 */ 1751 1752 #define __GLX_COMPRESSED_TEXIMAGE_HDR \ 1753 CARD32 target; \ 1754 CARD32 level; \ 1755 CARD32 internalFormat; \ 1756 CARD32 width; \ 1757 CARD32 height; \ 1758 CARD32 border; \ 1759 CARD32 imageSize 1760 1761 #define __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE 28 1762 1763 #define __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE \ 1764 (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE) 1765 1766 #define __GLX_COMPRESSED_TEXIMAGE_DISPATCH_HDR_SIZE \ 1767 (__GLX_COMPRESSED_TEXIMAGE_HDR_SIZE) 1768 1769 typedef struct { 1770 __GLX_RENDER_HDR; 1771 __GLX_COMPRESSED_TEXIMAGE_HDR; 1772 } __GLXcompressedTexImageHeader; 1773 1774 typedef struct { 1775 __GLX_RENDER_LARGE_HDR; 1776 __GLX_COMPRESSED_TEXIMAGE_HDR; 1777 } __GLXcompressedTexImageLargeHeader; 1778 1779 typedef struct { 1780 __GLX_COMPRESSED_TEXIMAGE_HDR; 1781 } __GLXdispatchCompressedTexImageHeader; 1782 1783 /** 1784 * Data that is specifi to a \c glCompressedTexSubImage1D or 1785 * \c glCompressedTexSubImage2D call. The data is sent in the following 1786 * order: 1787 * - Render or RenderLarge header 1788 * - CompressedTexSubImage header 1789 * 1790 * When a \c glCompressedTexSubImage1D call is made, the \c yoffset and 1791 * \c height fields are not examined by the server and are considered padding. 1792 */ 1793 1794 #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR \ 1795 CARD32 target; \ 1796 CARD32 level; \ 1797 CARD32 xoffset; \ 1798 CARD32 yoffset; \ 1799 CARD32 width; \ 1800 CARD32 height; \ 1801 CARD32 format; \ 1802 CARD32 imageSize 1803 1804 #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE 32 1805 1806 #define __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE \ 1807 (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE) 1808 1809 #define __GLX_COMPRESSED_TEXSUBIMAGE_DISPATCH_HDR_SIZE \ 1810 (__GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE) 1811 1812 typedef struct { 1813 __GLX_RENDER_HDR; 1814 __GLX_COMPRESSED_TEXSUBIMAGE_HDR; 1815 } __GLXcompressedTexSubImageHeader; 1816 1817 typedef struct { 1818 __GLX_RENDER_LARGE_HDR; 1819 __GLX_COMPRESSED_TEXSUBIMAGE_HDR; 1820 } __GLXcompressedTexSubImageLargeHeader; 1821 1822 typedef struct { 1823 __GLX_COMPRESSED_TEXSUBIMAGE_HDR; 1824 } __GLXdispatchCompressedTexSubImageHeader; 1825 1826 /** 1827 * Data that is specific to a \c glCompressedTexImage3D call. The data is 1828 * sent in the following order: 1829 * - Render or RenderLarge header 1830 * - CompressedTexImage3D header 1831 */ 1832 1833 #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR \ 1834 CARD32 target; \ 1835 CARD32 level; \ 1836 CARD32 internalFormat; \ 1837 CARD32 width; \ 1838 CARD32 height; \ 1839 CARD32 depth; \ 1840 CARD32 border; \ 1841 CARD32 imageSize 1842 1843 #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE 32 1844 1845 #define __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE \ 1846 (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE) 1847 1848 #define __GLX_COMPRESSED_TEXIMAGE_3D_DISPATCH_HDR_SIZE \ 1849 (__GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE) 1850 1851 typedef struct { 1852 __GLX_RENDER_HDR; 1853 __GLX_COMPRESSED_TEXIMAGE_3D_HDR; 1854 } __GLXcompressedTexImage3DHeader; 1855 1856 typedef struct { 1857 __GLX_RENDER_LARGE_HDR; 1858 __GLX_COMPRESSED_TEXIMAGE_3D_HDR; 1859 } __GLXcompressedTexImage3DLargeHeader; 1860 1861 typedef struct { 1862 __GLX_COMPRESSED_TEXIMAGE_3D_HDR; 1863 } __GLXdispatchCompressedTexImage3DHeader; 1864 1865 /** 1866 * Data that is specifi to a \c glCompressedTexSubImage3D call. The data is 1867 * sent in the following order: 1868 * - Render or RenderLarge header 1869 * - CompressedTexSubImage3D header 1870 */ 1871 1872 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR \ 1873 CARD32 target; \ 1874 CARD32 level; \ 1875 CARD32 xoffset; \ 1876 CARD32 yoffset; \ 1877 CARD32 zoffset; \ 1878 CARD32 width; \ 1879 CARD32 height; \ 1880 CARD32 depth; \ 1881 CARD32 format; \ 1882 CARD32 imageSize 1883 1884 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE 32 1885 1886 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE \ 1887 (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE) 1888 1889 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_DISPATCH_HDR_SIZE \ 1890 (__GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE) 1891 1892 typedef struct { 1893 __GLX_RENDER_HDR; 1894 __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR; 1895 } __GLXcompressedTexSubImage3DHeader; 1896 1897 typedef struct { 1898 __GLX_RENDER_LARGE_HDR; 1899 __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR; 1900 } __GLXcompressedTexSubImage3DLargeHeader; 1901 1902 typedef struct { 1903 __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR; 1904 } __GLXdispatchCompressedTexSubImage3DHeader; 1905 1906 /* 1907 ** Data that is specific to a glDrawPixels call. The data is sent in the 1908 ** following order: 1909 ** Render or RenderLarge header 1910 ** Pixel header 1911 ** DrawPixels header 1912 */ 1913 #define __GLX_DRAWPIXELS_HDR \ 1914 CARD32 width; \ 1915 CARD32 height; \ 1916 CARD32 format; \ 1917 CARD32 type 1918 1919 #define __GLX_DRAWPIXELS_HDR_SIZE 16 1920 1921 #define __GLX_DRAWPIXELS_CMD_HDR_SIZE \ 1922 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE) 1923 1924 #define __GLX_DRAWPIXELS_CMD_DISPATCH_HDR_SIZE \ 1925 (__GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE) 1926 1927 typedef struct { 1928 __GLX_RENDER_HDR; 1929 __GLX_PIXEL_HDR; 1930 __GLX_DRAWPIXELS_HDR; 1931 } __GLXdrawPixelsHeader; 1932 1933 typedef struct { 1934 __GLX_RENDER_LARGE_HDR; 1935 __GLX_PIXEL_HDR; 1936 __GLX_DRAWPIXELS_HDR; 1937 } __GLXdrawPixelsLargeHeader; 1938 1939 typedef struct { 1940 __GLX_PIXEL_HDR; 1941 __GLX_DRAWPIXELS_HDR; 1942 } __GLXdispatchDrawPixelsHeader; 1943 1944 /* 1945 ** Data that is specific to a glConvolutionFilter1D or glConvolutionFilter2D 1946 ** call. The data is sent in the following order: 1947 ** Render or RenderLarge header 1948 ** Pixel header 1949 ** ConvolutionFilter header 1950 ** When a glConvolutionFilter1D call the height field is unexamined by the server. 1951 */ 1952 #define __GLX_CONV_FILT_HDR \ 1953 CARD32 target; \ 1954 CARD32 internalformat; \ 1955 CARD32 width; \ 1956 CARD32 height; \ 1957 CARD32 format; \ 1958 CARD32 type 1959 1960 #define __GLX_CONV_FILT_HDR_SIZE 24 1961 1962 #define __GLX_CONV_FILT_CMD_HDR_SIZE \ 1963 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE) 1964 1965 #define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \ 1966 (__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE) 1967 typedef struct { 1968 __GLX_RENDER_HDR; 1969 __GLX_PIXEL_HDR; 1970 __GLX_CONV_FILT_HDR; 1971 } __GLXConvolutionFilterHeader; 1972 1973 typedef struct { 1974 __GLX_RENDER_LARGE_HDR; 1975 __GLX_PIXEL_HDR; 1976 __GLX_CONV_FILT_HDR; 1977 } __GLXConvolutionFilterLargeHeader; 1978 1979 typedef struct { 1980 __GLX_PIXEL_HDR; 1981 __GLX_CONV_FILT_HDR; 1982 } __GLXdispatchConvolutionFilterHeader; 1983 1984 /* 1985 ** Data that is specific to a glDrawArraysEXT call. The data is sent in the 1986 ** following order: 1987 ** Render or RenderLarge header 1988 ** Draw Arrays header 1989 ** a variable number of Component headers 1990 ** vertex data for each component type 1991 */ 1992 1993 #define __GLX_DRAWARRAYS_HDR \ 1994 CARD32 numVertexes; \ 1995 CARD32 numComponents; \ 1996 CARD32 primType 1997 1998 #define __GLX_DRAWARRAYS_HDR_SIZE 12 1999 2000 #define __GLX_DRAWARRAYS_CMD_HDR_SIZE \ 2001 (__GLX_RENDER_HDR_SIZE + __GLX_DRAWARRAYS_HDR_SIZE) 2002 2003 typedef struct { 2004 __GLX_RENDER_HDR; 2005 __GLX_DRAWARRAYS_HDR; 2006 } __GLXdrawArraysHeader; 2007 2008 typedef struct { 2009 __GLX_RENDER_LARGE_HDR; 2010 __GLX_DRAWARRAYS_HDR; 2011 } __GLXdrawArraysLargeHeader; 2012 2013 typedef struct { 2014 __GLX_DRAWARRAYS_HDR; 2015 } __GLXdispatchDrawArraysHeader; 2016 2017 #define __GLX_COMPONENT_HDR \ 2018 CARD32 datatype; \ 2019 INT32 numVals; \ 2020 CARD32 component 2021 2022 typedef struct { 2023 __GLX_COMPONENT_HDR; 2024 } __GLXdispatchDrawArraysComponentHeader; 2025 2026 #define __GLX_COMPONENT_HDR_SIZE 12 2027 2028 /* 2029 ** Data that is specific to a glColorTable call 2030 ** The data is sent in the following order: 2031 ** Render or RenderLarge header 2032 ** Pixel header 2033 ** ColorTable header 2034 */ 2035 2036 #define __GLX_COLOR_TABLE_HDR \ 2037 CARD32 target; \ 2038 CARD32 internalformat; \ 2039 CARD32 width; \ 2040 CARD32 format; \ 2041 CARD32 type 2042 2043 #define __GLX_COLOR_TABLE_HDR_SIZE 20 2044 2045 #define __GLX_COLOR_TABLE_CMD_HDR_SIZE \ 2046 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_COLOR_TABLE_HDR_SIZE) 2047 2048 typedef struct { 2049 __GLX_RENDER_HDR; 2050 __GLX_PIXEL_HDR; 2051 __GLX_COLOR_TABLE_HDR; 2052 } __GLXColorTableHeader; 2053 2054 typedef struct { 2055 __GLX_RENDER_LARGE_HDR; 2056 __GLX_PIXEL_HDR; 2057 __GLX_COLOR_TABLE_HDR; 2058 } __GLXColorTableLargeHeader; 2059 2060 typedef struct { 2061 __GLX_PIXEL_HDR; 2062 __GLX_COLOR_TABLE_HDR; 2063 } __GLXdispatchColorTableHeader; 2064 2065 /* 2066 ** Data that is specific to a glColorSubTable call 2067 ** The data is sent in the following order: 2068 ** Render or RenderLarge header 2069 ** Pixel header 2070 ** ColorTable header 2071 */ 2072 2073 #define __GLX_COLOR_SUBTABLE_HDR \ 2074 CARD32 target; \ 2075 CARD32 start; \ 2076 CARD32 count; \ 2077 CARD32 format; \ 2078 CARD32 type 2079 2080 #define __GLX_COLOR_SUBTABLE_HDR_SIZE 20 2081 2082 #define __GLX_COLOR_SUBTABLE_CMD_HDR_SIZE \ 2083 (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + \ 2084 __GLX_COLOR_SUBTABLE_HDR_SIZE) 2085 2086 typedef struct { 2087 __GLX_RENDER_HDR; 2088 __GLX_PIXEL_HDR; 2089 __GLX_COLOR_SUBTABLE_HDR; 2090 } __GLXColorSubTableHeader; 2091 2092 typedef struct { 2093 __GLX_RENDER_LARGE_HDR; 2094 __GLX_PIXEL_HDR; 2095 __GLX_COLOR_SUBTABLE_HDR; 2096 } __GLXColorSubTableLargeHeader; 2097 2098 typedef struct { 2099 __GLX_PIXEL_HDR; 2100 __GLX_COLOR_SUBTABLE_HDR; 2101 } __GLXdispatchColorSubTableHeader; 2102 2103 #define GLX_WINDOW_TYPE 1 2104 #define GLX_PIXMAP_TYPE 2 2105 #define GLX_VIDEO_SOURCE_TYPE 3 2106 #define GLX_PBUFFER_TYPE 4 2107 /* 5 is for DM_PBUFFER */ 2108 #define GLX_GLXWINDOW_TYPE 6 2109 2110 /*****************************************************************************/ 2111 2112 /* 2113 ** Restore these definitions back to the typedefs in glx.h 2114 */ 2115 #undef GLXContextID 2116 #undef GLXPixmap 2117 #undef GLXDrawable 2118 #undef GLXPbuffer 2119 #undef GLXWindow 2120 #undef GLXFBConfigID 2121 #undef GLXFBConfigIDSGIX 2122 #undef GLXPbufferSGIX 2123 2124 2125 /* Opcodes for GLX commands */ 2126 2127 #define X_GLXRender 1 2128 #define X_GLXRenderLarge 2 2129 #define X_GLXCreateContext 3 2130 #define X_GLXDestroyContext 4 2131 #define X_GLXMakeCurrent 5 2132 #define X_GLXIsDirect 6 2133 #define X_GLXQueryVersion 7 2134 #define X_GLXWaitGL 8 2135 #define X_GLXWaitX 9 2136 #define X_GLXCopyContext 10 2137 #define X_GLXSwapBuffers 11 2138 #define X_GLXUseXFont 12 2139 #define X_GLXCreateGLXPixmap 13 2140 #define X_GLXGetVisualConfigs 14 2141 #define X_GLXDestroyGLXPixmap 15 2142 #define X_GLXVendorPrivate 16 2143 #define X_GLXVendorPrivateWithReply 17 2144 #define X_GLXQueryExtensionsString 18 2145 #define X_GLXQueryServerString 19 2146 #define X_GLXClientInfo 20 2147 #define X_GLXGetFBConfigs 21 2148 #define X_GLXCreatePixmap 22 2149 #define X_GLXDestroyPixmap 23 2150 #define X_GLXCreateNewContext 24 2151 #define X_GLXQueryContext 25 2152 #define X_GLXMakeContextCurrent 26 2153 #define X_GLXCreatePbuffer 27 2154 #define X_GLXDestroyPbuffer 28 2155 #define X_GLXGetDrawableAttributes 29 2156 #define X_GLXChangeDrawableAttributes 30 2157 #define X_GLXCreateWindow 31 2158 #define X_GLXDestroyWindow 32 2159 #define X_GLXSetClientInfoARB 33 2160 #define X_GLXCreateContextAttribsARB 34 2161 #define X_GLXSetClientInfo2ARB 35 2162 2163 /* typo compatibility with older headers */ 2164 #define X_GLXCreateContextAtrribsARB 34 2165 #define X_GLXSetConfigInfo2ARB 35 2166 2167 /* Opcodes for single commands (part of GLX command space) */ 2168 2169 #define X_GLsop_NewList 101 2170 #define X_GLsop_EndList 102 2171 #define X_GLsop_DeleteLists 103 2172 #define X_GLsop_GenLists 104 2173 #define X_GLsop_FeedbackBuffer 105 2174 #define X_GLsop_SelectBuffer 106 2175 #define X_GLsop_RenderMode 107 2176 #define X_GLsop_Finish 108 2177 #define X_GLsop_Flush 142 2178 #define X_GLsop_PixelStoref 109 2179 #define X_GLsop_PixelStorei 110 2180 #define X_GLsop_ReadPixels 111 2181 #define X_GLsop_GetBooleanv 112 2182 #define X_GLsop_GetClipPlane 113 2183 #define X_GLsop_GetDoublev 114 2184 #define X_GLsop_GetError 115 2185 #define X_GLsop_GetFloatv 116 2186 #define X_GLsop_GetIntegerv 117 2187 #define X_GLsop_GetLightfv 118 2188 #define X_GLsop_GetLightiv 119 2189 #define X_GLsop_GetMapdv 120 2190 #define X_GLsop_GetMapfv 121 2191 #define X_GLsop_GetMapiv 122 2192 #define X_GLsop_GetMaterialfv 123 2193 #define X_GLsop_GetMaterialiv 124 2194 #define X_GLsop_GetPixelMapfv 125 2195 #define X_GLsop_GetPixelMapuiv 126 2196 #define X_GLsop_GetPixelMapusv 127 2197 #define X_GLsop_GetPolygonStipple 128 2198 #define X_GLsop_GetString 129 2199 #define X_GLsop_GetTexEnvfv 130 2200 #define X_GLsop_GetTexEnviv 131 2201 #define X_GLsop_GetTexGendv 132 2202 #define X_GLsop_GetTexGenfv 133 2203 #define X_GLsop_GetTexGeniv 134 2204 #define X_GLsop_GetTexImage 135 2205 #define X_GLsop_GetTexParameterfv 136 2206 #define X_GLsop_GetTexParameteriv 137 2207 #define X_GLsop_GetTexLevelParameterfv 138 2208 #define X_GLsop_GetTexLevelParameteriv 139 2209 #define X_GLsop_IsEnabled 140 2210 #define X_GLsop_IsList 141 2211 #define X_GLsop_AreTexturesResident 143 2212 #define X_GLsop_DeleteTextures 144 2213 #define X_GLsop_GenTextures 145 2214 #define X_GLsop_IsTexture 146 2215 #define X_GLsop_GetColorTable 147 2216 #define X_GLsop_GetColorTableParameterfv 148 2217 #define X_GLsop_GetColorTableParameteriv 149 2218 #define X_GLsop_GetConvolutionFilter 150 2219 #define X_GLsop_GetConvolutionParameterfv 151 2220 #define X_GLsop_GetConvolutionParameteriv 152 2221 #define X_GLsop_GetSeparableFilter 153 2222 #define X_GLsop_GetHistogram 154 2223 #define X_GLsop_GetHistogramParameterfv 155 2224 #define X_GLsop_GetHistogramParameteriv 156 2225 #define X_GLsop_GetMinmax 157 2226 #define X_GLsop_GetMinmaxParameterfv 158 2227 #define X_GLsop_GetMinmaxParameteriv 159 2228 #define X_GLsop_GetCompressedTexImage 160 2229 2230 2231 /* Opcodes for rendering commands */ 2232 2233 #define X_GLrop_CallList 1 2234 #define X_GLrop_CallLists 2 2235 #define X_GLrop_ListBase 3 2236 #define X_GLrop_Begin 4 2237 #define X_GLrop_Bitmap 5 2238 #define X_GLrop_Color3bv 6 2239 #define X_GLrop_Color3dv 7 2240 #define X_GLrop_Color3fv 8 2241 #define X_GLrop_Color3iv 9 2242 #define X_GLrop_Color3sv 10 2243 #define X_GLrop_Color3ubv 11 2244 #define X_GLrop_Color3uiv 12 2245 #define X_GLrop_Color3usv 13 2246 #define X_GLrop_Color4bv 14 2247 #define X_GLrop_Color4dv 15 2248 #define X_GLrop_Color4fv 16 2249 #define X_GLrop_Color4iv 17 2250 #define X_GLrop_Color4sv 18 2251 #define X_GLrop_Color4ubv 19 2252 #define X_GLrop_Color4uiv 20 2253 #define X_GLrop_Color4usv 21 2254 #define X_GLrop_EdgeFlagv 22 2255 #define X_GLrop_End 23 2256 #define X_GLrop_Indexdv 24 2257 #define X_GLrop_Indexfv 25 2258 #define X_GLrop_Indexiv 26 2259 #define X_GLrop_Indexsv 27 2260 #define X_GLrop_Normal3bv 28 2261 #define X_GLrop_Normal3dv 29 2262 #define X_GLrop_Normal3fv 30 2263 #define X_GLrop_Normal3iv 31 2264 #define X_GLrop_Normal3sv 32 2265 #define X_GLrop_RasterPos2dv 33 2266 #define X_GLrop_RasterPos2fv 34 2267 #define X_GLrop_RasterPos2iv 35 2268 #define X_GLrop_RasterPos2sv 36 2269 #define X_GLrop_RasterPos3dv 37 2270 #define X_GLrop_RasterPos3fv 38 2271 #define X_GLrop_RasterPos3iv 39 2272 #define X_GLrop_RasterPos3sv 40 2273 #define X_GLrop_RasterPos4dv 41 2274 #define X_GLrop_RasterPos4fv 42 2275 #define X_GLrop_RasterPos4iv 43 2276 #define X_GLrop_RasterPos4sv 44 2277 #define X_GLrop_Rectdv 45 2278 #define X_GLrop_Rectfv 46 2279 #define X_GLrop_Rectiv 47 2280 #define X_GLrop_Rectsv 48 2281 #define X_GLrop_TexCoord1dv 49 2282 #define X_GLrop_TexCoord1fv 50 2283 #define X_GLrop_TexCoord1iv 51 2284 #define X_GLrop_TexCoord1sv 52 2285 #define X_GLrop_TexCoord2dv 53 2286 #define X_GLrop_TexCoord2fv 54 2287 #define X_GLrop_TexCoord2iv 55 2288 #define X_GLrop_TexCoord2sv 56 2289 #define X_GLrop_TexCoord3dv 57 2290 #define X_GLrop_TexCoord3fv 58 2291 #define X_GLrop_TexCoord3iv 59 2292 #define X_GLrop_TexCoord3sv 60 2293 #define X_GLrop_TexCoord4dv 61 2294 #define X_GLrop_TexCoord4fv 62 2295 #define X_GLrop_TexCoord4iv 63 2296 #define X_GLrop_TexCoord4sv 64 2297 #define X_GLrop_Vertex2dv 65 2298 #define X_GLrop_Vertex2fv 66 2299 #define X_GLrop_Vertex2iv 67 2300 #define X_GLrop_Vertex2sv 68 2301 #define X_GLrop_Vertex3dv 69 2302 #define X_GLrop_Vertex3fv 70 2303 #define X_GLrop_Vertex3iv 71 2304 #define X_GLrop_Vertex3sv 72 2305 #define X_GLrop_Vertex4dv 73 2306 #define X_GLrop_Vertex4fv 74 2307 #define X_GLrop_Vertex4iv 75 2308 #define X_GLrop_Vertex4sv 76 2309 #define X_GLrop_ClipPlane 77 2310 #define X_GLrop_ColorMaterial 78 2311 #define X_GLrop_CullFace 79 2312 #define X_GLrop_Fogf 80 2313 #define X_GLrop_Fogfv 81 2314 #define X_GLrop_Fogi 82 2315 #define X_GLrop_Fogiv 83 2316 #define X_GLrop_FrontFace 84 2317 #define X_GLrop_Hint 85 2318 #define X_GLrop_Lightf 86 2319 #define X_GLrop_Lightfv 87 2320 #define X_GLrop_Lighti 88 2321 #define X_GLrop_Lightiv 89 2322 #define X_GLrop_LightModelf 90 2323 #define X_GLrop_LightModelfv 91 2324 #define X_GLrop_LightModeli 92 2325 #define X_GLrop_LightModeliv 93 2326 #define X_GLrop_LineStipple 94 2327 #define X_GLrop_LineWidth 95 2328 #define X_GLrop_Materialf 96 2329 #define X_GLrop_Materialfv 97 2330 #define X_GLrop_Materiali 98 2331 #define X_GLrop_Materialiv 99 2332 #define X_GLrop_PointSize 100 2333 #define X_GLrop_PolygonMode 101 2334 #define X_GLrop_PolygonStipple 102 2335 #define X_GLrop_Scissor 103 2336 #define X_GLrop_ShadeModel 104 2337 #define X_GLrop_TexParameterf 105 2338 #define X_GLrop_TexParameterfv 106 2339 #define X_GLrop_TexParameteri 107 2340 #define X_GLrop_TexParameteriv 108 2341 #define X_GLrop_TexImage1D 109 2342 #define X_GLrop_TexImage2D 110 2343 #define X_GLrop_TexEnvf 111 2344 #define X_GLrop_TexEnvfv 112 2345 #define X_GLrop_TexEnvi 113 2346 #define X_GLrop_TexEnviv 114 2347 #define X_GLrop_TexGend 115 2348 #define X_GLrop_TexGendv 116 2349 #define X_GLrop_TexGenf 117 2350 #define X_GLrop_TexGenfv 118 2351 #define X_GLrop_TexGeni 119 2352 #define X_GLrop_TexGeniv 120 2353 #define X_GLrop_InitNames 121 2354 #define X_GLrop_LoadName 122 2355 #define X_GLrop_PassThrough 123 2356 #define X_GLrop_PopName 124 2357 #define X_GLrop_PushName 125 2358 #define X_GLrop_DrawBuffer 126 2359 #define X_GLrop_Clear 127 2360 #define X_GLrop_ClearAccum 128 2361 #define X_GLrop_ClearIndex 129 2362 #define X_GLrop_ClearColor 130 2363 #define X_GLrop_ClearStencil 131 2364 #define X_GLrop_ClearDepth 132 2365 #define X_GLrop_StencilMask 133 2366 #define X_GLrop_ColorMask 134 2367 #define X_GLrop_DepthMask 135 2368 #define X_GLrop_IndexMask 136 2369 #define X_GLrop_Accum 137 2370 #define X_GLrop_Disable 138 2371 #define X_GLrop_Enable 139 2372 #define X_GLrop_PopAttrib 141 2373 #define X_GLrop_PushAttrib 142 2374 #define X_GLrop_Map1d 143 2375 #define X_GLrop_Map1f 144 2376 #define X_GLrop_Map2d 145 2377 #define X_GLrop_Map2f 146 2378 #define X_GLrop_MapGrid1d 147 2379 #define X_GLrop_MapGrid1f 148 2380 #define X_GLrop_MapGrid2d 149 2381 #define X_GLrop_MapGrid2f 150 2382 #define X_GLrop_EvalCoord1dv 151 2383 #define X_GLrop_EvalCoord1fv 152 2384 #define X_GLrop_EvalCoord2dv 153 2385 #define X_GLrop_EvalCoord2fv 154 2386 #define X_GLrop_EvalMesh1 155 2387 #define X_GLrop_EvalPoint1 156 2388 #define X_GLrop_EvalMesh2 157 2389 #define X_GLrop_EvalPoint2 158 2390 #define X_GLrop_AlphaFunc 159 2391 #define X_GLrop_BlendFunc 160 2392 #define X_GLrop_LogicOp 161 2393 #define X_GLrop_StencilFunc 162 2394 #define X_GLrop_StencilOp 163 2395 #define X_GLrop_DepthFunc 164 2396 #define X_GLrop_PixelZoom 165 2397 #define X_GLrop_PixelTransferf 166 2398 #define X_GLrop_PixelTransferi 167 2399 #define X_GLrop_PixelMapfv 168 2400 #define X_GLrop_PixelMapuiv 169 2401 #define X_GLrop_PixelMapusv 170 2402 #define X_GLrop_ReadBuffer 171 2403 #define X_GLrop_CopyPixels 172 2404 #define X_GLrop_DrawPixels 173 2405 #define X_GLrop_DepthRange 174 2406 #define X_GLrop_Frustum 175 2407 #define X_GLrop_LoadIdentity 176 2408 #define X_GLrop_LoadMatrixf 177 2409 #define X_GLrop_LoadMatrixd 178 2410 #define X_GLrop_MatrixMode 179 2411 #define X_GLrop_MultMatrixf 180 2412 #define X_GLrop_MultMatrixd 181 2413 #define X_GLrop_Ortho 182 2414 #define X_GLrop_PopMatrix 183 2415 #define X_GLrop_PushMatrix 184 2416 #define X_GLrop_Rotated 185 2417 #define X_GLrop_Rotatef 186 2418 #define X_GLrop_Scaled 187 2419 #define X_GLrop_Scalef 188 2420 #define X_GLrop_Translated 189 2421 #define X_GLrop_Translatef 190 2422 #define X_GLrop_Viewport 191 2423 #define X_GLrop_DrawArrays 193 2424 #define X_GLrop_PolygonOffset 192 2425 #define X_GLrop_CopyTexImage1D 4119 2426 #define X_GLrop_CopyTexImage2D 4120 2427 #define X_GLrop_CopyTexSubImage1D 4121 2428 #define X_GLrop_CopyTexSubImage2D 4122 2429 #define X_GLrop_TexSubImage1D 4099 2430 #define X_GLrop_TexSubImage2D 4100 2431 #define X_GLrop_BindTexture 4117 2432 #define X_GLrop_PrioritizeTextures 4118 2433 #define X_GLrop_Indexubv 194 2434 #define X_GLrop_BlendColor 4096 2435 #define X_GLrop_BlendEquation 4097 2436 #define X_GLrop_ColorTable 2053 2437 #define X_GLrop_ColorTableParameterfv 2054 2438 #define X_GLrop_ColorTableParameteriv 2055 2439 #define X_GLrop_CopyColorTable 2056 2440 #define X_GLrop_ColorSubTable 195 2441 #define X_GLrop_CopyColorSubTable 196 2442 #define X_GLrop_ConvolutionFilter1D 4101 2443 #define X_GLrop_ConvolutionFilter2D 4102 2444 #define X_GLrop_ConvolutionParameterf 4103 2445 #define X_GLrop_ConvolutionParameterfv 4104 2446 #define X_GLrop_ConvolutionParameteri 4105 2447 #define X_GLrop_ConvolutionParameteriv 4106 2448 #define X_GLrop_CopyConvolutionFilter1D 4107 2449 #define X_GLrop_CopyConvolutionFilter2D 4108 2450 #define X_GLrop_SeparableFilter2D 4109 2451 #define X_GLrop_Histogram 4110 2452 #define X_GLrop_Minmax 4111 2453 #define X_GLrop_ResetHistogram 4112 2454 #define X_GLrop_ResetMinmax 4113 2455 #define X_GLrop_TexImage3D 4114 2456 #define X_GLrop_TexSubImage3D 4115 2457 #define X_GLrop_CopyTexSubImage3D 4123 2458 #define X_GLrop_DrawArraysEXT 4116 2459 2460 /* Added for core GL version 1.3 */ 2461 2462 #define X_GLrop_ActiveTextureARB 197 2463 #define X_GLrop_MultiTexCoord1dvARB 198 2464 #define X_GLrop_MultiTexCoord1fvARB 199 2465 #define X_GLrop_MultiTexCoord1ivARB 200 2466 #define X_GLrop_MultiTexCoord1svARB 201 2467 #define X_GLrop_MultiTexCoord2dvARB 202 2468 #define X_GLrop_MultiTexCoord2fvARB 203 2469 #define X_GLrop_MultiTexCoord2ivARB 204 2470 #define X_GLrop_MultiTexCoord2svARB 205 2471 #define X_GLrop_MultiTexCoord3dvARB 206 2472 #define X_GLrop_MultiTexCoord3fvARB 207 2473 #define X_GLrop_MultiTexCoord3ivARB 208 2474 #define X_GLrop_MultiTexCoord3svARB 209 2475 #define X_GLrop_MultiTexCoord4dvARB 210 2476 #define X_GLrop_MultiTexCoord4fvARB 211 2477 #define X_GLrop_MultiTexCoord4ivARB 212 2478 #define X_GLrop_MultiTexCoord4svARB 213 2479 #define X_GLrop_CompressedTexImage1D 214 2480 #define X_GLrop_CompressedTexImage2D 215 2481 #define X_GLrop_CompressedTexImage3D 216 2482 #define X_GLrop_CompressedTexSubImage1D 217 2483 #define X_GLrop_CompressedTexSubImage2D 218 2484 #define X_GLrop_CompressedTexSubImage3D 219 2485 #define X_GLrop_SampleCoverageARB 229 2486 2487 /* Added for core GL version 1.4 */ 2488 2489 #define X_GLrop_WindowPos3fARB 230 2490 #define X_GLrop_FogCoordfv 4124 2491 #define X_GLrop_FogCoorddv 4125 2492 #define X_GLrop_PointParameterfARB 2065 2493 #define X_GLrop_PointParameterfvARB 2066 2494 #define X_GLrop_SecondaryColor3bv 4126 2495 #define X_GLrop_SecondaryColor3sv 4127 2496 #define X_GLrop_SecondaryColor3iv 4128 2497 #define X_GLrop_SecondaryColor3fv 4129 2498 #define X_GLrop_SecondaryColor3dv 4130 2499 #define X_GLrop_SecondaryColor3ubv 4131 2500 #define X_GLrop_SecondaryColor3usv 4132 2501 #define X_GLrop_SecondaryColor3uiv 4133 2502 #define X_GLrop_BlendFuncSeparate 4134 2503 #define X_GLrop_PointParameteri 4221 2504 #define X_GLrop_PointParameteriv 4222 2505 2506 /* Added for core GL version 1.5 */ 2507 /* XXX opcodes not defined in the spec */ 2508 2509 /* Opcodes for Vendor Private commands */ 2510 2511 2512 #define X_GLvop_GetConvolutionFilterEXT 1 2513 #define X_GLvop_GetConvolutionParameterfvEXT 2 2514 #define X_GLvop_GetConvolutionParameterivEXT 3 2515 #define X_GLvop_GetSeparableFilterEXT 4 2516 #define X_GLvop_GetHistogramEXT 5 2517 #define X_GLvop_GetHistogramParameterfvEXT 6 2518 #define X_GLvop_GetHistogramParameterivEXT 7 2519 #define X_GLvop_GetMinmaxEXT 8 2520 #define X_GLvop_GetMinmaxParameterfvEXT 9 2521 #define X_GLvop_GetMinmaxParameterivEXT 10 2522 #define X_GLvop_AreTexturesResidentEXT 11 2523 #define X_GLvop_DeleteTexturesEXT 12 2524 #define X_GLvop_GenTexturesEXT 13 2525 #define X_GLvop_IsTextureEXT 14 2526 #define X_GLvop_GetCombinerInputParameterfvNV 1270 2527 #define X_GLvop_GetCombinerInputParameterivNV 1271 2528 #define X_GLvop_GetCombinerOutputParameterfvNV 1272 2529 #define X_GLvop_GetCombinerOutputParameterivNV 1273 2530 #define X_GLvop_GetFinalCombinerOutputParameterfvNV 1274 2531 #define X_GLvop_GetFinalCombinerOutputParameterivNV 1275 2532 #define X_GLvop_DeleteFenceNV 1276 2533 #define X_GLvop_GenFencesNV 1277 2534 #define X_GLvop_IsFenceNV 1278 2535 #define X_GLvop_TestFenceNV 1279 2536 #define X_GLvop_GetFenceivNV 1280 2537 #define X_GLvop_AreProgramsResidentNV 1293 2538 #define X_GLvop_DeleteProgramARB 1294 2539 #define X_GLvop_GenProgramsARB 1295 2540 #define X_GLvop_GetProgramEnvParameterfvARB 1296 2541 #define X_GLvop_GetProgramEnvParameterdvARB 1297 2542 #define X_GLvop_GetProgramEnvParameterivNV 1298 2543 #define X_GLvop_GetProgramStringNV 1299 2544 #define X_GLvop_GetTrackMatrixivNV 1300 2545 #define X_GLvop_GetVertexAttribdvARB 1301 2546 #define X_GLvop_GetVertexAttribfvARB 1302 2547 #define X_GLvop_GetVertexAttribivARB 1303 2548 #define X_GLvop_IsProgramARB 1304 2549 #define X_GLvop_GetProgramLocalParameterfvARB 1305 2550 #define X_GLvop_GetProgramLocalParameterdvARB 1306 2551 #define X_GLvop_GetProgramivARB 1307 2552 #define X_GLvop_GetProgramStringARB 1308 2553 #define X_GLvop_GetProgramNamedParameter4fvNV 1310 2554 #define X_GLvop_GetProgramNamedParameter4dvNV 1311 2555 #define X_GLvop_SampleMaskSGIS 2048 2556 #define X_GLvop_SamplePatternSGIS 2049 2557 #define X_GLvop_GetDetailTexFuncSGIS 4096 2558 #define X_GLvop_GetSharpenTexFuncSGIS 4097 2559 #define X_GLvop_GetColorTableSGI 4098 2560 #define X_GLvop_GetColorTableParameterfvSGI 4099 2561 #define X_GLvop_GetColorTableParameterivSGI 4100 2562 #define X_GLvop_GetTexFilterFuncSGIS 4101 2563 #define X_GLvop_GetInstrumentsSGIX 4102 2564 #define X_GLvop_InstrumentsBufferSGIX 4103 2565 #define X_GLvop_PollInstrumentsSGIX 4104 2566 #define X_GLvop_FlushRasterSGIX 4105 2567 2568 /* Opcodes for GLX vendor private commands */ 2569 2570 #define X_GLXvop_QueryContextInfoEXT 1024 2571 #define X_GLXvop_BindTexImageEXT 1330 2572 #define X_GLXvop_ReleaseTexImageEXT 1331 2573 #define X_GLXvop_SwapIntervalSGI 65536 2574 #define X_GLXvop_MakeCurrentReadSGI 65537 2575 #define X_GLXvop_CreateGLXVideoSourceSGIX 65538 2576 #define X_GLXvop_DestroyGLXVideoSourceSGIX 65539 2577 #define X_GLXvop_GetFBConfigsSGIX 65540 2578 #define X_GLXvop_CreateContextWithConfigSGIX 65541 2579 #define X_GLXvop_CreateGLXPixmapWithConfigSGIX 65542 2580 #define X_GLXvop_CreateGLXPbufferSGIX 65543 2581 #define X_GLXvop_DestroyGLXPbufferSGIX 65544 2582 #define X_GLXvop_ChangeDrawableAttributesSGIX 65545 2583 #define X_GLXvop_GetDrawableAttributesSGIX 65546 2584 #define X_GLXvop_JoinSwapGroupSGIX 65547 2585 #define X_GLXvop_BindSwapBarrierSGIX 65548 2586 #define X_GLXvop_QueryMaxSwapBarriersSGIX 65549 2587 #define X_GLXvop_QueryHyperpipeNetworkSGIX 65550 2588 #define X_GLXvop_QueryHyperpipeConfigSGIX 65551 2589 #define X_GLXvop_HyperpipeConfigSGIX 65552 2590 #define X_GLXvop_DestroyHyperpipeConfigSGIX 65553 2591 2592 /* ARB extension opcodes */ 2593 2594 /* 1. GL_ARB_multitexture - see GL 1.2 opcodes */ 2595 /* 5. GL_ARB_multisample - see GL 1.3 opcodes */ 2596 /* 12. GL_ARB_texture_compression - see GL 1.3 opcodes */ 2597 /* 14. GL_ARB_point_parameters - see GL 1.4 opcodees */ 2598 2599 /* 15. GL_ARB_vertex_blend */ 2600 #define X_GLrop_WeightbvARB 220 2601 #define X_GLrop_WeightubvARB 221 2602 #define X_GLrop_WeightsvARB 222 2603 #define X_GLrop_WeightusvARB 223 2604 #define X_GLrop_WeightivARB 224 2605 #define X_GLrop_WeightuivARB 225 2606 #define X_GLrop_VertexBlendARB 226 2607 #define X_GLrop_WeightfvARB 227 2608 #define X_GLrop_WeightdvARB 228 2609 2610 /* 16. GL_ARB_matrix_palette */ 2611 /* XXX opcodes not defined in the spec */ 2612 2613 /* 25. GL_ARB_window_pos - see GL 1.4 opcodes */ 2614 2615 /* 26. GL_ARB_vertex_program */ 2616 #define X_GLrop_BindProgramARB 4180 2617 #define X_GLrop_ProgramEnvParameter4fvARB 4184 2618 #define X_GLrop_ProgramEnvParameter4dvARB 4185 2619 #define X_GLrop_VertexAttrib1svARB 4189 2620 #define X_GLrop_VertexAttrib2svARB 4190 2621 #define X_GLrop_VertexAttrib3svARB 4191 2622 #define X_GLrop_VertexAttrib4svARB 4192 2623 #define X_GLrop_VertexAttrib1fvARB 4193 2624 #define X_GLrop_VertexAttrib2fvARB 4194 2625 #define X_GLrop_VertexAttrib3fvARB 4195 2626 #define X_GLrop_VertexAttrib4fvARB 4196 2627 #define X_GLrop_VertexAttrib1dvARB 4197 2628 #define X_GLrop_VertexAttrib2dvARB 4198 2629 #define X_GLrop_VertexAttrib3dvARB 4199 2630 #define X_GLrop_ProgramLocalParameter4fvARB 4215 2631 #define X_GLrop_ProgramLocalParameter4dvARB 4216 2632 #define X_GLrop_ProgramStringARB 4217 2633 #define X_GLrop_VertexAttrib4dvARB 4200 2634 #define X_GLrop_VertexAttrib4NubvARB 4201 2635 #define X_GLrop_VertexAttrib4bvARB 4230 2636 #define X_GLrop_VertexAttrib4ivARB 4231 2637 #define X_GLrop_VertexAttrib4ubvARB 4232 2638 #define X_GLrop_VertexAttrib4usvARB 4233 2639 #define X_GLrop_VertexAttrib4uivARB 4234 2640 #define X_GLrop_VertexAttrib4NbvARB 4235 2641 #define X_GLrop_VertexAttrib4NsvARB 4236 2642 #define X_GLrop_VertexAttrib4NivARB 4237 2643 #define X_GLrop_VertexAttrib4NusvARB 4238 2644 #define X_GLrop_VertexAttrib4NuivARB 4239 2645 2646 /* 27. GL_ARB_fragment_program - see GL_ARB_vertex_program opcodes */ 2647 2648 /* 29. GL_ARB_occlusion_query */ 2649 /* XXX opcodes not defined in the spec */ 2650 2651 2652 /* New extension opcodes */ 2653 2654 /* 145. GL_EXT_secondary_color - see GL 1.4 opcodes */ 2655 2656 /* 188. GL_EXT_vertex_weighting */ 2657 #define X_GLrop_VertexWeightfvEXT 4135 2658 2659 /* 191. GL_NV_register_combiners */ 2660 #define X_GLrop_CombinerParameterfNV 4136 2661 #define X_GLrop_CombinerParameterfvNV 4137 2662 #define X_GLrop_CombinerParameteriNV 4138 2663 #define X_GLrop_CombinerParameterivNV 4139 2664 #define X_GLrop_CombinerInputNV 4140 2665 #define X_GLrop_CombinerOutputNV 4141 2666 #define X_GLrop_FinalCombinerInputNV 4142 2667 2668 /* 222. GL_NV_fence */ 2669 #define X_GLrop_SetFenceNV 4143 2670 #define X_GLrop_FinishFenceNV 4144 2671 2672 /* 227. GL_NV_register_combiners2 */ 2673 /* XXX opcodes not defined in the spec */ 2674 2675 /* 233. GL_NV_vertex_program - see also GL_ARB_vertex_program opcodes */ 2676 #define X_GLrop_ExecuteProgramNV 4181 2677 #define X_GLrop_RequestResidentProgramsNV 4182 2678 #define X_GLrop_LoadProgamNV 4183 2679 #define X_GLrop_ProgramParameters4fvNV 4186 2680 #define X_GLrop_ProgramParameters4dvNV 4187 2681 #define X_GLrop_TrackMatrixNV 4188 2682 #define X_GLrop_VertexAttribs1svNV 4202 2683 #define X_GLrop_VertexAttribs2svNV 4203 2684 #define X_GLrop_VertexAttribs3svNV 4204 2685 #define X_GLrop_VertexAttribs4svNV 4205 2686 #define X_GLrop_VertexAttribs1fvNV 4206 2687 #define X_GLrop_VertexAttribs2fvNV 4207 2688 #define X_GLrop_VertexAttribs3fvNV 4208 2689 #define X_GLrop_VertexAttribs4fvNV 4209 2690 #define X_GLrop_VertexAttribs1dvNV 4210 2691 #define X_GLrop_VertexAttribs2dvNV 4211 2692 #define X_GLrop_VertexAttribs3dvNV 4212 2693 #define X_GLrop_VertexAttribs4dvNV 4213 2694 #define X_GLrop_VertexAttribs4ubvNV 4214 2695 2696 /* 261. GL_NV_occlusion_query */ 2697 /* XXX opcodes not defined in the spec */ 2698 2699 /* 262. GL_NV_point_sprite - see GL 1.4 opcodes */ 2700 2701 /* 268. GL_EXT_stencil_two_side */ 2702 #define X_GLrop_ActiveStencilFaceEXT 4220 2703 2704 /* 282. GL_NV_fragment_program - see also GL_NV_vertex_program and GL_ARB_vertex_program opcodes */ 2705 #define X_GLrop_ProgramNamedParameter4fvNV 4218 2706 #define X_GLrop_ProgramNamedParameter4dvNV 4219 2707 2708 /* 285. GL_NV_primitive_restart */ 2709 /* XXX opcodes not defined in the spec */ 2710 2711 /* 297. GL_EXT_depth_bounds_test */ 2712 #define X_GLrop_DepthBoundsEXT 4229 2713 2714 /* 299. GL_EXT_blend_equation_separate */ 2715 #define X_GLrop_BlendEquationSeparateEXT 4228 2716 2717 /* 310. GL_EXT_framebuffer_object */ 2718 #define X_GLvop_IsRenderbufferEXT 1422 2719 #define X_GLvop_GenRenderbuffersEXT 1423 2720 #define X_GLvop_GetRenderbufferParameterivEXT 1424 2721 #define X_GLvop_IsFramebufferEXT 1425 2722 #define X_GLvop_GenFramebuffersEXT 1426 2723 #define X_GLvop_CheckFramebufferStatusEXT 1427 2724 #define X_GLvop_GetFramebufferAttachmentParameterivEXT 1428 2725 2726 #endif /* _GLX_glxproto_h_ */ 2727