Back to index

x11proto-gl  1.4.16
glxproto.h
Go to the documentation of this file.
00001 #ifndef _GLX_glxproto_h_
00002 #define _GLX_glxproto_h_
00003 
00004 /*
00005  * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
00006  * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
00007  *
00008  * Permission is hereby granted, free of charge, to any person obtaining a
00009  * copy of this software and associated documentation files (the "Software"),
00010  * to deal in the Software without restriction, including without limitation
00011  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00012  * and/or sell copies of the Software, and to permit persons to whom the
00013  * Software is furnished to do so, subject to the following conditions:
00014  *
00015  * The above copyright notice including the dates of first publication and
00016  * either this permission notice or a reference to
00017  * http://oss.sgi.com/projects/FreeB/
00018  * shall be included in all copies or substantial portions of the Software.
00019  *
00020  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00021  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00022  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00023  * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
00024  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
00025  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00026  * SOFTWARE.
00027  *
00028  * Except as contained in this notice, the name of Silicon Graphics, Inc.
00029  * shall not be used in advertising or otherwise to promote the sale, use or
00030  * other dealings in this Software without prior written authorization from
00031  * Silicon Graphics, Inc.
00032  */
00033 
00034 #include <GL/glxmd.h>
00035 
00036 /*****************************************************************************/
00037 
00038 /*
00039 ** Errrors.
00040 */
00041 #define GLXBadContext              0
00042 #define GLXBadContextState  1
00043 #define GLXBadDrawable             2
00044 #define GLXBadPixmap        3
00045 #define GLXBadContextTag    4
00046 #define GLXBadCurrentWindow 5
00047 #define GLXBadRenderRequest 6
00048 #define GLXBadLargeRequest  7
00049 #define GLXUnsupportedPrivateRequest      8
00050 #define GLXBadFBConfig             9
00051 #define GLXBadPbuffer              10
00052 #define GLXBadCurrentDrawable      11
00053 #define GLXBadWindow        12
00054 #define GLXBadProfileARB        13
00055 
00056 #define __GLX_NUMBER_ERRORS 14
00057 
00058 /*
00059 ** Events.
00060 ** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
00061 **  event - this helps initialization if the server supports the pbuffer
00062 **  extension and the client doesn't.
00063 */
00064 #define GLX_PbufferClobber  0
00065 #define GLX_BufferSwapComplete     1
00066 
00067 #define __GLX_NUMBER_EVENTS 17
00068 
00069 #define GLX_EXTENSION_NAME  "GLX"
00070 #define GLX_EXTENSION_ALIAS "SGI-GLX"
00071 
00072 #define __GLX_MAX_CONTEXT_PROPS 3
00073 
00074 #ifndef GLX_VENDOR
00075 #define GLX_VENDOR          0x1
00076 #endif
00077 #ifndef GLX_VERSION
00078 #define GLX_VERSION         0x2
00079 #endif
00080 #ifndef GLX_EXTENSIONS
00081 #define GLX_EXTENSIONS             0x3
00082 #endif
00083 
00084 /*****************************************************************************/
00085 
00086 /*
00087 ** For the structure definitions in this file, we must redefine these types in
00088 ** terms of Xmd.h types, which may include bitfields.  All of these are
00089 ** undef'ed at the end of this file, restoring the definitions in glx.h.
00090 */
00091 #define GLXContextID CARD32
00092 #define GLXPixmap CARD32
00093 #define GLXDrawable CARD32
00094 #define GLXPbuffer CARD32
00095 #define GLXWindow CARD32
00096 #define GLXFBConfigID CARD32
00097 #define GLXFBConfigIDSGIX CARD32
00098 #define GLXPbufferSGIX CARD32
00099 
00100 /*
00101 ** ContextTag is not exposed to the API.
00102 */
00103 typedef CARD32 GLXContextTag;
00104 
00105 /*****************************************************************************/
00106 
00107 /*
00108 ** Sizes of basic wire types.
00109 */
00110 #define __GLX_SIZE_INT8            1
00111 #define __GLX_SIZE_INT16    2
00112 #define __GLX_SIZE_INT32    4
00113 #define __GLX_SIZE_CARD8    1
00114 #define __GLX_SIZE_CARD16   2
00115 #define __GLX_SIZE_CARD32   4
00116 #define __GLX_SIZE_FLOAT32  4
00117 #define __GLX_SIZE_FLOAT64  8
00118 
00119 /*****************************************************************************/
00120 
00121 /* Requests */
00122 
00123 /*
00124 ** Render command request.  A bunch of rendering commands are packed into
00125 ** a single X extension request.
00126 */
00127 typedef struct GLXRender {
00128     CARD8     reqType;
00129     CARD8     glxCode;
00130     CARD16    length B16;
00131     GLXContextTag contextTag B32;
00132 } xGLXRenderReq;
00133 #define sz_xGLXRenderReq 8
00134 
00135 /*
00136 ** The maximum size that a GLXRender command can be.  The value must fit
00137 ** in 16 bits and should be a multiple of 4.
00138 */
00139 #define __GLX_MAX_RENDER_CMD_SIZE  64000
00140 
00141 /*
00142 ** Large render command request.  A single large rendering command
00143 ** is output in multiple X extension requests.   The first packet
00144 ** contains an opcode dependent header (see below) that describes
00145 ** the data that follows.
00146 */
00147 typedef struct GLXRenderLarge {
00148     CARD8     reqType;
00149     CARD8     glxCode;
00150     CARD16    length B16;
00151     GLXContextTag contextTag B32;
00152     CARD16    requestNumber B16;
00153     CARD16    requestTotal B16;
00154     CARD32    dataBytes B32;
00155 } xGLXRenderLargeReq;
00156 #define sz_xGLXRenderLargeReq 16
00157 
00158 /*
00159 ** GLX single request.      Commands that go over as single GLX protocol
00160 ** requests use this structure.  The glxCode will be one of the X_GLsop
00161 ** opcodes.
00162 */
00163 typedef struct GLXSingle {
00164     CARD8     reqType;
00165     CARD8     glxCode;
00166     CARD16    length B16;
00167     GLXContextTag contextTag B32;
00168 } xGLXSingleReq;
00169 #define sz_xGLXSingleReq 8
00170 
00171 /*
00172 ** glXQueryVersion request
00173 */
00174 typedef struct GLXQueryVersion {
00175     CARD8     reqType;
00176     CARD8     glxCode;
00177     CARD16    length B16;
00178     CARD32    majorVersion B32;
00179     CARD32    minorVersion B32;
00180 } xGLXQueryVersionReq;
00181 #define sz_xGLXQueryVersionReq 12
00182 
00183 /*
00184 ** glXIsDirect request
00185 */
00186 typedef struct GLXIsDirect {
00187     CARD8     reqType;
00188     CARD8     glxCode;
00189     CARD16    length B16;
00190     GLXContextID context B32;
00191 } xGLXIsDirectReq;
00192 #define sz_xGLXIsDirectReq 8
00193 
00194 /*
00195 ** glXCreateContext request
00196 */
00197 typedef struct GLXCreateContext {
00198     CARD8     reqType;
00199     CARD8     glxCode;
00200     CARD16    length B16;
00201     GLXContextID context B32;
00202     CARD32    visual B32;
00203     CARD32    screen B32;
00204     GLXContextID shareList B32;
00205     BOOL      isDirect;
00206     CARD8     reserved1;
00207     CARD16    reserved2 B16;
00208 } xGLXCreateContextReq;
00209 #define sz_xGLXCreateContextReq 24
00210 
00211 /*
00212 ** glXDestroyContext request
00213 */
00214 typedef struct GLXDestroyContext {
00215     CARD8     reqType;
00216     CARD8     glxCode;
00217     CARD16    length B16;
00218     GLXContextID context B32;
00219 } xGLXDestroyContextReq;
00220 #define sz_xGLXDestroyContextReq 8
00221 
00222 /*
00223 ** glXMakeCurrent request
00224 */
00225 typedef struct GLXMakeCurrent {
00226     CARD8     reqType;
00227     CARD8     glxCode;
00228     CARD16    length B16;
00229     GLXDrawable drawable B32;
00230     GLXContextID context B32;
00231     GLXContextTag oldContextTag B32;
00232 } xGLXMakeCurrentReq;
00233 #define sz_xGLXMakeCurrentReq 16
00234 
00235 /*
00236 ** glXWaitGL request
00237 */
00238 typedef struct GLXWaitGL {
00239     CARD8     reqType;
00240     CARD8     glxCode;
00241     CARD16    length B16;
00242     GLXContextTag contextTag B32;
00243 } xGLXWaitGLReq;
00244 #define sz_xGLXWaitGLReq 8
00245 
00246 /*
00247 ** glXWaitX request
00248 */
00249 typedef struct GLXWaitX {
00250     CARD8     reqType;
00251     CARD8     glxCode;
00252     CARD16    length B16;
00253     GLXContextTag contextTag B32;
00254 } xGLXWaitXReq;
00255 #define sz_xGLXWaitXReq 8
00256 
00257 /*
00258 ** glXCopyContext request
00259 */
00260 typedef struct GLXCopyContext {
00261     CARD8     reqType;
00262     CARD8     glxCode;
00263     CARD16    length B16;
00264     GLXContextID source B32;
00265     GLXContextID dest B32;
00266     CARD32    mask B32;
00267     GLXContextTag contextTag B32;
00268 } xGLXCopyContextReq;
00269 #define sz_xGLXCopyContextReq 20
00270 
00271 /*
00272 ** glXSwapBuffers request
00273 */
00274 typedef struct GLXSwapBuffers {
00275     CARD8     reqType;
00276     CARD8     glxCode;
00277     CARD16    length B16;
00278     GLXContextTag contextTag B32;
00279     GLXDrawable drawable B32;
00280 } xGLXSwapBuffersReq;
00281 #define sz_xGLXSwapBuffersReq 12
00282 
00283 /*
00284 ** glXUseXFont request
00285 */
00286 typedef struct GLXUseXFont {
00287     CARD8     reqType;
00288     CARD8     glxCode;
00289     CARD16    length B16;
00290     GLXContextTag contextTag B32;
00291     CARD32    font B32;
00292     CARD32    first B32;
00293     CARD32    count B32;
00294     CARD32    listBase B32;
00295 } xGLXUseXFontReq;
00296 #define sz_xGLXUseXFontReq 24
00297 
00298 /*
00299 ** glXCreateGLXPixmap request
00300 */
00301 typedef struct GLXCreateGLXPixmap {
00302     CARD8     reqType;
00303     CARD8     glxCode;
00304     CARD16    length B16;
00305     CARD32    screen B32;
00306     CARD32    visual B32;
00307     CARD32    pixmap B32;
00308     GLXPixmap glxpixmap B32;
00309 } xGLXCreateGLXPixmapReq;
00310 #define sz_xGLXCreateGLXPixmapReq 20
00311 
00312 /*
00313 ** glXDestroyGLXPixmap request
00314 */
00315 typedef struct GLXDestroyGLXPixmap {
00316     CARD8     reqType;
00317     CARD8     glxCode;
00318     CARD16    length B16;
00319     GLXPixmap glxpixmap B32;
00320 } xGLXDestroyGLXPixmapReq;
00321 #define sz_xGLXDestroyGLXPixmapReq 8
00322 
00323 /*
00324 ** glXGetVisualConfigs request
00325 */
00326 typedef struct GLXGetVisualConfigs {
00327     CARD8     reqType;
00328     CARD8     glxCode;
00329     CARD16    length B16;
00330     CARD32    screen B32;
00331 } xGLXGetVisualConfigsReq;
00332 #define sz_xGLXGetVisualConfigsReq 8
00333 
00334 /*
00335 ** glXVendorPrivate request.
00336 */
00337 typedef struct GLXVendorPrivate {
00338     CARD8     reqType;
00339     CARD8     glxCode;
00340     CARD16    length B16;
00341     CARD32    vendorCode B32;             /* vendor-specific opcode */
00342     GLXContextTag contextTag B32;
00343     /*
00344     ** More data may follow; this is just the header.
00345     */
00346 } xGLXVendorPrivateReq;
00347 #define sz_xGLXVendorPrivateReq 12
00348 
00349 /*
00350 ** glXVendorPrivateWithReply request
00351 */
00352 typedef struct GLXVendorPrivateWithReply {
00353     CARD8     reqType;
00354     CARD8     glxCode;
00355     CARD16    length B16;
00356     CARD32    vendorCode B32;             /* vendor-specific opcode */
00357     GLXContextTag contextTag B32;
00358     /*
00359     ** More data may follow; this is just the header.
00360     */
00361 } xGLXVendorPrivateWithReplyReq;
00362 #define sz_xGLXVendorPrivateWithReplyReq 12
00363 
00364 /*
00365 ** glXQueryExtensionsString request
00366 */
00367 typedef struct GLXQueryExtensionsString {
00368     CARD8     reqType;
00369     CARD8     glxCode;
00370     CARD16    length B16;
00371     CARD32    screen B32;
00372 } xGLXQueryExtensionsStringReq;
00373 #define sz_xGLXQueryExtensionsStringReq 8
00374 
00375 /*
00376 ** glXQueryServerString request
00377 */
00378 typedef struct GLXQueryServerString {
00379     CARD8     reqType;
00380     CARD8     glxCode;
00381     CARD16    length B16;
00382     CARD32    screen B32;
00383     CARD32    name B32;
00384 } xGLXQueryServerStringReq;
00385 #define sz_xGLXQueryServerStringReq 12
00386 
00387 /*
00388 ** glXClientInfo request
00389 */
00390 typedef struct GLXClientInfo {
00391     CARD8     reqType;
00392     CARD8     glxCode;
00393     CARD16    length B16;
00394     CARD32    major B32;
00395     CARD32    minor B32;
00396     CARD32    numbytes B32;
00397 } xGLXClientInfoReq;
00398 #define sz_xGLXClientInfoReq 16
00399 
00400 /*** Start of GLX 1.3 requests */
00401 
00402 /*
00403 ** glXGetFBConfigs request
00404 */
00405 typedef struct GLXGetFBConfigs {
00406     CARD8     reqType;
00407     CARD8     glxCode;
00408     CARD16    length B16;
00409     CARD32    screen B32;
00410 } xGLXGetFBConfigsReq;
00411 #define sz_xGLXGetFBConfigsReq 8
00412 
00413 /*
00414 ** glXCreatePixmap request
00415 */
00416 typedef struct GLXCreatePixmap {
00417     CARD8     reqType;
00418     CARD8     glxCode;
00419     CARD16    length B16;
00420     CARD32    screen B32;
00421     GLXFBConfigID fbconfig B32;
00422     CARD32    pixmap B32;
00423     GLXPixmap glxpixmap B32;
00424     CARD32    numAttribs B32;
00425     /* followed by attribute list */
00426 } xGLXCreatePixmapReq;
00427 #define sz_xGLXCreatePixmapReq 24
00428 
00429 /*
00430 ** glXDestroyPixmap request
00431 */
00432 typedef struct GLXDestroyPixmap {
00433     CARD8     reqType;
00434     CARD8     glxCode;
00435     CARD16    length B16;
00436     GLXPixmap glxpixmap B32;
00437 } xGLXDestroyPixmapReq;
00438 #define sz_xGLXDestroyPixmapReq 8
00439 
00440 /*
00441 ** glXCreateNewContext request
00442 */
00443 typedef struct GLXCreateNewContext {
00444     CARD8     reqType;
00445     CARD8     glxCode;
00446     CARD16    length B16;
00447     GLXContextID context B32;
00448     GLXFBConfigID fbconfig B32;
00449     CARD32    screen B32;
00450     CARD32    renderType;
00451     GLXContextID shareList B32;
00452     BOOL      isDirect;
00453     CARD8     reserved1;
00454     CARD16    reserved2 B16;
00455 } xGLXCreateNewContextReq;
00456 #define sz_xGLXCreateNewContextReq 28
00457 
00458 /*
00459 ** glXQueryContext request
00460 */
00461 typedef struct GLXQueryContext {
00462     CARD8     reqType;
00463     CARD8     glxCode;
00464     CARD16    length B16;
00465     GLXContextID context B32;
00466 } xGLXQueryContextReq;
00467 #define sz_xGLXQueryContextReq 8
00468 
00469 /*
00470 ** glXMakeContextCurrent request
00471 */
00472 typedef struct GLXMakeContextCurrent {
00473     CARD8     reqType;
00474     CARD8     glxCode;
00475     CARD16    length B16;
00476     GLXContextTag oldContextTag B32;
00477     GLXDrawable drawable B32;
00478     GLXDrawable readdrawable B32;
00479     GLXContextID context B32;
00480 } xGLXMakeContextCurrentReq;
00481 #define sz_xGLXMakeContextCurrentReq 20
00482 
00483 /*
00484 ** glXCreatePbuffer request
00485 */
00486 typedef struct GLXCreatePbuffer {
00487     CARD8     reqType;
00488     CARD8     glxCode;
00489     CARD16    length B16;
00490     CARD32    screen B32;
00491     GLXFBConfigID fbconfig B32;
00492     GLXPbuffer       pbuffer B32;
00493     CARD32    numAttribs B32;
00494     /* followed by attribute list */
00495 } xGLXCreatePbufferReq;
00496 #define sz_xGLXCreatePbufferReq 20
00497 
00498 /*
00499 ** glXDestroyPbuffer request
00500 */
00501 typedef struct GLXDestroyPbuffer {
00502     CARD8     reqType;
00503     CARD8     glxCode;
00504     CARD16    length B16;
00505     GLXPbuffer       pbuffer B32;
00506 } xGLXDestroyPbufferReq;
00507 #define sz_xGLXDestroyPbufferReq 8
00508 
00509 /*
00510 ** glXGetDrawableAttributes request
00511 */
00512 typedef struct GLXGetDrawableAttributes {
00513     CARD8     reqType;
00514     CARD8     glxCode;
00515     CARD16    length B16;
00516     GLXDrawable drawable B32;
00517 } xGLXGetDrawableAttributesReq;
00518 #define sz_xGLXGetDrawableAttributesReq 8
00519 
00520 /*
00521 ** glXChangeDrawableAttributes request
00522 */
00523 typedef struct GLXChangeDrawableAttributes {
00524     CARD8     reqType;
00525     CARD8     glxCode;
00526     CARD16    length B16;
00527     GLXDrawable drawable B32;
00528     CARD32    numAttribs B32;
00529     /* followed by attribute list */
00530 } xGLXChangeDrawableAttributesReq;
00531 #define sz_xGLXChangeDrawableAttributesReq 12
00532 
00533 /*
00534 ** glXCreateWindow request
00535 */
00536 typedef struct GLXCreateWindow {
00537     CARD8     reqType;
00538     CARD8     glxCode;
00539     CARD16    length B16;
00540     CARD32    screen B32;
00541     GLXFBConfigID fbconfig B32;
00542     CARD32    window B32;
00543     GLXWindow glxwindow B32;
00544     CARD32    numAttribs B32;
00545     /* followed by attribute list */
00546 } xGLXCreateWindowReq;
00547 #define sz_xGLXCreateWindowReq 24
00548 
00549 /*
00550 ** glXDestroyWindow request
00551 */
00552 typedef struct GLXDestroyWindow {
00553     CARD8     reqType;
00554     CARD8     glxCode;
00555     CARD16    length B16;
00556     GLXWindow glxwindow B32;
00557 } xGLXDestroyWindowReq;
00558 #define sz_xGLXDestroyWindowReq 8
00559 
00560 /* Replies */
00561 
00562 typedef struct {
00563     BYTE      type;                /* X_Reply */
00564     CARD8     unused;                     /* not used */
00565     CARD16    sequenceNumber B16;
00566     CARD32    length B32;
00567     CARD32    error B32;
00568     CARD32    pad2 B32;
00569     CARD32    pad3 B32;
00570     CARD32    pad4 B32;
00571     CARD32    pad5 B32;
00572     CARD32    pad6 B32;
00573 } xGLXGetErrorReply;
00574 #define sz_xGLXGetErrorReply 32
00575 
00576 typedef struct {
00577     BYTE      type;                /* X_Reply */
00578     CARD8     unused;                     /* not used */
00579     CARD16    sequenceNumber B16;
00580     CARD32    length B32;
00581     GLXContextTag contextTag B32;
00582     CARD32    pad2 B32;
00583     CARD32    pad3 B32;
00584     CARD32    pad4 B32;
00585     CARD32    pad5 B32;
00586     CARD32    pad6 B32;
00587 } xGLXMakeCurrentReply;
00588 #define sz_xGLXMakeCurrentReply 32
00589 
00590 typedef struct {
00591     BYTE      type;                /* X_Reply */
00592     CARD8     unused;                     /* not used */
00593     CARD16    sequenceNumber B16;
00594     CARD32    length B32;
00595     CARD32    pad1 B32;
00596     CARD32    pad2 B32;
00597     CARD32    pad3 B32;
00598     CARD32    pad4 B32;
00599     CARD32    pad5 B32;
00600     CARD32    pad6 B32;
00601 } xGLXReadPixelsReply;
00602 #define sz_xGLXReadPixelsReply 32
00603 
00604 typedef struct {
00605     BYTE      type;                /* X_Reply */
00606     CARD8     unused;                     /* not used */
00607     CARD16    sequenceNumber B16;
00608     CARD32    length B32;
00609     CARD32    pad1 B32;
00610     CARD32    pad2 B32;
00611     CARD32    width B32;
00612     CARD32    height B32;
00613     CARD32    depth B32;
00614     CARD32    pad6 B32;
00615 } xGLXGetTexImageReply;
00616 #define sz_xGLXGetTexImageReply 32
00617 
00618 typedef struct {
00619     BYTE      type;                /* X_Reply */
00620     CARD8     unused;                     /* not used */
00621     CARD16    sequenceNumber B16;
00622     CARD32    length B32;
00623     CARD32    pad1 B32;
00624     CARD32    pad2 B32;
00625     CARD32    width B32;
00626     CARD32    height B32;
00627     CARD32    pad5 B32;
00628     CARD32    pad6 B32;
00629 } xGLXGetSeparableFilterReply;
00630 #define sz_xGLXGetSeparableFilterReply 32
00631 
00632 typedef struct {
00633     BYTE      type;                /* X_Reply */
00634     CARD8     unused;                     /* not used */
00635     CARD16    sequenceNumber B16;
00636     CARD32    length B32;
00637     CARD32    pad1 B32;
00638     CARD32    pad2 B32;
00639     CARD32    width B32;
00640     CARD32    height B32;
00641     CARD32    pad5 B32;
00642     CARD32    pad6 B32;
00643 } xGLXGetConvolutionFilterReply;
00644 #define sz_xGLXGetConvolutionFilterReply 32
00645 
00646 typedef struct {
00647     BYTE      type;                /* X_Reply */
00648     CARD8     unused;                     /* not used */
00649     CARD16    sequenceNumber B16;
00650     CARD32    length B32;
00651     CARD32    pad1 B32;
00652     CARD32    pad2 B32;
00653     CARD32    width B32;
00654     CARD32    pad4 B32;
00655     CARD32    pad5 B32;
00656     CARD32    pad6 B32;
00657 } xGLXGetHistogramReply;
00658 #define sz_xGLXGetHistogramReply 32
00659 
00660 typedef struct {
00661     BYTE      type;                /* X_Reply */
00662     CARD8     unused;                     /* not used */
00663     CARD16    sequenceNumber B16;
00664     CARD32    length B32;
00665     CARD32    pad1 B32;
00666     CARD32    pad2 B32;
00667     CARD32    pad3 B32;
00668     CARD32    pad4 B32;
00669     CARD32    pad5 B32;
00670     CARD32    pad6 B32;
00671 } xGLXGetMinmaxReply;
00672 #define sz_xGLXGetMinmaxReply 32
00673 
00674 typedef struct {
00675     BYTE      type;                /* X_Reply */
00676     CARD8     unused;                     /* not used */
00677     CARD16    sequenceNumber B16;
00678     CARD32    length B32;
00679     CARD32    retval B32;
00680     CARD32    size B32;
00681     CARD32    newMode B32;
00682     CARD32    pad4 B32;
00683     CARD32    pad5 B32;
00684     CARD32    pad6 B32;
00685 } xGLXRenderModeReply;
00686 #define sz_xGLXRenderModeReply 32
00687 
00688 typedef struct {
00689     BYTE      type;                /* X_Reply */
00690     CARD8     unused;                     /* not used */
00691     CARD16    sequenceNumber B16;
00692     CARD32    length B32;
00693     CARD32    majorVersion B32;
00694     CARD32    minorVersion B32;
00695     CARD32    pad3 B32;
00696     CARD32    pad4 B32;
00697     CARD32    pad5 B32;
00698     CARD32    pad6 B32;
00699 } xGLXQueryVersionReply;
00700 #define sz_xGLXQueryVersionReply 32
00701 
00702 typedef struct {
00703     BYTE      type;                /* X_Reply */
00704     CARD8     unused;                     /* not used */
00705     CARD16    sequenceNumber B16;
00706     CARD32    length B32;
00707     CARD32    numVisuals B32;
00708     CARD32    numProps B32;
00709     CARD32    pad3 B32;
00710     CARD32    pad4 B32;
00711     CARD32    pad5 B32;
00712     CARD32    pad6 B32;
00713 } xGLXGetVisualConfigsReply;
00714 #define sz_xGLXGetVisualConfigsReply 32
00715 
00716 typedef struct {
00717     BYTE      type;                /* X_Reply */
00718     CARD8     unused;                     /* not used */
00719     CARD16    sequenceNumber B16;
00720     CARD32    length B32;
00721     BOOL      isDirect;
00722     CARD8     pad1;
00723     CARD16    pad2 B16;
00724     CARD32    pad3 B32;
00725     CARD32    pad4 B32;
00726     CARD32    pad5 B32;
00727     CARD32    pad6 B32;
00728     CARD32    pad7 B32;
00729 } xGLXIsDirectReply;
00730 #define sz_xGLXIsDirectReply       32
00731 
00732 /*
00733 ** This reply structure is used for all single replies.  Single replies
00734 ** ship either 1 piece of data or N pieces of data.  In these cases
00735 ** size indicates how much data is to be returned.
00736 */
00737 typedef struct {
00738     BYTE      type;                /* X_Reply */
00739     CARD8     unused;                     /* not used */
00740     CARD16    sequenceNumber B16;
00741     CARD32    length B32;
00742     CARD32    retval B32;
00743     CARD32    size B32;
00744     CARD32    pad3 B32;            /* NOTE: may hold a single value */
00745     CARD32    pad4 B32;            /* NOTE: may hold half a double */
00746     CARD32    pad5 B32;
00747     CARD32    pad6 B32;
00748 } xGLXSingleReply;
00749 #define sz_xGLXSingleReply 32
00750 
00751 /*
00752 ** This reply structure is used for all Vendor Private replies. Vendor
00753 ** Private replies can ship up to 24 bytes within the header or can
00754 ** be variable sized, in which case, the reply length field indicates
00755 ** the number of words of data which follow the header.
00756 */
00757 typedef struct {
00758     BYTE      type;                /* X_Reply */
00759     CARD8     unused;                     /* not used */
00760     CARD16    sequenceNumber B16;
00761     CARD32    length B32;
00762     CARD32    retval B32;
00763     CARD32    size B32;
00764     CARD32    pad3 B32;
00765     CARD32    pad4 B32;
00766     CARD32    pad5 B32;
00767     CARD32    pad6 B32;
00768 } xGLXVendorPrivReply;
00769 #define sz_xGLXVendorPrivReply 32
00770 
00771 /*
00772 **  QueryExtensionsStringReply
00773 **  n indicates the number of bytes to be returned.
00774 */
00775 typedef struct {
00776     BYTE      type;                /* X_Reply */
00777     CARD8     unused;                     /* not used */
00778     CARD16    sequenceNumber B16;
00779     CARD32    length B32;
00780     CARD32    pad1 B32;
00781     CARD32    n B32;
00782     CARD32    pad3 B32;
00783     CARD32    pad4 B32;
00784     CARD32    pad5 B32;
00785     CARD32    pad6 B32;
00786 } xGLXQueryExtensionsStringReply;
00787 #define sz_xGLXQueryExtensionsStringReply 32
00788 
00789 /*
00790 ** QueryServerString Reply struct
00791 ** n indicates the number of bytes to be returned.
00792 */
00793 typedef struct {
00794     BYTE      type;                /* X_Reply */
00795     CARD8     unused;                     /* not used */
00796     CARD16    sequenceNumber B16;
00797     CARD32    length B32;
00798     CARD32    pad1 B32;
00799     CARD32    n B32;
00800     CARD32    pad3 B32;            /* NOTE: may hold a single value */
00801     CARD32    pad4 B32;            /* NOTE: may hold half a double */
00802     CARD32    pad5 B32;
00803     CARD32    pad6 B32;
00804 } xGLXQueryServerStringReply;
00805 #define sz_xGLXQueryServerStringReply 32
00806 
00807 /*** Start of GLX 1.3 replies */
00808 
00809 /*
00810 ** glXGetFBConfigs reply
00811 */
00812 typedef struct {
00813     BYTE      type;                /* X_Reply */
00814     CARD8     unused;                     /* not used */
00815     CARD16    sequenceNumber B16;
00816     CARD32    length B32;
00817     CARD32    numFBConfigs B32;
00818     CARD32    numAttribs B32;
00819     CARD32    pad3 B32;
00820     CARD32    pad4 B32;
00821     CARD32    pad5 B32;
00822     CARD32    pad6 B32;
00823 } xGLXGetFBConfigsReply;
00824 #define sz_xGLXGetFBConfigsReply 32
00825 
00826 /*
00827 ** glXQueryContext reply
00828 */
00829 typedef struct {
00830     BYTE      type;                /* X_Reply */
00831     CARD8     unused;                     /* not used */
00832     CARD16    sequenceNumber B16;
00833     CARD32    length B32;
00834     CARD32    n B32;               /* number of attribute/value pairs */
00835     CARD32    pad2 B32;
00836     CARD32    pad3 B32;
00837     CARD32    pad4 B32;
00838     CARD32    pad5 B32;
00839     CARD32    pad6 B32;
00840 } xGLXQueryContextReply;
00841 #define sz_xGLXQueryContextReply 32
00842 
00843 /*
00844 ** glXMakeContextCurrent reply
00845 */
00846 typedef struct {
00847     BYTE      type;                /* X_Reply */
00848     CARD8     unused;                     /* not used */
00849     CARD16    sequenceNumber B16;
00850     CARD32    length B32;
00851     GLXContextTag contextTag B32;
00852     CARD32    pad2 B32;
00853     CARD32    pad3 B32;
00854     CARD32    pad4 B32;
00855     CARD32    pad5 B32;
00856     CARD32    pad6 B32;
00857 } xGLXMakeContextCurrentReply;
00858 #define sz_xGLXMakeContextCurrentReply 32
00859 
00860 /*
00861 ** glXCreateGLXPbuffer reply
00862 ** This is used only in the direct rendering case on SGIs - otherwise
00863 **  CreateGLXPbuffer has no reply. It is not part of GLX 1.3.
00864 */
00865 typedef struct {
00866     BYTE      type;                /* X_Reply */
00867     CARD8     success;
00868     CARD16    sequenceNumber B16;
00869     CARD32    length B32;
00870     CARD32    pad1 B32;
00871     CARD32    pad2 B32;
00872     CARD32    pad3 B32;
00873     CARD32    pad4 B32;
00874     CARD32    pad5 B32;
00875     CARD32    pad6 B32;
00876 } xGLXCreateGLXPbufferReply;
00877 #define sz_xGLXCreateGLXPbufferReply 32
00878 
00879 /*
00880 ** glXGetDrawableAttributes reply
00881 */
00882 typedef struct {
00883     BYTE      type;                /* X_Reply */
00884     CARD8     unused;                     /* not used */
00885     CARD16    sequenceNumber B16;
00886     CARD32    length B32;
00887     CARD32    numAttribs B32;
00888     CARD32    pad2 B32;
00889     CARD32    pad3 B32;
00890     CARD32    pad4 B32;
00891     CARD32    pad5 B32;
00892     CARD32    pad6 B32;
00893 } xGLXGetDrawableAttributesReply;
00894 #define sz_xGLXGetDrawableAttributesReply 32
00895 
00896 /*
00897 ** glXGetColorTable reply
00898 */
00899 typedef struct {
00900     BYTE      type;                /* X_Reply */
00901     CARD8     unused;                     /* not used */
00902     CARD16    sequenceNumber B16;
00903     CARD32    length B32;
00904     CARD32    pad1 B32;
00905     CARD32    pad2 B32;
00906     CARD32    width B32;
00907     CARD32    pad4 B32;
00908     CARD32    pad5 B32;
00909     CARD32    pad6 B32;
00910 } xGLXGetColorTableReply;
00911 #define sz_xGLXGetColorTableReply 32
00912 
00913 /************************************************************************/
00914 
00915 /* GLX extension requests and replies */
00916 
00917 /*
00918 ** glXQueryContextInfoEXT request
00919 */
00920 typedef struct GLXQueryContextInfoEXT {
00921     CARD8     reqType;
00922     CARD8     glxCode;
00923     CARD16    length B16;
00924     CARD32    vendorCode B32;             /* vendor-specific opcode */
00925     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
00926     GLXContextID context B32;
00927 } xGLXQueryContextInfoEXTReq;
00928 #define sz_xGLXQueryContextInfoEXTReq 16
00929 
00930 /*
00931 ** glXQueryContextInfoEXT reply
00932 */
00933 typedef struct {
00934     BYTE      type;                /* X_Reply */
00935     CARD8     unused;                     /* not used */
00936     CARD16    sequenceNumber B16;
00937     CARD32    length B32;
00938     CARD32    n B32;               /* number of attribute/value pairs */
00939     CARD32    pad2 B32;
00940     CARD32    pad3 B32;
00941     CARD32    pad4 B32;
00942     CARD32    pad5 B32;
00943     CARD32    pad6 B32;
00944 } xGLXQueryContextInfoEXTReply;
00945 #define sz_xGLXQueryContextInfoEXTReply 32
00946 
00947 /*
00948 ** glXMakeCurrentReadSGI request
00949 */
00950 typedef struct GLXMakeCurrentReadSGI {
00951     CARD8     reqType;
00952     CARD8     glxCode;
00953     CARD16    length B16;
00954     CARD32    vendorCode B32;             /* vendor-specific opcode */
00955     GLXContextTag oldContextTag B32;
00956     GLXDrawable drawable B32;
00957     GLXDrawable readable B32;
00958     GLXContextID context B32;
00959 } xGLXMakeCurrentReadSGIReq;
00960 #define sz_xGLXMakeCurrentReadSGIReq 24
00961 
00962 typedef struct {
00963     BYTE      type;                /* X_Reply */
00964     CARD8     unused;                     /* not used */
00965     CARD16    sequenceNumber B16;
00966     CARD32    length B32;
00967     GLXContextTag contextTag B32;
00968     CARD32    writeVid B32;
00969     CARD32    writeType B32;
00970     CARD32    readVid B32;
00971     CARD32    readType B32;
00972     CARD32    pad6 B32;
00973 } xGLXMakeCurrentReadSGIReply;
00974 #define sz_xGLXMakeCurrentReadSGIReply 32
00975 
00976 /*
00977 ** glXGetFBConfigsSGIX request
00978 */
00979 typedef struct GLXGetFBConfigsSGIX {
00980     CARD8     reqType;
00981     CARD8     glxCode;
00982     CARD16    length B16;
00983     CARD32    vendorCode B32;             /* vendor-specific opcode */
00984     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
00985     CARD32    screen B32;
00986 } xGLXGetFBConfigsSGIXReq;
00987 #define sz_xGLXGetFBConfigsSGIXReq 16
00988 
00989 /*
00990 ** glXCreateContextWithConfigSGIX request
00991 */
00992 
00993 typedef struct GLXCreateContextWithConfigSGIX {
00994     CARD8     reqType;
00995     CARD8     glxCode;
00996     CARD16    length B16;
00997     CARD32    vendorCode B32;             /* vendor-specific opcode */
00998     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
00999     GLXContextID context B32;
01000     GLXFBConfigID fbconfig B32;
01001     CARD32    screen B32;
01002     CARD32    renderType;
01003     GLXContextID shareList B32;
01004     BOOL      isDirect;
01005     CARD8     reserved1;
01006     CARD16    reserved2 B16;
01007 } xGLXCreateContextWithConfigSGIXReq;
01008 #define sz_xGLXCreateContextWithConfigSGIXReq 36
01009 
01010 /*
01011 ** glXCreatePixmapWithConfigSGIX request
01012 */
01013 
01014 typedef struct GLXCreateGLXPixmapWithConfigSGIX {
01015     CARD8     reqType;
01016     CARD8     glxCode;
01017     CARD16    length B16;
01018     CARD32    vendorCode B32;             /* vendor-specific opcode */
01019     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
01020     CARD32    screen B32;
01021     GLXFBConfigID fbconfig B32;
01022     CARD32    pixmap B32;
01023     GLXPixmap glxpixmap B32;
01024 } xGLXCreateGLXPixmapWithConfigSGIXReq;
01025 #define sz_xGLXCreateGLXPixmapWithConfigSGIXReq 28
01026 
01027 /*
01028 ** glXCreateGLXPbufferSGIX request
01029 */
01030 typedef struct GLXCreateGLXPbufferSGIX {
01031     CARD8     reqType;
01032     CARD8     glxCode;
01033     CARD16    length B16;
01034     CARD32    vendorCode B32;             /* vendor-specific opcode */
01035     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
01036     CARD32    screen B32;
01037     GLXFBConfigID fbconfig B32;
01038     GLXPbuffer       pbuffer B32;
01039     CARD32    width B32;
01040     CARD32    height B32;
01041     /* followed by attribute list */
01042 } xGLXCreateGLXPbufferSGIXReq;
01043 #define sz_xGLXCreateGLXPbufferSGIXReq 32
01044 
01045 /*
01046 ** glXDestroyGLXPbufferSGIX request
01047 */
01048 typedef struct GLXDestroyGLXPbuffer {
01049     CARD8     reqType;
01050     CARD8     glxCode;
01051     CARD16    length B16;
01052     CARD32    vendorCode B32;             /* vendor-specific opcode */
01053     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
01054     GLXPbuffer       pbuffer B32;
01055 } xGLXDestroyGLXPbufferSGIXReq;
01056 #define sz_xGLXDestroyGLXPbufferSGIXReq 16
01057 
01058 /*
01059 ** glXChangeDrawableAttributesSGIX request
01060 */
01061 typedef struct GLXChangeDrawableAttributesSGIX {
01062     CARD8     reqType;
01063     CARD8     glxCode;
01064     CARD16    length B16;
01065     CARD32    vendorCode B32;             /* vendor-specific opcode */
01066     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
01067     GLXDrawable drawable B32;
01068     CARD32    numAttribs B32;
01069     /* followed by attribute list */
01070 } xGLXChangeDrawableAttributesSGIXReq;
01071 #define sz_xGLXChangeDrawableAttributesSGIXReq 20
01072 
01073 /*
01074 ** glXGetDrawableAttributesSGIX request
01075 */
01076 typedef struct GLXGetDrawableAttributesSGIX {
01077     CARD8     reqType;
01078     CARD8     glxCode;
01079     CARD16    length B16;
01080     CARD32    vendorCode B32;             /* vendor-specific opcode */
01081     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
01082     GLXDrawable drawable B32;
01083 } xGLXGetDrawableAttributesSGIXReq;
01084 #define sz_xGLXGetDrawableAttributesSGIXReq 16
01085 
01086 /*
01087 ** glXGetDrawableAttributesSGIX reply
01088 */
01089 typedef struct {
01090     BYTE      type;                /* X_Reply */
01091     CARD8     unused;                     /* not used */
01092     CARD16    sequenceNumber B16;
01093     CARD32    length B32;
01094     CARD32    numAttribs B32;
01095     CARD32    pad2 B32;
01096     CARD32    pad3 B32;
01097     CARD32    pad4 B32;
01098     CARD32    pad5 B32;
01099     CARD32    pad6 B32;
01100 } xGLXGetDrawableAttributesSGIXReply;
01101 #define sz_xGLXGetDrawableAttributesSGIXReply 32
01102 
01103 /*
01104 ** glXJoinSwapGroupSGIX request
01105 */
01106 typedef struct GLXJoinSwapGroupSGIX {
01107     CARD8     reqType;
01108     CARD8     glxCode;
01109     CARD16    length B16;
01110     CARD32    vendorCode B32;             /* vendor-specific opcode */
01111     CARD32    unused B32;          /* corresponds to contextTag in hdr */
01112     GLXDrawable      drawable B32;
01113     GLXDrawable      member B32;
01114 } xGLXJoinSwapGroupSGIXReq;
01115 #define sz_xGLXJoinSwapGroupSGIXReq 20
01116 
01117 /*
01118 ** glXBindSwapBarrierSGIX request
01119 */
01120 typedef struct GLXBindSwapBarrierSGIX {
01121     CARD8     reqType;
01122     CARD8     glxCode;
01123     CARD16    length B16;
01124     CARD32    vendorCode B32;             /* vendor-specific opcode */
01125     CARD32    unused B32;          /* corresponds to contextTag in hdr */
01126     GLXDrawable      drawable B32;
01127     CARD32    barrier B32;
01128 } xGLXBindSwapBarrierSGIXReq;
01129 #define sz_xGLXBindSwapBarrierSGIXReq 20
01130 
01131 /*
01132 ** glXQueryMaxSwapBarriersSGIX request
01133 */
01134 typedef struct GLXQueryMaxSwapBarriersSGIX {
01135     CARD8     reqType;
01136     CARD8     glxCode;
01137     CARD16    length B16;
01138     CARD32    vendorCode B32;             /* vendor-specific opcode */
01139     CARD32    unused B32;          /* corresponds to contextTag in hdr */
01140     CARD32    screen B32;
01141 } xGLXQueryMaxSwapBarriersSGIXReq;
01142 #define sz_xGLXQueryMaxSwapBarriersSGIXReq 16
01143 
01144 typedef struct {
01145     BYTE      type;                /* X_Reply */
01146     CARD8     unused;                     /* not used */
01147     CARD16    sequenceNumber B16;
01148     CARD32    length B32;
01149     CARD32    max B32;
01150     CARD32    size B32;
01151     CARD32    pad3 B32;
01152     CARD32    pad4 B32;
01153     CARD32    pad5 B32;
01154     CARD32    pad6 B32;
01155 } xGLXQueryMaxSwapBarriersSGIXReply;
01156 #define sz_xGLXQueryMaxSwapBarriersSGIXReply 32
01157 
01158 /*
01159 ** glXQueryHyperpipeNetworkSGIX request
01160 */
01161 typedef struct GLXQueryHyperpipeNetworkSGIX {
01162     CARD8       reqType;
01163     CARD8       glxCode;
01164     CARD16      length B16;
01165     CARD32      vendorCode B32;         /* vendor-specific opcode */
01166     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
01167     CARD32      screen B32;
01168 } xGLXQueryHyperpipeNetworkSGIXReq;
01169 #define sz_xGLXQueryHyperpipeNetworkSGIXReq 16
01170 
01171 /*
01172 ** glXQueryHyperpipeNetworkSGIX reply
01173 */
01174 typedef struct {
01175     BYTE        type;                   /* X_Reply */
01176     CARD8       unused;                 /* not used */
01177     CARD16      sequenceNumber B16;
01178     CARD32      length B32;
01179     CARD32      pad1 B32;
01180     CARD32      n B32;
01181     CARD32      npipes B32;             /* NOTE: may hold a single value */
01182     CARD32      pad4 B32;               /* NOTE: may hold half a double */
01183     CARD32      pad5 B32;
01184     CARD32      pad6 B32;
01185 } xGLXQueryHyperpipeNetworkSGIXReply;
01186 #define sz_xGLXQueryHyperpipeNetworkSGIXReply 32
01187 
01188 /*
01189 ** glXDestroyHyperpipeConfigSGIX request
01190 */
01191 typedef struct GLXDestroyHyperpipeConfigSGIX {
01192     CARD8       reqType;
01193     CARD8       glxCode;
01194     CARD16      length B16;
01195     CARD32      vendorCode B32;         /* vendor-specific opcode */
01196     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
01197     CARD32      screen B32;
01198     CARD32      hpId B32;
01199     CARD32      pad2 B32;
01200     CARD32      pad3 B32;
01201     CARD32      pad4 B32;
01202 } xGLXDestroyHyperpipeConfigSGIXReq;
01203 #define sz_xGLXDestroyHyperpipeConfigSGIXReq 32
01204 
01205 /*
01206 ** glXDestroyHyperpipeConfigSGIX reply
01207 */
01208 typedef struct {
01209     BYTE        type;                   /* X_Reply */
01210     CARD8       unused;                 /* not used */
01211     CARD16      sequenceNumber B16;
01212     CARD32      length B32;
01213     CARD32      pad1 B32;
01214     CARD32      n B32;
01215     CARD32      success B32;            /* NOTE: may hold a single value */
01216     CARD32      pad4 B32;               /* NOTE: may hold half a double */
01217     CARD32      pad5 B32;
01218     CARD32      pad6 B32;
01219 } xGLXDestroyHyperpipeConfigSGIXReply;
01220 #define sz_xGLXDestroyHyperpipeConfigSGIXReply 32
01221 
01222 /*
01223 ** glXQueryHyperpipeConfigSGIX request
01224 */
01225 typedef struct GLXQueryHyperpipeConfigSGIX {
01226     CARD8       reqType;
01227     CARD8       glxCode;
01228     CARD16      length B16;
01229     CARD32      vendorCode B32;         /* vendor-specific opcode */
01230     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
01231     CARD32      screen B32;
01232     CARD32      hpId B32;
01233     CARD32      pad2 B32;
01234     CARD32      pad3 B32;
01235     CARD32      pad4 B32;
01236 } xGLXQueryHyperpipeConfigSGIXReq;
01237 #define sz_xGLXQueryHyperpipeConfigSGIXReq 32
01238 
01239 /*
01240 ** glXQueryHyperpipeConfigSGIX reply
01241 */
01242 typedef struct {
01243     BYTE        type;                   /* X_Reply */
01244     CARD8       unused;                 /* not used */
01245     CARD16      sequenceNumber B16;
01246     CARD32      length B32;
01247     CARD32      pad1 B32;
01248     CARD32      n B32;
01249     CARD32      npipes B32;
01250     CARD32      pad4 B32;
01251     CARD32      pad5 B32;
01252     CARD32      pad6 B32;
01253 } xGLXQueryHyperpipeConfigSGIXReply;
01254 #define sz_xGLXQueryHyperpipeConfigSGIXReply 32
01255 
01256 /*
01257 ** glXHyperpipeConfigSGIX request
01258 */
01259 typedef struct {
01260     CARD8       reqType;
01261     CARD8       glxCode;
01262     CARD16      length B16;
01263     CARD32      vendorCode B32;         /* vendor-specific opcode */
01264     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
01265     CARD32      screen B32;
01266     CARD32      npipes B32;
01267     CARD32      networkId B32;
01268     CARD32      pad2 B32;
01269     CARD32      pad3 B32;
01270     /* followed by attribute list */
01271 } xGLXHyperpipeConfigSGIXReq;
01272 #define sz_xGLXHyperpipeConfigSGIXReq 32
01273 
01274 /*
01275 ** glXHyperpipeConfigSGIX reply
01276 */
01277 typedef struct {
01278     BYTE        type;                   /* X_Reply */
01279     CARD8       unused;                 /* not used */
01280     CARD16      sequenceNumber B16;
01281     CARD32      length B32;
01282     CARD32      pad1 B32;
01283     CARD32      n B32;
01284     CARD32      npipes B32;
01285     CARD32      hpId B32;
01286     CARD32      pad5 B32;
01287     CARD32      pad6 B32;
01288 } xGLXHyperpipeConfigSGIXReply;
01289 #define sz_xGLXHyperpipeConfigSGIXReply 32
01290 
01319 typedef struct GLXSetClientInfoARB {
01320     CARD8     reqType;
01321     CARD8     glxCode;
01322     CARD16    length B16;
01323     CARD32    major B32;
01324     CARD32    minor B32;
01325     CARD32    numVersions B32;
01326     CARD32    numGLExtensionBytes B32;
01327     CARD32    numGLXExtensionBytes B32;
01328     /*
01329     ** More data may follow; this is just the header.
01330     */
01331 } xGLXSetClientInfoARBReq;
01332 #define sz_xGLXSetClientInfoARBReq 24
01333 
01340 typedef struct GLXCreateContextAttribsARB {
01341     CARD8     reqType;
01342     CARD8     glxCode;
01343     CARD16    length B16;
01344     GLXContextID     context B32;
01345     GLXFBConfigID    fbconfig B32;
01346     CARD32    screen;
01347     GLXContextID     shareList B32;
01348     BOOL      isDirect;
01349     CARD8     reserved1;
01350     CARD16    reserved2 B16;
01351     CARD32    numAttribs B32;
01352     /* followed by attribute list */
01353 } xGLXCreateContextAttribsARBReq;
01354 #define sz_xGLXCreateContextAttribsARBReq 28
01355 
01367 typedef struct GLXSetClientInfo2ARB {
01368     CARD8     reqType;
01369     CARD8     glxCode;
01370     CARD16    length B16;
01371     CARD32    major B32;
01372     CARD32    minor B32;
01373     CARD32    numVersions B32;
01374     CARD32    numGLExtensionBytes B32;
01375     CARD32    numGLXExtensionBytes B32;
01376     /*
01377     ** More data may follow; this is just the header.
01378     */
01379 } xGLXSetClientInfo2ARBReq;
01380 #define sz_xGLXSetClientInfo2ARBReq 24
01381 
01383 /************************************************************************/
01384 
01385 /*
01386 ** Events
01387 */
01388 
01389 typedef struct {
01390     BYTE type;
01391     BYTE pad;
01392     CARD16 sequenceNumber B16;
01393     CARD16 event_type B16;  /*** was clobber_class */
01394     CARD16 draw_type B16;
01395     CARD32 drawable B32;
01396     CARD32 buffer_mask B32; /*** was mask */
01397     CARD16 aux_buffer B16;
01398     CARD16 x B16;
01399     CARD16 y B16;
01400     CARD16 width B16;
01401     CARD16 height B16;
01402     CARD16 count B16;
01403     CARD32 unused2 B32;
01404 } xGLXPbufferClobberEvent;
01405 
01406 typedef struct {
01407     BYTE type;
01408     BYTE pad;
01409     CARD16 sequenceNumber B16;
01410     CARD16 event_type B16;
01411     CARD32 drawable;
01412     CARD32 ust_hi B32;
01413     CARD32 ust_lo B32;
01414     CARD32 msc_hi B32;
01415     CARD32 msc_lo B32;
01416     CARD32 sbc_hi B32;
01417     CARD32 sbc_lo B32;
01418 } xGLXBufferSwapComplete;
01419 
01420 typedef struct {
01421     BYTE type;
01422     BYTE pad;
01423     CARD16 sequenceNumber B16;
01424     CARD16 event_type B16;
01425     CARD16 pad2;
01426     CARD32 drawable;
01427     CARD32 ust_hi B32;
01428     CARD32 ust_lo B32;
01429     CARD32 msc_hi B32;
01430     CARD32 msc_lo B32;
01431     CARD32 sbc B32;
01432 } xGLXBufferSwapComplete2;
01433 
01434 /************************************************************************/
01435 
01436 /*
01437 ** Size of the standard X request header.
01438 */
01439 #define __GLX_SINGLE_HDR_SIZE sz_xGLXSingleReq
01440 #define __GLX_VENDPRIV_HDR_SIZE sz_xGLXVendorPrivateReq
01441 
01442 #define __GLX_RENDER_HDR    \
01443     CARD16    length B16; \
01444     CARD16    opcode B16
01445 
01446 #define __GLX_RENDER_HDR_SIZE 4
01447 
01448 typedef struct {
01449     __GLX_RENDER_HDR;
01450 } __GLXrenderHeader;
01451 
01452 #define __GLX_RENDER_LARGE_HDR \
01453     CARD32    length B32;    \
01454     CARD32    opcode B32
01455 
01456 #define __GLX_RENDER_LARGE_HDR_SIZE 8
01457 
01458 typedef struct {
01459     __GLX_RENDER_LARGE_HDR;
01460 } __GLXrenderLargeHeader;
01461 
01462 /*
01463 ** The glBitmap, glPolygonStipple, glTexImage[12]D, glTexSubImage[12]D
01464 ** and glDrawPixels calls all have a pixel header transmitted after the
01465 ** Render or RenderLarge header and before their own opcode specific
01466 ** headers.
01467 */
01468 #define __GLX_PIXEL_HDR            \
01469     BOOL      swapBytes;    \
01470     BOOL      lsbFirst;     \
01471     CARD8     reserved0;    \
01472     CARD8     reserved1;    \
01473     CARD32    rowLength B32;       \
01474     CARD32    skipRows B32; \
01475     CARD32    skipPixels B32; \
01476     CARD32    alignment B32
01477 
01478 #define __GLX_PIXEL_HDR_SIZE 20
01479 
01480 typedef struct {
01481     __GLX_PIXEL_HDR;
01482 } __GLXpixelHeader;
01483 
01484 /*
01485 ** glTexImage[34]D and glTexSubImage[34]D calls
01486 ** all have a pixel header transmitted after the Render or RenderLarge
01487 ** header and before their own opcode specific headers.
01488 */
01489 #define __GLX_PIXEL_3D_HDR         \
01490     BOOL      swapBytes;           \
01491     BOOL      lsbFirst;            \
01492     CARD8     reserved0;           \
01493     CARD8     reserved1;           \
01494     CARD32    rowLength B32;              \
01495     CARD32    imageHeight B32;     \
01496     CARD32    imageDepth B32;             \
01497     CARD32    skipRows B32;        \
01498     CARD32    skipImages B32;             \
01499     CARD32    skipVolumes B32;     \
01500     CARD32    skipPixels B32;             \
01501     CARD32    alignment B32
01502 
01503 #define __GLX_PIXEL_3D_HDR_SIZE 36
01504 
01505 /*
01506 ** Data that is specific to a glBitmap call.  The data is sent in the
01507 ** following order:
01508 **     Render or RenderLarge header
01509 **     Pixel header
01510 **     Bitmap header
01511 */
01512 #define __GLX_BITMAP_HDR    \
01513     CARD32    width B32;  \
01514     CARD32    height B32; \
01515     FLOAT32   xorig F32;  \
01516     FLOAT32   yorig F32;  \
01517     FLOAT32   xmove F32;  \
01518     FLOAT32   ymove F32
01519 
01520 typedef struct {
01521     __GLX_RENDER_HDR;
01522     __GLX_PIXEL_HDR;
01523     __GLX_BITMAP_HDR;
01524 } __GLXbitmapHeader;
01525 
01526 typedef struct {
01527     __GLX_RENDER_LARGE_HDR;
01528     __GLX_PIXEL_HDR;
01529     __GLX_BITMAP_HDR;
01530 } __GLXbitmapLargeHeader;
01531 
01532 typedef struct {
01533     __GLX_PIXEL_HDR;
01534     __GLX_BITMAP_HDR;
01535 } __GLXdispatchBitmapHeader;
01536 
01537 #define __GLX_BITMAP_HDR_SIZE 24
01538 
01539 #define __GLX_BITMAP_CMD_HDR_SIZE \
01540     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
01541 
01542 #define __GLX_BITMAP_CMD_DISPATCH_HDR_SIZE \
01543     (__GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
01544 
01545 typedef struct {
01546     __GLX_RENDER_HDR;
01547     __GLX_PIXEL_HDR;
01548 } __GLXpolygonStippleHeader;
01549 
01550 #define __GLX_POLYGONSTIPPLE_CMD_HDR_SIZE \
01551     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE)
01552 
01553 /*
01554 ** Data that is specific to a glTexImage1D or glTexImage2D call.  The
01555 ** data is sent in the following order:
01556 **     Render or RenderLarge header
01557 **     Pixel header
01558 **     TexImage header
01559 ** When a glTexImage1D call the height field is unexamined by the server.
01560 */
01561 #define __GLX_TEXIMAGE_HDR  \
01562     CARD32    target B32;   \
01563     CARD32    level B32;    \
01564     CARD32    components B32; \
01565     CARD32    width B32;    \
01566     CARD32    height B32;   \
01567     CARD32    border B32;   \
01568     CARD32    format B32;   \
01569     CARD32    type B32
01570 
01571 #define __GLX_TEXIMAGE_HDR_SIZE 32
01572 
01573 #define __GLX_TEXIMAGE_CMD_HDR_SIZE \
01574     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
01575 
01576 #define __GLX_TEXIMAGE_CMD_DISPATCH_HDR_SIZE \
01577     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
01578 
01579 typedef struct {
01580     __GLX_RENDER_HDR;
01581     __GLX_PIXEL_HDR;
01582     __GLX_TEXIMAGE_HDR;
01583 } __GLXtexImageHeader;
01584 
01585 typedef struct {
01586     __GLX_RENDER_LARGE_HDR;
01587     __GLX_PIXEL_HDR;
01588     __GLX_TEXIMAGE_HDR;
01589 } __GLXtexImageLargeHeader;
01590 
01591 typedef struct {
01592     __GLX_PIXEL_HDR;
01593     __GLX_TEXIMAGE_HDR;
01594 } __GLXdispatchTexImageHeader;
01595 
01596 /*
01597 ** Data that is specific to a glTexImage3D or glTexImage4D call.  The
01598 ** data is sent in the following order:
01599 **     Render or RenderLarge header
01600 **     Pixel 3D header
01601 **     TexImage 3D header
01602 ** When a glTexImage3D call the size4d and woffset fields are unexamined
01603 ** by the server.
01604 ** Could be used by all TexImage commands and perhaps should be in the
01605 ** future.
01606 */
01607 #define __GLX_TEXIMAGE_3D_HDR \
01608     CARD32    target B32;   \
01609     CARD32    level B32;    \
01610     CARD32    internalformat B32;  \
01611     CARD32    width B32;    \
01612     CARD32    height B32;   \
01613     CARD32    depth B32;    \
01614     CARD32    size4d B32;   \
01615     CARD32    border B32;   \
01616     CARD32    format B32;   \
01617     CARD32    type B32;     \
01618     CARD32    nullimage B32
01619 
01620 #define __GLX_TEXIMAGE_3D_HDR_SIZE 44
01621 
01622 #define __GLX_TEXIMAGE_3D_CMD_HDR_SIZE \
01623     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
01624               __GLX_TEXIMAGE_3D_HDR_SIZE)
01625 
01626 #define __GLX_TEXIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
01627     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXIMAGE_3D_HDR_SIZE)
01628 
01629 typedef struct {
01630     __GLX_RENDER_HDR;
01631     __GLX_PIXEL_3D_HDR;
01632     __GLX_TEXIMAGE_3D_HDR;
01633 } __GLXtexImage3DHeader;
01634 
01635 typedef struct {
01636     __GLX_RENDER_LARGE_HDR;
01637     __GLX_PIXEL_3D_HDR;
01638     __GLX_TEXIMAGE_3D_HDR;
01639 } __GLXtexImage3DLargeHeader;
01640 
01641 typedef struct {
01642     __GLX_PIXEL_3D_HDR;
01643     __GLX_TEXIMAGE_3D_HDR;
01644 } __GLXdispatchTexImage3DHeader;
01645 
01646 /*
01647 ** Data that is specific to a glTexSubImage1D or glTexSubImage2D call.       The
01648 ** data is sent in the following order:
01649 **     Render or RenderLarge header
01650 **     Pixel header
01651 **     TexSubImage header
01652 ** When a glTexSubImage1D call is made, the yoffset and height fields
01653 ** are unexamined by the server and are  considered to be padding.
01654 */
01655 #define __GLX_TEXSUBIMAGE_HDR      \
01656     CARD32    target B32;   \
01657     CARD32    level B32;    \
01658     CARD32    xoffset B32;  \
01659     CARD32    yoffset B32;  \
01660     CARD32    width B32;    \
01661     CARD32    height B32;   \
01662     CARD32    format B32;   \
01663     CARD32    type B32;     \
01664     CARD32    nullImage     \
01665 
01666 #define __GLX_TEXSUBIMAGE_HDR_SIZE 36
01667 
01668 #define __GLX_TEXSUBIMAGE_CMD_HDR_SIZE \
01669     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
01670 
01671 #define __GLX_TEXSUBIMAGE_CMD_DISPATCH_HDR_SIZE \
01672     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
01673 
01674 typedef struct {
01675     __GLX_RENDER_HDR;
01676     __GLX_PIXEL_HDR;
01677     __GLX_TEXSUBIMAGE_HDR;
01678 } __GLXtexSubImageHeader;
01679 
01680 typedef struct {
01681     __GLX_RENDER_LARGE_HDR;
01682     __GLX_PIXEL_HDR;
01683     __GLX_TEXSUBIMAGE_HDR;
01684 } __GLXtexSubImageLargeHeader;
01685 
01686 typedef struct {
01687     __GLX_PIXEL_HDR;
01688     __GLX_TEXSUBIMAGE_HDR;
01689 } __GLXdispatchTexSubImageHeader;
01690 
01691 /*
01692 ** Data that is specific to a glTexSubImage3D and 4D calls.  The
01693 ** data is sent in the following order:
01694 **     Render or RenderLarge header
01695 **     Pixel 3D header
01696 **     TexSubImage 3D header
01697 ** When a glTexSubImage3D call is made, the woffset and size4d fields
01698 ** are unexamined by the server and are considered to be padding.
01699 */
01700 #define __GLX_TEXSUBIMAGE_3D_HDR   \
01701     CARD32    target B32;   \
01702     CARD32    level B32;    \
01703     CARD32    xoffset B32;  \
01704     CARD32    yoffset B32;  \
01705     CARD32    zoffset B32;  \
01706     CARD32    woffset B32;  \
01707     CARD32    width B32;    \
01708     CARD32    height B32;   \
01709     CARD32    depth B32;    \
01710     CARD32    size4d B32;   \
01711     CARD32    format B32;   \
01712     CARD32    type B32;     \
01713     CARD32    nullImage     \
01714 
01715 #define __GLX_TEXSUBIMAGE_3D_HDR_SIZE 52
01716 
01717 #define __GLX_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
01718     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
01719               __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
01720 
01721 #define __GLX_TEXSUBIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
01722     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
01723 
01724 typedef struct {
01725     __GLX_RENDER_HDR;
01726     __GLX_PIXEL_3D_HDR;
01727     __GLX_TEXSUBIMAGE_3D_HDR;
01728 } __GLXtexSubImage3DHeader;
01729 
01730 typedef struct {
01731     __GLX_RENDER_LARGE_HDR;
01732     __GLX_PIXEL_3D_HDR;
01733     __GLX_TEXSUBIMAGE_3D_HDR;
01734 } __GLXtexSubImage3DLargeHeader;
01735 
01736 typedef struct {
01737     __GLX_PIXEL_3D_HDR;
01738     __GLX_TEXSUBIMAGE_3D_HDR;
01739 } __GLXdispatchTexSubImage3DHeader;
01740 
01752 #define __GLX_COMPRESSED_TEXIMAGE_HDR \
01753     CARD32     target B32;            \
01754     CARD32     level B32;             \
01755     CARD32     internalFormat B32;    \
01756     CARD32     width B32;             \
01757     CARD32     height B32;            \
01758     CARD32     border B32;            \
01759     CARD32     imageSize B32
01760 
01761 #define __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE 28
01762 
01763 #define __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE \
01764     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
01765 
01766 #define __GLX_COMPRESSED_TEXIMAGE_DISPATCH_HDR_SIZE \
01767     (__GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
01768 
01769 typedef struct {
01770     __GLX_RENDER_HDR;
01771     __GLX_COMPRESSED_TEXIMAGE_HDR;
01772 } __GLXcompressedTexImageHeader;
01773 
01774 typedef struct {
01775     __GLX_RENDER_LARGE_HDR;
01776     __GLX_COMPRESSED_TEXIMAGE_HDR;
01777 } __GLXcompressedTexImageLargeHeader;
01778 
01779 typedef struct {
01780     __GLX_COMPRESSED_TEXIMAGE_HDR;
01781 } __GLXdispatchCompressedTexImageHeader;
01782 
01794 #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR \
01795     CARD32     target B32;            \
01796     CARD32     level B32;             \
01797     CARD32     xoffset B32;           \
01798     CARD32     yoffset B32;           \
01799     CARD32     width B32;             \
01800     CARD32     height B32;            \
01801     CARD32     format B32;            \
01802     CARD32     imageSize B32
01803 
01804 #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE 32
01805 
01806 #define __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE \
01807     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
01808 
01809 #define __GLX_COMPRESSED_TEXSUBIMAGE_DISPATCH_HDR_SIZE \
01810     (__GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
01811 
01812 typedef struct {
01813     __GLX_RENDER_HDR;
01814     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
01815 } __GLXcompressedTexSubImageHeader;
01816 
01817 typedef struct {
01818     __GLX_RENDER_LARGE_HDR;
01819     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
01820 } __GLXcompressedTexSubImageLargeHeader;
01821 
01822 typedef struct {
01823     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
01824 } __GLXdispatchCompressedTexSubImageHeader;
01825 
01833 #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR \
01834     CARD32     target B32;            \
01835     CARD32     level B32;             \
01836     CARD32     internalFormat B32;    \
01837     CARD32     width B32;             \
01838     CARD32     height B32;            \
01839     CARD32     depth B32;             \
01840     CARD32     border B32;            \
01841     CARD32     imageSize B32
01842 
01843 #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE 32
01844 
01845 #define __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE \
01846     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
01847 
01848 #define __GLX_COMPRESSED_TEXIMAGE_3D_DISPATCH_HDR_SIZE \
01849     (__GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
01850 
01851 typedef struct {
01852     __GLX_RENDER_HDR;
01853     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
01854 } __GLXcompressedTexImage3DHeader;
01855 
01856 typedef struct {
01857     __GLX_RENDER_LARGE_HDR;
01858     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
01859 } __GLXcompressedTexImage3DLargeHeader;
01860 
01861 typedef struct {
01862     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
01863 } __GLXdispatchCompressedTexImage3DHeader;
01864 
01872 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR \
01873     CARD32     target B32;            \
01874     CARD32     level B32;             \
01875     CARD32     xoffset B32;           \
01876     CARD32     yoffset B32;           \
01877     CARD32     zoffset B32;           \
01878     CARD32     width B32;             \
01879     CARD32     height B32;            \
01880     CARD32     depth B32;             \
01881     CARD32     format B32;            \
01882     CARD32     imageSize B32
01883 
01884 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE 32
01885 
01886 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
01887     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
01888 
01889 #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_DISPATCH_HDR_SIZE \
01890     (__GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
01891 
01892 typedef struct {
01893     __GLX_RENDER_HDR;
01894     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
01895 } __GLXcompressedTexSubImage3DHeader;
01896 
01897 typedef struct {
01898     __GLX_RENDER_LARGE_HDR;
01899     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
01900 } __GLXcompressedTexSubImage3DLargeHeader;
01901 
01902 typedef struct {
01903     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
01904 } __GLXdispatchCompressedTexSubImage3DHeader;
01905 
01906 /*
01907 ** Data that is specific to a glDrawPixels call.  The data is sent in the
01908 ** following order:
01909 **     Render or RenderLarge header
01910 **     Pixel header
01911 **     DrawPixels header
01912 */
01913 #define __GLX_DRAWPIXELS_HDR \
01914     CARD32    width B32;   \
01915     CARD32    height B32;  \
01916     CARD32    format B32;  \
01917     CARD32    type B32
01918 
01919 #define __GLX_DRAWPIXELS_HDR_SIZE 16
01920 
01921 #define __GLX_DRAWPIXELS_CMD_HDR_SIZE \
01922     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
01923 
01924 #define __GLX_DRAWPIXELS_CMD_DISPATCH_HDR_SIZE \
01925     (__GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
01926 
01927 typedef struct {
01928     __GLX_RENDER_HDR;
01929     __GLX_PIXEL_HDR;
01930     __GLX_DRAWPIXELS_HDR;
01931 } __GLXdrawPixelsHeader;
01932 
01933 typedef struct {
01934     __GLX_RENDER_LARGE_HDR;
01935     __GLX_PIXEL_HDR;
01936     __GLX_DRAWPIXELS_HDR;
01937 } __GLXdrawPixelsLargeHeader;
01938 
01939 typedef struct {
01940     __GLX_PIXEL_HDR;
01941     __GLX_DRAWPIXELS_HDR;
01942 } __GLXdispatchDrawPixelsHeader;
01943 
01944 /*
01945 ** Data that is specific to a glConvolutionFilter1D or glConvolutionFilter2D
01946 ** call.  The data is sent in the following order:
01947 **     Render or RenderLarge header
01948 **     Pixel header
01949 **     ConvolutionFilter header
01950 ** When a glConvolutionFilter1D call the height field is unexamined by the server.
01951 */
01952 #define __GLX_CONV_FILT_HDR \
01953     CARD32    target B32;   \
01954     CARD32    internalformat B32;  \
01955     CARD32    width B32;    \
01956     CARD32    height B32;   \
01957     CARD32    format B32;   \
01958     CARD32    type B32
01959 
01960 #define __GLX_CONV_FILT_HDR_SIZE 24
01961 
01962 #define __GLX_CONV_FILT_CMD_HDR_SIZE \
01963     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
01964 
01965 #define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \
01966     (__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
01967 typedef struct {
01968     __GLX_RENDER_HDR;
01969     __GLX_PIXEL_HDR;
01970     __GLX_CONV_FILT_HDR;
01971 } __GLXConvolutionFilterHeader;
01972 
01973 typedef struct {
01974     __GLX_RENDER_LARGE_HDR;
01975     __GLX_PIXEL_HDR;
01976     __GLX_CONV_FILT_HDR;
01977 } __GLXConvolutionFilterLargeHeader;
01978 
01979 typedef struct {
01980     __GLX_PIXEL_HDR;
01981     __GLX_CONV_FILT_HDR;
01982 } __GLXdispatchConvolutionFilterHeader;
01983 
01984 /*
01985 ** Data that is specific to a glDrawArraysEXT call.  The data is sent in the
01986 ** following order:
01987 **     Render or RenderLarge header
01988 **     Draw Arrays header
01989 **     a variable number of Component headers
01990 **     vertex data for each component type
01991 */
01992 
01993 #define __GLX_DRAWARRAYS_HDR \
01994     CARD32    numVertexes B32; \
01995     CARD32    numComponents B32; \
01996     CARD32    primType B32
01997 
01998 #define __GLX_DRAWARRAYS_HDR_SIZE 12
01999 
02000 #define __GLX_DRAWARRAYS_CMD_HDR_SIZE \
02001     (__GLX_RENDER_HDR_SIZE + __GLX_DRAWARRAYS_HDR_SIZE)
02002 
02003 typedef struct {
02004     __GLX_RENDER_HDR;
02005     __GLX_DRAWARRAYS_HDR;
02006 } __GLXdrawArraysHeader;
02007 
02008 typedef struct {
02009     __GLX_RENDER_LARGE_HDR;
02010     __GLX_DRAWARRAYS_HDR;
02011 } __GLXdrawArraysLargeHeader;
02012 
02013 typedef struct {
02014     __GLX_DRAWARRAYS_HDR;
02015 } __GLXdispatchDrawArraysHeader;
02016 
02017 #define __GLX_COMPONENT_HDR \
02018     CARD32    datatype B32; \
02019     INT32     numVals B32; \
02020     CARD32    component B32
02021 
02022 typedef struct {
02023     __GLX_COMPONENT_HDR;
02024 } __GLXdispatchDrawArraysComponentHeader;
02025 
02026 #define __GLX_COMPONENT_HDR_SIZE 12
02027 
02028 /*
02029 ** Data that is specific to a glColorTable call
02030 **     The data is sent in the following order:
02031 **     Render or RenderLarge header
02032 **     Pixel header
02033 **     ColorTable header
02034 */
02035 
02036 #define __GLX_COLOR_TABLE_HDR           \
02037     CARD32    target B32;       \
02038     CARD32    internalformat B32; \
02039     CARD32    width B32;        \
02040     CARD32    format B32;       \
02041     CARD32    type   B32
02042 
02043 #define __GLX_COLOR_TABLE_HDR_SIZE 20
02044 
02045 #define __GLX_COLOR_TABLE_CMD_HDR_SIZE \
02046     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_COLOR_TABLE_HDR_SIZE)
02047 
02048 typedef struct {
02049     __GLX_RENDER_HDR;
02050     __GLX_PIXEL_HDR;
02051     __GLX_COLOR_TABLE_HDR;
02052 } __GLXColorTableHeader;
02053 
02054 typedef struct {
02055     __GLX_RENDER_LARGE_HDR;
02056     __GLX_PIXEL_HDR;
02057     __GLX_COLOR_TABLE_HDR;
02058 } __GLXColorTableLargeHeader;
02059 
02060 typedef struct {
02061     __GLX_PIXEL_HDR;
02062     __GLX_COLOR_TABLE_HDR;
02063 } __GLXdispatchColorTableHeader;
02064 
02065 /*
02066 ** Data that is specific to a glColorSubTable call
02067 **     The data is sent in the following order:
02068 **     Render or RenderLarge header
02069 **     Pixel header
02070 **     ColorTable header
02071 */
02072 
02073 #define __GLX_COLOR_SUBTABLE_HDR    \
02074     CARD32    target B32;       \
02075     CARD32    start B32;        \
02076     CARD32    count B32;        \
02077     CARD32    format B32;       \
02078     CARD32    type   B32
02079 
02080 #define __GLX_COLOR_SUBTABLE_HDR_SIZE 20
02081 
02082 #define __GLX_COLOR_SUBTABLE_CMD_HDR_SIZE \
02083     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + \
02084      __GLX_COLOR_SUBTABLE_HDR_SIZE)
02085 
02086 typedef struct {
02087     __GLX_RENDER_HDR;
02088     __GLX_PIXEL_HDR;
02089     __GLX_COLOR_SUBTABLE_HDR;
02090 } __GLXColorSubTableHeader;
02091 
02092 typedef struct {
02093     __GLX_RENDER_LARGE_HDR;
02094     __GLX_PIXEL_HDR;
02095     __GLX_COLOR_SUBTABLE_HDR;
02096 } __GLXColorSubTableLargeHeader;
02097 
02098 typedef struct {
02099     __GLX_PIXEL_HDR;
02100     __GLX_COLOR_SUBTABLE_HDR;
02101 } __GLXdispatchColorSubTableHeader;
02102 
02103 #define GLX_WINDOW_TYPE            1
02104 #define GLX_PIXMAP_TYPE            2
02105 #define GLX_VIDEO_SOURCE_TYPE      3
02106 #define GLX_PBUFFER_TYPE    4
02107 /* 5 is for DM_PBUFFER */
02108 #define GLX_GLXWINDOW_TYPE  6      
02109 
02110 /*****************************************************************************/
02111 
02112 /*
02113 ** Restore these definitions back to the typedefs in glx.h
02114 */
02115 #undef GLXContextID
02116 #undef GLXPixmap
02117 #undef GLXDrawable
02118 #undef GLXPbuffer
02119 #undef GLXWindow
02120 #undef GLXFBConfigID
02121 #undef GLXFBConfigIDSGIX
02122 #undef GLXPbufferSGIX
02123 
02124 
02125 /* Opcodes for GLX commands */
02126 
02127 #define X_GLXRender                       1
02128 #define X_GLXRenderLarge                  2
02129 #define X_GLXCreateContext                3
02130 #define X_GLXDestroyContext               4
02131 #define X_GLXMakeCurrent                  5
02132 #define X_GLXIsDirect                     6
02133 #define X_GLXQueryVersion                 7
02134 #define X_GLXWaitGL                       8
02135 #define X_GLXWaitX                        9
02136 #define X_GLXCopyContext                 10
02137 #define X_GLXSwapBuffers                 11
02138 #define X_GLXUseXFont                    12
02139 #define X_GLXCreateGLXPixmap             13
02140 #define X_GLXGetVisualConfigs            14
02141 #define X_GLXDestroyGLXPixmap            15
02142 #define X_GLXVendorPrivate               16
02143 #define X_GLXVendorPrivateWithReply      17
02144 #define X_GLXQueryExtensionsString       18
02145 #define X_GLXQueryServerString           19
02146 #define X_GLXClientInfo                  20
02147 #define X_GLXGetFBConfigs                21
02148 #define X_GLXCreatePixmap                22
02149 #define X_GLXDestroyPixmap               23
02150 #define X_GLXCreateNewContext            24
02151 #define X_GLXQueryContext                25
02152 #define X_GLXMakeContextCurrent          26
02153 #define X_GLXCreatePbuffer               27
02154 #define X_GLXDestroyPbuffer              28
02155 #define X_GLXGetDrawableAttributes       29
02156 #define X_GLXChangeDrawableAttributes    30
02157 #define X_GLXCreateWindow                31
02158 #define X_GLXDestroyWindow               32
02159 #define X_GLXSetClientInfoARB            33
02160 #define X_GLXCreateContextAtrribsARB     34
02161 #define X_GLXSetConfigInfo2ARB           35
02162 
02163 /* Opcodes for single commands (part of GLX command space) */
02164 
02165 #define X_GLsop_NewList                    101
02166 #define X_GLsop_EndList                    102
02167 #define X_GLsop_DeleteLists                103
02168 #define X_GLsop_GenLists                   104
02169 #define X_GLsop_FeedbackBuffer             105
02170 #define X_GLsop_SelectBuffer               106
02171 #define X_GLsop_RenderMode                 107
02172 #define X_GLsop_Finish                     108
02173 #define X_GLsop_Flush                      142
02174 #define X_GLsop_PixelStoref                109
02175 #define X_GLsop_PixelStorei                110
02176 #define X_GLsop_ReadPixels                 111
02177 #define X_GLsop_GetBooleanv                112
02178 #define X_GLsop_GetClipPlane               113
02179 #define X_GLsop_GetDoublev                 114
02180 #define X_GLsop_GetError                   115
02181 #define X_GLsop_GetFloatv                  116
02182 #define X_GLsop_GetIntegerv                117
02183 #define X_GLsop_GetLightfv                 118
02184 #define X_GLsop_GetLightiv                 119
02185 #define X_GLsop_GetMapdv                   120
02186 #define X_GLsop_GetMapfv                   121
02187 #define X_GLsop_GetMapiv                   122
02188 #define X_GLsop_GetMaterialfv              123
02189 #define X_GLsop_GetMaterialiv              124
02190 #define X_GLsop_GetPixelMapfv              125
02191 #define X_GLsop_GetPixelMapuiv             126
02192 #define X_GLsop_GetPixelMapusv             127
02193 #define X_GLsop_GetPolygonStipple          128
02194 #define X_GLsop_GetString                  129
02195 #define X_GLsop_GetTexEnvfv                130
02196 #define X_GLsop_GetTexEnviv                131
02197 #define X_GLsop_GetTexGendv                132
02198 #define X_GLsop_GetTexGenfv                133
02199 #define X_GLsop_GetTexGeniv                134
02200 #define X_GLsop_GetTexImage                135
02201 #define X_GLsop_GetTexParameterfv          136
02202 #define X_GLsop_GetTexParameteriv          137
02203 #define X_GLsop_GetTexLevelParameterfv     138
02204 #define X_GLsop_GetTexLevelParameteriv     139
02205 #define X_GLsop_IsEnabled                  140
02206 #define X_GLsop_IsList                     141
02207 #define X_GLsop_AreTexturesResident        143
02208 #define X_GLsop_DeleteTextures             144
02209 #define X_GLsop_GenTextures                145
02210 #define X_GLsop_IsTexture                  146
02211 #define X_GLsop_GetColorTable              147
02212 #define X_GLsop_GetColorTableParameterfv   148
02213 #define X_GLsop_GetColorTableParameteriv   149
02214 #define X_GLsop_GetConvolutionFilter       150
02215 #define X_GLsop_GetConvolutionParameterfv  151
02216 #define X_GLsop_GetConvolutionParameteriv  152
02217 #define X_GLsop_GetSeparableFilter         153
02218 #define X_GLsop_GetHistogram               154
02219 #define X_GLsop_GetHistogramParameterfv    155
02220 #define X_GLsop_GetHistogramParameteriv    156
02221 #define X_GLsop_GetMinmax                  157
02222 #define X_GLsop_GetMinmaxParameterfv       158
02223 #define X_GLsop_GetMinmaxParameteriv       159
02224 #define X_GLsop_GetCompressedTexImage      160
02225 
02226 
02227 /* Opcodes for rendering commands */
02228 
02229 #define X_GLrop_CallList                     1
02230 #define X_GLrop_CallLists                    2
02231 #define X_GLrop_ListBase                     3
02232 #define X_GLrop_Begin                        4
02233 #define X_GLrop_Bitmap                       5
02234 #define X_GLrop_Color3bv                     6
02235 #define X_GLrop_Color3dv                     7
02236 #define X_GLrop_Color3fv                     8
02237 #define X_GLrop_Color3iv                     9
02238 #define X_GLrop_Color3sv                    10
02239 #define X_GLrop_Color3ubv                   11
02240 #define X_GLrop_Color3uiv                   12
02241 #define X_GLrop_Color3usv                   13
02242 #define X_GLrop_Color4bv                    14
02243 #define X_GLrop_Color4dv                    15
02244 #define X_GLrop_Color4fv                    16
02245 #define X_GLrop_Color4iv                    17
02246 #define X_GLrop_Color4sv                    18
02247 #define X_GLrop_Color4ubv                   19
02248 #define X_GLrop_Color4uiv                   20
02249 #define X_GLrop_Color4usv                   21
02250 #define X_GLrop_EdgeFlagv                   22
02251 #define X_GLrop_End                         23
02252 #define X_GLrop_Indexdv                     24
02253 #define X_GLrop_Indexfv                     25
02254 #define X_GLrop_Indexiv                     26
02255 #define X_GLrop_Indexsv                     27
02256 #define X_GLrop_Normal3bv                   28
02257 #define X_GLrop_Normal3dv                   29
02258 #define X_GLrop_Normal3fv                   30
02259 #define X_GLrop_Normal3iv                   31
02260 #define X_GLrop_Normal3sv                   32
02261 #define X_GLrop_RasterPos2dv                33
02262 #define X_GLrop_RasterPos2fv                34
02263 #define X_GLrop_RasterPos2iv                35
02264 #define X_GLrop_RasterPos2sv                36
02265 #define X_GLrop_RasterPos3dv                37
02266 #define X_GLrop_RasterPos3fv                38
02267 #define X_GLrop_RasterPos3iv                39
02268 #define X_GLrop_RasterPos3sv                40
02269 #define X_GLrop_RasterPos4dv                41
02270 #define X_GLrop_RasterPos4fv                42
02271 #define X_GLrop_RasterPos4iv                43
02272 #define X_GLrop_RasterPos4sv                44
02273 #define X_GLrop_Rectdv                      45
02274 #define X_GLrop_Rectfv                      46
02275 #define X_GLrop_Rectiv                      47
02276 #define X_GLrop_Rectsv                      48
02277 #define X_GLrop_TexCoord1dv                 49
02278 #define X_GLrop_TexCoord1fv                 50
02279 #define X_GLrop_TexCoord1iv                 51
02280 #define X_GLrop_TexCoord1sv                 52
02281 #define X_GLrop_TexCoord2dv                 53
02282 #define X_GLrop_TexCoord2fv                 54
02283 #define X_GLrop_TexCoord2iv                 55
02284 #define X_GLrop_TexCoord2sv                 56
02285 #define X_GLrop_TexCoord3dv                 57
02286 #define X_GLrop_TexCoord3fv                 58
02287 #define X_GLrop_TexCoord3iv                 59
02288 #define X_GLrop_TexCoord3sv                 60
02289 #define X_GLrop_TexCoord4dv                 61
02290 #define X_GLrop_TexCoord4fv                 62
02291 #define X_GLrop_TexCoord4iv                 63
02292 #define X_GLrop_TexCoord4sv                 64
02293 #define X_GLrop_Vertex2dv                   65
02294 #define X_GLrop_Vertex2fv                   66
02295 #define X_GLrop_Vertex2iv                   67
02296 #define X_GLrop_Vertex2sv                   68
02297 #define X_GLrop_Vertex3dv                   69
02298 #define X_GLrop_Vertex3fv                   70
02299 #define X_GLrop_Vertex3iv                   71
02300 #define X_GLrop_Vertex3sv                   72
02301 #define X_GLrop_Vertex4dv                   73
02302 #define X_GLrop_Vertex4fv                   74
02303 #define X_GLrop_Vertex4iv                   75
02304 #define X_GLrop_Vertex4sv                   76
02305 #define X_GLrop_ClipPlane                   77
02306 #define X_GLrop_ColorMaterial               78
02307 #define X_GLrop_CullFace                    79
02308 #define X_GLrop_Fogf                        80
02309 #define X_GLrop_Fogfv                       81
02310 #define X_GLrop_Fogi                        82
02311 #define X_GLrop_Fogiv                       83
02312 #define X_GLrop_FrontFace                   84
02313 #define X_GLrop_Hint                        85
02314 #define X_GLrop_Lightf                      86
02315 #define X_GLrop_Lightfv                     87
02316 #define X_GLrop_Lighti                      88
02317 #define X_GLrop_Lightiv                     89
02318 #define X_GLrop_LightModelf                 90
02319 #define X_GLrop_LightModelfv                91
02320 #define X_GLrop_LightModeli                 92
02321 #define X_GLrop_LightModeliv                93
02322 #define X_GLrop_LineStipple                 94
02323 #define X_GLrop_LineWidth                   95
02324 #define X_GLrop_Materialf                   96
02325 #define X_GLrop_Materialfv                  97
02326 #define X_GLrop_Materiali                   98
02327 #define X_GLrop_Materialiv                  99
02328 #define X_GLrop_PointSize                  100
02329 #define X_GLrop_PolygonMode                101
02330 #define X_GLrop_PolygonStipple             102
02331 #define X_GLrop_Scissor                    103
02332 #define X_GLrop_ShadeModel                 104
02333 #define X_GLrop_TexParameterf              105
02334 #define X_GLrop_TexParameterfv             106
02335 #define X_GLrop_TexParameteri              107
02336 #define X_GLrop_TexParameteriv             108
02337 #define X_GLrop_TexImage1D                 109
02338 #define X_GLrop_TexImage2D                 110
02339 #define X_GLrop_TexEnvf                    111
02340 #define X_GLrop_TexEnvfv                   112
02341 #define X_GLrop_TexEnvi                    113
02342 #define X_GLrop_TexEnviv                   114
02343 #define X_GLrop_TexGend                    115
02344 #define X_GLrop_TexGendv                   116
02345 #define X_GLrop_TexGenf                    117
02346 #define X_GLrop_TexGenfv                   118
02347 #define X_GLrop_TexGeni                    119
02348 #define X_GLrop_TexGeniv                   120
02349 #define X_GLrop_InitNames                  121
02350 #define X_GLrop_LoadName                   122
02351 #define X_GLrop_PassThrough                123
02352 #define X_GLrop_PopName                    124
02353 #define X_GLrop_PushName                   125
02354 #define X_GLrop_DrawBuffer                 126
02355 #define X_GLrop_Clear                      127
02356 #define X_GLrop_ClearAccum                 128
02357 #define X_GLrop_ClearIndex                 129
02358 #define X_GLrop_ClearColor                 130
02359 #define X_GLrop_ClearStencil               131
02360 #define X_GLrop_ClearDepth                 132
02361 #define X_GLrop_StencilMask                133
02362 #define X_GLrop_ColorMask                  134
02363 #define X_GLrop_DepthMask                  135
02364 #define X_GLrop_IndexMask                  136
02365 #define X_GLrop_Accum                      137
02366 #define X_GLrop_Disable                    138
02367 #define X_GLrop_Enable                     139
02368 #define X_GLrop_PopAttrib                  141
02369 #define X_GLrop_PushAttrib                 142
02370 #define X_GLrop_Map1d                      143
02371 #define X_GLrop_Map1f                      144
02372 #define X_GLrop_Map2d                      145
02373 #define X_GLrop_Map2f                      146
02374 #define X_GLrop_MapGrid1d                  147
02375 #define X_GLrop_MapGrid1f                  148
02376 #define X_GLrop_MapGrid2d                  149
02377 #define X_GLrop_MapGrid2f                  150
02378 #define X_GLrop_EvalCoord1dv               151
02379 #define X_GLrop_EvalCoord1fv               152
02380 #define X_GLrop_EvalCoord2dv               153
02381 #define X_GLrop_EvalCoord2fv               154
02382 #define X_GLrop_EvalMesh1                  155
02383 #define X_GLrop_EvalPoint1                 156
02384 #define X_GLrop_EvalMesh2                  157
02385 #define X_GLrop_EvalPoint2                 158
02386 #define X_GLrop_AlphaFunc                  159
02387 #define X_GLrop_BlendFunc                  160
02388 #define X_GLrop_LogicOp                    161
02389 #define X_GLrop_StencilFunc                162
02390 #define X_GLrop_StencilOp                  163
02391 #define X_GLrop_DepthFunc                  164
02392 #define X_GLrop_PixelZoom                  165
02393 #define X_GLrop_PixelTransferf             166
02394 #define X_GLrop_PixelTransferi             167
02395 #define X_GLrop_PixelMapfv                 168
02396 #define X_GLrop_PixelMapuiv                169
02397 #define X_GLrop_PixelMapusv                170
02398 #define X_GLrop_ReadBuffer                 171
02399 #define X_GLrop_CopyPixels                 172
02400 #define X_GLrop_DrawPixels                 173
02401 #define X_GLrop_DepthRange                 174
02402 #define X_GLrop_Frustum                    175
02403 #define X_GLrop_LoadIdentity               176
02404 #define X_GLrop_LoadMatrixf                177
02405 #define X_GLrop_LoadMatrixd                178
02406 #define X_GLrop_MatrixMode                 179
02407 #define X_GLrop_MultMatrixf                180
02408 #define X_GLrop_MultMatrixd                181
02409 #define X_GLrop_Ortho                      182
02410 #define X_GLrop_PopMatrix                  183
02411 #define X_GLrop_PushMatrix                 184
02412 #define X_GLrop_Rotated                    185
02413 #define X_GLrop_Rotatef                    186
02414 #define X_GLrop_Scaled                     187
02415 #define X_GLrop_Scalef                     188
02416 #define X_GLrop_Translated                 189
02417 #define X_GLrop_Translatef                 190
02418 #define X_GLrop_Viewport                   191
02419 #define X_GLrop_DrawArrays                 193
02420 #define X_GLrop_PolygonOffset              192
02421 #define X_GLrop_CopyTexImage1D             4119
02422 #define X_GLrop_CopyTexImage2D             4120
02423 #define X_GLrop_CopyTexSubImage1D          4121
02424 #define X_GLrop_CopyTexSubImage2D          4122
02425 #define X_GLrop_TexSubImage1D              4099
02426 #define X_GLrop_TexSubImage2D              4100
02427 #define X_GLrop_BindTexture                4117
02428 #define X_GLrop_PrioritizeTextures         4118
02429 #define X_GLrop_Indexubv                   194
02430 #define X_GLrop_BlendColor                 4096
02431 #define X_GLrop_BlendEquation              4097
02432 #define X_GLrop_ColorTable                 2053
02433 #define X_GLrop_ColorTableParameterfv      2054
02434 #define X_GLrop_ColorTableParameteriv      2055
02435 #define X_GLrop_CopyColorTable             2056
02436 #define X_GLrop_ColorSubTable              195
02437 #define X_GLrop_CopyColorSubTable          196
02438 #define X_GLrop_ConvolutionFilter1D        4101
02439 #define X_GLrop_ConvolutionFilter2D        4102
02440 #define X_GLrop_ConvolutionParameterf      4103
02441 #define X_GLrop_ConvolutionParameterfv     4104
02442 #define X_GLrop_ConvolutionParameteri      4105
02443 #define X_GLrop_ConvolutionParameteriv     4106
02444 #define X_GLrop_CopyConvolutionFilter1D    4107
02445 #define X_GLrop_CopyConvolutionFilter2D    4108
02446 #define X_GLrop_SeparableFilter2D          4109
02447 #define X_GLrop_Histogram                  4110
02448 #define X_GLrop_Minmax                     4111
02449 #define X_GLrop_ResetHistogram             4112
02450 #define X_GLrop_ResetMinmax                4113
02451 #define X_GLrop_TexImage3D                 4114
02452 #define X_GLrop_TexSubImage3D              4115
02453 #define X_GLrop_CopyTexSubImage3D          4123
02454 #define X_GLrop_DrawArraysEXT              4116
02455 
02456 /* Added for core GL version 1.3 */
02457 
02458 #define X_GLrop_ActiveTextureARB            197
02459 #define X_GLrop_MultiTexCoord1dvARB         198
02460 #define X_GLrop_MultiTexCoord1fvARB         199
02461 #define X_GLrop_MultiTexCoord1ivARB         200
02462 #define X_GLrop_MultiTexCoord1svARB         201
02463 #define X_GLrop_MultiTexCoord2dvARB         202
02464 #define X_GLrop_MultiTexCoord2fvARB         203
02465 #define X_GLrop_MultiTexCoord2ivARB         204
02466 #define X_GLrop_MultiTexCoord2svARB         205
02467 #define X_GLrop_MultiTexCoord3dvARB         206
02468 #define X_GLrop_MultiTexCoord3fvARB         207
02469 #define X_GLrop_MultiTexCoord3ivARB         208
02470 #define X_GLrop_MultiTexCoord3svARB         209
02471 #define X_GLrop_MultiTexCoord4dvARB         210
02472 #define X_GLrop_MultiTexCoord4fvARB         211
02473 #define X_GLrop_MultiTexCoord4ivARB         212
02474 #define X_GLrop_MultiTexCoord4svARB         213
02475 #define X_GLrop_CompressedTexImage1D        214
02476 #define X_GLrop_CompressedTexImage2D        215
02477 #define X_GLrop_CompressedTexImage3D        216
02478 #define X_GLrop_CompressedTexSubImage1D     217
02479 #define X_GLrop_CompressedTexSubImage2D     218
02480 #define X_GLrop_CompressedTexSubImage3D     219
02481 #define X_GLrop_SampleCoverageARB           229
02482 
02483 /* Added for core GL version 1.4 */
02484 
02485 #define X_GLrop_WindowPos3fARB              230
02486 #define X_GLrop_FogCoordfv                  4124
02487 #define X_GLrop_FogCoorddv                  4125
02488 #define X_GLrop_PointParameterfARB          2065
02489 #define X_GLrop_PointParameterfvARB         2066
02490 #define X_GLrop_SecondaryColor3bv           4126
02491 #define X_GLrop_SecondaryColor3sv           4127
02492 #define X_GLrop_SecondaryColor3iv           4128
02493 #define X_GLrop_SecondaryColor3fv           4129
02494 #define X_GLrop_SecondaryColor3dv           4130
02495 #define X_GLrop_SecondaryColor3ubv          4131
02496 #define X_GLrop_SecondaryColor3usv          4132
02497 #define X_GLrop_SecondaryColor3uiv          4133
02498 #define X_GLrop_BlendFuncSeparate           4134
02499 #define X_GLrop_PointParameteri             4221
02500 #define X_GLrop_PointParameteriv            4222
02501 
02502 /* Added for core GL version 1.5 */
02503 /* XXX opcodes not defined in the spec */
02504 
02505 /* Opcodes for Vendor Private commands */
02506 
02507 
02508 #define X_GLvop_GetConvolutionFilterEXT        1
02509 #define X_GLvop_GetConvolutionParameterfvEXT   2
02510 #define X_GLvop_GetConvolutionParameterivEXT   3
02511 #define X_GLvop_GetSeparableFilterEXT          4
02512 #define X_GLvop_GetHistogramEXT                5
02513 #define X_GLvop_GetHistogramParameterfvEXT     6
02514 #define X_GLvop_GetHistogramParameterivEXT     7
02515 #define X_GLvop_GetMinmaxEXT                   8
02516 #define X_GLvop_GetMinmaxParameterfvEXT        9
02517 #define X_GLvop_GetMinmaxParameterivEXT        10
02518 #define X_GLvop_AreTexturesResidentEXT         11
02519 #define X_GLvop_DeleteTexturesEXT              12
02520 #define X_GLvop_GenTexturesEXT                 13
02521 #define X_GLvop_IsTextureEXT                   14
02522 #define X_GLvop_GetCombinerInputParameterfvNV  1270
02523 #define X_GLvop_GetCombinerInputParameterivNV  1271
02524 #define X_GLvop_GetCombinerOutputParameterfvNV 1272
02525 #define X_GLvop_GetCombinerOutputParameterivNV 1273
02526 #define X_GLvop_GetFinalCombinerOutputParameterfvNV 1274
02527 #define X_GLvop_GetFinalCombinerOutputParameterivNV 1275
02528 #define X_GLvop_DeleteFenceNV                  1276
02529 #define X_GLvop_GenFencesNV                    1277
02530 #define X_GLvop_IsFenceNV                      1278
02531 #define X_GLvop_TestFenceNV                    1279
02532 #define X_GLvop_GetFenceivNV                   1280
02533 #define X_GLvop_AreProgramsResidentNV          1293
02534 #define X_GLvop_DeleteProgramARB               1294
02535 #define X_GLvop_GenProgramsARB                 1295
02536 #define X_GLvop_GetProgramEnvParameterfvARB    1296
02537 #define X_GLvop_GetProgramEnvParameterdvARB    1297
02538 #define X_GLvop_GetProgramEnvParameterivNV     1298
02539 #define X_GLvop_GetProgramStringNV             1299
02540 #define X_GLvop_GetTrackMatrixivNV             1300
02541 #define X_GLvop_GetVertexAttribdvARB           1301
02542 #define X_GLvop_GetVertexAttribfvARB           1302
02543 #define X_GLvop_GetVertexAttribivARB           1303
02544 #define X_GLvop_IsProgramARB                   1304
02545 #define X_GLvop_GetProgramLocalParameterfvARB  1305
02546 #define X_GLvop_GetProgramLocalParameterdvARB  1306
02547 #define X_GLvop_GetProgramivARB                1307
02548 #define X_GLvop_GetProgramStringARB            1308
02549 #define X_GLvop_GetProgramNamedParameter4fvNV  1310
02550 #define X_GLvop_GetProgramNamedParameter4dvNV  1311
02551 #define X_GLvop_SampleMaskSGIS                 2048
02552 #define X_GLvop_SamplePatternSGIS              2049
02553 #define X_GLvop_GetDetailTexFuncSGIS           4096
02554 #define X_GLvop_GetSharpenTexFuncSGIS          4097
02555 #define X_GLvop_GetColorTableSGI               4098
02556 #define X_GLvop_GetColorTableParameterfvSGI    4099
02557 #define X_GLvop_GetColorTableParameterivSGI    4100
02558 #define X_GLvop_GetTexFilterFuncSGIS           4101
02559 #define X_GLvop_GetInstrumentsSGIX             4102
02560 #define X_GLvop_InstrumentsBufferSGIX          4103
02561 #define X_GLvop_PollInstrumentsSGIX            4104
02562 #define X_GLvop_FlushRasterSGIX                4105
02563 
02564 /* Opcodes for GLX vendor private commands */
02565 
02566 #define X_GLXvop_QueryContextInfoEXT            1024
02567 #define X_GLXvop_BindTexImageEXT                1330
02568 #define X_GLXvop_ReleaseTexImageEXT             1331
02569 #define X_GLXvop_SwapIntervalSGI                65536
02570 #define X_GLXvop_MakeCurrentReadSGI             65537
02571 #define X_GLXvop_CreateGLXVideoSourceSGIX       65538
02572 #define X_GLXvop_DestroyGLXVideoSourceSGIX      65539
02573 #define X_GLXvop_GetFBConfigsSGIX               65540
02574 #define X_GLXvop_CreateContextWithConfigSGIX    65541
02575 #define X_GLXvop_CreateGLXPixmapWithConfigSGIX  65542
02576 #define X_GLXvop_CreateGLXPbufferSGIX           65543
02577 #define X_GLXvop_DestroyGLXPbufferSGIX          65544
02578 #define X_GLXvop_ChangeDrawableAttributesSGIX   65545
02579 #define X_GLXvop_GetDrawableAttributesSGIX      65546
02580 #define X_GLXvop_JoinSwapGroupSGIX              65547
02581 #define X_GLXvop_BindSwapBarrierSGIX            65548
02582 #define X_GLXvop_QueryMaxSwapBarriersSGIX       65549
02583 #define X_GLXvop_QueryHyperpipeNetworkSGIX      65550
02584 #define X_GLXvop_QueryHyperpipeConfigSGIX       65551
02585 #define X_GLXvop_HyperpipeConfigSGIX            65552
02586 #define X_GLXvop_DestroyHyperpipeConfigSGIX     65553
02587 
02588 /* ARB extension opcodes */
02589 
02590 /*  1. GL_ARB_multitexture - see GL 1.2 opcodes */
02591 /*  5. GL_ARB_multisample - see GL 1.3 opcodes */
02592 /* 12. GL_ARB_texture_compression - see GL 1.3 opcodes */
02593 /* 14. GL_ARB_point_parameters - see GL 1.4 opcodees */
02594 
02595 /* 15. GL_ARB_vertex_blend */
02596 #define X_GLrop_WeightbvARB                  220
02597 #define X_GLrop_WeightubvARB                 221
02598 #define X_GLrop_WeightsvARB                  222
02599 #define X_GLrop_WeightusvARB                 223
02600 #define X_GLrop_WeightivARB                  224
02601 #define X_GLrop_WeightuivARB                 225
02602 #define X_GLrop_VertexBlendARB               226
02603 #define X_GLrop_WeightfvARB                  227
02604 #define X_GLrop_WeightdvARB                  228
02605 
02606 /* 16. GL_ARB_matrix_palette */
02607 /* XXX opcodes not defined in the spec */
02608 
02609 /* 25. GL_ARB_window_pos - see GL 1.4 opcodes */
02610 
02611 /* 26. GL_ARB_vertex_program */
02612 #define X_GLrop_BindProgramARB              4180
02613 #define X_GLrop_ProgramEnvParameter4fvARB   4184
02614 #define X_GLrop_ProgramEnvParameter4dvARB   4185
02615 #define X_GLrop_VertexAttrib1svARB          4189
02616 #define X_GLrop_VertexAttrib2svARB          4190
02617 #define X_GLrop_VertexAttrib3svARB          4191
02618 #define X_GLrop_VertexAttrib4svARB          4192
02619 #define X_GLrop_VertexAttrib1fvARB          4193
02620 #define X_GLrop_VertexAttrib2fvARB          4194
02621 #define X_GLrop_VertexAttrib3fvARB          4195
02622 #define X_GLrop_VertexAttrib4fvARB          4196
02623 #define X_GLrop_VertexAttrib1dvARB          4197
02624 #define X_GLrop_VertexAttrib2dvARB          4198
02625 #define X_GLrop_VertexAttrib3dvARB          4199
02626 #define X_GLrop_ProgramLocalParameter4fvARB 4215
02627 #define X_GLrop_ProgramLocalParameter4dvARB 4216
02628 #define X_GLrop_ProgramStringARB            4217
02629 #define X_GLrop_VertexAttrib4dvARB          4200
02630 #define X_GLrop_VertexAttrib4NubvARB        4201
02631 #define X_GLrop_VertexAttrib4bvARB          4230
02632 #define X_GLrop_VertexAttrib4ivARB          4231
02633 #define X_GLrop_VertexAttrib4ubvARB         4232
02634 #define X_GLrop_VertexAttrib4usvARB         4233
02635 #define X_GLrop_VertexAttrib4uivARB         4234
02636 #define X_GLrop_VertexAttrib4NbvARB         4235
02637 #define X_GLrop_VertexAttrib4NsvARB         4236
02638 #define X_GLrop_VertexAttrib4NivARB         4237
02639 #define X_GLrop_VertexAttrib4NusvARB        4238
02640 #define X_GLrop_VertexAttrib4NuivARB        4239
02641 
02642 /* 27. GL_ARB_fragment_program - see GL_ARB_vertex_program opcodes */
02643 
02644 /* 29. GL_ARB_occlusion_query */
02645 /* XXX opcodes not defined in the spec */
02646 
02647 
02648 /* New extension opcodes */
02649 
02650 /* 145. GL_EXT_secondary_color - see GL 1.4 opcodes */
02651 
02652 /* 188. GL_EXT_vertex_weighting */
02653 #define X_GLrop_VertexWeightfvEXT           4135
02654 
02655 /* 191. GL_NV_register_combiners */
02656 #define X_GLrop_CombinerParameterfNV        4136
02657 #define X_GLrop_CombinerParameterfvNV       4137
02658 #define X_GLrop_CombinerParameteriNV        4138
02659 #define X_GLrop_CombinerParameterivNV       4139
02660 #define X_GLrop_CombinerInputNV             4140
02661 #define X_GLrop_CombinerOutputNV            4141
02662 #define X_GLrop_FinalCombinerInputNV        4142
02663 
02664 /* 222. GL_NV_fence */
02665 #define X_GLrop_SetFenceNV                  4143
02666 #define X_GLrop_FinishFenceNV               4144
02667 
02668 /* 227. GL_NV_register_combiners2 */
02669 /* XXX opcodes not defined in the spec */
02670 
02671 /* 233. GL_NV_vertex_program - see also GL_ARB_vertex_program opcodes */
02672 #define X_GLrop_ExecuteProgramNV            4181
02673 #define X_GLrop_RequestResidentProgramsNV   4182
02674 #define X_GLrop_LoadProgamNV                4183
02675 #define X_GLrop_ProgramParameters4fvNV      4186
02676 #define X_GLrop_ProgramParameters4dvNV      4187
02677 #define X_GLrop_TrackMatrixNV               4188
02678 #define X_GLrop_VertexAttribs1svNV          4202
02679 #define X_GLrop_VertexAttribs2svNV          4203
02680 #define X_GLrop_VertexAttribs3svNV          4204
02681 #define X_GLrop_VertexAttribs4svNV          4205
02682 #define X_GLrop_VertexAttribs1fvNV          4206
02683 #define X_GLrop_VertexAttribs2fvNV          4207
02684 #define X_GLrop_VertexAttribs3fvNV          4208
02685 #define X_GLrop_VertexAttribs4fvNV          4209
02686 #define X_GLrop_VertexAttribs1dvNV          4210
02687 #define X_GLrop_VertexAttribs2dvNV          4211
02688 #define X_GLrop_VertexAttribs3dvNV          4212
02689 #define X_GLrop_VertexAttribs4dvNV          4213
02690 #define X_GLrop_VertexAttribs4ubvNV         4214
02691 
02692 /* 261. GL_NV_occlusion_query */
02693 /* XXX opcodes not defined in the spec */
02694 
02695 /* 262. GL_NV_point_sprite - see GL 1.4 opcodes */
02696 
02697 /* 268. GL_EXT_stencil_two_side */
02698 #define X_GLrop_ActiveStencilFaceEXT        4220
02699 
02700 /* 282. GL_NV_fragment_program - see also GL_NV_vertex_program and GL_ARB_vertex_program opcodes */
02701 #define X_GLrop_ProgramNamedParameter4fvNV  4218
02702 #define X_GLrop_ProgramNamedParameter4dvNV  4219
02703 
02704 /* 285. GL_NV_primitive_restart */
02705 /* XXX opcodes not defined in the spec */
02706 
02707 /* 297. GL_EXT_depth_bounds_test */
02708 #define X_GLrop_DepthBoundsEXT              4229
02709 
02710 /* 299. GL_EXT_blend_equation_separate */
02711 #define X_GLrop_BlendEquationSeparateEXT    4228
02712 
02713 /* 310. GL_EXT_framebuffer_object */
02714 #define X_GLvop_IsRenderbufferEXT                      1422
02715 #define X_GLvop_GenRenderbuffersEXT                    1423
02716 #define X_GLvop_GetRenderbufferParameterivEXT          1424
02717 #define X_GLvop_IsFramebufferEXT                       1425
02718 #define X_GLvop_GenFramebuffersEXT                     1426
02719 #define X_GLvop_CheckFramebufferStatusEXT              1427
02720 #define X_GLvop_GetFramebufferAttachmentParameterivEXT 1428
02721 
02722 #endif /* _GLX_glxproto_h_ */