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*/ 103typedef 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*/ 127typedef 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*/ 147typedef 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*/ 163typedef 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*/ 174typedef 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*/ 186typedef 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*/ 197typedef 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*/ 214typedef 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*/ 225typedef 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*/ 238typedef 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*/ 249typedef 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*/ 260typedef 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*/ 274typedef 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*/ 286typedef 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*/ 301typedef 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*/ 315typedef 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*/ 326typedef 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*/ 337typedef 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*/ 352typedef 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*/ 367typedef 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*/ 378typedef 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*/ 390typedef 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*/ 405typedef 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*/ 416typedef 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*/ 432typedef 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*/ 443typedef 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*/ 461typedef 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*/ 472typedef 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*/ 486typedef 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*/ 501typedef 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*/ 512typedef 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*/ 523typedef 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*/ 536typedef 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*/ 552typedef 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 562typedef 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 576typedef 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 590typedef 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 604typedef 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 618typedef 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 632typedef 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 646typedef 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 660typedef 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 674typedef 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 688typedef 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 702typedef 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 716typedef 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*/ 737typedef 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*/ 757typedef 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*/ 775typedef 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*/ 793typedef 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*/ 812typedef 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*/ 829typedef 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*/ 846typedef 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*/ 865typedef 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*/ 882typedef 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*/ 899typedef 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*/ 920typedef 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*/ 933typedef 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*/ 950typedef 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 962typedef 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*/ 979typedef 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 993typedef 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 1014typedef 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*/ 1030typedef 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*/ 1048typedef 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*/ 1061typedef 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*/ 1076typedef 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*/ 1089typedef 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*/ 1106typedef 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*/ 1120typedef 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*/ 1134typedef 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 1144typedef 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*/ 1161typedef 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*/ 1174typedef 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*/ 1191typedef 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*/ 1208typedef 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*/ 1225typedef 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*/ 1242typedef 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*/ 1259typedef 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*/ 1277typedef 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 */ 1319typedef 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 */ 1340typedef 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 */ 1367typedef 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 1389typedef 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 1406typedef 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 1420typedef 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 1448typedef 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 1458typedef 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 1480typedef 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 1520typedef struct { 1521 __GLX_RENDER_HDR; 1522 __GLX_PIXEL_HDR; 1523 __GLX_BITMAP_HDR; 1524} __GLXbitmapHeader; 1525 1526typedef struct { 1527 __GLX_RENDER_LARGE_HDR; 1528 __GLX_PIXEL_HDR; 1529 __GLX_BITMAP_HDR; 1530} __GLXbitmapLargeHeader; 1531 1532typedef 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 1545typedef 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 1579typedef struct { 1580 __GLX_RENDER_HDR; 1581 __GLX_PIXEL_HDR; 1582 __GLX_TEXIMAGE_HDR; 1583} __GLXtexImageHeader; 1584 1585typedef struct { 1586 __GLX_RENDER_LARGE_HDR; 1587 __GLX_PIXEL_HDR; 1588 __GLX_TEXIMAGE_HDR; 1589} __GLXtexImageLargeHeader; 1590 1591typedef 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 1629typedef struct { 1630 __GLX_RENDER_HDR; 1631 __GLX_PIXEL_3D_HDR; 1632 __GLX_TEXIMAGE_3D_HDR; 1633} __GLXtexImage3DHeader; 1634 1635typedef struct { 1636 __GLX_RENDER_LARGE_HDR; 1637 __GLX_PIXEL_3D_HDR; 1638 __GLX_TEXIMAGE_3D_HDR; 1639} __GLXtexImage3DLargeHeader; 1640 1641typedef 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 1674typedef struct { 1675 __GLX_RENDER_HDR; 1676 __GLX_PIXEL_HDR; 1677 __GLX_TEXSUBIMAGE_HDR; 1678} __GLXtexSubImageHeader; 1679 1680typedef struct { 1681 __GLX_RENDER_LARGE_HDR; 1682 __GLX_PIXEL_HDR; 1683 __GLX_TEXSUBIMAGE_HDR; 1684} __GLXtexSubImageLargeHeader; 1685 1686typedef 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 1724typedef struct { 1725 __GLX_RENDER_HDR; 1726 __GLX_PIXEL_3D_HDR; 1727 __GLX_TEXSUBIMAGE_3D_HDR; 1728} __GLXtexSubImage3DHeader; 1729 1730typedef struct { 1731 __GLX_RENDER_LARGE_HDR; 1732 __GLX_PIXEL_3D_HDR; 1733 __GLX_TEXSUBIMAGE_3D_HDR; 1734} __GLXtexSubImage3DLargeHeader; 1735 1736typedef 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 1769typedef struct { 1770 __GLX_RENDER_HDR; 1771 __GLX_COMPRESSED_TEXIMAGE_HDR; 1772} __GLXcompressedTexImageHeader; 1773 1774typedef struct { 1775 __GLX_RENDER_LARGE_HDR; 1776 __GLX_COMPRESSED_TEXIMAGE_HDR; 1777} __GLXcompressedTexImageLargeHeader; 1778 1779typedef 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 1812typedef struct { 1813 __GLX_RENDER_HDR; 1814 __GLX_COMPRESSED_TEXSUBIMAGE_HDR; 1815} __GLXcompressedTexSubImageHeader; 1816 1817typedef struct { 1818 __GLX_RENDER_LARGE_HDR; 1819 __GLX_COMPRESSED_TEXSUBIMAGE_HDR; 1820} __GLXcompressedTexSubImageLargeHeader; 1821 1822typedef 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 1851typedef struct { 1852 __GLX_RENDER_HDR; 1853 __GLX_COMPRESSED_TEXIMAGE_3D_HDR; 1854} __GLXcompressedTexImage3DHeader; 1855 1856typedef struct { 1857 __GLX_RENDER_LARGE_HDR; 1858 __GLX_COMPRESSED_TEXIMAGE_3D_HDR; 1859} __GLXcompressedTexImage3DLargeHeader; 1860 1861typedef 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 1892typedef struct { 1893 __GLX_RENDER_HDR; 1894 __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR; 1895} __GLXcompressedTexSubImage3DHeader; 1896 1897typedef struct { 1898 __GLX_RENDER_LARGE_HDR; 1899 __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR; 1900} __GLXcompressedTexSubImage3DLargeHeader; 1901 1902typedef 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 1927typedef struct { 1928 __GLX_RENDER_HDR; 1929 __GLX_PIXEL_HDR; 1930 __GLX_DRAWPIXELS_HDR; 1931} __GLXdrawPixelsHeader; 1932 1933typedef struct { 1934 __GLX_RENDER_LARGE_HDR; 1935 __GLX_PIXEL_HDR; 1936 __GLX_DRAWPIXELS_HDR; 1937} __GLXdrawPixelsLargeHeader; 1938 1939typedef 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) 1967typedef struct { 1968 __GLX_RENDER_HDR; 1969 __GLX_PIXEL_HDR; 1970 __GLX_CONV_FILT_HDR; 1971} __GLXConvolutionFilterHeader; 1972 1973typedef struct { 1974 __GLX_RENDER_LARGE_HDR; 1975 __GLX_PIXEL_HDR; 1976 __GLX_CONV_FILT_HDR; 1977} __GLXConvolutionFilterLargeHeader; 1978 1979typedef 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 2003typedef struct { 2004 __GLX_RENDER_HDR; 2005 __GLX_DRAWARRAYS_HDR; 2006} __GLXdrawArraysHeader; 2007 2008typedef struct { 2009 __GLX_RENDER_LARGE_HDR; 2010 __GLX_DRAWARRAYS_HDR; 2011} __GLXdrawArraysLargeHeader; 2012 2013typedef struct { 2014 __GLX_DRAWARRAYS_HDR; 2015} __GLXdispatchDrawArraysHeader; 2016 2017#define __GLX_COMPONENT_HDR \ 2018 CARD32 datatype; \ 2019 INT32 numVals; \ 2020 CARD32 component 2021 2022typedef 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 2048typedef struct { 2049 __GLX_RENDER_HDR; 2050 __GLX_PIXEL_HDR; 2051 __GLX_COLOR_TABLE_HDR; 2052} __GLXColorTableHeader; 2053 2054typedef struct { 2055 __GLX_RENDER_LARGE_HDR; 2056 __GLX_PIXEL_HDR; 2057 __GLX_COLOR_TABLE_HDR; 2058} __GLXColorTableLargeHeader; 2059 2060typedef 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 2086typedef struct { 2087 __GLX_RENDER_HDR; 2088 __GLX_PIXEL_HDR; 2089 __GLX_COLOR_SUBTABLE_HDR; 2090} __GLXColorSubTableHeader; 2091 2092typedef struct { 2093 __GLX_RENDER_LARGE_HDR; 2094 __GLX_PIXEL_HDR; 2095 __GLX_COLOR_SUBTABLE_HDR; 2096} __GLXColorSubTableLargeHeader; 2097 2098typedef 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