117ca54c3Smrg#ifndef _GLX_glxproto_h_
217ca54c3Smrg#define _GLX_glxproto_h_
317ca54c3Smrg
417ca54c3Smrg/*
517ca54c3Smrg * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
617ca54c3Smrg * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
717ca54c3Smrg *
817ca54c3Smrg * Permission is hereby granted, free of charge, to any person obtaining a
917ca54c3Smrg * copy of this software and associated documentation files (the "Software"),
1017ca54c3Smrg * to deal in the Software without restriction, including without limitation
1117ca54c3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1217ca54c3Smrg * and/or sell copies of the Software, and to permit persons to whom the
1317ca54c3Smrg * Software is furnished to do so, subject to the following conditions:
1417ca54c3Smrg *
1517ca54c3Smrg * The above copyright notice including the dates of first publication and
1617ca54c3Smrg * either this permission notice or a reference to
1717ca54c3Smrg * http://oss.sgi.com/projects/FreeB/
1817ca54c3Smrg * shall be included in all copies or substantial portions of the Software.
1917ca54c3Smrg *
2017ca54c3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2117ca54c3Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2217ca54c3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
2317ca54c3Smrg * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2417ca54c3Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
2517ca54c3Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2617ca54c3Smrg * SOFTWARE.
2717ca54c3Smrg *
2817ca54c3Smrg * Except as contained in this notice, the name of Silicon Graphics, Inc.
2917ca54c3Smrg * shall not be used in advertising or otherwise to promote the sale, use or
3017ca54c3Smrg * other dealings in this Software without prior written authorization from
3117ca54c3Smrg * Silicon Graphics, Inc.
3217ca54c3Smrg */
3317ca54c3Smrg
3417ca54c3Smrg#include <GL/glxmd.h>
3517ca54c3Smrg
3617ca54c3Smrg/*****************************************************************************/
3717ca54c3Smrg
3817ca54c3Smrg/*
39ea1d6981Smrg** Errors.
4017ca54c3Smrg*/
4117ca54c3Smrg#define GLXBadContext		0
4217ca54c3Smrg#define GLXBadContextState	1
4317ca54c3Smrg#define GLXBadDrawable		2
4417ca54c3Smrg#define GLXBadPixmap		3
4517ca54c3Smrg#define GLXBadContextTag	4
4617ca54c3Smrg#define GLXBadCurrentWindow	5
4717ca54c3Smrg#define GLXBadRenderRequest	6
4817ca54c3Smrg#define GLXBadLargeRequest	7
4917ca54c3Smrg#define GLXUnsupportedPrivateRequest	8
5017ca54c3Smrg#define GLXBadFBConfig		9
5117ca54c3Smrg#define GLXBadPbuffer		10
5217ca54c3Smrg#define GLXBadCurrentDrawable	11
5317ca54c3Smrg#define GLXBadWindow		12
5417ca54c3Smrg#define GLXBadProfileARB        13
5517ca54c3Smrg
5617ca54c3Smrg#define __GLX_NUMBER_ERRORS 14
5717ca54c3Smrg
5817ca54c3Smrg/*
5917ca54c3Smrg** Events.
6017ca54c3Smrg** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
6117ca54c3Smrg**  event - this helps initialization if the server supports the pbuffer
6217ca54c3Smrg**  extension and the client doesn't.
6317ca54c3Smrg*/
6417ca54c3Smrg#define GLX_PbufferClobber	0
6517ca54c3Smrg#define GLX_BufferSwapComplete	1
6617ca54c3Smrg
6717ca54c3Smrg#define __GLX_NUMBER_EVENTS 17
6817ca54c3Smrg
6917ca54c3Smrg#define GLX_EXTENSION_NAME	"GLX"
7017ca54c3Smrg#define GLX_EXTENSION_ALIAS	"SGI-GLX"
7117ca54c3Smrg
7217ca54c3Smrg#define __GLX_MAX_CONTEXT_PROPS 3
7317ca54c3Smrg
7417ca54c3Smrg#ifndef GLX_VENDOR
7517ca54c3Smrg#define GLX_VENDOR		0x1
7617ca54c3Smrg#endif
7717ca54c3Smrg#ifndef GLX_VERSION
7817ca54c3Smrg#define GLX_VERSION		0x2
7917ca54c3Smrg#endif
8017ca54c3Smrg#ifndef GLX_EXTENSIONS
8117ca54c3Smrg#define GLX_EXTENSIONS		0x3
8217ca54c3Smrg#endif
8317ca54c3Smrg
8417ca54c3Smrg/*****************************************************************************/
8517ca54c3Smrg
8617ca54c3Smrg/*
8717ca54c3Smrg** For the structure definitions in this file, we must redefine these types in
8817ca54c3Smrg** terms of Xmd.h types, which may include bitfields.  All of these are
8917ca54c3Smrg** undef'ed at the end of this file, restoring the definitions in glx.h.
9017ca54c3Smrg*/
9117ca54c3Smrg#define GLXContextID CARD32
9217ca54c3Smrg#define GLXPixmap CARD32
9317ca54c3Smrg#define GLXDrawable CARD32
9417ca54c3Smrg#define GLXPbuffer CARD32
9517ca54c3Smrg#define GLXWindow CARD32
9617ca54c3Smrg#define GLXFBConfigID CARD32
9717ca54c3Smrg#define GLXFBConfigIDSGIX CARD32
9817ca54c3Smrg#define GLXPbufferSGIX CARD32
9917ca54c3Smrg
10017ca54c3Smrg/*
10117ca54c3Smrg** ContextTag is not exposed to the API.
10217ca54c3Smrg*/
10317ca54c3Smrgtypedef CARD32 GLXContextTag;
10417ca54c3Smrg
10517ca54c3Smrg/*****************************************************************************/
10617ca54c3Smrg
10717ca54c3Smrg/*
10817ca54c3Smrg** Sizes of basic wire types.
10917ca54c3Smrg*/
11017ca54c3Smrg#define __GLX_SIZE_INT8		1
11117ca54c3Smrg#define __GLX_SIZE_INT16	2
11217ca54c3Smrg#define __GLX_SIZE_INT32	4
11317ca54c3Smrg#define __GLX_SIZE_CARD8	1
11417ca54c3Smrg#define __GLX_SIZE_CARD16	2
11517ca54c3Smrg#define __GLX_SIZE_CARD32	4
11617ca54c3Smrg#define __GLX_SIZE_FLOAT32	4
11717ca54c3Smrg#define __GLX_SIZE_FLOAT64	8
11817ca54c3Smrg
11917ca54c3Smrg/*****************************************************************************/
12017ca54c3Smrg
12117ca54c3Smrg/* Requests */
12217ca54c3Smrg
12317ca54c3Smrg/*
12417ca54c3Smrg** Render command request.  A bunch of rendering commands are packed into
12517ca54c3Smrg** a single X extension request.
12617ca54c3Smrg*/
12717ca54c3Smrgtypedef struct GLXRender {
12817ca54c3Smrg    CARD8	reqType;
12917ca54c3Smrg    CARD8	glxCode;
130ea1d6981Smrg    CARD16	length;
131ea1d6981Smrg    GLXContextTag contextTag;
13217ca54c3Smrg} xGLXRenderReq;
13317ca54c3Smrg#define sz_xGLXRenderReq 8
13417ca54c3Smrg
13517ca54c3Smrg/*
13617ca54c3Smrg** The maximum size that a GLXRender command can be.  The value must fit
13717ca54c3Smrg** in 16 bits and should be a multiple of 4.
13817ca54c3Smrg*/
13917ca54c3Smrg#define __GLX_MAX_RENDER_CMD_SIZE	64000
14017ca54c3Smrg
14117ca54c3Smrg/*
14217ca54c3Smrg** Large render command request.  A single large rendering command
14317ca54c3Smrg** is output in multiple X extension requests.	The first packet
14417ca54c3Smrg** contains an opcode dependent header (see below) that describes
14517ca54c3Smrg** the data that follows.
14617ca54c3Smrg*/
14717ca54c3Smrgtypedef struct GLXRenderLarge {
14817ca54c3Smrg    CARD8	reqType;
14917ca54c3Smrg    CARD8	glxCode;
150ea1d6981Smrg    CARD16	length;
151ea1d6981Smrg    GLXContextTag contextTag;
152ea1d6981Smrg    CARD16	requestNumber;
153ea1d6981Smrg    CARD16	requestTotal;
154ea1d6981Smrg    CARD32	dataBytes;
15517ca54c3Smrg} xGLXRenderLargeReq;
15617ca54c3Smrg#define sz_xGLXRenderLargeReq 16
15717ca54c3Smrg
15817ca54c3Smrg/*
15917ca54c3Smrg** GLX single request.	Commands that go over as single GLX protocol
16017ca54c3Smrg** requests use this structure.  The glxCode will be one of the X_GLsop
16117ca54c3Smrg** opcodes.
16217ca54c3Smrg*/
16317ca54c3Smrgtypedef struct GLXSingle {
16417ca54c3Smrg    CARD8	reqType;
16517ca54c3Smrg    CARD8	glxCode;
166ea1d6981Smrg    CARD16	length;
167ea1d6981Smrg    GLXContextTag contextTag;
16817ca54c3Smrg} xGLXSingleReq;
16917ca54c3Smrg#define sz_xGLXSingleReq 8
17017ca54c3Smrg
17117ca54c3Smrg/*
17217ca54c3Smrg** glXQueryVersion request
17317ca54c3Smrg*/
17417ca54c3Smrgtypedef struct GLXQueryVersion {
17517ca54c3Smrg    CARD8	reqType;
17617ca54c3Smrg    CARD8	glxCode;
177ea1d6981Smrg    CARD16	length;
178ea1d6981Smrg    CARD32	majorVersion;
179ea1d6981Smrg    CARD32	minorVersion;
18017ca54c3Smrg} xGLXQueryVersionReq;
18117ca54c3Smrg#define sz_xGLXQueryVersionReq 12
18217ca54c3Smrg
18317ca54c3Smrg/*
18417ca54c3Smrg** glXIsDirect request
18517ca54c3Smrg*/
18617ca54c3Smrgtypedef struct GLXIsDirect {
18717ca54c3Smrg    CARD8	reqType;
18817ca54c3Smrg    CARD8	glxCode;
189ea1d6981Smrg    CARD16	length;
190ea1d6981Smrg    GLXContextID context;
19117ca54c3Smrg} xGLXIsDirectReq;
19217ca54c3Smrg#define sz_xGLXIsDirectReq 8
19317ca54c3Smrg
19417ca54c3Smrg/*
19517ca54c3Smrg** glXCreateContext request
19617ca54c3Smrg*/
19717ca54c3Smrgtypedef struct GLXCreateContext {
19817ca54c3Smrg    CARD8	reqType;
19917ca54c3Smrg    CARD8	glxCode;
200ea1d6981Smrg    CARD16	length;
201ea1d6981Smrg    GLXContextID context;
202ea1d6981Smrg    CARD32	visual;
203ea1d6981Smrg    CARD32	screen;
204ea1d6981Smrg    GLXContextID shareList;
20517ca54c3Smrg    BOOL	isDirect;
20617ca54c3Smrg    CARD8	reserved1;
207ea1d6981Smrg    CARD16	reserved2;
20817ca54c3Smrg} xGLXCreateContextReq;
20917ca54c3Smrg#define sz_xGLXCreateContextReq 24
21017ca54c3Smrg
21117ca54c3Smrg/*
21217ca54c3Smrg** glXDestroyContext request
21317ca54c3Smrg*/
21417ca54c3Smrgtypedef struct GLXDestroyContext {
21517ca54c3Smrg    CARD8	reqType;
21617ca54c3Smrg    CARD8	glxCode;
217ea1d6981Smrg    CARD16	length;
218ea1d6981Smrg    GLXContextID context;
21917ca54c3Smrg} xGLXDestroyContextReq;
22017ca54c3Smrg#define sz_xGLXDestroyContextReq 8
22117ca54c3Smrg
22217ca54c3Smrg/*
22317ca54c3Smrg** glXMakeCurrent request
22417ca54c3Smrg*/
22517ca54c3Smrgtypedef struct GLXMakeCurrent {
22617ca54c3Smrg    CARD8	reqType;
22717ca54c3Smrg    CARD8	glxCode;
228ea1d6981Smrg    CARD16	length;
229ea1d6981Smrg    GLXDrawable drawable;
230ea1d6981Smrg    GLXContextID context;
231ea1d6981Smrg    GLXContextTag oldContextTag;
23217ca54c3Smrg} xGLXMakeCurrentReq;
23317ca54c3Smrg#define sz_xGLXMakeCurrentReq 16
23417ca54c3Smrg
23517ca54c3Smrg/*
23617ca54c3Smrg** glXWaitGL request
23717ca54c3Smrg*/
23817ca54c3Smrgtypedef struct GLXWaitGL {
23917ca54c3Smrg    CARD8	reqType;
24017ca54c3Smrg    CARD8	glxCode;
241ea1d6981Smrg    CARD16	length;
242ea1d6981Smrg    GLXContextTag contextTag;
24317ca54c3Smrg} xGLXWaitGLReq;
24417ca54c3Smrg#define sz_xGLXWaitGLReq 8
24517ca54c3Smrg
24617ca54c3Smrg/*
24717ca54c3Smrg** glXWaitX request
24817ca54c3Smrg*/
24917ca54c3Smrgtypedef struct GLXWaitX {
25017ca54c3Smrg    CARD8	reqType;
25117ca54c3Smrg    CARD8	glxCode;
252ea1d6981Smrg    CARD16	length;
253ea1d6981Smrg    GLXContextTag contextTag;
25417ca54c3Smrg} xGLXWaitXReq;
25517ca54c3Smrg#define sz_xGLXWaitXReq 8
25617ca54c3Smrg
25717ca54c3Smrg/*
25817ca54c3Smrg** glXCopyContext request
25917ca54c3Smrg*/
26017ca54c3Smrgtypedef struct GLXCopyContext {
26117ca54c3Smrg    CARD8	reqType;
26217ca54c3Smrg    CARD8	glxCode;
263ea1d6981Smrg    CARD16	length;
264ea1d6981Smrg    GLXContextID source;
265ea1d6981Smrg    GLXContextID dest;
266ea1d6981Smrg    CARD32	mask;
267ea1d6981Smrg    GLXContextTag contextTag;
26817ca54c3Smrg} xGLXCopyContextReq;
26917ca54c3Smrg#define sz_xGLXCopyContextReq 20
27017ca54c3Smrg
27117ca54c3Smrg/*
27217ca54c3Smrg** glXSwapBuffers request
27317ca54c3Smrg*/
27417ca54c3Smrgtypedef struct GLXSwapBuffers {
27517ca54c3Smrg    CARD8	reqType;
27617ca54c3Smrg    CARD8	glxCode;
277ea1d6981Smrg    CARD16	length;
278ea1d6981Smrg    GLXContextTag contextTag;
279ea1d6981Smrg    GLXDrawable drawable;
28017ca54c3Smrg} xGLXSwapBuffersReq;
28117ca54c3Smrg#define sz_xGLXSwapBuffersReq 12
28217ca54c3Smrg
28317ca54c3Smrg/*
28417ca54c3Smrg** glXUseXFont request
28517ca54c3Smrg*/
28617ca54c3Smrgtypedef struct GLXUseXFont {
28717ca54c3Smrg    CARD8	reqType;
28817ca54c3Smrg    CARD8	glxCode;
289ea1d6981Smrg    CARD16	length;
290ea1d6981Smrg    GLXContextTag contextTag;
291ea1d6981Smrg    CARD32	font;
292ea1d6981Smrg    CARD32	first;
293ea1d6981Smrg    CARD32	count;
294ea1d6981Smrg    CARD32	listBase;
29517ca54c3Smrg} xGLXUseXFontReq;
29617ca54c3Smrg#define sz_xGLXUseXFontReq 24
29717ca54c3Smrg
29817ca54c3Smrg/*
29917ca54c3Smrg** glXCreateGLXPixmap request
30017ca54c3Smrg*/
30117ca54c3Smrgtypedef struct GLXCreateGLXPixmap {
30217ca54c3Smrg    CARD8	reqType;
30317ca54c3Smrg    CARD8	glxCode;
304ea1d6981Smrg    CARD16	length;
305ea1d6981Smrg    CARD32	screen;
306ea1d6981Smrg    CARD32	visual;
307ea1d6981Smrg    CARD32	pixmap;
308ea1d6981Smrg    GLXPixmap	glxpixmap;
30917ca54c3Smrg} xGLXCreateGLXPixmapReq;
31017ca54c3Smrg#define sz_xGLXCreateGLXPixmapReq 20
31117ca54c3Smrg
31217ca54c3Smrg/*
31317ca54c3Smrg** glXDestroyGLXPixmap request
31417ca54c3Smrg*/
31517ca54c3Smrgtypedef struct GLXDestroyGLXPixmap {
31617ca54c3Smrg    CARD8	reqType;
31717ca54c3Smrg    CARD8	glxCode;
318ea1d6981Smrg    CARD16	length;
319ea1d6981Smrg    GLXPixmap	glxpixmap;
32017ca54c3Smrg} xGLXDestroyGLXPixmapReq;
32117ca54c3Smrg#define sz_xGLXDestroyGLXPixmapReq 8
32217ca54c3Smrg
32317ca54c3Smrg/*
32417ca54c3Smrg** glXGetVisualConfigs request
32517ca54c3Smrg*/
32617ca54c3Smrgtypedef struct GLXGetVisualConfigs {
32717ca54c3Smrg    CARD8	reqType;
32817ca54c3Smrg    CARD8	glxCode;
329ea1d6981Smrg    CARD16	length;
330ea1d6981Smrg    CARD32	screen;
33117ca54c3Smrg} xGLXGetVisualConfigsReq;
33217ca54c3Smrg#define sz_xGLXGetVisualConfigsReq 8
33317ca54c3Smrg
33417ca54c3Smrg/*
33517ca54c3Smrg** glXVendorPrivate request.
33617ca54c3Smrg*/
33717ca54c3Smrgtypedef struct GLXVendorPrivate {
33817ca54c3Smrg    CARD8	reqType;
33917ca54c3Smrg    CARD8	glxCode;
340ea1d6981Smrg    CARD16	length;
341ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
342ea1d6981Smrg    GLXContextTag contextTag;
34317ca54c3Smrg    /*
34417ca54c3Smrg    ** More data may follow; this is just the header.
34517ca54c3Smrg    */
34617ca54c3Smrg} xGLXVendorPrivateReq;
34717ca54c3Smrg#define sz_xGLXVendorPrivateReq 12
34817ca54c3Smrg
34917ca54c3Smrg/*
35017ca54c3Smrg** glXVendorPrivateWithReply request
35117ca54c3Smrg*/
35217ca54c3Smrgtypedef struct GLXVendorPrivateWithReply {
35317ca54c3Smrg    CARD8	reqType;
35417ca54c3Smrg    CARD8	glxCode;
355ea1d6981Smrg    CARD16	length;
356ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
357ea1d6981Smrg    GLXContextTag contextTag;
35817ca54c3Smrg    /*
35917ca54c3Smrg    ** More data may follow; this is just the header.
36017ca54c3Smrg    */
36117ca54c3Smrg} xGLXVendorPrivateWithReplyReq;
36217ca54c3Smrg#define sz_xGLXVendorPrivateWithReplyReq 12
36317ca54c3Smrg
36417ca54c3Smrg/*
36517ca54c3Smrg** glXQueryExtensionsString request
36617ca54c3Smrg*/
36717ca54c3Smrgtypedef struct GLXQueryExtensionsString {
36817ca54c3Smrg    CARD8	reqType;
36917ca54c3Smrg    CARD8	glxCode;
370ea1d6981Smrg    CARD16	length;
371ea1d6981Smrg    CARD32	screen;
37217ca54c3Smrg} xGLXQueryExtensionsStringReq;
37317ca54c3Smrg#define sz_xGLXQueryExtensionsStringReq 8
37417ca54c3Smrg
37517ca54c3Smrg/*
37617ca54c3Smrg** glXQueryServerString request
37717ca54c3Smrg*/
37817ca54c3Smrgtypedef struct GLXQueryServerString {
37917ca54c3Smrg    CARD8	reqType;
38017ca54c3Smrg    CARD8	glxCode;
381ea1d6981Smrg    CARD16	length;
382ea1d6981Smrg    CARD32	screen;
383ea1d6981Smrg    CARD32	name;
38417ca54c3Smrg} xGLXQueryServerStringReq;
38517ca54c3Smrg#define sz_xGLXQueryServerStringReq 12
38617ca54c3Smrg
38717ca54c3Smrg/*
38817ca54c3Smrg** glXClientInfo request
38917ca54c3Smrg*/
39017ca54c3Smrgtypedef struct GLXClientInfo {
39117ca54c3Smrg    CARD8	reqType;
39217ca54c3Smrg    CARD8	glxCode;
393ea1d6981Smrg    CARD16	length;
394ea1d6981Smrg    CARD32	major;
395ea1d6981Smrg    CARD32	minor;
396ea1d6981Smrg    CARD32	numbytes;
39717ca54c3Smrg} xGLXClientInfoReq;
39817ca54c3Smrg#define sz_xGLXClientInfoReq 16
39917ca54c3Smrg
40017ca54c3Smrg/*** Start of GLX 1.3 requests */
40117ca54c3Smrg
40217ca54c3Smrg/*
40317ca54c3Smrg** glXGetFBConfigs request
40417ca54c3Smrg*/
40517ca54c3Smrgtypedef struct GLXGetFBConfigs {
40617ca54c3Smrg    CARD8	reqType;
40717ca54c3Smrg    CARD8	glxCode;
408ea1d6981Smrg    CARD16	length;
409ea1d6981Smrg    CARD32	screen;
41017ca54c3Smrg} xGLXGetFBConfigsReq;
41117ca54c3Smrg#define sz_xGLXGetFBConfigsReq 8
41217ca54c3Smrg
41317ca54c3Smrg/*
41417ca54c3Smrg** glXCreatePixmap request
41517ca54c3Smrg*/
41617ca54c3Smrgtypedef struct GLXCreatePixmap {
41717ca54c3Smrg    CARD8	reqType;
41817ca54c3Smrg    CARD8	glxCode;
419ea1d6981Smrg    CARD16	length;
420ea1d6981Smrg    CARD32	screen;
421ea1d6981Smrg    GLXFBConfigID fbconfig;
422ea1d6981Smrg    CARD32	pixmap;
423ea1d6981Smrg    GLXPixmap	glxpixmap;
424ea1d6981Smrg    CARD32	numAttribs;
42517ca54c3Smrg    /* followed by attribute list */
42617ca54c3Smrg} xGLXCreatePixmapReq;
42717ca54c3Smrg#define sz_xGLXCreatePixmapReq 24
42817ca54c3Smrg
42917ca54c3Smrg/*
43017ca54c3Smrg** glXDestroyPixmap request
43117ca54c3Smrg*/
43217ca54c3Smrgtypedef struct GLXDestroyPixmap {
43317ca54c3Smrg    CARD8	reqType;
43417ca54c3Smrg    CARD8	glxCode;
435ea1d6981Smrg    CARD16	length;
436ea1d6981Smrg    GLXPixmap	glxpixmap;
43717ca54c3Smrg} xGLXDestroyPixmapReq;
43817ca54c3Smrg#define sz_xGLXDestroyPixmapReq 8
43917ca54c3Smrg
44017ca54c3Smrg/*
44117ca54c3Smrg** glXCreateNewContext request
44217ca54c3Smrg*/
44317ca54c3Smrgtypedef struct GLXCreateNewContext {
44417ca54c3Smrg    CARD8	reqType;
44517ca54c3Smrg    CARD8	glxCode;
446ea1d6981Smrg    CARD16	length;
447ea1d6981Smrg    GLXContextID context;
448ea1d6981Smrg    GLXFBConfigID fbconfig;
449ea1d6981Smrg    CARD32	screen;
45017ca54c3Smrg    CARD32	renderType;
451ea1d6981Smrg    GLXContextID shareList;
45217ca54c3Smrg    BOOL	isDirect;
45317ca54c3Smrg    CARD8	reserved1;
454ea1d6981Smrg    CARD16	reserved2;
45517ca54c3Smrg} xGLXCreateNewContextReq;
45617ca54c3Smrg#define sz_xGLXCreateNewContextReq 28
45717ca54c3Smrg
45817ca54c3Smrg/*
45917ca54c3Smrg** glXQueryContext request
46017ca54c3Smrg*/
46117ca54c3Smrgtypedef struct GLXQueryContext {
46217ca54c3Smrg    CARD8	reqType;
46317ca54c3Smrg    CARD8	glxCode;
464ea1d6981Smrg    CARD16	length;
465ea1d6981Smrg    GLXContextID context;
46617ca54c3Smrg} xGLXQueryContextReq;
46717ca54c3Smrg#define sz_xGLXQueryContextReq 8
46817ca54c3Smrg
46917ca54c3Smrg/*
47017ca54c3Smrg** glXMakeContextCurrent request
47117ca54c3Smrg*/
47217ca54c3Smrgtypedef struct GLXMakeContextCurrent {
47317ca54c3Smrg    CARD8	reqType;
47417ca54c3Smrg    CARD8	glxCode;
475ea1d6981Smrg    CARD16	length;
476ea1d6981Smrg    GLXContextTag oldContextTag;
477ea1d6981Smrg    GLXDrawable drawable;
478ea1d6981Smrg    GLXDrawable readdrawable;
479ea1d6981Smrg    GLXContextID context;
48017ca54c3Smrg} xGLXMakeContextCurrentReq;
48117ca54c3Smrg#define sz_xGLXMakeContextCurrentReq 20
48217ca54c3Smrg
48317ca54c3Smrg/*
48417ca54c3Smrg** glXCreatePbuffer request
48517ca54c3Smrg*/
48617ca54c3Smrgtypedef struct GLXCreatePbuffer {
48717ca54c3Smrg    CARD8	reqType;
48817ca54c3Smrg    CARD8	glxCode;
489ea1d6981Smrg    CARD16	length;
490ea1d6981Smrg    CARD32	screen;
491ea1d6981Smrg    GLXFBConfigID fbconfig;
492ea1d6981Smrg    GLXPbuffer	pbuffer;
493ea1d6981Smrg    CARD32	numAttribs;
49417ca54c3Smrg    /* followed by attribute list */
49517ca54c3Smrg} xGLXCreatePbufferReq;
49617ca54c3Smrg#define sz_xGLXCreatePbufferReq 20
49717ca54c3Smrg
49817ca54c3Smrg/*
49917ca54c3Smrg** glXDestroyPbuffer request
50017ca54c3Smrg*/
50117ca54c3Smrgtypedef struct GLXDestroyPbuffer {
50217ca54c3Smrg    CARD8	reqType;
50317ca54c3Smrg    CARD8	glxCode;
504ea1d6981Smrg    CARD16	length;
505ea1d6981Smrg    GLXPbuffer	pbuffer;
50617ca54c3Smrg} xGLXDestroyPbufferReq;
50717ca54c3Smrg#define sz_xGLXDestroyPbufferReq 8
50817ca54c3Smrg
50917ca54c3Smrg/*
51017ca54c3Smrg** glXGetDrawableAttributes request
51117ca54c3Smrg*/
51217ca54c3Smrgtypedef struct GLXGetDrawableAttributes {
51317ca54c3Smrg    CARD8	reqType;
51417ca54c3Smrg    CARD8	glxCode;
515ea1d6981Smrg    CARD16	length;
516ea1d6981Smrg    GLXDrawable drawable;
51717ca54c3Smrg} xGLXGetDrawableAttributesReq;
51817ca54c3Smrg#define sz_xGLXGetDrawableAttributesReq 8
51917ca54c3Smrg
52017ca54c3Smrg/*
52117ca54c3Smrg** glXChangeDrawableAttributes request
52217ca54c3Smrg*/
52317ca54c3Smrgtypedef struct GLXChangeDrawableAttributes {
52417ca54c3Smrg    CARD8	reqType;
52517ca54c3Smrg    CARD8	glxCode;
526ea1d6981Smrg    CARD16	length;
527ea1d6981Smrg    GLXDrawable drawable;
528ea1d6981Smrg    CARD32	numAttribs;
52917ca54c3Smrg    /* followed by attribute list */
53017ca54c3Smrg} xGLXChangeDrawableAttributesReq;
53117ca54c3Smrg#define sz_xGLXChangeDrawableAttributesReq 12
53217ca54c3Smrg
53317ca54c3Smrg/*
53417ca54c3Smrg** glXCreateWindow request
53517ca54c3Smrg*/
53617ca54c3Smrgtypedef struct GLXCreateWindow {
53717ca54c3Smrg    CARD8	reqType;
53817ca54c3Smrg    CARD8	glxCode;
539ea1d6981Smrg    CARD16	length;
540ea1d6981Smrg    CARD32	screen;
541ea1d6981Smrg    GLXFBConfigID fbconfig;
542ea1d6981Smrg    CARD32	window;
543ea1d6981Smrg    GLXWindow	glxwindow;
544ea1d6981Smrg    CARD32	numAttribs;
54517ca54c3Smrg    /* followed by attribute list */
54617ca54c3Smrg} xGLXCreateWindowReq;
54717ca54c3Smrg#define sz_xGLXCreateWindowReq 24
54817ca54c3Smrg
54917ca54c3Smrg/*
55017ca54c3Smrg** glXDestroyWindow request
55117ca54c3Smrg*/
55217ca54c3Smrgtypedef struct GLXDestroyWindow {
55317ca54c3Smrg    CARD8	reqType;
55417ca54c3Smrg    CARD8	glxCode;
555ea1d6981Smrg    CARD16	length;
556ea1d6981Smrg    GLXWindow	glxwindow;
55717ca54c3Smrg} xGLXDestroyWindowReq;
55817ca54c3Smrg#define sz_xGLXDestroyWindowReq 8
55917ca54c3Smrg
56017ca54c3Smrg/* Replies */
56117ca54c3Smrg
56217ca54c3Smrgtypedef struct {
56317ca54c3Smrg    BYTE	type;			/* X_Reply */
56417ca54c3Smrg    CARD8	unused;			/* not used */
565ea1d6981Smrg    CARD16	sequenceNumber;
566ea1d6981Smrg    CARD32	length;
567ea1d6981Smrg    CARD32	error;
568ea1d6981Smrg    CARD32	pad2;
569ea1d6981Smrg    CARD32	pad3;
570ea1d6981Smrg    CARD32	pad4;
571ea1d6981Smrg    CARD32	pad5;
572ea1d6981Smrg    CARD32	pad6;
57317ca54c3Smrg} xGLXGetErrorReply;
57417ca54c3Smrg#define sz_xGLXGetErrorReply 32
57517ca54c3Smrg
57617ca54c3Smrgtypedef struct {
57717ca54c3Smrg    BYTE	type;			/* X_Reply */
57817ca54c3Smrg    CARD8	unused;			/* not used */
579ea1d6981Smrg    CARD16	sequenceNumber;
580ea1d6981Smrg    CARD32	length;
581ea1d6981Smrg    GLXContextTag contextTag;
582ea1d6981Smrg    CARD32	pad2;
583ea1d6981Smrg    CARD32	pad3;
584ea1d6981Smrg    CARD32	pad4;
585ea1d6981Smrg    CARD32	pad5;
586ea1d6981Smrg    CARD32	pad6;
58717ca54c3Smrg} xGLXMakeCurrentReply;
58817ca54c3Smrg#define sz_xGLXMakeCurrentReply 32
58917ca54c3Smrg
59017ca54c3Smrgtypedef struct {
59117ca54c3Smrg    BYTE	type;			/* X_Reply */
59217ca54c3Smrg    CARD8	unused;			/* not used */
593ea1d6981Smrg    CARD16	sequenceNumber;
594ea1d6981Smrg    CARD32	length;
595ea1d6981Smrg    CARD32	pad1;
596ea1d6981Smrg    CARD32	pad2;
597ea1d6981Smrg    CARD32	pad3;
598ea1d6981Smrg    CARD32	pad4;
599ea1d6981Smrg    CARD32	pad5;
600ea1d6981Smrg    CARD32	pad6;
60117ca54c3Smrg} xGLXReadPixelsReply;
60217ca54c3Smrg#define sz_xGLXReadPixelsReply 32
60317ca54c3Smrg
60417ca54c3Smrgtypedef struct {
60517ca54c3Smrg    BYTE	type;			/* X_Reply */
60617ca54c3Smrg    CARD8	unused;			/* not used */
607ea1d6981Smrg    CARD16	sequenceNumber;
608ea1d6981Smrg    CARD32	length;
609ea1d6981Smrg    CARD32	pad1;
610ea1d6981Smrg    CARD32	pad2;
611ea1d6981Smrg    CARD32	width;
612ea1d6981Smrg    CARD32	height;
613ea1d6981Smrg    CARD32	depth;
614ea1d6981Smrg    CARD32	pad6;
61517ca54c3Smrg} xGLXGetTexImageReply;
61617ca54c3Smrg#define sz_xGLXGetTexImageReply 32
61717ca54c3Smrg
61817ca54c3Smrgtypedef struct {
61917ca54c3Smrg    BYTE	type;			/* X_Reply */
62017ca54c3Smrg    CARD8	unused;			/* not used */
621ea1d6981Smrg    CARD16	sequenceNumber;
622ea1d6981Smrg    CARD32	length;
623ea1d6981Smrg    CARD32	pad1;
624ea1d6981Smrg    CARD32	pad2;
625ea1d6981Smrg    CARD32	width;
626ea1d6981Smrg    CARD32	height;
627ea1d6981Smrg    CARD32	pad5;
628ea1d6981Smrg    CARD32	pad6;
62917ca54c3Smrg} xGLXGetSeparableFilterReply;
63017ca54c3Smrg#define sz_xGLXGetSeparableFilterReply 32
63117ca54c3Smrg
63217ca54c3Smrgtypedef struct {
63317ca54c3Smrg    BYTE	type;			/* X_Reply */
63417ca54c3Smrg    CARD8	unused;			/* not used */
635ea1d6981Smrg    CARD16	sequenceNumber;
636ea1d6981Smrg    CARD32	length;
637ea1d6981Smrg    CARD32	pad1;
638ea1d6981Smrg    CARD32	pad2;
639ea1d6981Smrg    CARD32	width;
640ea1d6981Smrg    CARD32	height;
641ea1d6981Smrg    CARD32	pad5;
642ea1d6981Smrg    CARD32	pad6;
64317ca54c3Smrg} xGLXGetConvolutionFilterReply;
64417ca54c3Smrg#define sz_xGLXGetConvolutionFilterReply 32
64517ca54c3Smrg
64617ca54c3Smrgtypedef struct {
64717ca54c3Smrg    BYTE	type;			/* X_Reply */
64817ca54c3Smrg    CARD8	unused;			/* not used */
649ea1d6981Smrg    CARD16	sequenceNumber;
650ea1d6981Smrg    CARD32	length;
651ea1d6981Smrg    CARD32	pad1;
652ea1d6981Smrg    CARD32	pad2;
653ea1d6981Smrg    CARD32	width;
654ea1d6981Smrg    CARD32	pad4;
655ea1d6981Smrg    CARD32	pad5;
656ea1d6981Smrg    CARD32	pad6;
65717ca54c3Smrg} xGLXGetHistogramReply;
65817ca54c3Smrg#define sz_xGLXGetHistogramReply 32
65917ca54c3Smrg
66017ca54c3Smrgtypedef struct {
66117ca54c3Smrg    BYTE	type;			/* X_Reply */
66217ca54c3Smrg    CARD8	unused;			/* not used */
663ea1d6981Smrg    CARD16	sequenceNumber;
664ea1d6981Smrg    CARD32	length;
665ea1d6981Smrg    CARD32	pad1;
666ea1d6981Smrg    CARD32	pad2;
667ea1d6981Smrg    CARD32	pad3;
668ea1d6981Smrg    CARD32	pad4;
669ea1d6981Smrg    CARD32	pad5;
670ea1d6981Smrg    CARD32	pad6;
67117ca54c3Smrg} xGLXGetMinmaxReply;
67217ca54c3Smrg#define sz_xGLXGetMinmaxReply 32
67317ca54c3Smrg
67417ca54c3Smrgtypedef struct {
67517ca54c3Smrg    BYTE	type;			/* X_Reply */
67617ca54c3Smrg    CARD8	unused;			/* not used */
677ea1d6981Smrg    CARD16	sequenceNumber;
678ea1d6981Smrg    CARD32	length;
679ea1d6981Smrg    CARD32	retval;
680ea1d6981Smrg    CARD32	size;
681ea1d6981Smrg    CARD32	newMode;
682ea1d6981Smrg    CARD32	pad4;
683ea1d6981Smrg    CARD32	pad5;
684ea1d6981Smrg    CARD32	pad6;
68517ca54c3Smrg} xGLXRenderModeReply;
68617ca54c3Smrg#define sz_xGLXRenderModeReply 32
68717ca54c3Smrg
68817ca54c3Smrgtypedef struct {
68917ca54c3Smrg    BYTE	type;			/* X_Reply */
69017ca54c3Smrg    CARD8	unused;			/* not used */
691ea1d6981Smrg    CARD16	sequenceNumber;
692ea1d6981Smrg    CARD32	length;
693ea1d6981Smrg    CARD32	majorVersion;
694ea1d6981Smrg    CARD32	minorVersion;
695ea1d6981Smrg    CARD32	pad3;
696ea1d6981Smrg    CARD32	pad4;
697ea1d6981Smrg    CARD32	pad5;
698ea1d6981Smrg    CARD32	pad6;
69917ca54c3Smrg} xGLXQueryVersionReply;
70017ca54c3Smrg#define sz_xGLXQueryVersionReply 32
70117ca54c3Smrg
70217ca54c3Smrgtypedef struct {
70317ca54c3Smrg    BYTE	type;			/* X_Reply */
70417ca54c3Smrg    CARD8	unused;			/* not used */
705ea1d6981Smrg    CARD16	sequenceNumber;
706ea1d6981Smrg    CARD32	length;
707ea1d6981Smrg    CARD32	numVisuals;
708ea1d6981Smrg    CARD32	numProps;
709ea1d6981Smrg    CARD32	pad3;
710ea1d6981Smrg    CARD32	pad4;
711ea1d6981Smrg    CARD32	pad5;
712ea1d6981Smrg    CARD32	pad6;
71317ca54c3Smrg} xGLXGetVisualConfigsReply;
71417ca54c3Smrg#define sz_xGLXGetVisualConfigsReply 32
71517ca54c3Smrg
71617ca54c3Smrgtypedef struct {
71717ca54c3Smrg    BYTE	type;			/* X_Reply */
71817ca54c3Smrg    CARD8	unused;			/* not used */
719ea1d6981Smrg    CARD16	sequenceNumber;
720ea1d6981Smrg    CARD32	length;
72117ca54c3Smrg    BOOL	isDirect;
72217ca54c3Smrg    CARD8	pad1;
723ea1d6981Smrg    CARD16	pad2;
724ea1d6981Smrg    CARD32	pad3;
725ea1d6981Smrg    CARD32	pad4;
726ea1d6981Smrg    CARD32	pad5;
727ea1d6981Smrg    CARD32	pad6;
728ea1d6981Smrg    CARD32	pad7;
72917ca54c3Smrg} xGLXIsDirectReply;
73017ca54c3Smrg#define sz_xGLXIsDirectReply	32
73117ca54c3Smrg
73217ca54c3Smrg/*
73317ca54c3Smrg** This reply structure is used for all single replies.  Single replies
73417ca54c3Smrg** ship either 1 piece of data or N pieces of data.  In these cases
73517ca54c3Smrg** size indicates how much data is to be returned.
73617ca54c3Smrg*/
73717ca54c3Smrgtypedef struct {
73817ca54c3Smrg    BYTE	type;			/* X_Reply */
73917ca54c3Smrg    CARD8	unused;			/* not used */
740ea1d6981Smrg    CARD16	sequenceNumber;
741ea1d6981Smrg    CARD32	length;
742ea1d6981Smrg    CARD32	retval;
743ea1d6981Smrg    CARD32	size;
744ea1d6981Smrg    CARD32	pad3;			/* NOTE: may hold a single value */
745ea1d6981Smrg    CARD32	pad4;			/* NOTE: may hold half a double */
746ea1d6981Smrg    CARD32	pad5;
747ea1d6981Smrg    CARD32	pad6;
74817ca54c3Smrg} xGLXSingleReply;
74917ca54c3Smrg#define sz_xGLXSingleReply 32
75017ca54c3Smrg
75117ca54c3Smrg/*
75217ca54c3Smrg** This reply structure is used for all Vendor Private replies. Vendor
75317ca54c3Smrg** Private replies can ship up to 24 bytes within the header or can
75417ca54c3Smrg** be variable sized, in which case, the reply length field indicates
75517ca54c3Smrg** the number of words of data which follow the header.
75617ca54c3Smrg*/
75717ca54c3Smrgtypedef struct {
75817ca54c3Smrg    BYTE	type;			/* X_Reply */
75917ca54c3Smrg    CARD8	unused;			/* not used */
760ea1d6981Smrg    CARD16	sequenceNumber;
761ea1d6981Smrg    CARD32	length;
762ea1d6981Smrg    CARD32	retval;
763ea1d6981Smrg    CARD32	size;
764ea1d6981Smrg    CARD32	pad3;
765ea1d6981Smrg    CARD32	pad4;
766ea1d6981Smrg    CARD32	pad5;
767ea1d6981Smrg    CARD32	pad6;
76817ca54c3Smrg} xGLXVendorPrivReply;
76917ca54c3Smrg#define sz_xGLXVendorPrivReply 32
77017ca54c3Smrg
77117ca54c3Smrg/*
77217ca54c3Smrg**  QueryExtensionsStringReply
77317ca54c3Smrg**  n indicates the number of bytes to be returned.
77417ca54c3Smrg*/
77517ca54c3Smrgtypedef struct {
77617ca54c3Smrg    BYTE	type;			/* X_Reply */
77717ca54c3Smrg    CARD8	unused;			/* not used */
778ea1d6981Smrg    CARD16	sequenceNumber;
779ea1d6981Smrg    CARD32	length;
780ea1d6981Smrg    CARD32	pad1;
781ea1d6981Smrg    CARD32	n;
782ea1d6981Smrg    CARD32	pad3;
783ea1d6981Smrg    CARD32	pad4;
784ea1d6981Smrg    CARD32	pad5;
785ea1d6981Smrg    CARD32	pad6;
78617ca54c3Smrg} xGLXQueryExtensionsStringReply;
78717ca54c3Smrg#define sz_xGLXQueryExtensionsStringReply 32
78817ca54c3Smrg
78917ca54c3Smrg/*
79017ca54c3Smrg** QueryServerString Reply struct
79117ca54c3Smrg** n indicates the number of bytes to be returned.
79217ca54c3Smrg*/
79317ca54c3Smrgtypedef struct {
79417ca54c3Smrg    BYTE	type;			/* X_Reply */
79517ca54c3Smrg    CARD8	unused;			/* not used */
796ea1d6981Smrg    CARD16	sequenceNumber;
797ea1d6981Smrg    CARD32	length;
798ea1d6981Smrg    CARD32	pad1;
799ea1d6981Smrg    CARD32	n;
800ea1d6981Smrg    CARD32	pad3;			/* NOTE: may hold a single value */
801ea1d6981Smrg    CARD32	pad4;			/* NOTE: may hold half a double */
802ea1d6981Smrg    CARD32	pad5;
803ea1d6981Smrg    CARD32	pad6;
80417ca54c3Smrg} xGLXQueryServerStringReply;
80517ca54c3Smrg#define sz_xGLXQueryServerStringReply 32
80617ca54c3Smrg
80717ca54c3Smrg/*** Start of GLX 1.3 replies */
80817ca54c3Smrg
80917ca54c3Smrg/*
81017ca54c3Smrg** glXGetFBConfigs reply
81117ca54c3Smrg*/
81217ca54c3Smrgtypedef struct {
81317ca54c3Smrg    BYTE	type;			/* X_Reply */
81417ca54c3Smrg    CARD8	unused;			/* not used */
815ea1d6981Smrg    CARD16	sequenceNumber;
816ea1d6981Smrg    CARD32	length;
817ea1d6981Smrg    CARD32	numFBConfigs;
818ea1d6981Smrg    CARD32	numAttribs;
819ea1d6981Smrg    CARD32	pad3;
820ea1d6981Smrg    CARD32	pad4;
821ea1d6981Smrg    CARD32	pad5;
822ea1d6981Smrg    CARD32	pad6;
82317ca54c3Smrg} xGLXGetFBConfigsReply;
82417ca54c3Smrg#define sz_xGLXGetFBConfigsReply 32
82517ca54c3Smrg
82617ca54c3Smrg/*
82717ca54c3Smrg** glXQueryContext reply
82817ca54c3Smrg*/
82917ca54c3Smrgtypedef struct {
83017ca54c3Smrg    BYTE	type;			/* X_Reply */
83117ca54c3Smrg    CARD8	unused;			/* not used */
832ea1d6981Smrg    CARD16	sequenceNumber;
833ea1d6981Smrg    CARD32	length;
834ea1d6981Smrg    CARD32	n;			/* number of attribute/value pairs */
835ea1d6981Smrg    CARD32	pad2;
836ea1d6981Smrg    CARD32	pad3;
837ea1d6981Smrg    CARD32	pad4;
838ea1d6981Smrg    CARD32	pad5;
839ea1d6981Smrg    CARD32	pad6;
84017ca54c3Smrg} xGLXQueryContextReply;
84117ca54c3Smrg#define sz_xGLXQueryContextReply 32
84217ca54c3Smrg
84317ca54c3Smrg/*
84417ca54c3Smrg** glXMakeContextCurrent reply
84517ca54c3Smrg*/
84617ca54c3Smrgtypedef struct {
84717ca54c3Smrg    BYTE	type;			/* X_Reply */
84817ca54c3Smrg    CARD8	unused;			/* not used */
849ea1d6981Smrg    CARD16	sequenceNumber;
850ea1d6981Smrg    CARD32	length;
851ea1d6981Smrg    GLXContextTag contextTag;
852ea1d6981Smrg    CARD32	pad2;
853ea1d6981Smrg    CARD32	pad3;
854ea1d6981Smrg    CARD32	pad4;
855ea1d6981Smrg    CARD32	pad5;
856ea1d6981Smrg    CARD32	pad6;
85717ca54c3Smrg} xGLXMakeContextCurrentReply;
85817ca54c3Smrg#define sz_xGLXMakeContextCurrentReply 32
85917ca54c3Smrg
86017ca54c3Smrg/*
86117ca54c3Smrg** glXCreateGLXPbuffer reply
86217ca54c3Smrg** This is used only in the direct rendering case on SGIs - otherwise
86317ca54c3Smrg**  CreateGLXPbuffer has no reply. It is not part of GLX 1.3.
86417ca54c3Smrg*/
86517ca54c3Smrgtypedef struct {
86617ca54c3Smrg    BYTE	type;			/* X_Reply */
86717ca54c3Smrg    CARD8	success;
868ea1d6981Smrg    CARD16	sequenceNumber;
869ea1d6981Smrg    CARD32	length;
870ea1d6981Smrg    CARD32	pad1;
871ea1d6981Smrg    CARD32	pad2;
872ea1d6981Smrg    CARD32	pad3;
873ea1d6981Smrg    CARD32	pad4;
874ea1d6981Smrg    CARD32	pad5;
875ea1d6981Smrg    CARD32	pad6;
87617ca54c3Smrg} xGLXCreateGLXPbufferReply;
87717ca54c3Smrg#define sz_xGLXCreateGLXPbufferReply 32
87817ca54c3Smrg
87917ca54c3Smrg/*
88017ca54c3Smrg** glXGetDrawableAttributes reply
88117ca54c3Smrg*/
88217ca54c3Smrgtypedef struct {
88317ca54c3Smrg    BYTE	type;			/* X_Reply */
88417ca54c3Smrg    CARD8	unused;			/* not used */
885ea1d6981Smrg    CARD16	sequenceNumber;
886ea1d6981Smrg    CARD32	length;
887ea1d6981Smrg    CARD32	numAttribs;
888ea1d6981Smrg    CARD32	pad2;
889ea1d6981Smrg    CARD32	pad3;
890ea1d6981Smrg    CARD32	pad4;
891ea1d6981Smrg    CARD32	pad5;
892ea1d6981Smrg    CARD32	pad6;
89317ca54c3Smrg} xGLXGetDrawableAttributesReply;
89417ca54c3Smrg#define sz_xGLXGetDrawableAttributesReply 32
89517ca54c3Smrg
89617ca54c3Smrg/*
89717ca54c3Smrg** glXGetColorTable reply
89817ca54c3Smrg*/
89917ca54c3Smrgtypedef struct {
90017ca54c3Smrg    BYTE	type;		       /* X_Reply */
90117ca54c3Smrg    CARD8	unused;		       /* not used */
902ea1d6981Smrg    CARD16	sequenceNumber;
903ea1d6981Smrg    CARD32	length;
904ea1d6981Smrg    CARD32	pad1;
905ea1d6981Smrg    CARD32	pad2;
906ea1d6981Smrg    CARD32	width;
907ea1d6981Smrg    CARD32	pad4;
908ea1d6981Smrg    CARD32	pad5;
909ea1d6981Smrg    CARD32	pad6;
91017ca54c3Smrg} xGLXGetColorTableReply;
91117ca54c3Smrg#define sz_xGLXGetColorTableReply 32
91217ca54c3Smrg
91317ca54c3Smrg/************************************************************************/
91417ca54c3Smrg
91517ca54c3Smrg/* GLX extension requests and replies */
91617ca54c3Smrg
91717ca54c3Smrg/*
91817ca54c3Smrg** glXQueryContextInfoEXT request
91917ca54c3Smrg*/
92017ca54c3Smrgtypedef struct GLXQueryContextInfoEXT {
92117ca54c3Smrg    CARD8	reqType;
92217ca54c3Smrg    CARD8	glxCode;
923ea1d6981Smrg    CARD16	length;
924ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
925ea1d6981Smrg    CARD32	pad1;	/* unused; corresponds to contextTag in header */
926ea1d6981Smrg    GLXContextID context;
92717ca54c3Smrg} xGLXQueryContextInfoEXTReq;
92817ca54c3Smrg#define sz_xGLXQueryContextInfoEXTReq 16
92917ca54c3Smrg
93017ca54c3Smrg/*
93117ca54c3Smrg** glXQueryContextInfoEXT reply
93217ca54c3Smrg*/
93317ca54c3Smrgtypedef struct {
93417ca54c3Smrg    BYTE	type;			/* X_Reply */
93517ca54c3Smrg    CARD8	unused;			/* not used */
936ea1d6981Smrg    CARD16	sequenceNumber;
937ea1d6981Smrg    CARD32	length;
938ea1d6981Smrg    CARD32	n;			/* number of attribute/value pairs */
939ea1d6981Smrg    CARD32	pad2;
940ea1d6981Smrg    CARD32	pad3;
941ea1d6981Smrg    CARD32	pad4;
942ea1d6981Smrg    CARD32	pad5;
943ea1d6981Smrg    CARD32	pad6;
94417ca54c3Smrg} xGLXQueryContextInfoEXTReply;
94517ca54c3Smrg#define sz_xGLXQueryContextInfoEXTReply 32
94617ca54c3Smrg
94717ca54c3Smrg/*
94817ca54c3Smrg** glXMakeCurrentReadSGI request
94917ca54c3Smrg*/
95017ca54c3Smrgtypedef struct GLXMakeCurrentReadSGI {
95117ca54c3Smrg    CARD8	reqType;
95217ca54c3Smrg    CARD8	glxCode;
953ea1d6981Smrg    CARD16	length;
954ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
955ea1d6981Smrg    GLXContextTag oldContextTag;
956ea1d6981Smrg    GLXDrawable drawable;
957ea1d6981Smrg    GLXDrawable readable;
958ea1d6981Smrg    GLXContextID context;
95917ca54c3Smrg} xGLXMakeCurrentReadSGIReq;
96017ca54c3Smrg#define sz_xGLXMakeCurrentReadSGIReq 24
96117ca54c3Smrg
96217ca54c3Smrgtypedef struct {
96317ca54c3Smrg    BYTE	type;			/* X_Reply */
96417ca54c3Smrg    CARD8	unused;			/* not used */
965ea1d6981Smrg    CARD16	sequenceNumber;
966ea1d6981Smrg    CARD32	length;
967ea1d6981Smrg    GLXContextTag contextTag;
968ea1d6981Smrg    CARD32	writeVid;
969ea1d6981Smrg    CARD32	writeType;
970ea1d6981Smrg    CARD32	readVid;
971ea1d6981Smrg    CARD32	readType;
972ea1d6981Smrg    CARD32	pad6;
97317ca54c3Smrg} xGLXMakeCurrentReadSGIReply;
97417ca54c3Smrg#define sz_xGLXMakeCurrentReadSGIReply 32
97517ca54c3Smrg
97617ca54c3Smrg/*
97717ca54c3Smrg** glXGetFBConfigsSGIX request
97817ca54c3Smrg*/
97917ca54c3Smrgtypedef struct GLXGetFBConfigsSGIX {
98017ca54c3Smrg    CARD8	reqType;
98117ca54c3Smrg    CARD8	glxCode;
982ea1d6981Smrg    CARD16	length;
983ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
984ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
985ea1d6981Smrg    CARD32	screen;
98617ca54c3Smrg} xGLXGetFBConfigsSGIXReq;
98717ca54c3Smrg#define sz_xGLXGetFBConfigsSGIXReq 16
98817ca54c3Smrg
98917ca54c3Smrg/*
99017ca54c3Smrg** glXCreateContextWithConfigSGIX request
99117ca54c3Smrg*/
99217ca54c3Smrg
99317ca54c3Smrgtypedef struct GLXCreateContextWithConfigSGIX {
99417ca54c3Smrg    CARD8	reqType;
99517ca54c3Smrg    CARD8	glxCode;
996ea1d6981Smrg    CARD16	length;
997ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
998ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
999ea1d6981Smrg    GLXContextID context;
1000ea1d6981Smrg    GLXFBConfigID fbconfig;
1001ea1d6981Smrg    CARD32	screen;
100217ca54c3Smrg    CARD32	renderType;
1003ea1d6981Smrg    GLXContextID shareList;
100417ca54c3Smrg    BOOL	isDirect;
100517ca54c3Smrg    CARD8	reserved1;
1006ea1d6981Smrg    CARD16	reserved2;
100717ca54c3Smrg} xGLXCreateContextWithConfigSGIXReq;
100817ca54c3Smrg#define sz_xGLXCreateContextWithConfigSGIXReq 36
100917ca54c3Smrg
101017ca54c3Smrg/*
101117ca54c3Smrg** glXCreatePixmapWithConfigSGIX request
101217ca54c3Smrg*/
101317ca54c3Smrg
101417ca54c3Smrgtypedef struct GLXCreateGLXPixmapWithConfigSGIX {
101517ca54c3Smrg    CARD8	reqType;
101617ca54c3Smrg    CARD8	glxCode;
1017ea1d6981Smrg    CARD16	length;
1018ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1019ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
1020ea1d6981Smrg    CARD32	screen;
1021ea1d6981Smrg    GLXFBConfigID fbconfig;
1022ea1d6981Smrg    CARD32	pixmap;
1023ea1d6981Smrg    GLXPixmap	glxpixmap;
102417ca54c3Smrg} xGLXCreateGLXPixmapWithConfigSGIXReq;
102517ca54c3Smrg#define sz_xGLXCreateGLXPixmapWithConfigSGIXReq 28
102617ca54c3Smrg
102717ca54c3Smrg/*
102817ca54c3Smrg** glXCreateGLXPbufferSGIX request
102917ca54c3Smrg*/
103017ca54c3Smrgtypedef struct GLXCreateGLXPbufferSGIX {
103117ca54c3Smrg    CARD8	reqType;
103217ca54c3Smrg    CARD8	glxCode;
1033ea1d6981Smrg    CARD16	length;
1034ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1035ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
1036ea1d6981Smrg    CARD32	screen;
1037ea1d6981Smrg    GLXFBConfigID fbconfig;
1038ea1d6981Smrg    GLXPbuffer	pbuffer;
1039ea1d6981Smrg    CARD32	width;
1040ea1d6981Smrg    CARD32	height;
104117ca54c3Smrg    /* followed by attribute list */
104217ca54c3Smrg} xGLXCreateGLXPbufferSGIXReq;
104317ca54c3Smrg#define sz_xGLXCreateGLXPbufferSGIXReq 32
104417ca54c3Smrg
104517ca54c3Smrg/*
104617ca54c3Smrg** glXDestroyGLXPbufferSGIX request
104717ca54c3Smrg*/
104817ca54c3Smrgtypedef struct GLXDestroyGLXPbuffer {
104917ca54c3Smrg    CARD8	reqType;
105017ca54c3Smrg    CARD8	glxCode;
1051ea1d6981Smrg    CARD16	length;
1052ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1053ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
1054ea1d6981Smrg    GLXPbuffer	pbuffer;
105517ca54c3Smrg} xGLXDestroyGLXPbufferSGIXReq;
105617ca54c3Smrg#define sz_xGLXDestroyGLXPbufferSGIXReq 16
105717ca54c3Smrg
105817ca54c3Smrg/*
105917ca54c3Smrg** glXChangeDrawableAttributesSGIX request
106017ca54c3Smrg*/
106117ca54c3Smrgtypedef struct GLXChangeDrawableAttributesSGIX {
106217ca54c3Smrg    CARD8	reqType;
106317ca54c3Smrg    CARD8	glxCode;
1064ea1d6981Smrg    CARD16	length;
1065ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1066ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
1067ea1d6981Smrg    GLXDrawable drawable;
1068ea1d6981Smrg    CARD32	numAttribs;
106917ca54c3Smrg    /* followed by attribute list */
107017ca54c3Smrg} xGLXChangeDrawableAttributesSGIXReq;
107117ca54c3Smrg#define sz_xGLXChangeDrawableAttributesSGIXReq 20
107217ca54c3Smrg
107317ca54c3Smrg/*
107417ca54c3Smrg** glXGetDrawableAttributesSGIX request
107517ca54c3Smrg*/
107617ca54c3Smrgtypedef struct GLXGetDrawableAttributesSGIX {
107717ca54c3Smrg    CARD8	reqType;
107817ca54c3Smrg    CARD8	glxCode;
1079ea1d6981Smrg    CARD16	length;
1080ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1081ea1d6981Smrg    CARD32	pad1;   /* unused; corresponds to contextTag in header */
1082ea1d6981Smrg    GLXDrawable drawable;
108317ca54c3Smrg} xGLXGetDrawableAttributesSGIXReq;
108417ca54c3Smrg#define sz_xGLXGetDrawableAttributesSGIXReq 16
108517ca54c3Smrg
108617ca54c3Smrg/*
108717ca54c3Smrg** glXGetDrawableAttributesSGIX reply
108817ca54c3Smrg*/
108917ca54c3Smrgtypedef struct {
109017ca54c3Smrg    BYTE	type;			/* X_Reply */
109117ca54c3Smrg    CARD8	unused;			/* not used */
1092ea1d6981Smrg    CARD16	sequenceNumber;
1093ea1d6981Smrg    CARD32	length;
1094ea1d6981Smrg    CARD32	numAttribs;
1095ea1d6981Smrg    CARD32	pad2;
1096ea1d6981Smrg    CARD32	pad3;
1097ea1d6981Smrg    CARD32	pad4;
1098ea1d6981Smrg    CARD32	pad5;
1099ea1d6981Smrg    CARD32	pad6;
110017ca54c3Smrg} xGLXGetDrawableAttributesSGIXReply;
110117ca54c3Smrg#define sz_xGLXGetDrawableAttributesSGIXReply 32
110217ca54c3Smrg
110317ca54c3Smrg/*
110417ca54c3Smrg** glXJoinSwapGroupSGIX request
110517ca54c3Smrg*/
110617ca54c3Smrgtypedef struct GLXJoinSwapGroupSGIX {
110717ca54c3Smrg    CARD8	reqType;
110817ca54c3Smrg    CARD8	glxCode;
1109ea1d6981Smrg    CARD16	length;
1110ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1111ea1d6981Smrg    CARD32 	unused;		/* corresponds to contextTag in hdr */
1112ea1d6981Smrg    GLXDrawable	drawable;
1113ea1d6981Smrg    GLXDrawable	member;
111417ca54c3Smrg} xGLXJoinSwapGroupSGIXReq;
111517ca54c3Smrg#define sz_xGLXJoinSwapGroupSGIXReq 20
111617ca54c3Smrg
111717ca54c3Smrg/*
111817ca54c3Smrg** glXBindSwapBarrierSGIX request
111917ca54c3Smrg*/
112017ca54c3Smrgtypedef struct GLXBindSwapBarrierSGIX {
112117ca54c3Smrg    CARD8	reqType;
112217ca54c3Smrg    CARD8	glxCode;
1123ea1d6981Smrg    CARD16	length;
1124ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1125ea1d6981Smrg    CARD32 	unused;		/* corresponds to contextTag in hdr */
1126ea1d6981Smrg    GLXDrawable	drawable;
1127ea1d6981Smrg    CARD32	barrier;
112817ca54c3Smrg} xGLXBindSwapBarrierSGIXReq;
112917ca54c3Smrg#define sz_xGLXBindSwapBarrierSGIXReq 20
113017ca54c3Smrg
113117ca54c3Smrg/*
113217ca54c3Smrg** glXQueryMaxSwapBarriersSGIX request
113317ca54c3Smrg*/
113417ca54c3Smrgtypedef struct GLXQueryMaxSwapBarriersSGIX {
113517ca54c3Smrg    CARD8	reqType;
113617ca54c3Smrg    CARD8	glxCode;
1137ea1d6981Smrg    CARD16	length;
1138ea1d6981Smrg    CARD32	vendorCode;		/* vendor-specific opcode */
1139ea1d6981Smrg    CARD32 	unused;		/* corresponds to contextTag in hdr */
1140ea1d6981Smrg    CARD32	screen;
114117ca54c3Smrg} xGLXQueryMaxSwapBarriersSGIXReq;
114217ca54c3Smrg#define sz_xGLXQueryMaxSwapBarriersSGIXReq 16
114317ca54c3Smrg
114417ca54c3Smrgtypedef struct {
114517ca54c3Smrg    BYTE	type;			/* X_Reply */
114617ca54c3Smrg    CARD8	unused;			/* not used */
1147ea1d6981Smrg    CARD16	sequenceNumber;
1148ea1d6981Smrg    CARD32	length;
1149ea1d6981Smrg    CARD32	max;
1150ea1d6981Smrg    CARD32	size;
1151ea1d6981Smrg    CARD32	pad3;
1152ea1d6981Smrg    CARD32	pad4;
1153ea1d6981Smrg    CARD32	pad5;
1154ea1d6981Smrg    CARD32	pad6;
115517ca54c3Smrg} xGLXQueryMaxSwapBarriersSGIXReply;
115617ca54c3Smrg#define sz_xGLXQueryMaxSwapBarriersSGIXReply 32
115717ca54c3Smrg
115817ca54c3Smrg/*
115917ca54c3Smrg** glXQueryHyperpipeNetworkSGIX request
116017ca54c3Smrg*/
116117ca54c3Smrgtypedef struct GLXQueryHyperpipeNetworkSGIX {
116217ca54c3Smrg    CARD8       reqType;
116317ca54c3Smrg    CARD8       glxCode;
1164ea1d6981Smrg    CARD16      length;
1165ea1d6981Smrg    CARD32      vendorCode;		/* vendor-specific opcode */
1166ea1d6981Smrg    CARD32      pad1;   /* unused; corresponds to contextTag in header */
1167ea1d6981Smrg    CARD32      screen;
116817ca54c3Smrg} xGLXQueryHyperpipeNetworkSGIXReq;
116917ca54c3Smrg#define sz_xGLXQueryHyperpipeNetworkSGIXReq 16
117017ca54c3Smrg
117117ca54c3Smrg/*
117217ca54c3Smrg** glXQueryHyperpipeNetworkSGIX reply
117317ca54c3Smrg*/
117417ca54c3Smrgtypedef struct {
117517ca54c3Smrg    BYTE        type;                   /* X_Reply */
117617ca54c3Smrg    CARD8       unused;                 /* not used */
1177ea1d6981Smrg    CARD16      sequenceNumber;
1178ea1d6981Smrg    CARD32      length;
1179ea1d6981Smrg    CARD32      pad1;
1180ea1d6981Smrg    CARD32      n;
1181ea1d6981Smrg    CARD32	npipes;			/* NOTE: may hold a single value */
1182ea1d6981Smrg    CARD32	pad4;			/* NOTE: may hold half a double */
1183ea1d6981Smrg    CARD32      pad5;
1184ea1d6981Smrg    CARD32      pad6;
118517ca54c3Smrg} xGLXQueryHyperpipeNetworkSGIXReply;
118617ca54c3Smrg#define sz_xGLXQueryHyperpipeNetworkSGIXReply 32
118717ca54c3Smrg
118817ca54c3Smrg/*
118917ca54c3Smrg** glXDestroyHyperpipeConfigSGIX request
119017ca54c3Smrg*/
119117ca54c3Smrgtypedef struct GLXDestroyHyperpipeConfigSGIX {
119217ca54c3Smrg    CARD8       reqType;
119317ca54c3Smrg    CARD8       glxCode;
1194ea1d6981Smrg    CARD16      length;
1195ea1d6981Smrg    CARD32      vendorCode;		/* vendor-specific opcode */
1196ea1d6981Smrg    CARD32      pad1;   /* unused; corresponds to contextTag in header */
1197ea1d6981Smrg    CARD32      screen;
1198ea1d6981Smrg    CARD32      hpId;
1199ea1d6981Smrg    CARD32      pad2;
1200ea1d6981Smrg    CARD32      pad3;
1201ea1d6981Smrg    CARD32      pad4;
120217ca54c3Smrg} xGLXDestroyHyperpipeConfigSGIXReq;
120317ca54c3Smrg#define sz_xGLXDestroyHyperpipeConfigSGIXReq 32
120417ca54c3Smrg
120517ca54c3Smrg/*
120617ca54c3Smrg** glXDestroyHyperpipeConfigSGIX reply
120717ca54c3Smrg*/
120817ca54c3Smrgtypedef struct {
120917ca54c3Smrg    BYTE        type;                   /* X_Reply */
121017ca54c3Smrg    CARD8       unused;                 /* not used */
1211ea1d6981Smrg    CARD16      sequenceNumber;
1212ea1d6981Smrg    CARD32      length;
1213ea1d6981Smrg    CARD32      pad1;
1214ea1d6981Smrg    CARD32      n;
1215ea1d6981Smrg    CARD32      success;		/* NOTE: may hold a single value */
1216ea1d6981Smrg    CARD32      pad4;			/* NOTE: may hold half a double */
1217ea1d6981Smrg    CARD32      pad5;
1218ea1d6981Smrg    CARD32      pad6;
121917ca54c3Smrg} xGLXDestroyHyperpipeConfigSGIXReply;
122017ca54c3Smrg#define sz_xGLXDestroyHyperpipeConfigSGIXReply 32
122117ca54c3Smrg
122217ca54c3Smrg/*
122317ca54c3Smrg** glXQueryHyperpipeConfigSGIX request
122417ca54c3Smrg*/
122517ca54c3Smrgtypedef struct GLXQueryHyperpipeConfigSGIX {
122617ca54c3Smrg    CARD8       reqType;
122717ca54c3Smrg    CARD8       glxCode;
1228ea1d6981Smrg    CARD16      length;
1229ea1d6981Smrg    CARD32      vendorCode;		/* vendor-specific opcode */
1230ea1d6981Smrg    CARD32      pad1;   /* unused; corresponds to contextTag in header */
1231ea1d6981Smrg    CARD32      screen;
1232ea1d6981Smrg    CARD32      hpId;
1233ea1d6981Smrg    CARD32      pad2;
1234ea1d6981Smrg    CARD32      pad3;
1235ea1d6981Smrg    CARD32      pad4;
123617ca54c3Smrg} xGLXQueryHyperpipeConfigSGIXReq;
123717ca54c3Smrg#define sz_xGLXQueryHyperpipeConfigSGIXReq 32
123817ca54c3Smrg
123917ca54c3Smrg/*
124017ca54c3Smrg** glXQueryHyperpipeConfigSGIX reply
124117ca54c3Smrg*/
124217ca54c3Smrgtypedef struct {
124317ca54c3Smrg    BYTE        type;                   /* X_Reply */
124417ca54c3Smrg    CARD8       unused;                 /* not used */
1245ea1d6981Smrg    CARD16      sequenceNumber;
1246ea1d6981Smrg    CARD32      length;
1247ea1d6981Smrg    CARD32      pad1;
1248ea1d6981Smrg    CARD32      n;
1249ea1d6981Smrg    CARD32      npipes;
1250ea1d6981Smrg    CARD32      pad4;
1251ea1d6981Smrg    CARD32      pad5;
1252ea1d6981Smrg    CARD32      pad6;
125317ca54c3Smrg} xGLXQueryHyperpipeConfigSGIXReply;
125417ca54c3Smrg#define sz_xGLXQueryHyperpipeConfigSGIXReply 32
125517ca54c3Smrg
125617ca54c3Smrg/*
125717ca54c3Smrg** glXHyperpipeConfigSGIX request
125817ca54c3Smrg*/
125917ca54c3Smrgtypedef struct {
126017ca54c3Smrg    CARD8       reqType;
126117ca54c3Smrg    CARD8       glxCode;
1262ea1d6981Smrg    CARD16      length;
1263ea1d6981Smrg    CARD32      vendorCode;		/* vendor-specific opcode */
1264ea1d6981Smrg    CARD32      pad1;   /* unused; corresponds to contextTag in header */
1265ea1d6981Smrg    CARD32      screen;
1266ea1d6981Smrg    CARD32      npipes;
1267ea1d6981Smrg    CARD32      networkId;
1268ea1d6981Smrg    CARD32      pad2;
1269ea1d6981Smrg    CARD32      pad3;
127017ca54c3Smrg    /* followed by attribute list */
127117ca54c3Smrg} xGLXHyperpipeConfigSGIXReq;
127217ca54c3Smrg#define sz_xGLXHyperpipeConfigSGIXReq 32
127317ca54c3Smrg
127417ca54c3Smrg/*
127517ca54c3Smrg** glXHyperpipeConfigSGIX reply
127617ca54c3Smrg*/
127717ca54c3Smrgtypedef struct {
127817ca54c3Smrg    BYTE        type;                   /* X_Reply */
127917ca54c3Smrg    CARD8       unused;                 /* not used */
1280ea1d6981Smrg    CARD16      sequenceNumber;
1281ea1d6981Smrg    CARD32      length;
1282ea1d6981Smrg    CARD32      pad1;
1283ea1d6981Smrg    CARD32      n;
1284ea1d6981Smrg    CARD32      npipes;
1285ea1d6981Smrg    CARD32      hpId;
1286ea1d6981Smrg    CARD32      pad5;
1287ea1d6981Smrg    CARD32      pad6;
128817ca54c3Smrg} xGLXHyperpipeConfigSGIXReply;
128917ca54c3Smrg#define sz_xGLXHyperpipeConfigSGIXReply 32
129017ca54c3Smrg
129117ca54c3Smrg/**
129217ca54c3Smrg * \name Protocol structures for GLX_ARB_create_context and
129317ca54c3Smrg * GLX_ARB_create_context_profile
129417ca54c3Smrg */
129517ca54c3Smrg/*@{*/
129617ca54c3Smrg/**
129717ca54c3Smrg * Protocol header for glXSetClientInfoARB
129817ca54c3Smrg *
1299ea1d6981Smrg * This structure is followed by \c numVersions * 2 \c CARD32 values listing
130017ca54c3Smrg * the OpenGL versions supported by the client.  The pairs of values are an
130117ca54c3Smrg * OpenGL major version followed by a minor version.  For example,
130217ca54c3Smrg *
130317ca54c3Smrg *      CARD32 versions[4] = { 2, 1, 3, 0 };
130417ca54c3Smrg *
130517ca54c3Smrg * says that the client supports OpenGL 2.1 and OpenGL 3.0.
1306ea1d6981Smrg *
130717ca54c3Smrg * These are followed by \c numGLExtensionBytes bytes of \c STRING8 containing
130817ca54c3Smrg * the OpenGL extension string supported by the client and up to 3 bytes of
130917ca54c3Smrg * padding.
131017ca54c3Smrg *
131117ca54c3Smrg * The list of OpenGL extensions is followed by \c numGLXExtensionBytes bytes
131217ca54c3Smrg * of \c STRING8 containing the GLX extension string supported by the client
131317ca54c3Smrg * and up to 3 bytes of padding.
131417ca54c3Smrg *
131517ca54c3Smrg * This protocol replaces \c GLXClientInfo.
131617ca54c3Smrg *
131717ca54c3Smrg * \sa GLXClientInfo, GLXSetClientInfo2ARB
131817ca54c3Smrg */
131917ca54c3Smrgtypedef struct GLXSetClientInfoARB {
132017ca54c3Smrg    CARD8	reqType;
132117ca54c3Smrg    CARD8	glxCode;
1322ea1d6981Smrg    CARD16	length;
1323ea1d6981Smrg    CARD32	major;
1324ea1d6981Smrg    CARD32	minor;
1325ea1d6981Smrg    CARD32	numVersions;
1326ea1d6981Smrg    CARD32	numGLExtensionBytes;
1327ea1d6981Smrg    CARD32	numGLXExtensionBytes;
132817ca54c3Smrg    /*
132917ca54c3Smrg    ** More data may follow; this is just the header.
133017ca54c3Smrg    */
133117ca54c3Smrg} xGLXSetClientInfoARBReq;
133217ca54c3Smrg#define sz_xGLXSetClientInfoARBReq 24
133317ca54c3Smrg
133417ca54c3Smrg/**
133517ca54c3Smrg * Protocol head for glXCreateContextAttribsARB
133617ca54c3Smrg *
133717ca54c3Smrg * This protocol replaces \c GLXCreateContext, \c GLXCreateNewContext, and
133817ca54c3Smrg * \c GLXCreateContextWithConfigSGIX.
133917ca54c3Smrg */
134017ca54c3Smrgtypedef struct GLXCreateContextAttribsARB {
134117ca54c3Smrg    CARD8	reqType;
134217ca54c3Smrg    CARD8	glxCode;
1343ea1d6981Smrg    CARD16	length;
1344ea1d6981Smrg    GLXContextID	context;
1345ea1d6981Smrg    GLXFBConfigID	fbconfig;
134617ca54c3Smrg    CARD32	screen;
1347ea1d6981Smrg    GLXContextID	shareList;
134817ca54c3Smrg    BOOL	isDirect;
134917ca54c3Smrg    CARD8	reserved1;
1350ea1d6981Smrg    CARD16	reserved2;
1351ea1d6981Smrg    CARD32	numAttribs;
135217ca54c3Smrg    /* followed by attribute list */
135317ca54c3Smrg} xGLXCreateContextAttribsARBReq;
135417ca54c3Smrg#define sz_xGLXCreateContextAttribsARBReq 28
135517ca54c3Smrg
135617ca54c3Smrg/**
135717ca54c3Smrg * Protocol header for glXSetClientInfo2ARB
135817ca54c3Smrg *
135917ca54c3Smrg * The glXSetClientInfo2ARB protocol differs from glXSetClientInfoARB in that
136017ca54c3Smrg * the list of OpenGL versions supported by the client is 3 \c CARD32 values
136117ca54c3Smrg * per version: major version, minor version, and supported profile mask.
136217ca54c3Smrg *
136317ca54c3Smrg * This protocol replaces \c GLXClientInfo and \c GLXSetClientInfoARB.
136417ca54c3Smrg *
136517ca54c3Smrg * \sa GLXClientInfo, GLXSetClientInfoARB
136617ca54c3Smrg */
136717ca54c3Smrgtypedef struct GLXSetClientInfo2ARB {
136817ca54c3Smrg    CARD8	reqType;
136917ca54c3Smrg    CARD8	glxCode;
1370ea1d6981Smrg    CARD16	length;
1371ea1d6981Smrg    CARD32	major;
1372ea1d6981Smrg    CARD32	minor;
1373ea1d6981Smrg    CARD32	numVersions;
1374ea1d6981Smrg    CARD32	numGLExtensionBytes;
1375ea1d6981Smrg    CARD32	numGLXExtensionBytes;
137617ca54c3Smrg    /*
137717ca54c3Smrg    ** More data may follow; this is just the header.
137817ca54c3Smrg    */
137917ca54c3Smrg} xGLXSetClientInfo2ARBReq;
138017ca54c3Smrg#define sz_xGLXSetClientInfo2ARBReq 24
138117ca54c3Smrg/*@}*/
138217ca54c3Smrg
138317ca54c3Smrg/************************************************************************/
138417ca54c3Smrg
138517ca54c3Smrg/*
138617ca54c3Smrg** Events
138717ca54c3Smrg*/
138817ca54c3Smrg
138917ca54c3Smrgtypedef struct {
139017ca54c3Smrg    BYTE type;
139117ca54c3Smrg    BYTE pad;
1392ea1d6981Smrg    CARD16 sequenceNumber;
1393ea1d6981Smrg    CARD16 event_type;  /*** was clobber_class */
1394ea1d6981Smrg    CARD16 draw_type;
1395ea1d6981Smrg    CARD32 drawable;
1396ea1d6981Smrg    CARD32 buffer_mask; /*** was mask */
1397ea1d6981Smrg    CARD16 aux_buffer;
1398ea1d6981Smrg    CARD16 x;
1399ea1d6981Smrg    CARD16 y;
1400ea1d6981Smrg    CARD16 width;
1401ea1d6981Smrg    CARD16 height;
1402ea1d6981Smrg    CARD16 count;
1403ea1d6981Smrg    CARD32 unused2;
140417ca54c3Smrg} xGLXPbufferClobberEvent;
140517ca54c3Smrg
140617ca54c3Smrgtypedef struct {
140717ca54c3Smrg    BYTE type;
140817ca54c3Smrg    BYTE pad;
1409ea1d6981Smrg    CARD16 sequenceNumber;
1410ea1d6981Smrg    CARD16 event_type;
141117ca54c3Smrg    CARD32 drawable;
1412ea1d6981Smrg    CARD32 ust_hi;
1413ea1d6981Smrg    CARD32 ust_lo;
1414ea1d6981Smrg    CARD32 msc_hi;
1415ea1d6981Smrg    CARD32 msc_lo;
1416ea1d6981Smrg    CARD32 sbc_hi;
1417ea1d6981Smrg    CARD32 sbc_lo;
141817ca54c3Smrg} xGLXBufferSwapComplete;
141917ca54c3Smrg
142017ca54c3Smrgtypedef struct {
142117ca54c3Smrg    BYTE type;
142217ca54c3Smrg    BYTE pad;
1423ea1d6981Smrg    CARD16 sequenceNumber;
1424ea1d6981Smrg    CARD16 event_type;
142517ca54c3Smrg    CARD16 pad2;
142617ca54c3Smrg    CARD32 drawable;
1427ea1d6981Smrg    CARD32 ust_hi;
1428ea1d6981Smrg    CARD32 ust_lo;
1429ea1d6981Smrg    CARD32 msc_hi;
1430ea1d6981Smrg    CARD32 msc_lo;
1431ea1d6981Smrg    CARD32 sbc;
143217ca54c3Smrg} xGLXBufferSwapComplete2;
143317ca54c3Smrg
143417ca54c3Smrg/************************************************************************/
143517ca54c3Smrg
143617ca54c3Smrg/*
143717ca54c3Smrg** Size of the standard X request header.
143817ca54c3Smrg*/
143917ca54c3Smrg#define __GLX_SINGLE_HDR_SIZE sz_xGLXSingleReq
144017ca54c3Smrg#define __GLX_VENDPRIV_HDR_SIZE sz_xGLXVendorPrivateReq
144117ca54c3Smrg
144217ca54c3Smrg#define __GLX_RENDER_HDR    \
1443ea1d6981Smrg    CARD16	length;	    \
1444ea1d6981Smrg    CARD16	opcode
144517ca54c3Smrg
144617ca54c3Smrg#define __GLX_RENDER_HDR_SIZE 4
144717ca54c3Smrg
144817ca54c3Smrgtypedef struct {
144917ca54c3Smrg    __GLX_RENDER_HDR;
145017ca54c3Smrg} __GLXrenderHeader;
145117ca54c3Smrg
145217ca54c3Smrg#define __GLX_RENDER_LARGE_HDR \
1453ea1d6981Smrg    CARD32	length;	       \
1454ea1d6981Smrg    CARD32	opcode
145517ca54c3Smrg
145617ca54c3Smrg#define __GLX_RENDER_LARGE_HDR_SIZE 8
145717ca54c3Smrg
145817ca54c3Smrgtypedef struct {
145917ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
146017ca54c3Smrg} __GLXrenderLargeHeader;
146117ca54c3Smrg
146217ca54c3Smrg/*
146317ca54c3Smrg** The glBitmap, glPolygonStipple, glTexImage[12]D, glTexSubImage[12]D
146417ca54c3Smrg** and glDrawPixels calls all have a pixel header transmitted after the
146517ca54c3Smrg** Render or RenderLarge header and before their own opcode specific
146617ca54c3Smrg** headers.
146717ca54c3Smrg*/
146817ca54c3Smrg#define __GLX_PIXEL_HDR		\
146917ca54c3Smrg    BOOL	swapBytes;	\
147017ca54c3Smrg    BOOL	lsbFirst;	\
147117ca54c3Smrg    CARD8	reserved0;	\
147217ca54c3Smrg    CARD8	reserved1;	\
1473ea1d6981Smrg    CARD32	rowLength;	\
1474ea1d6981Smrg    CARD32	skipRows;	\
1475ea1d6981Smrg    CARD32	skipPixels;	\
1476ea1d6981Smrg    CARD32	alignment
147717ca54c3Smrg
147817ca54c3Smrg#define __GLX_PIXEL_HDR_SIZE 20
147917ca54c3Smrg
148017ca54c3Smrgtypedef struct {
148117ca54c3Smrg    __GLX_PIXEL_HDR;
148217ca54c3Smrg} __GLXpixelHeader;
148317ca54c3Smrg
148417ca54c3Smrg/*
148517ca54c3Smrg** glTexImage[34]D and glTexSubImage[34]D calls
148617ca54c3Smrg** all have a pixel header transmitted after the Render or RenderLarge
148717ca54c3Smrg** header and before their own opcode specific headers.
148817ca54c3Smrg*/
148917ca54c3Smrg#define __GLX_PIXEL_3D_HDR		\
149017ca54c3Smrg    BOOL	swapBytes;		\
149117ca54c3Smrg    BOOL	lsbFirst;		\
149217ca54c3Smrg    CARD8	reserved0;		\
149317ca54c3Smrg    CARD8	reserved1;		\
1494ea1d6981Smrg    CARD32	rowLength;		\
1495ea1d6981Smrg    CARD32	imageHeight;		\
1496ea1d6981Smrg    CARD32	imageDepth;		\
1497ea1d6981Smrg    CARD32	skipRows;		\
1498ea1d6981Smrg    CARD32	skipImages;		\
1499ea1d6981Smrg    CARD32	skipVolumes;		\
1500ea1d6981Smrg    CARD32	skipPixels;		\
1501ea1d6981Smrg    CARD32	alignment
150217ca54c3Smrg
150317ca54c3Smrg#define __GLX_PIXEL_3D_HDR_SIZE 36
150417ca54c3Smrg
150517ca54c3Smrg/*
150617ca54c3Smrg** Data that is specific to a glBitmap call.  The data is sent in the
150717ca54c3Smrg** following order:
150817ca54c3Smrg**	Render or RenderLarge header
150917ca54c3Smrg**	Pixel header
151017ca54c3Smrg**	Bitmap header
151117ca54c3Smrg*/
151217ca54c3Smrg#define __GLX_BITMAP_HDR    \
1513ea1d6981Smrg    CARD32	width;	    \
1514ea1d6981Smrg    CARD32	height;	    \
151517ca54c3Smrg    FLOAT32	xorig F32;  \
151617ca54c3Smrg    FLOAT32	yorig F32;  \
151717ca54c3Smrg    FLOAT32	xmove F32;  \
151817ca54c3Smrg    FLOAT32	ymove F32
151917ca54c3Smrg
152017ca54c3Smrgtypedef struct {
152117ca54c3Smrg    __GLX_RENDER_HDR;
152217ca54c3Smrg    __GLX_PIXEL_HDR;
152317ca54c3Smrg    __GLX_BITMAP_HDR;
152417ca54c3Smrg} __GLXbitmapHeader;
152517ca54c3Smrg
152617ca54c3Smrgtypedef struct {
152717ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
152817ca54c3Smrg    __GLX_PIXEL_HDR;
152917ca54c3Smrg    __GLX_BITMAP_HDR;
153017ca54c3Smrg} __GLXbitmapLargeHeader;
153117ca54c3Smrg
153217ca54c3Smrgtypedef struct {
153317ca54c3Smrg    __GLX_PIXEL_HDR;
153417ca54c3Smrg    __GLX_BITMAP_HDR;
153517ca54c3Smrg} __GLXdispatchBitmapHeader;
153617ca54c3Smrg
153717ca54c3Smrg#define __GLX_BITMAP_HDR_SIZE 24
153817ca54c3Smrg
153917ca54c3Smrg#define __GLX_BITMAP_CMD_HDR_SIZE \
154017ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
154117ca54c3Smrg
154217ca54c3Smrg#define __GLX_BITMAP_CMD_DISPATCH_HDR_SIZE \
154317ca54c3Smrg    (__GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
154417ca54c3Smrg
154517ca54c3Smrgtypedef struct {
154617ca54c3Smrg    __GLX_RENDER_HDR;
154717ca54c3Smrg    __GLX_PIXEL_HDR;
154817ca54c3Smrg} __GLXpolygonStippleHeader;
154917ca54c3Smrg
155017ca54c3Smrg#define __GLX_POLYGONSTIPPLE_CMD_HDR_SIZE \
155117ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE)
155217ca54c3Smrg
155317ca54c3Smrg/*
155417ca54c3Smrg** Data that is specific to a glTexImage1D or glTexImage2D call.  The
155517ca54c3Smrg** data is sent in the following order:
155617ca54c3Smrg**	Render or RenderLarge header
155717ca54c3Smrg**	Pixel header
155817ca54c3Smrg**	TexImage header
155917ca54c3Smrg** When a glTexImage1D call the height field is unexamined by the server.
156017ca54c3Smrg*/
156117ca54c3Smrg#define __GLX_TEXIMAGE_HDR	\
1562ea1d6981Smrg    CARD32	target;		\
1563ea1d6981Smrg    CARD32	level;		\
1564ea1d6981Smrg    CARD32	components;	\
1565ea1d6981Smrg    CARD32	width;		\
1566ea1d6981Smrg    CARD32	height;		\
1567ea1d6981Smrg    CARD32	border;		\
1568ea1d6981Smrg    CARD32	format;		\
1569ea1d6981Smrg    CARD32	type
157017ca54c3Smrg
157117ca54c3Smrg#define __GLX_TEXIMAGE_HDR_SIZE 32
157217ca54c3Smrg
157317ca54c3Smrg#define __GLX_TEXIMAGE_CMD_HDR_SIZE \
157417ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
157517ca54c3Smrg
157617ca54c3Smrg#define __GLX_TEXIMAGE_CMD_DISPATCH_HDR_SIZE \
157717ca54c3Smrg    (__GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
157817ca54c3Smrg
157917ca54c3Smrgtypedef struct {
158017ca54c3Smrg    __GLX_RENDER_HDR;
158117ca54c3Smrg    __GLX_PIXEL_HDR;
158217ca54c3Smrg    __GLX_TEXIMAGE_HDR;
158317ca54c3Smrg} __GLXtexImageHeader;
158417ca54c3Smrg
158517ca54c3Smrgtypedef struct {
158617ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
158717ca54c3Smrg    __GLX_PIXEL_HDR;
158817ca54c3Smrg    __GLX_TEXIMAGE_HDR;
158917ca54c3Smrg} __GLXtexImageLargeHeader;
159017ca54c3Smrg
159117ca54c3Smrgtypedef struct {
159217ca54c3Smrg    __GLX_PIXEL_HDR;
159317ca54c3Smrg    __GLX_TEXIMAGE_HDR;
159417ca54c3Smrg} __GLXdispatchTexImageHeader;
159517ca54c3Smrg
159617ca54c3Smrg/*
159717ca54c3Smrg** Data that is specific to a glTexImage3D or glTexImage4D call.  The
159817ca54c3Smrg** data is sent in the following order:
159917ca54c3Smrg**	Render or RenderLarge header
160017ca54c3Smrg**	Pixel 3D header
160117ca54c3Smrg**	TexImage 3D header
160217ca54c3Smrg** When a glTexImage3D call the size4d and woffset fields are unexamined
160317ca54c3Smrg** by the server.
160417ca54c3Smrg** Could be used by all TexImage commands and perhaps should be in the
160517ca54c3Smrg** future.
160617ca54c3Smrg*/
160717ca54c3Smrg#define __GLX_TEXIMAGE_3D_HDR \
1608ea1d6981Smrg    CARD32	target;		\
1609ea1d6981Smrg    CARD32	level;		\
1610ea1d6981Smrg    CARD32	internalformat;	\
1611ea1d6981Smrg    CARD32	width;		\
1612ea1d6981Smrg    CARD32	height;		\
1613ea1d6981Smrg    CARD32	depth;		\
1614ea1d6981Smrg    CARD32	size4d;		\
1615ea1d6981Smrg    CARD32	border;		\
1616ea1d6981Smrg    CARD32	format;		\
1617ea1d6981Smrg    CARD32	type;		\
1618ea1d6981Smrg    CARD32	nullimage
161917ca54c3Smrg
162017ca54c3Smrg#define __GLX_TEXIMAGE_3D_HDR_SIZE 44
162117ca54c3Smrg
162217ca54c3Smrg#define __GLX_TEXIMAGE_3D_CMD_HDR_SIZE \
162317ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
162417ca54c3Smrg		__GLX_TEXIMAGE_3D_HDR_SIZE)
162517ca54c3Smrg
162617ca54c3Smrg#define __GLX_TEXIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
162717ca54c3Smrg    (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXIMAGE_3D_HDR_SIZE)
162817ca54c3Smrg
162917ca54c3Smrgtypedef struct {
163017ca54c3Smrg    __GLX_RENDER_HDR;
163117ca54c3Smrg    __GLX_PIXEL_3D_HDR;
163217ca54c3Smrg    __GLX_TEXIMAGE_3D_HDR;
163317ca54c3Smrg} __GLXtexImage3DHeader;
163417ca54c3Smrg
163517ca54c3Smrgtypedef struct {
163617ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
163717ca54c3Smrg    __GLX_PIXEL_3D_HDR;
163817ca54c3Smrg    __GLX_TEXIMAGE_3D_HDR;
163917ca54c3Smrg} __GLXtexImage3DLargeHeader;
164017ca54c3Smrg
164117ca54c3Smrgtypedef struct {
164217ca54c3Smrg    __GLX_PIXEL_3D_HDR;
164317ca54c3Smrg    __GLX_TEXIMAGE_3D_HDR;
164417ca54c3Smrg} __GLXdispatchTexImage3DHeader;
164517ca54c3Smrg
164617ca54c3Smrg/*
164717ca54c3Smrg** Data that is specific to a glTexSubImage1D or glTexSubImage2D call.	The
164817ca54c3Smrg** data is sent in the following order:
164917ca54c3Smrg**	Render or RenderLarge header
165017ca54c3Smrg**	Pixel header
165117ca54c3Smrg**	TexSubImage header
165217ca54c3Smrg** When a glTexSubImage1D call is made, the yoffset and height fields
165317ca54c3Smrg** are unexamined by the server and are  considered to be padding.
165417ca54c3Smrg*/
165517ca54c3Smrg#define __GLX_TEXSUBIMAGE_HDR	\
1656ea1d6981Smrg    CARD32	target;		\
1657ea1d6981Smrg    CARD32	level;		\
1658ea1d6981Smrg    CARD32	xoffset;	\
1659ea1d6981Smrg    CARD32	yoffset;	\
1660ea1d6981Smrg    CARD32	width;		\
1661ea1d6981Smrg    CARD32	height;		\
1662ea1d6981Smrg    CARD32	format;		\
1663ea1d6981Smrg    CARD32	type;		\
166417ca54c3Smrg    CARD32	nullImage	\
166517ca54c3Smrg
166617ca54c3Smrg#define __GLX_TEXSUBIMAGE_HDR_SIZE 36
166717ca54c3Smrg
166817ca54c3Smrg#define __GLX_TEXSUBIMAGE_CMD_HDR_SIZE \
166917ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
167017ca54c3Smrg
167117ca54c3Smrg#define __GLX_TEXSUBIMAGE_CMD_DISPATCH_HDR_SIZE \
167217ca54c3Smrg    (__GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
167317ca54c3Smrg
167417ca54c3Smrgtypedef struct {
167517ca54c3Smrg    __GLX_RENDER_HDR;
167617ca54c3Smrg    __GLX_PIXEL_HDR;
167717ca54c3Smrg    __GLX_TEXSUBIMAGE_HDR;
167817ca54c3Smrg} __GLXtexSubImageHeader;
167917ca54c3Smrg
168017ca54c3Smrgtypedef struct {
168117ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
168217ca54c3Smrg    __GLX_PIXEL_HDR;
168317ca54c3Smrg    __GLX_TEXSUBIMAGE_HDR;
168417ca54c3Smrg} __GLXtexSubImageLargeHeader;
168517ca54c3Smrg
168617ca54c3Smrgtypedef struct {
168717ca54c3Smrg    __GLX_PIXEL_HDR;
168817ca54c3Smrg    __GLX_TEXSUBIMAGE_HDR;
168917ca54c3Smrg} __GLXdispatchTexSubImageHeader;
169017ca54c3Smrg
169117ca54c3Smrg/*
169217ca54c3Smrg** Data that is specific to a glTexSubImage3D and 4D calls.  The
169317ca54c3Smrg** data is sent in the following order:
169417ca54c3Smrg**	Render or RenderLarge header
169517ca54c3Smrg**	Pixel 3D header
169617ca54c3Smrg**	TexSubImage 3D header
169717ca54c3Smrg** When a glTexSubImage3D call is made, the woffset and size4d fields
169817ca54c3Smrg** are unexamined by the server and are considered to be padding.
169917ca54c3Smrg*/
170017ca54c3Smrg#define __GLX_TEXSUBIMAGE_3D_HDR	\
1701ea1d6981Smrg    CARD32	target;			\
1702ea1d6981Smrg    CARD32	level;			\
1703ea1d6981Smrg    CARD32	xoffset;		\
1704ea1d6981Smrg    CARD32	yoffset;		\
1705ea1d6981Smrg    CARD32	zoffset;		\
1706ea1d6981Smrg    CARD32	woffset;		\
1707ea1d6981Smrg    CARD32	width;			\
1708ea1d6981Smrg    CARD32	height;			\
1709ea1d6981Smrg    CARD32	depth;			\
1710ea1d6981Smrg    CARD32	size4d;			\
1711ea1d6981Smrg    CARD32	format;			\
1712ea1d6981Smrg    CARD32	type;			\
1713ea1d6981Smrg    CARD32	nullImage		\
171417ca54c3Smrg
171517ca54c3Smrg#define __GLX_TEXSUBIMAGE_3D_HDR_SIZE 52
171617ca54c3Smrg
171717ca54c3Smrg#define __GLX_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
171817ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
171917ca54c3Smrg		__GLX_TEXSUBIMAGE_3D_HDR_SIZE)
172017ca54c3Smrg
172117ca54c3Smrg#define __GLX_TEXSUBIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
172217ca54c3Smrg    (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
172317ca54c3Smrg
172417ca54c3Smrgtypedef struct {
172517ca54c3Smrg    __GLX_RENDER_HDR;
172617ca54c3Smrg    __GLX_PIXEL_3D_HDR;
172717ca54c3Smrg    __GLX_TEXSUBIMAGE_3D_HDR;
172817ca54c3Smrg} __GLXtexSubImage3DHeader;
172917ca54c3Smrg
173017ca54c3Smrgtypedef struct {
173117ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
173217ca54c3Smrg    __GLX_PIXEL_3D_HDR;
173317ca54c3Smrg    __GLX_TEXSUBIMAGE_3D_HDR;
173417ca54c3Smrg} __GLXtexSubImage3DLargeHeader;
173517ca54c3Smrg
173617ca54c3Smrgtypedef struct {
173717ca54c3Smrg    __GLX_PIXEL_3D_HDR;
173817ca54c3Smrg    __GLX_TEXSUBIMAGE_3D_HDR;
173917ca54c3Smrg} __GLXdispatchTexSubImage3DHeader;
174017ca54c3Smrg
174117ca54c3Smrg/**
174217ca54c3Smrg * Data that is specific to a \c glCompressedTexImage1D or
174317ca54c3Smrg * \c glCompressedTexImage2D call.  The data is sent in the following
174417ca54c3Smrg * order:
174517ca54c3Smrg *     - Render or RenderLarge header
174617ca54c3Smrg *     - CompressedTexImage header
1747ea1d6981Smrg *
174817ca54c3Smrg * When a \c glCompressedTexImage1D call is made, the \c height field is
174917ca54c3Smrg * not examined by the server and is considered padding.
175017ca54c3Smrg */
175117ca54c3Smrg
175217ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_HDR \
1753ea1d6981Smrg    CARD32     target;		      \
1754ea1d6981Smrg    CARD32     level;		      \
1755ea1d6981Smrg    CARD32     internalFormat;	      \
1756ea1d6981Smrg    CARD32     width;		      \
1757ea1d6981Smrg    CARD32     height;		      \
1758ea1d6981Smrg    CARD32     border;		      \
1759ea1d6981Smrg    CARD32     imageSize
176017ca54c3Smrg
176117ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE 28
176217ca54c3Smrg
176317ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE \
176417ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
176517ca54c3Smrg
176617ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_DISPATCH_HDR_SIZE \
176717ca54c3Smrg    (__GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
176817ca54c3Smrg
176917ca54c3Smrgtypedef struct {
177017ca54c3Smrg    __GLX_RENDER_HDR;
177117ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_HDR;
177217ca54c3Smrg} __GLXcompressedTexImageHeader;
177317ca54c3Smrg
177417ca54c3Smrgtypedef struct {
177517ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
177617ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_HDR;
177717ca54c3Smrg} __GLXcompressedTexImageLargeHeader;
177817ca54c3Smrg
177917ca54c3Smrgtypedef struct {
178017ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_HDR;
178117ca54c3Smrg} __GLXdispatchCompressedTexImageHeader;
178217ca54c3Smrg
178317ca54c3Smrg/**
178417ca54c3Smrg * Data that is specifi to a \c glCompressedTexSubImage1D or
178517ca54c3Smrg * \c glCompressedTexSubImage2D call.  The data is sent in the following
178617ca54c3Smrg * order:
178717ca54c3Smrg *     - Render or RenderLarge header
178817ca54c3Smrg *     - CompressedTexSubImage header
1789ea1d6981Smrg *
179017ca54c3Smrg * When a \c glCompressedTexSubImage1D call is made, the \c yoffset and
179117ca54c3Smrg * \c height fields are not examined by the server and are considered padding.
179217ca54c3Smrg */
179317ca54c3Smrg
179417ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_HDR \
1795ea1d6981Smrg    CARD32     target;			 \
1796ea1d6981Smrg    CARD32     level;			 \
1797ea1d6981Smrg    CARD32     xoffset;			 \
1798ea1d6981Smrg    CARD32     yoffset;			 \
1799ea1d6981Smrg    CARD32     width;			 \
1800ea1d6981Smrg    CARD32     height;			 \
1801ea1d6981Smrg    CARD32     format;			 \
1802ea1d6981Smrg    CARD32     imageSize
180317ca54c3Smrg
180417ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE 32
180517ca54c3Smrg
180617ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE \
180717ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
180817ca54c3Smrg
180917ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_DISPATCH_HDR_SIZE \
181017ca54c3Smrg    (__GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
181117ca54c3Smrg
181217ca54c3Smrgtypedef struct {
181317ca54c3Smrg    __GLX_RENDER_HDR;
181417ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
181517ca54c3Smrg} __GLXcompressedTexSubImageHeader;
181617ca54c3Smrg
181717ca54c3Smrgtypedef struct {
181817ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
181917ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
182017ca54c3Smrg} __GLXcompressedTexSubImageLargeHeader;
182117ca54c3Smrg
182217ca54c3Smrgtypedef struct {
182317ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
182417ca54c3Smrg} __GLXdispatchCompressedTexSubImageHeader;
182517ca54c3Smrg
182617ca54c3Smrg/**
182717ca54c3Smrg * Data that is specific to a \c glCompressedTexImage3D call.  The data is
182817ca54c3Smrg * sent in the following order:
182917ca54c3Smrg *     - Render or RenderLarge header
183017ca54c3Smrg *     - CompressedTexImage3D header
183117ca54c3Smrg */
183217ca54c3Smrg
183317ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_3D_HDR \
1834ea1d6981Smrg    CARD32     target;			 \
1835ea1d6981Smrg    CARD32     level;			 \
1836ea1d6981Smrg    CARD32     internalFormat;		 \
1837ea1d6981Smrg    CARD32     width;			 \
1838ea1d6981Smrg    CARD32     height;			 \
1839ea1d6981Smrg    CARD32     depth;			 \
1840ea1d6981Smrg    CARD32     border;			 \
1841ea1d6981Smrg    CARD32     imageSize
184217ca54c3Smrg
184317ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE 32
184417ca54c3Smrg
184517ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE \
184617ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
184717ca54c3Smrg
184817ca54c3Smrg#define __GLX_COMPRESSED_TEXIMAGE_3D_DISPATCH_HDR_SIZE \
184917ca54c3Smrg    (__GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
185017ca54c3Smrg
185117ca54c3Smrgtypedef struct {
185217ca54c3Smrg    __GLX_RENDER_HDR;
185317ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
185417ca54c3Smrg} __GLXcompressedTexImage3DHeader;
185517ca54c3Smrg
185617ca54c3Smrgtypedef struct {
185717ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
185817ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
185917ca54c3Smrg} __GLXcompressedTexImage3DLargeHeader;
186017ca54c3Smrg
186117ca54c3Smrgtypedef struct {
186217ca54c3Smrg    __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
186317ca54c3Smrg} __GLXdispatchCompressedTexImage3DHeader;
186417ca54c3Smrg
186517ca54c3Smrg/**
186617ca54c3Smrg * Data that is specifi to a \c glCompressedTexSubImage3D call.  The data is
186717ca54c3Smrg * sent in the following order:
186817ca54c3Smrg *     - Render or RenderLarge header
186917ca54c3Smrg *     - CompressedTexSubImage3D header
187017ca54c3Smrg */
187117ca54c3Smrg
187217ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR \
1873ea1d6981Smrg    CARD32     target;			    \
1874ea1d6981Smrg    CARD32     level;			    \
1875ea1d6981Smrg    CARD32     xoffset;			    \
1876ea1d6981Smrg    CARD32     yoffset;			    \
1877ea1d6981Smrg    CARD32     zoffset;			    \
1878ea1d6981Smrg    CARD32     width;			    \
1879ea1d6981Smrg    CARD32     height;			    \
1880ea1d6981Smrg    CARD32     depth;			    \
1881ea1d6981Smrg    CARD32     format;			    \
1882ea1d6981Smrg    CARD32     imageSize
188317ca54c3Smrg
188417ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE 32
188517ca54c3Smrg
188617ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
188717ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
188817ca54c3Smrg
188917ca54c3Smrg#define __GLX_COMPRESSED_TEXSUBIMAGE_3D_DISPATCH_HDR_SIZE \
189017ca54c3Smrg    (__GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
189117ca54c3Smrg
189217ca54c3Smrgtypedef struct {
189317ca54c3Smrg    __GLX_RENDER_HDR;
189417ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
189517ca54c3Smrg} __GLXcompressedTexSubImage3DHeader;
189617ca54c3Smrg
189717ca54c3Smrgtypedef struct {
189817ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
189917ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
190017ca54c3Smrg} __GLXcompressedTexSubImage3DLargeHeader;
190117ca54c3Smrg
190217ca54c3Smrgtypedef struct {
190317ca54c3Smrg    __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
190417ca54c3Smrg} __GLXdispatchCompressedTexSubImage3DHeader;
190517ca54c3Smrg
190617ca54c3Smrg/*
190717ca54c3Smrg** Data that is specific to a glDrawPixels call.  The data is sent in the
190817ca54c3Smrg** following order:
190917ca54c3Smrg**	Render or RenderLarge header
191017ca54c3Smrg**	Pixel header
191117ca54c3Smrg**	DrawPixels header
191217ca54c3Smrg*/
191317ca54c3Smrg#define __GLX_DRAWPIXELS_HDR \
1914ea1d6981Smrg    CARD32	width;	     \
1915ea1d6981Smrg    CARD32	height;	     \
1916ea1d6981Smrg    CARD32	format;	     \
1917ea1d6981Smrg    CARD32	type
191817ca54c3Smrg
191917ca54c3Smrg#define __GLX_DRAWPIXELS_HDR_SIZE 16
192017ca54c3Smrg
192117ca54c3Smrg#define __GLX_DRAWPIXELS_CMD_HDR_SIZE \
192217ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
192317ca54c3Smrg
192417ca54c3Smrg#define __GLX_DRAWPIXELS_CMD_DISPATCH_HDR_SIZE \
192517ca54c3Smrg    (__GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
192617ca54c3Smrg
192717ca54c3Smrgtypedef struct {
192817ca54c3Smrg    __GLX_RENDER_HDR;
192917ca54c3Smrg    __GLX_PIXEL_HDR;
193017ca54c3Smrg    __GLX_DRAWPIXELS_HDR;
193117ca54c3Smrg} __GLXdrawPixelsHeader;
193217ca54c3Smrg
193317ca54c3Smrgtypedef struct {
193417ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
193517ca54c3Smrg    __GLX_PIXEL_HDR;
193617ca54c3Smrg    __GLX_DRAWPIXELS_HDR;
193717ca54c3Smrg} __GLXdrawPixelsLargeHeader;
193817ca54c3Smrg
193917ca54c3Smrgtypedef struct {
194017ca54c3Smrg    __GLX_PIXEL_HDR;
194117ca54c3Smrg    __GLX_DRAWPIXELS_HDR;
194217ca54c3Smrg} __GLXdispatchDrawPixelsHeader;
194317ca54c3Smrg
194417ca54c3Smrg/*
194517ca54c3Smrg** Data that is specific to a glConvolutionFilter1D or glConvolutionFilter2D
194617ca54c3Smrg** call.  The data is sent in the following order:
194717ca54c3Smrg**	Render or RenderLarge header
194817ca54c3Smrg**	Pixel header
194917ca54c3Smrg**	ConvolutionFilter header
195017ca54c3Smrg** When a glConvolutionFilter1D call the height field is unexamined by the server.
195117ca54c3Smrg*/
195217ca54c3Smrg#define __GLX_CONV_FILT_HDR	\
1953ea1d6981Smrg    CARD32	target;		\
1954ea1d6981Smrg    CARD32	internalformat;	\
1955ea1d6981Smrg    CARD32	width;		\
1956ea1d6981Smrg    CARD32	height;		\
1957ea1d6981Smrg    CARD32	format;		\
1958ea1d6981Smrg    CARD32	type
195917ca54c3Smrg
196017ca54c3Smrg#define __GLX_CONV_FILT_HDR_SIZE 24
196117ca54c3Smrg
196217ca54c3Smrg#define __GLX_CONV_FILT_CMD_HDR_SIZE \
196317ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
196417ca54c3Smrg
196517ca54c3Smrg#define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \
196617ca54c3Smrg    (__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
196717ca54c3Smrgtypedef struct {
196817ca54c3Smrg    __GLX_RENDER_HDR;
196917ca54c3Smrg    __GLX_PIXEL_HDR;
197017ca54c3Smrg    __GLX_CONV_FILT_HDR;
197117ca54c3Smrg} __GLXConvolutionFilterHeader;
197217ca54c3Smrg
197317ca54c3Smrgtypedef struct {
197417ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
197517ca54c3Smrg    __GLX_PIXEL_HDR;
197617ca54c3Smrg    __GLX_CONV_FILT_HDR;
197717ca54c3Smrg} __GLXConvolutionFilterLargeHeader;
197817ca54c3Smrg
197917ca54c3Smrgtypedef struct {
198017ca54c3Smrg    __GLX_PIXEL_HDR;
198117ca54c3Smrg    __GLX_CONV_FILT_HDR;
198217ca54c3Smrg} __GLXdispatchConvolutionFilterHeader;
198317ca54c3Smrg
198417ca54c3Smrg/*
198517ca54c3Smrg** Data that is specific to a glDrawArraysEXT call.  The data is sent in the
198617ca54c3Smrg** following order:
198717ca54c3Smrg**	Render or RenderLarge header
198817ca54c3Smrg**	Draw Arrays header
198917ca54c3Smrg**	a variable number of Component headers
199017ca54c3Smrg**	vertex data for each component type
199117ca54c3Smrg*/
199217ca54c3Smrg
199317ca54c3Smrg#define __GLX_DRAWARRAYS_HDR \
1994ea1d6981Smrg    CARD32	numVertexes;   \
1995ea1d6981Smrg    CARD32	numComponents; \
1996ea1d6981Smrg    CARD32	primType
199717ca54c3Smrg
199817ca54c3Smrg#define __GLX_DRAWARRAYS_HDR_SIZE 12
199917ca54c3Smrg
200017ca54c3Smrg#define __GLX_DRAWARRAYS_CMD_HDR_SIZE \
200117ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_DRAWARRAYS_HDR_SIZE)
200217ca54c3Smrg
200317ca54c3Smrgtypedef struct {
200417ca54c3Smrg    __GLX_RENDER_HDR;
200517ca54c3Smrg    __GLX_DRAWARRAYS_HDR;
200617ca54c3Smrg} __GLXdrawArraysHeader;
200717ca54c3Smrg
200817ca54c3Smrgtypedef struct {
200917ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
201017ca54c3Smrg    __GLX_DRAWARRAYS_HDR;
201117ca54c3Smrg} __GLXdrawArraysLargeHeader;
201217ca54c3Smrg
201317ca54c3Smrgtypedef struct {
201417ca54c3Smrg    __GLX_DRAWARRAYS_HDR;
201517ca54c3Smrg} __GLXdispatchDrawArraysHeader;
201617ca54c3Smrg
201717ca54c3Smrg#define __GLX_COMPONENT_HDR \
2018ea1d6981Smrg    CARD32	datatype;   \
2019ea1d6981Smrg    INT32	numVals;    \
2020ea1d6981Smrg    CARD32	component
202117ca54c3Smrg
202217ca54c3Smrgtypedef struct {
202317ca54c3Smrg    __GLX_COMPONENT_HDR;
202417ca54c3Smrg} __GLXdispatchDrawArraysComponentHeader;
202517ca54c3Smrg
202617ca54c3Smrg#define __GLX_COMPONENT_HDR_SIZE 12
202717ca54c3Smrg
202817ca54c3Smrg/*
202917ca54c3Smrg** Data that is specific to a glColorTable call
203017ca54c3Smrg**	The data is sent in the following order:
203117ca54c3Smrg**	Render or RenderLarge header
203217ca54c3Smrg**	Pixel header
203317ca54c3Smrg**	ColorTable header
203417ca54c3Smrg*/
203517ca54c3Smrg
203617ca54c3Smrg#define __GLX_COLOR_TABLE_HDR	     \
2037ea1d6981Smrg    CARD32	target;		     \
2038ea1d6981Smrg    CARD32	internalformat;	     \
2039ea1d6981Smrg    CARD32	width;		     \
2040ea1d6981Smrg    CARD32	format;		     \
2041ea1d6981Smrg    CARD32	type
204217ca54c3Smrg
204317ca54c3Smrg#define __GLX_COLOR_TABLE_HDR_SIZE 20
204417ca54c3Smrg
204517ca54c3Smrg#define __GLX_COLOR_TABLE_CMD_HDR_SIZE \
204617ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_COLOR_TABLE_HDR_SIZE)
204717ca54c3Smrg
204817ca54c3Smrgtypedef struct {
204917ca54c3Smrg    __GLX_RENDER_HDR;
205017ca54c3Smrg    __GLX_PIXEL_HDR;
205117ca54c3Smrg    __GLX_COLOR_TABLE_HDR;
205217ca54c3Smrg} __GLXColorTableHeader;
205317ca54c3Smrg
205417ca54c3Smrgtypedef struct {
205517ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
205617ca54c3Smrg    __GLX_PIXEL_HDR;
205717ca54c3Smrg    __GLX_COLOR_TABLE_HDR;
205817ca54c3Smrg} __GLXColorTableLargeHeader;
205917ca54c3Smrg
206017ca54c3Smrgtypedef struct {
206117ca54c3Smrg    __GLX_PIXEL_HDR;
206217ca54c3Smrg    __GLX_COLOR_TABLE_HDR;
206317ca54c3Smrg} __GLXdispatchColorTableHeader;
206417ca54c3Smrg
206517ca54c3Smrg/*
206617ca54c3Smrg** Data that is specific to a glColorSubTable call
206717ca54c3Smrg**	The data is sent in the following order:
206817ca54c3Smrg**	Render or RenderLarge header
206917ca54c3Smrg**	Pixel header
207017ca54c3Smrg**	ColorTable header
207117ca54c3Smrg*/
207217ca54c3Smrg
207317ca54c3Smrg#define __GLX_COLOR_SUBTABLE_HDR    \
2074ea1d6981Smrg    CARD32	target;		    \
2075ea1d6981Smrg    CARD32	start;		    \
2076ea1d6981Smrg    CARD32	count;		    \
2077ea1d6981Smrg    CARD32	format;		    \
2078ea1d6981Smrg    CARD32	type
207917ca54c3Smrg
208017ca54c3Smrg#define __GLX_COLOR_SUBTABLE_HDR_SIZE 20
208117ca54c3Smrg
208217ca54c3Smrg#define __GLX_COLOR_SUBTABLE_CMD_HDR_SIZE \
208317ca54c3Smrg    (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + \
208417ca54c3Smrg     __GLX_COLOR_SUBTABLE_HDR_SIZE)
208517ca54c3Smrg
208617ca54c3Smrgtypedef struct {
208717ca54c3Smrg    __GLX_RENDER_HDR;
208817ca54c3Smrg    __GLX_PIXEL_HDR;
208917ca54c3Smrg    __GLX_COLOR_SUBTABLE_HDR;
209017ca54c3Smrg} __GLXColorSubTableHeader;
209117ca54c3Smrg
209217ca54c3Smrgtypedef struct {
209317ca54c3Smrg    __GLX_RENDER_LARGE_HDR;
209417ca54c3Smrg    __GLX_PIXEL_HDR;
209517ca54c3Smrg    __GLX_COLOR_SUBTABLE_HDR;
209617ca54c3Smrg} __GLXColorSubTableLargeHeader;
209717ca54c3Smrg
209817ca54c3Smrgtypedef struct {
209917ca54c3Smrg    __GLX_PIXEL_HDR;
210017ca54c3Smrg    __GLX_COLOR_SUBTABLE_HDR;
210117ca54c3Smrg} __GLXdispatchColorSubTableHeader;
210217ca54c3Smrg
210317ca54c3Smrg#define GLX_WINDOW_TYPE		1
210417ca54c3Smrg#define GLX_PIXMAP_TYPE		2
210517ca54c3Smrg#define GLX_VIDEO_SOURCE_TYPE	3
210617ca54c3Smrg#define GLX_PBUFFER_TYPE	4
210717ca54c3Smrg/* 5 is for DM_PBUFFER */
2108ea1d6981Smrg#define GLX_GLXWINDOW_TYPE	6
210917ca54c3Smrg
211017ca54c3Smrg/*****************************************************************************/
211117ca54c3Smrg
211217ca54c3Smrg/*
211317ca54c3Smrg** Restore these definitions back to the typedefs in glx.h
211417ca54c3Smrg*/
211517ca54c3Smrg#undef GLXContextID
211617ca54c3Smrg#undef GLXPixmap
211717ca54c3Smrg#undef GLXDrawable
211817ca54c3Smrg#undef GLXPbuffer
211917ca54c3Smrg#undef GLXWindow
212017ca54c3Smrg#undef GLXFBConfigID
212117ca54c3Smrg#undef GLXFBConfigIDSGIX
212217ca54c3Smrg#undef GLXPbufferSGIX
212317ca54c3Smrg
212417ca54c3Smrg
212517ca54c3Smrg/* Opcodes for GLX commands */
212617ca54c3Smrg
212717ca54c3Smrg#define X_GLXRender                       1
212817ca54c3Smrg#define X_GLXRenderLarge                  2
212917ca54c3Smrg#define X_GLXCreateContext                3
213017ca54c3Smrg#define X_GLXDestroyContext               4
213117ca54c3Smrg#define X_GLXMakeCurrent                  5
213217ca54c3Smrg#define X_GLXIsDirect                     6
213317ca54c3Smrg#define X_GLXQueryVersion                 7
213417ca54c3Smrg#define X_GLXWaitGL                       8
213517ca54c3Smrg#define X_GLXWaitX                        9
213617ca54c3Smrg#define X_GLXCopyContext                 10
213717ca54c3Smrg#define X_GLXSwapBuffers                 11
213817ca54c3Smrg#define X_GLXUseXFont                    12
213917ca54c3Smrg#define X_GLXCreateGLXPixmap             13
214017ca54c3Smrg#define X_GLXGetVisualConfigs            14
214117ca54c3Smrg#define X_GLXDestroyGLXPixmap            15
214217ca54c3Smrg#define X_GLXVendorPrivate               16
214317ca54c3Smrg#define X_GLXVendorPrivateWithReply      17
214417ca54c3Smrg#define X_GLXQueryExtensionsString       18
214517ca54c3Smrg#define X_GLXQueryServerString           19
214617ca54c3Smrg#define X_GLXClientInfo                  20
214717ca54c3Smrg#define X_GLXGetFBConfigs                21
214817ca54c3Smrg#define X_GLXCreatePixmap                22
214917ca54c3Smrg#define X_GLXDestroyPixmap               23
215017ca54c3Smrg#define X_GLXCreateNewContext            24
215117ca54c3Smrg#define X_GLXQueryContext                25
215217ca54c3Smrg#define X_GLXMakeContextCurrent          26
215317ca54c3Smrg#define X_GLXCreatePbuffer               27
215417ca54c3Smrg#define X_GLXDestroyPbuffer              28
215517ca54c3Smrg#define X_GLXGetDrawableAttributes       29
215617ca54c3Smrg#define X_GLXChangeDrawableAttributes    30
215717ca54c3Smrg#define X_GLXCreateWindow                31
215817ca54c3Smrg#define X_GLXDestroyWindow               32
215917ca54c3Smrg#define X_GLXSetClientInfoARB            33
216017ca54c3Smrg#define X_GLXCreateContextAttribsARB     34
216117ca54c3Smrg#define X_GLXSetClientInfo2ARB           35
216217ca54c3Smrg
216317ca54c3Smrg/* typo compatibility with older headers */
216417ca54c3Smrg#define X_GLXCreateContextAtrribsARB     34
216517ca54c3Smrg#define X_GLXSetConfigInfo2ARB           35
216617ca54c3Smrg
216717ca54c3Smrg/* Opcodes for single commands (part of GLX command space) */
216817ca54c3Smrg
216917ca54c3Smrg#define X_GLsop_NewList                    101
217017ca54c3Smrg#define X_GLsop_EndList                    102
217117ca54c3Smrg#define X_GLsop_DeleteLists                103
217217ca54c3Smrg#define X_GLsop_GenLists                   104
217317ca54c3Smrg#define X_GLsop_FeedbackBuffer             105
217417ca54c3Smrg#define X_GLsop_SelectBuffer               106
217517ca54c3Smrg#define X_GLsop_RenderMode                 107
217617ca54c3Smrg#define X_GLsop_Finish                     108
217717ca54c3Smrg#define X_GLsop_Flush                      142
217817ca54c3Smrg#define X_GLsop_PixelStoref                109
217917ca54c3Smrg#define X_GLsop_PixelStorei                110
218017ca54c3Smrg#define X_GLsop_ReadPixels                 111
218117ca54c3Smrg#define X_GLsop_GetBooleanv                112
218217ca54c3Smrg#define X_GLsop_GetClipPlane               113
218317ca54c3Smrg#define X_GLsop_GetDoublev                 114
218417ca54c3Smrg#define X_GLsop_GetError                   115
218517ca54c3Smrg#define X_GLsop_GetFloatv                  116
218617ca54c3Smrg#define X_GLsop_GetIntegerv                117
218717ca54c3Smrg#define X_GLsop_GetLightfv                 118
218817ca54c3Smrg#define X_GLsop_GetLightiv                 119
218917ca54c3Smrg#define X_GLsop_GetMapdv                   120
219017ca54c3Smrg#define X_GLsop_GetMapfv                   121
219117ca54c3Smrg#define X_GLsop_GetMapiv                   122
219217ca54c3Smrg#define X_GLsop_GetMaterialfv              123
219317ca54c3Smrg#define X_GLsop_GetMaterialiv              124
219417ca54c3Smrg#define X_GLsop_GetPixelMapfv              125
219517ca54c3Smrg#define X_GLsop_GetPixelMapuiv             126
219617ca54c3Smrg#define X_GLsop_GetPixelMapusv             127
219717ca54c3Smrg#define X_GLsop_GetPolygonStipple          128
219817ca54c3Smrg#define X_GLsop_GetString                  129
219917ca54c3Smrg#define X_GLsop_GetTexEnvfv                130
220017ca54c3Smrg#define X_GLsop_GetTexEnviv                131
220117ca54c3Smrg#define X_GLsop_GetTexGendv                132
220217ca54c3Smrg#define X_GLsop_GetTexGenfv                133
220317ca54c3Smrg#define X_GLsop_GetTexGeniv                134
220417ca54c3Smrg#define X_GLsop_GetTexImage                135
220517ca54c3Smrg#define X_GLsop_GetTexParameterfv          136
220617ca54c3Smrg#define X_GLsop_GetTexParameteriv          137
220717ca54c3Smrg#define X_GLsop_GetTexLevelParameterfv     138
220817ca54c3Smrg#define X_GLsop_GetTexLevelParameteriv     139
220917ca54c3Smrg#define X_GLsop_IsEnabled                  140
221017ca54c3Smrg#define X_GLsop_IsList                     141
221117ca54c3Smrg#define X_GLsop_AreTexturesResident        143
221217ca54c3Smrg#define X_GLsop_DeleteTextures             144
221317ca54c3Smrg#define X_GLsop_GenTextures                145
221417ca54c3Smrg#define X_GLsop_IsTexture                  146
221517ca54c3Smrg#define X_GLsop_GetColorTable              147
221617ca54c3Smrg#define X_GLsop_GetColorTableParameterfv   148
221717ca54c3Smrg#define X_GLsop_GetColorTableParameteriv   149
221817ca54c3Smrg#define X_GLsop_GetConvolutionFilter       150
221917ca54c3Smrg#define X_GLsop_GetConvolutionParameterfv  151
222017ca54c3Smrg#define X_GLsop_GetConvolutionParameteriv  152
222117ca54c3Smrg#define X_GLsop_GetSeparableFilter         153
222217ca54c3Smrg#define X_GLsop_GetHistogram               154
222317ca54c3Smrg#define X_GLsop_GetHistogramParameterfv    155
222417ca54c3Smrg#define X_GLsop_GetHistogramParameteriv    156
222517ca54c3Smrg#define X_GLsop_GetMinmax                  157
222617ca54c3Smrg#define X_GLsop_GetMinmaxParameterfv       158
222717ca54c3Smrg#define X_GLsop_GetMinmaxParameteriv       159
222817ca54c3Smrg#define X_GLsop_GetCompressedTexImage      160
222917ca54c3Smrg
223017ca54c3Smrg
223117ca54c3Smrg/* Opcodes for rendering commands */
223217ca54c3Smrg
223317ca54c3Smrg#define X_GLrop_CallList                     1
223417ca54c3Smrg#define X_GLrop_CallLists                    2
223517ca54c3Smrg#define X_GLrop_ListBase                     3
223617ca54c3Smrg#define X_GLrop_Begin                        4
223717ca54c3Smrg#define X_GLrop_Bitmap                       5
223817ca54c3Smrg#define X_GLrop_Color3bv                     6
223917ca54c3Smrg#define X_GLrop_Color3dv                     7
224017ca54c3Smrg#define X_GLrop_Color3fv                     8
224117ca54c3Smrg#define X_GLrop_Color3iv                     9
224217ca54c3Smrg#define X_GLrop_Color3sv                    10
224317ca54c3Smrg#define X_GLrop_Color3ubv                   11
224417ca54c3Smrg#define X_GLrop_Color3uiv                   12
224517ca54c3Smrg#define X_GLrop_Color3usv                   13
224617ca54c3Smrg#define X_GLrop_Color4bv                    14
224717ca54c3Smrg#define X_GLrop_Color4dv                    15
224817ca54c3Smrg#define X_GLrop_Color4fv                    16
224917ca54c3Smrg#define X_GLrop_Color4iv                    17
225017ca54c3Smrg#define X_GLrop_Color4sv                    18
225117ca54c3Smrg#define X_GLrop_Color4ubv                   19
225217ca54c3Smrg#define X_GLrop_Color4uiv                   20
225317ca54c3Smrg#define X_GLrop_Color4usv                   21
225417ca54c3Smrg#define X_GLrop_EdgeFlagv                   22
225517ca54c3Smrg#define X_GLrop_End                         23
225617ca54c3Smrg#define X_GLrop_Indexdv                     24
225717ca54c3Smrg#define X_GLrop_Indexfv                     25
225817ca54c3Smrg#define X_GLrop_Indexiv                     26
225917ca54c3Smrg#define X_GLrop_Indexsv                     27
226017ca54c3Smrg#define X_GLrop_Normal3bv                   28
226117ca54c3Smrg#define X_GLrop_Normal3dv                   29
226217ca54c3Smrg#define X_GLrop_Normal3fv                   30
226317ca54c3Smrg#define X_GLrop_Normal3iv                   31
226417ca54c3Smrg#define X_GLrop_Normal3sv                   32
226517ca54c3Smrg#define X_GLrop_RasterPos2dv                33
226617ca54c3Smrg#define X_GLrop_RasterPos2fv                34
226717ca54c3Smrg#define X_GLrop_RasterPos2iv                35
226817ca54c3Smrg#define X_GLrop_RasterPos2sv                36
226917ca54c3Smrg#define X_GLrop_RasterPos3dv                37
227017ca54c3Smrg#define X_GLrop_RasterPos3fv                38
227117ca54c3Smrg#define X_GLrop_RasterPos3iv                39
227217ca54c3Smrg#define X_GLrop_RasterPos3sv                40
227317ca54c3Smrg#define X_GLrop_RasterPos4dv                41
227417ca54c3Smrg#define X_GLrop_RasterPos4fv                42
227517ca54c3Smrg#define X_GLrop_RasterPos4iv                43
227617ca54c3Smrg#define X_GLrop_RasterPos4sv                44
227717ca54c3Smrg#define X_GLrop_Rectdv                      45
227817ca54c3Smrg#define X_GLrop_Rectfv                      46
227917ca54c3Smrg#define X_GLrop_Rectiv                      47
228017ca54c3Smrg#define X_GLrop_Rectsv                      48
228117ca54c3Smrg#define X_GLrop_TexCoord1dv                 49
228217ca54c3Smrg#define X_GLrop_TexCoord1fv                 50
228317ca54c3Smrg#define X_GLrop_TexCoord1iv                 51
228417ca54c3Smrg#define X_GLrop_TexCoord1sv                 52
228517ca54c3Smrg#define X_GLrop_TexCoord2dv                 53
228617ca54c3Smrg#define X_GLrop_TexCoord2fv                 54
228717ca54c3Smrg#define X_GLrop_TexCoord2iv                 55
228817ca54c3Smrg#define X_GLrop_TexCoord2sv                 56
228917ca54c3Smrg#define X_GLrop_TexCoord3dv                 57
229017ca54c3Smrg#define X_GLrop_TexCoord3fv                 58
229117ca54c3Smrg#define X_GLrop_TexCoord3iv                 59
229217ca54c3Smrg#define X_GLrop_TexCoord3sv                 60
229317ca54c3Smrg#define X_GLrop_TexCoord4dv                 61
229417ca54c3Smrg#define X_GLrop_TexCoord4fv                 62
229517ca54c3Smrg#define X_GLrop_TexCoord4iv                 63
229617ca54c3Smrg#define X_GLrop_TexCoord4sv                 64
229717ca54c3Smrg#define X_GLrop_Vertex2dv                   65
229817ca54c3Smrg#define X_GLrop_Vertex2fv                   66
229917ca54c3Smrg#define X_GLrop_Vertex2iv                   67
230017ca54c3Smrg#define X_GLrop_Vertex2sv                   68
230117ca54c3Smrg#define X_GLrop_Vertex3dv                   69
230217ca54c3Smrg#define X_GLrop_Vertex3fv                   70
230317ca54c3Smrg#define X_GLrop_Vertex3iv                   71
230417ca54c3Smrg#define X_GLrop_Vertex3sv                   72
230517ca54c3Smrg#define X_GLrop_Vertex4dv                   73
230617ca54c3Smrg#define X_GLrop_Vertex4fv                   74
230717ca54c3Smrg#define X_GLrop_Vertex4iv                   75
230817ca54c3Smrg#define X_GLrop_Vertex4sv                   76
230917ca54c3Smrg#define X_GLrop_ClipPlane                   77
231017ca54c3Smrg#define X_GLrop_ColorMaterial               78
231117ca54c3Smrg#define X_GLrop_CullFace                    79
231217ca54c3Smrg#define X_GLrop_Fogf                        80
231317ca54c3Smrg#define X_GLrop_Fogfv                       81
231417ca54c3Smrg#define X_GLrop_Fogi                        82
231517ca54c3Smrg#define X_GLrop_Fogiv                       83
231617ca54c3Smrg#define X_GLrop_FrontFace                   84
231717ca54c3Smrg#define X_GLrop_Hint                        85
231817ca54c3Smrg#define X_GLrop_Lightf                      86
231917ca54c3Smrg#define X_GLrop_Lightfv                     87
232017ca54c3Smrg#define X_GLrop_Lighti                      88
232117ca54c3Smrg#define X_GLrop_Lightiv                     89
232217ca54c3Smrg#define X_GLrop_LightModelf                 90
232317ca54c3Smrg#define X_GLrop_LightModelfv                91
232417ca54c3Smrg#define X_GLrop_LightModeli                 92
232517ca54c3Smrg#define X_GLrop_LightModeliv                93
232617ca54c3Smrg#define X_GLrop_LineStipple                 94
232717ca54c3Smrg#define X_GLrop_LineWidth                   95
232817ca54c3Smrg#define X_GLrop_Materialf                   96
232917ca54c3Smrg#define X_GLrop_Materialfv                  97
233017ca54c3Smrg#define X_GLrop_Materiali                   98
233117ca54c3Smrg#define X_GLrop_Materialiv                  99
233217ca54c3Smrg#define X_GLrop_PointSize                  100
233317ca54c3Smrg#define X_GLrop_PolygonMode                101
233417ca54c3Smrg#define X_GLrop_PolygonStipple             102
233517ca54c3Smrg#define X_GLrop_Scissor                    103
233617ca54c3Smrg#define X_GLrop_ShadeModel                 104
233717ca54c3Smrg#define X_GLrop_TexParameterf              105
233817ca54c3Smrg#define X_GLrop_TexParameterfv             106
233917ca54c3Smrg#define X_GLrop_TexParameteri              107
234017ca54c3Smrg#define X_GLrop_TexParameteriv             108
234117ca54c3Smrg#define X_GLrop_TexImage1D                 109
234217ca54c3Smrg#define X_GLrop_TexImage2D                 110
234317ca54c3Smrg#define X_GLrop_TexEnvf                    111
234417ca54c3Smrg#define X_GLrop_TexEnvfv                   112
234517ca54c3Smrg#define X_GLrop_TexEnvi                    113
234617ca54c3Smrg#define X_GLrop_TexEnviv                   114
234717ca54c3Smrg#define X_GLrop_TexGend                    115
234817ca54c3Smrg#define X_GLrop_TexGendv                   116
234917ca54c3Smrg#define X_GLrop_TexGenf                    117
235017ca54c3Smrg#define X_GLrop_TexGenfv                   118
235117ca54c3Smrg#define X_GLrop_TexGeni                    119
235217ca54c3Smrg#define X_GLrop_TexGeniv                   120
235317ca54c3Smrg#define X_GLrop_InitNames                  121
235417ca54c3Smrg#define X_GLrop_LoadName                   122
235517ca54c3Smrg#define X_GLrop_PassThrough                123
235617ca54c3Smrg#define X_GLrop_PopName                    124
235717ca54c3Smrg#define X_GLrop_PushName                   125
235817ca54c3Smrg#define X_GLrop_DrawBuffer                 126
235917ca54c3Smrg#define X_GLrop_Clear                      127
236017ca54c3Smrg#define X_GLrop_ClearAccum                 128
236117ca54c3Smrg#define X_GLrop_ClearIndex                 129
236217ca54c3Smrg#define X_GLrop_ClearColor                 130
236317ca54c3Smrg#define X_GLrop_ClearStencil               131
236417ca54c3Smrg#define X_GLrop_ClearDepth                 132
236517ca54c3Smrg#define X_GLrop_StencilMask                133
236617ca54c3Smrg#define X_GLrop_ColorMask                  134
236717ca54c3Smrg#define X_GLrop_DepthMask                  135
236817ca54c3Smrg#define X_GLrop_IndexMask                  136
236917ca54c3Smrg#define X_GLrop_Accum                      137
237017ca54c3Smrg#define X_GLrop_Disable                    138
237117ca54c3Smrg#define X_GLrop_Enable                     139
237217ca54c3Smrg#define X_GLrop_PopAttrib                  141
237317ca54c3Smrg#define X_GLrop_PushAttrib                 142
237417ca54c3Smrg#define X_GLrop_Map1d                      143
237517ca54c3Smrg#define X_GLrop_Map1f                      144
237617ca54c3Smrg#define X_GLrop_Map2d                      145
237717ca54c3Smrg#define X_GLrop_Map2f                      146
237817ca54c3Smrg#define X_GLrop_MapGrid1d                  147
237917ca54c3Smrg#define X_GLrop_MapGrid1f                  148
238017ca54c3Smrg#define X_GLrop_MapGrid2d                  149
238117ca54c3Smrg#define X_GLrop_MapGrid2f                  150
238217ca54c3Smrg#define X_GLrop_EvalCoord1dv               151
238317ca54c3Smrg#define X_GLrop_EvalCoord1fv               152
238417ca54c3Smrg#define X_GLrop_EvalCoord2dv               153
238517ca54c3Smrg#define X_GLrop_EvalCoord2fv               154
238617ca54c3Smrg#define X_GLrop_EvalMesh1                  155
238717ca54c3Smrg#define X_GLrop_EvalPoint1                 156
238817ca54c3Smrg#define X_GLrop_EvalMesh2                  157
238917ca54c3Smrg#define X_GLrop_EvalPoint2                 158
239017ca54c3Smrg#define X_GLrop_AlphaFunc                  159
239117ca54c3Smrg#define X_GLrop_BlendFunc                  160
239217ca54c3Smrg#define X_GLrop_LogicOp                    161
239317ca54c3Smrg#define X_GLrop_StencilFunc                162
239417ca54c3Smrg#define X_GLrop_StencilOp                  163
239517ca54c3Smrg#define X_GLrop_DepthFunc                  164
239617ca54c3Smrg#define X_GLrop_PixelZoom                  165
239717ca54c3Smrg#define X_GLrop_PixelTransferf             166
239817ca54c3Smrg#define X_GLrop_PixelTransferi             167
239917ca54c3Smrg#define X_GLrop_PixelMapfv                 168
240017ca54c3Smrg#define X_GLrop_PixelMapuiv                169
240117ca54c3Smrg#define X_GLrop_PixelMapusv                170
240217ca54c3Smrg#define X_GLrop_ReadBuffer                 171
240317ca54c3Smrg#define X_GLrop_CopyPixels                 172
240417ca54c3Smrg#define X_GLrop_DrawPixels                 173
240517ca54c3Smrg#define X_GLrop_DepthRange                 174
240617ca54c3Smrg#define X_GLrop_Frustum                    175
240717ca54c3Smrg#define X_GLrop_LoadIdentity               176
240817ca54c3Smrg#define X_GLrop_LoadMatrixf                177
240917ca54c3Smrg#define X_GLrop_LoadMatrixd                178
241017ca54c3Smrg#define X_GLrop_MatrixMode                 179
241117ca54c3Smrg#define X_GLrop_MultMatrixf                180
241217ca54c3Smrg#define X_GLrop_MultMatrixd                181
241317ca54c3Smrg#define X_GLrop_Ortho                      182
241417ca54c3Smrg#define X_GLrop_PopMatrix                  183
241517ca54c3Smrg#define X_GLrop_PushMatrix                 184
241617ca54c3Smrg#define X_GLrop_Rotated                    185
241717ca54c3Smrg#define X_GLrop_Rotatef                    186
241817ca54c3Smrg#define X_GLrop_Scaled                     187
241917ca54c3Smrg#define X_GLrop_Scalef                     188
242017ca54c3Smrg#define X_GLrop_Translated                 189
242117ca54c3Smrg#define X_GLrop_Translatef                 190
242217ca54c3Smrg#define X_GLrop_Viewport                   191
242317ca54c3Smrg#define X_GLrop_DrawArrays                 193
242417ca54c3Smrg#define X_GLrop_PolygonOffset              192
242517ca54c3Smrg#define X_GLrop_CopyTexImage1D             4119
242617ca54c3Smrg#define X_GLrop_CopyTexImage2D             4120
242717ca54c3Smrg#define X_GLrop_CopyTexSubImage1D          4121
242817ca54c3Smrg#define X_GLrop_CopyTexSubImage2D          4122
242917ca54c3Smrg#define X_GLrop_TexSubImage1D              4099
243017ca54c3Smrg#define X_GLrop_TexSubImage2D              4100
243117ca54c3Smrg#define X_GLrop_BindTexture                4117
243217ca54c3Smrg#define X_GLrop_PrioritizeTextures         4118
243317ca54c3Smrg#define X_GLrop_Indexubv                   194
243417ca54c3Smrg#define X_GLrop_BlendColor                 4096
243517ca54c3Smrg#define X_GLrop_BlendEquation              4097
243617ca54c3Smrg#define X_GLrop_ColorTable                 2053
243717ca54c3Smrg#define X_GLrop_ColorTableParameterfv      2054
243817ca54c3Smrg#define X_GLrop_ColorTableParameteriv      2055
243917ca54c3Smrg#define X_GLrop_CopyColorTable             2056
244017ca54c3Smrg#define X_GLrop_ColorSubTable              195
244117ca54c3Smrg#define X_GLrop_CopyColorSubTable          196
244217ca54c3Smrg#define X_GLrop_ConvolutionFilter1D        4101
244317ca54c3Smrg#define X_GLrop_ConvolutionFilter2D        4102
244417ca54c3Smrg#define X_GLrop_ConvolutionParameterf      4103
244517ca54c3Smrg#define X_GLrop_ConvolutionParameterfv     4104
244617ca54c3Smrg#define X_GLrop_ConvolutionParameteri      4105
244717ca54c3Smrg#define X_GLrop_ConvolutionParameteriv     4106
244817ca54c3Smrg#define X_GLrop_CopyConvolutionFilter1D    4107
244917ca54c3Smrg#define X_GLrop_CopyConvolutionFilter2D    4108
245017ca54c3Smrg#define X_GLrop_SeparableFilter2D          4109
245117ca54c3Smrg#define X_GLrop_Histogram                  4110
245217ca54c3Smrg#define X_GLrop_Minmax                     4111
245317ca54c3Smrg#define X_GLrop_ResetHistogram             4112
245417ca54c3Smrg#define X_GLrop_ResetMinmax                4113
245517ca54c3Smrg#define X_GLrop_TexImage3D                 4114
245617ca54c3Smrg#define X_GLrop_TexSubImage3D              4115
245717ca54c3Smrg#define X_GLrop_CopyTexSubImage3D          4123
245817ca54c3Smrg#define X_GLrop_DrawArraysEXT              4116
245917ca54c3Smrg
246017ca54c3Smrg/* Added for core GL version 1.3 */
246117ca54c3Smrg
246217ca54c3Smrg#define X_GLrop_ActiveTextureARB            197
246317ca54c3Smrg#define X_GLrop_MultiTexCoord1dvARB         198
246417ca54c3Smrg#define X_GLrop_MultiTexCoord1fvARB         199
246517ca54c3Smrg#define X_GLrop_MultiTexCoord1ivARB         200
246617ca54c3Smrg#define X_GLrop_MultiTexCoord1svARB         201
246717ca54c3Smrg#define X_GLrop_MultiTexCoord2dvARB         202
246817ca54c3Smrg#define X_GLrop_MultiTexCoord2fvARB         203
246917ca54c3Smrg#define X_GLrop_MultiTexCoord2ivARB         204
247017ca54c3Smrg#define X_GLrop_MultiTexCoord2svARB         205
247117ca54c3Smrg#define X_GLrop_MultiTexCoord3dvARB         206
247217ca54c3Smrg#define X_GLrop_MultiTexCoord3fvARB         207
247317ca54c3Smrg#define X_GLrop_MultiTexCoord3ivARB         208
247417ca54c3Smrg#define X_GLrop_MultiTexCoord3svARB         209
247517ca54c3Smrg#define X_GLrop_MultiTexCoord4dvARB         210
247617ca54c3Smrg#define X_GLrop_MultiTexCoord4fvARB         211
247717ca54c3Smrg#define X_GLrop_MultiTexCoord4ivARB         212
247817ca54c3Smrg#define X_GLrop_MultiTexCoord4svARB         213
247917ca54c3Smrg#define X_GLrop_CompressedTexImage1D        214
248017ca54c3Smrg#define X_GLrop_CompressedTexImage2D        215
248117ca54c3Smrg#define X_GLrop_CompressedTexImage3D        216
248217ca54c3Smrg#define X_GLrop_CompressedTexSubImage1D     217
248317ca54c3Smrg#define X_GLrop_CompressedTexSubImage2D     218
248417ca54c3Smrg#define X_GLrop_CompressedTexSubImage3D     219
248517ca54c3Smrg#define X_GLrop_SampleCoverageARB           229
248617ca54c3Smrg
248717ca54c3Smrg/* Added for core GL version 1.4 */
248817ca54c3Smrg
248917ca54c3Smrg#define X_GLrop_WindowPos3fARB              230
249017ca54c3Smrg#define X_GLrop_FogCoordfv                  4124
249117ca54c3Smrg#define X_GLrop_FogCoorddv                  4125
249217ca54c3Smrg#define X_GLrop_PointParameterfARB          2065
249317ca54c3Smrg#define X_GLrop_PointParameterfvARB         2066
249417ca54c3Smrg#define X_GLrop_SecondaryColor3bv           4126
249517ca54c3Smrg#define X_GLrop_SecondaryColor3sv           4127
249617ca54c3Smrg#define X_GLrop_SecondaryColor3iv           4128
249717ca54c3Smrg#define X_GLrop_SecondaryColor3fv           4129
249817ca54c3Smrg#define X_GLrop_SecondaryColor3dv           4130
249917ca54c3Smrg#define X_GLrop_SecondaryColor3ubv          4131
250017ca54c3Smrg#define X_GLrop_SecondaryColor3usv          4132
250117ca54c3Smrg#define X_GLrop_SecondaryColor3uiv          4133
250217ca54c3Smrg#define X_GLrop_BlendFuncSeparate           4134
250317ca54c3Smrg#define X_GLrop_PointParameteri             4221
250417ca54c3Smrg#define X_GLrop_PointParameteriv            4222
250517ca54c3Smrg
250617ca54c3Smrg/* Added for core GL version 1.5 */
250717ca54c3Smrg/* XXX opcodes not defined in the spec */
250817ca54c3Smrg
250917ca54c3Smrg/* Opcodes for Vendor Private commands */
251017ca54c3Smrg
251117ca54c3Smrg
251217ca54c3Smrg#define X_GLvop_GetConvolutionFilterEXT        1
251317ca54c3Smrg#define X_GLvop_GetConvolutionParameterfvEXT   2
251417ca54c3Smrg#define X_GLvop_GetConvolutionParameterivEXT   3
251517ca54c3Smrg#define X_GLvop_GetSeparableFilterEXT          4
251617ca54c3Smrg#define X_GLvop_GetHistogramEXT                5
251717ca54c3Smrg#define X_GLvop_GetHistogramParameterfvEXT     6
251817ca54c3Smrg#define X_GLvop_GetHistogramParameterivEXT     7
251917ca54c3Smrg#define X_GLvop_GetMinmaxEXT                   8
252017ca54c3Smrg#define X_GLvop_GetMinmaxParameterfvEXT        9
252117ca54c3Smrg#define X_GLvop_GetMinmaxParameterivEXT        10
252217ca54c3Smrg#define X_GLvop_AreTexturesResidentEXT         11
252317ca54c3Smrg#define X_GLvop_DeleteTexturesEXT              12
252417ca54c3Smrg#define X_GLvop_GenTexturesEXT                 13
252517ca54c3Smrg#define X_GLvop_IsTextureEXT                   14
252617ca54c3Smrg#define X_GLvop_GetCombinerInputParameterfvNV  1270
252717ca54c3Smrg#define X_GLvop_GetCombinerInputParameterivNV  1271
252817ca54c3Smrg#define X_GLvop_GetCombinerOutputParameterfvNV 1272
252917ca54c3Smrg#define X_GLvop_GetCombinerOutputParameterivNV 1273
253017ca54c3Smrg#define X_GLvop_GetFinalCombinerOutputParameterfvNV 1274
253117ca54c3Smrg#define X_GLvop_GetFinalCombinerOutputParameterivNV 1275
253217ca54c3Smrg#define X_GLvop_DeleteFenceNV                  1276
253317ca54c3Smrg#define X_GLvop_GenFencesNV                    1277
253417ca54c3Smrg#define X_GLvop_IsFenceNV                      1278
253517ca54c3Smrg#define X_GLvop_TestFenceNV                    1279
253617ca54c3Smrg#define X_GLvop_GetFenceivNV                   1280
253717ca54c3Smrg#define X_GLvop_AreProgramsResidentNV          1293
253817ca54c3Smrg#define X_GLvop_DeleteProgramARB               1294
253917ca54c3Smrg#define X_GLvop_GenProgramsARB                 1295
254017ca54c3Smrg#define X_GLvop_GetProgramEnvParameterfvARB    1296
254117ca54c3Smrg#define X_GLvop_GetProgramEnvParameterdvARB    1297
254217ca54c3Smrg#define X_GLvop_GetProgramEnvParameterivNV     1298
254317ca54c3Smrg#define X_GLvop_GetProgramStringNV             1299
254417ca54c3Smrg#define X_GLvop_GetTrackMatrixivNV             1300
254517ca54c3Smrg#define X_GLvop_GetVertexAttribdvARB           1301
254617ca54c3Smrg#define X_GLvop_GetVertexAttribfvARB           1302
254717ca54c3Smrg#define X_GLvop_GetVertexAttribivARB           1303
254817ca54c3Smrg#define X_GLvop_IsProgramARB                   1304
254917ca54c3Smrg#define X_GLvop_GetProgramLocalParameterfvARB  1305
255017ca54c3Smrg#define X_GLvop_GetProgramLocalParameterdvARB  1306
255117ca54c3Smrg#define X_GLvop_GetProgramivARB                1307
255217ca54c3Smrg#define X_GLvop_GetProgramStringARB            1308
255317ca54c3Smrg#define X_GLvop_GetProgramNamedParameter4fvNV  1310
255417ca54c3Smrg#define X_GLvop_GetProgramNamedParameter4dvNV  1311
255517ca54c3Smrg#define X_GLvop_SampleMaskSGIS                 2048
255617ca54c3Smrg#define X_GLvop_SamplePatternSGIS              2049
255717ca54c3Smrg#define X_GLvop_GetDetailTexFuncSGIS           4096
255817ca54c3Smrg#define X_GLvop_GetSharpenTexFuncSGIS          4097
255917ca54c3Smrg#define X_GLvop_GetColorTableSGI               4098
256017ca54c3Smrg#define X_GLvop_GetColorTableParameterfvSGI    4099
256117ca54c3Smrg#define X_GLvop_GetColorTableParameterivSGI    4100
256217ca54c3Smrg#define X_GLvop_GetTexFilterFuncSGIS           4101
256317ca54c3Smrg#define X_GLvop_GetInstrumentsSGIX             4102
256417ca54c3Smrg#define X_GLvop_InstrumentsBufferSGIX          4103
256517ca54c3Smrg#define X_GLvop_PollInstrumentsSGIX            4104
256617ca54c3Smrg#define X_GLvop_FlushRasterSGIX                4105
256717ca54c3Smrg
256817ca54c3Smrg/* Opcodes for GLX vendor private commands */
256917ca54c3Smrg
257017ca54c3Smrg#define X_GLXvop_QueryContextInfoEXT            1024
257117ca54c3Smrg#define X_GLXvop_BindTexImageEXT                1330
257217ca54c3Smrg#define X_GLXvop_ReleaseTexImageEXT             1331
257317ca54c3Smrg#define X_GLXvop_SwapIntervalSGI                65536
257417ca54c3Smrg#define X_GLXvop_MakeCurrentReadSGI             65537
257517ca54c3Smrg#define X_GLXvop_CreateGLXVideoSourceSGIX       65538
257617ca54c3Smrg#define X_GLXvop_DestroyGLXVideoSourceSGIX      65539
257717ca54c3Smrg#define X_GLXvop_GetFBConfigsSGIX               65540
257817ca54c3Smrg#define X_GLXvop_CreateContextWithConfigSGIX    65541
257917ca54c3Smrg#define X_GLXvop_CreateGLXPixmapWithConfigSGIX  65542
258017ca54c3Smrg#define X_GLXvop_CreateGLXPbufferSGIX           65543
258117ca54c3Smrg#define X_GLXvop_DestroyGLXPbufferSGIX          65544
258217ca54c3Smrg#define X_GLXvop_ChangeDrawableAttributesSGIX   65545
258317ca54c3Smrg#define X_GLXvop_GetDrawableAttributesSGIX      65546
258417ca54c3Smrg#define X_GLXvop_JoinSwapGroupSGIX              65547
258517ca54c3Smrg#define X_GLXvop_BindSwapBarrierSGIX            65548
258617ca54c3Smrg#define X_GLXvop_QueryMaxSwapBarriersSGIX       65549
258717ca54c3Smrg#define X_GLXvop_QueryHyperpipeNetworkSGIX      65550
258817ca54c3Smrg#define X_GLXvop_QueryHyperpipeConfigSGIX       65551
258917ca54c3Smrg#define X_GLXvop_HyperpipeConfigSGIX            65552
259017ca54c3Smrg#define X_GLXvop_DestroyHyperpipeConfigSGIX     65553
259117ca54c3Smrg
259217ca54c3Smrg/* ARB extension opcodes */
259317ca54c3Smrg
259417ca54c3Smrg/*  1. GL_ARB_multitexture - see GL 1.2 opcodes */
259517ca54c3Smrg/*  5. GL_ARB_multisample - see GL 1.3 opcodes */
259617ca54c3Smrg/* 12. GL_ARB_texture_compression - see GL 1.3 opcodes */
259717ca54c3Smrg/* 14. GL_ARB_point_parameters - see GL 1.4 opcodees */
259817ca54c3Smrg
259917ca54c3Smrg/* 15. GL_ARB_vertex_blend */
260017ca54c3Smrg#define X_GLrop_WeightbvARB                  220
260117ca54c3Smrg#define X_GLrop_WeightubvARB                 221
260217ca54c3Smrg#define X_GLrop_WeightsvARB                  222
260317ca54c3Smrg#define X_GLrop_WeightusvARB                 223
260417ca54c3Smrg#define X_GLrop_WeightivARB                  224
260517ca54c3Smrg#define X_GLrop_WeightuivARB                 225
260617ca54c3Smrg#define X_GLrop_VertexBlendARB               226
260717ca54c3Smrg#define X_GLrop_WeightfvARB                  227
260817ca54c3Smrg#define X_GLrop_WeightdvARB                  228
260917ca54c3Smrg
261017ca54c3Smrg/* 16. GL_ARB_matrix_palette */
261117ca54c3Smrg/* XXX opcodes not defined in the spec */
261217ca54c3Smrg
261317ca54c3Smrg/* 25. GL_ARB_window_pos - see GL 1.4 opcodes */
261417ca54c3Smrg
261517ca54c3Smrg/* 26. GL_ARB_vertex_program */
261617ca54c3Smrg#define X_GLrop_BindProgramARB              4180
261717ca54c3Smrg#define X_GLrop_ProgramEnvParameter4fvARB   4184
261817ca54c3Smrg#define X_GLrop_ProgramEnvParameter4dvARB   4185
261917ca54c3Smrg#define X_GLrop_VertexAttrib1svARB          4189
262017ca54c3Smrg#define X_GLrop_VertexAttrib2svARB          4190
262117ca54c3Smrg#define X_GLrop_VertexAttrib3svARB          4191
262217ca54c3Smrg#define X_GLrop_VertexAttrib4svARB          4192
262317ca54c3Smrg#define X_GLrop_VertexAttrib1fvARB          4193
262417ca54c3Smrg#define X_GLrop_VertexAttrib2fvARB          4194
262517ca54c3Smrg#define X_GLrop_VertexAttrib3fvARB          4195
262617ca54c3Smrg#define X_GLrop_VertexAttrib4fvARB          4196
262717ca54c3Smrg#define X_GLrop_VertexAttrib1dvARB          4197
262817ca54c3Smrg#define X_GLrop_VertexAttrib2dvARB          4198
262917ca54c3Smrg#define X_GLrop_VertexAttrib3dvARB          4199
263017ca54c3Smrg#define X_GLrop_ProgramLocalParameter4fvARB 4215
263117ca54c3Smrg#define X_GLrop_ProgramLocalParameter4dvARB 4216
263217ca54c3Smrg#define X_GLrop_ProgramStringARB            4217
263317ca54c3Smrg#define X_GLrop_VertexAttrib4dvARB          4200
263417ca54c3Smrg#define X_GLrop_VertexAttrib4NubvARB        4201
263517ca54c3Smrg#define X_GLrop_VertexAttrib4bvARB          4230
263617ca54c3Smrg#define X_GLrop_VertexAttrib4ivARB          4231
263717ca54c3Smrg#define X_GLrop_VertexAttrib4ubvARB         4232
263817ca54c3Smrg#define X_GLrop_VertexAttrib4usvARB         4233
263917ca54c3Smrg#define X_GLrop_VertexAttrib4uivARB         4234
264017ca54c3Smrg#define X_GLrop_VertexAttrib4NbvARB         4235
264117ca54c3Smrg#define X_GLrop_VertexAttrib4NsvARB         4236
264217ca54c3Smrg#define X_GLrop_VertexAttrib4NivARB         4237
264317ca54c3Smrg#define X_GLrop_VertexAttrib4NusvARB        4238
264417ca54c3Smrg#define X_GLrop_VertexAttrib4NuivARB        4239
264517ca54c3Smrg
264617ca54c3Smrg/* 27. GL_ARB_fragment_program - see GL_ARB_vertex_program opcodes */
264717ca54c3Smrg
264817ca54c3Smrg/* 29. GL_ARB_occlusion_query */
264917ca54c3Smrg/* XXX opcodes not defined in the spec */
265017ca54c3Smrg
265117ca54c3Smrg
265217ca54c3Smrg/* New extension opcodes */
265317ca54c3Smrg
265417ca54c3Smrg/* 145. GL_EXT_secondary_color - see GL 1.4 opcodes */
265517ca54c3Smrg
265617ca54c3Smrg/* 188. GL_EXT_vertex_weighting */
265717ca54c3Smrg#define X_GLrop_VertexWeightfvEXT           4135
265817ca54c3Smrg
265917ca54c3Smrg/* 191. GL_NV_register_combiners */
266017ca54c3Smrg#define X_GLrop_CombinerParameterfNV        4136
266117ca54c3Smrg#define X_GLrop_CombinerParameterfvNV       4137
266217ca54c3Smrg#define X_GLrop_CombinerParameteriNV        4138
266317ca54c3Smrg#define X_GLrop_CombinerParameterivNV       4139
266417ca54c3Smrg#define X_GLrop_CombinerInputNV             4140
266517ca54c3Smrg#define X_GLrop_CombinerOutputNV            4141
266617ca54c3Smrg#define X_GLrop_FinalCombinerInputNV        4142
266717ca54c3Smrg
266817ca54c3Smrg/* 222. GL_NV_fence */
266917ca54c3Smrg#define X_GLrop_SetFenceNV                  4143
267017ca54c3Smrg#define X_GLrop_FinishFenceNV               4144
267117ca54c3Smrg
267217ca54c3Smrg/* 227. GL_NV_register_combiners2 */
267317ca54c3Smrg/* XXX opcodes not defined in the spec */
267417ca54c3Smrg
267517ca54c3Smrg/* 233. GL_NV_vertex_program - see also GL_ARB_vertex_program opcodes */
267617ca54c3Smrg#define X_GLrop_ExecuteProgramNV            4181
267717ca54c3Smrg#define X_GLrop_RequestResidentProgramsNV   4182
267817ca54c3Smrg#define X_GLrop_LoadProgamNV                4183
267917ca54c3Smrg#define X_GLrop_ProgramParameters4fvNV      4186
268017ca54c3Smrg#define X_GLrop_ProgramParameters4dvNV      4187
268117ca54c3Smrg#define X_GLrop_TrackMatrixNV               4188
268217ca54c3Smrg#define X_GLrop_VertexAttribs1svNV          4202
268317ca54c3Smrg#define X_GLrop_VertexAttribs2svNV          4203
268417ca54c3Smrg#define X_GLrop_VertexAttribs3svNV          4204
268517ca54c3Smrg#define X_GLrop_VertexAttribs4svNV          4205
268617ca54c3Smrg#define X_GLrop_VertexAttribs1fvNV          4206
268717ca54c3Smrg#define X_GLrop_VertexAttribs2fvNV          4207
268817ca54c3Smrg#define X_GLrop_VertexAttribs3fvNV          4208
268917ca54c3Smrg#define X_GLrop_VertexAttribs4fvNV          4209
269017ca54c3Smrg#define X_GLrop_VertexAttribs1dvNV          4210
269117ca54c3Smrg#define X_GLrop_VertexAttribs2dvNV          4211
269217ca54c3Smrg#define X_GLrop_VertexAttribs3dvNV          4212
269317ca54c3Smrg#define X_GLrop_VertexAttribs4dvNV          4213
269417ca54c3Smrg#define X_GLrop_VertexAttribs4ubvNV         4214
269517ca54c3Smrg
269617ca54c3Smrg/* 261. GL_NV_occlusion_query */
269717ca54c3Smrg/* XXX opcodes not defined in the spec */
269817ca54c3Smrg
269917ca54c3Smrg/* 262. GL_NV_point_sprite - see GL 1.4 opcodes */
270017ca54c3Smrg
270117ca54c3Smrg/* 268. GL_EXT_stencil_two_side */
270217ca54c3Smrg#define X_GLrop_ActiveStencilFaceEXT        4220
270317ca54c3Smrg
270417ca54c3Smrg/* 282. GL_NV_fragment_program - see also GL_NV_vertex_program and GL_ARB_vertex_program opcodes */
270517ca54c3Smrg#define X_GLrop_ProgramNamedParameter4fvNV  4218
270617ca54c3Smrg#define X_GLrop_ProgramNamedParameter4dvNV  4219
270717ca54c3Smrg
270817ca54c3Smrg/* 285. GL_NV_primitive_restart */
270917ca54c3Smrg/* XXX opcodes not defined in the spec */
271017ca54c3Smrg
271117ca54c3Smrg/* 297. GL_EXT_depth_bounds_test */
271217ca54c3Smrg#define X_GLrop_DepthBoundsEXT              4229
271317ca54c3Smrg
271417ca54c3Smrg/* 299. GL_EXT_blend_equation_separate */
271517ca54c3Smrg#define X_GLrop_BlendEquationSeparateEXT    4228
271617ca54c3Smrg
271717ca54c3Smrg/* 310. GL_EXT_framebuffer_object */
271817ca54c3Smrg#define X_GLvop_IsRenderbufferEXT                      1422
271917ca54c3Smrg#define X_GLvop_GenRenderbuffersEXT                    1423
272017ca54c3Smrg#define X_GLvop_GetRenderbufferParameterivEXT          1424
272117ca54c3Smrg#define X_GLvop_IsFramebufferEXT                       1425
272217ca54c3Smrg#define X_GLvop_GenFramebuffersEXT                     1426
272317ca54c3Smrg#define X_GLvop_CheckFramebufferStatusEXT              1427
272417ca54c3Smrg#define X_GLvop_GetFramebufferAttachmentParameterivEXT 1428
272517ca54c3Smrg
272617ca54c3Smrg#endif /* _GLX_glxproto_h_ */
2727