windows-nt/Source/XPSP1/NT/multimedia/opengl/exts/defs/glxproto.h
2020-09-26 16:20:57 +08:00

319 lines
9.3 KiB
C

/* Requests */
/*
** glXVendorPrivate request.
** Used for glXVendorPrivate and glXVendorPrivateWithReply requests.
** GLX vendor private request. Commands that go over as vendor private GLX
** protocol requests use this structure. The glxCode will be one of the
** X_GLvop opcodes.
*/
typedef struct GLXVendorPrivate {
CARD8 reqType;
CARD8 glxCode;
CARD16 length B16;
CARD32 vendorCode B32; /* vendor-specific opcode */
GLXContextTag contextTag B32;
/*
** More data may follow; this is just the header.
*/
} xGLXVendorPrivateReq;
#define sz_xGLXVendorPrivateReq 12
/*
** glXSwapIntervalSGI (VendorPrivate) request.
*/
typedef struct GLXSwapIntervalSGI {
CARD8 reqType;
CARD8 glxCode;
CARD16 length B16;
CARD32 vendorCode B32; /* vendor-specific opcode */
GLXContextTag contextTag B32;
CARD32 interval B32;
} xGLXSwapIntervalSGIReq;
#define sz_xGLXSwapIntervalSGIReq 16
/*
** glXMakeCurrentRead request
*/
typedef struct GLXMakeCurrentRead {
CARD8 reqType;
CARD8 glxCode;
CARD16 length B16;
CARD32 vendorCode B32; /* vendor-specific opcode */
GLXContextTag oldContextTag B32;
GLXDrawable drawable B32;
GLXDrawable readdrawable B32;
GLXContextID context B32;
} xGLXMakeCurrentReadReq;
#define sz_xGLXMakeCurrentReadReq 20
/************************************************************************/
/* Replies */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 width B32;
CARD32 height B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xGLXGetSeparableFilterEXTReply;
#define sz_xGLXGetSeparableFilterEXT 32
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 width B32;
CARD32 height B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xGLXGetConvolutionFilterEXTReply;
#define sz_xGLXGetConvolutionFilterEXTReply 32
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 width B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xGLXGetHistogramEXTReply;
#define sz_xGLXGetHistogramEXTReply 32
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xGLXGetMinmaxEXTReply;
#define sz_xGLXGetMinmaxEXTReply 32
/*
** This reply structure is used for all Vendor Private replies. Vendor
** Private replies can ship up to 24 bytes within the header or can
** be variable sized, in which case, the reply length field indicates
** the number of words of data which follow the header.
*/
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 retval B32;
CARD32 size B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xGLXVendorPrivReply;
#define sz_xGLXVendorPrivReply 32
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
GLXContextTag contextTag B32;
CARD32 writeVid B32;
CARD32 writeType B32;
CARD32 readVid B32;
CARD32 readType B32;
CARD32 pad6 B32;
} xGLXMakeCurrentReadReply;
#define sz_xGLXMakeCurrentReadReply 32
/************************************************************************/
/*
** Data that is specific to a glTexSubImage3D and 4D calls. The
** data is sent in the following order:
** Render or RenderLarge header
** Pixel header
** TexSubImage header
** When a glTexSubImage3D call is made, the woffset and size4d fields
** are unexamined by the server and are considered to be padding.
*/
#define __GLX_TEXSUBIMAGE_3D4D_HDR \
CARD32 target B32; \
CARD32 level B32; \
CARD32 xoffset B32; \
CARD32 yoffset B32; \
CARD32 zoffset B32; \
CARD32 woffset B32; \
CARD32 width B32; \
CARD32 height B32; \
CARD32 depth B32; \
CARD32 size4d B32; \
CARD32 format B32; \
CARD32 type B32; \
CARD32 nullImage \
#define __GLX_TEXSUBIMAGE_3D4D_HDR_SIZE 52
#define __GLX_TEXSUBIMAGE_3D4D_CMD_HDR_SIZE \
(__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D4D_HDR_SIZE + \
__GLX_TEXSUBIMAGE_3D4D_HDR_SIZE)
#define __GLX_TEXSUBIMAGE_3D4D_CMD_DISPATCH_HDR_SIZE \
(__GLX_PIXEL_3D4D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D4D_HDR_SIZE)
typedef struct {
__GLX_RENDER_HDR;
__GLX_PIXEL_3D4D_HDR;
__GLX_TEXSUBIMAGE_3D4D_HDR;
} __GLXtexSubImage3D4DHeader;
typedef struct {
__GLX_RENDER_LARGE_HDR;
__GLX_PIXEL_3D4D_HDR;
__GLX_TEXSUBIMAGE_3D4D_HDR;
} __GLXtexSubImage3D4DLargeHeader;
typedef struct {
__GLX_PIXEL_3D4D_HDR;
__GLX_TEXSUBIMAGE_3D4D_HDR;
} __GLXdispatchTexSubImage3D4DHeader;
/*
** Data that is specific to a glConvolutionFilter1DEXT or glConvolutionFilter2DEXT
** call. The data is sent in the following order:
** Render or RenderLarge header
** Pixel header
** TexImage header
** When a glConvolutionFilter1D call the height field is unexamined by the server.
*/
#define __GLX_CONV_FILT_HDR \
CARD32 target B32; \
CARD32 internalformat B32; \
CARD32 width B32; \
CARD32 height B32; \
CARD32 format B32; \
CARD32 type B32
#define __GLX_CONV_FILT_HDR_SIZE 24
#define __GLX_CONV_FILT_CMD_HDR_SIZE \
(__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
#define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \
(__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
typedef struct {
__GLX_RENDER_HDR;
__GLX_PIXEL_HDR;
__GLX_CONV_FILT_HDR;
} __GLXConvolutionFilterHeader;
typedef struct {
__GLX_RENDER_LARGE_HDR;
__GLX_PIXEL_HDR;
__GLX_CONV_FILT_HDR;
} __GLXConvolutionFilterLargeHeader;
typedef struct {
__GLX_PIXEL_HDR;
__GLX_CONV_FILT_HDR;
} __GLXdispatchConvolutionFilterHeader;
/*****************************************************************************/
/* Opcodes for GLX commands */
#define X_GLXVendorPrivate 16
#define X_GLXVendorPrivateWithReply 17
#define X_GLXQueryServerString 19
#define X_GLXClientInfo 20
/* Opcodes for single commands (part of GLX command space) */
#define X_GLrop_BlendColorEXT 4096
#define X_GLrop_BlendEquationEXT 4097
#define X_GLrop_PolygonOffsetEXT 4098
#define X_GLrop_TexSubImage1DEXT 4099
#define X_GLrop_TexSubImage2DEXT 4100
#define X_GLrop_SampleMaskSGIS 2048
#define X_GLrop_SamplePatternSGIS 2049
#define X_GLrop_TagSampleBufferSGIX 2050
#define X_GLrop_ConvolutionFilter1DEXT 4101
#define X_GLrop_ConvolutionFilter2DEXT 4102
#define X_GLrop_ConvolutionParameterfEXT 4103
#define X_GLrop_ConvolutionParameterfvEXT 4104
#define X_GLrop_ConvolutionParameteriEXT 4105
#define X_GLrop_ConvolutionParameterivEXT 4106
#define X_GLrop_CopyConvolutionFilter1DEXT 4107
#define X_GLrop_CopyConvolutionFilter2DEXT 4108
#define X_GLrop_SeparableFilter2DEXT 4109
#define X_GLrop_HistogramEXT 4110
#define X_GLrop_MinmaxEXT 4111
#define X_GLrop_ResetHistogramEXT 4112
#define X_GLrop_ResetMinmaxEXT 4113
#define X_GLrop_TexImage3DEXT 4114
#define X_GLrop_TexSubImage3DEXT 4115
#define X_GLrop_DetailTexFuncSGIS 2051
#define X_GLrop_SharpenTexFuncSGIS 2052
#define X_GLrop_BindTextureEXT 4117
#define X_GLrop_PrioritizeTexturesEXT 4118
#define X_GLrop_ColorTableSGI 2053
#define X_GLrop_ColorTableParameterfvSGI 2054
#define X_GLrop_ColorTableParameterivSGI 2055
#define X_GLrop_CopyColorTableSGI 2056
#define X_GLrop_TexColorTableParameterfvSGI 2057
#define X_GLrop_TexColorTableParameterivSGI 2058
/* Opcodes for vendor private commands */
#define X_GLvop_GetConvolutionFilterEXT 1
#define X_GLvop_GetConvolutionParameterfvEXT 2
#define X_GLvop_GetConvolutionParameterivEXT 3
#define X_GLvop_GetSeparableFilterEXT 4
#define X_GLvop_GetHistogramEXT 5
#define X_GLvop_GetHistogramParameterfvEXT 6
#define X_GLvop_GetHistogramParameterivEXT 7
#define X_GLvop_GetMinmaxEXT 8
#define X_GLvop_GetMinmaxParameterfvEXT 9
#define X_GLvop_GetMinmaxParameterivEXT 10
#define X_GLvop_GetDetailTexFuncSGIS 4096
#define X_GLvop_GetSharpenTexFuncSGIS 4097
#define X_GLvop_AreTexturesResidentEXT 11
#define X_GLvop_DeleteTexturesEXT 12
#define X_GLvop_GenTexturesEXT 13
#define X_GLvop_IsTextureEXT 14
#define X_GLvop_GetColorTableSGI 4098
#define X_GLvop_GetColorTableParameterfvSGI 4099
#define X_GLvop_GetColorTableParameterivSGI 4100
#define X_GLvop_GetTexColorTableParameterfvSGI 4101
#define X_GLvop_GetTexColorTableParameterivSGI 4102
/* Opcodes for GLX vendor private commands */
#define X_GLXvop_SwapIntervalSGI 65536
#define X_GLXvop_MakeCurrentReadSGI 65537
#define X_GLXvop_CreateGLXVideoSourceSGIX 65538
#define X_GLXvop_DestroyGLXVideoSourceSGIX 65539