Windows NT 4.0 source code leak
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*
Copyright (c) 1994, 1995, Microsoft Corporation
Module Name:
rx.h
Abstract:
Defines and types for 3D DDI Extension Interface.
If WINDDI.H is to be included, it must be included before this file (applies to NT only).
*/
#ifndef _RX_
#define _RX_
#define RX_VERSION_MAJOR 1
#define RX_VERSION_MINOR 0
/* Escape through which all 3D DDI functionality is accessed */
#ifndef RXFUNCS
#define RXFUNCS 3076
#endif
/* 3D DDI command identifiers */
#define RXCMD_ALLOC_TEXTURE 1
#define RXCMD_CREATE_CONTEXT 2
#define RXCMD_DELETE_RESOURCE 3
#define RXCMD_DRAW_PRIM 4
#define RXCMD_ENABLE_BUFFERS 5
#define RXCMD_FILL_RECT 6
#define RXCMD_FLUSH 7
#define RXCMD_GET_INFO 8
#define RXCMD_LOAD_TEXTURE 9
#define RXCMD_MAP_MEM 10
#define RXCMD_POLY_DRAW_SPAN 11
#define RXCMD_QUERY_TEXTURE_MEMORY 12
#define RXCMD_READ_RECT 13
#define RXCMD_SET_STATE 14
#define RXCMD_SWAP_BUFFERS 15
#define RXCMD_TEXTURE_HEAP 16
#define RXCMD_WRITE_RECT 17
/* 3D DDI structures and type definitions */
typedef LONG LONGFIX; typedef LONG RXREAL; typedef HANDLE RXHANDLE;
typedef struct _RXCAPS { ULONG miscCaps; ULONG rasterCaps; ULONG zCmpCaps; ULONG srcBlendCaps; ULONG dstBlendCaps; ULONG alphaCmpCaps; ULONG shadeCaps; ULONG texCaps; ULONG texFilterCaps; ULONG texBlendCaps; ULONG texMaxWidth; ULONG texMaxHeight; ULONG texMinWidth; ULONG texMinHeight; ULONG texMaxBorder; ULONG rasterCalcType; ULONG fractionalRasterBits; } RXCAPS;
typedef struct _RXCOLOR { UCHAR r; UCHAR g; UCHAR b; UCHAR a; UCHAR f; UCHAR fr; UCHAR fg; UCHAR fb; } RXCOLOR;
typedef struct _RXCOLORREF { RXREAL r; RXREAL g; RXREAL b; } RXCOLORREF;
typedef struct _RXCOLORREFA { RXREAL r; RXREAL g; RXREAL b; RXREAL a; } RXCOLORREFA;
typedef struct _RXCOLORREFAF { RXREAL r; RXREAL g; RXREAL b; RXREAL a; RXREAL f; } RXCOLORREFAF;
typedef struct _RXGLOBALINFO { ULONG verMajor; ULONG verMinor; ULONG verDriver; UCHAR idStr[200]; } RXGLOBALINFO;
typedef struct _RXHDR { ULONG flags; RXHANDLE hrxRC; RXHANDLE hrxSharedMem; VOID *pSharedMem; ULONG sharedMemSize; ULONG reserved1; ULONG reserved2; ULONG reserved3; } RXHDR;
/* Only NT defines WNDOBJ, and it does it in WINDDI.H, which 3D DDI
clients will not include, so compile this structure only if WINDDI.H has been included */ #if defined(_WINDDI_)
typedef struct _RXHDR_NTPRIVATE { WNDOBJ *pwo; VOID *pBuffer; ULONG bufferSize; } RXHDR_NTPRIVATE;
#endif
typedef struct _RXLINEPAT { USHORT repFactor; USHORT linePattern; } RXLINEPAT;
typedef struct _RXPOINT { RXREAL x; RXREAL y; } RXPOINT;
typedef struct _RXPOINTINT { LONG x; LONG y; } RXPOINTINT;
typedef struct _RXPOINTZ { RXREAL x; RXREAL y; ULONG z; } RXPOINTZ;
typedef struct _RXPOINTZTEX { RXREAL x; RXREAL y; ULONG z; RXREAL w; RXREAL s; RXREAL t; } RXPOINTZTEX;
typedef struct _RXRECT { LONG x; LONG y; ULONG width; ULONG height; } RXRECT;
typedef struct _RXSHAREMEM { ULONG sourceProcessID; HANDLE hSource; ULONG offset; ULONG size; ULONG clientBaseAddress; } RXSHAREMEM;
typedef struct _RXSPAN { SHORT x; SHORT y; USHORT flags; USHORT count; } RXSPAN;
typedef struct _RXSTIPPLE { ULONG stipple[32]; } RXSTIPPLE;
typedef struct _RXSURFACEINFO { ULONG flags; ULONG colorBytesPerPixel; ULONG rDepth; ULONG gDepth; ULONG bDepth; ULONG aDepth; ULONG rBitShift; ULONG gBitShift; ULONG bBitShift; ULONG aBitShift; ULONG colorPitch; ULONG zDepth; ULONG zBytesPerPixel; ULONG zBitShift; ULONG zPitch; ULONG ditherPaletteOrigin; ULONG totalTextureMemory; ULONG perTextureTexmemOverhead; ULONG perMipmapTexmemOverhead; } RXSURFACEINFO;
typedef struct _RXTEX { RXREAL w; RXREAL s; RXREAL t; } RXTEX;
typedef struct _RXTEXMEMSTATS { ULONG totalSystemTextureMemory; ULONG freeSystemTextureMemory; ULONG totalHeapTextureMemory; ULONG freeHeapTextureMemory; } RXTEXMEMSTATS;
typedef struct _RXTEXTURE { ULONG driverPrivate; ULONG deviceFormatSize; ULONG width; ULONG height; ULONG border; ULONG texelFormat; ULONG texels[1]; } RXTEXTURE;
typedef struct _RXZTEX { ULONG z; RXREAL w; RXREAL s; RXREAL t; } RXZTEX;
/* 3D DDI command structures */
typedef struct _RXALLOCTEXTURE { ULONG command; ULONG flags; RXHANDLE hrxTextureHeap; ULONG numTextures; RXHANDLE hrxSharedMem; } RXALLOCTEXTURE;
typedef struct _RXCREATECONTEXT { ULONG command; ULONG hwnd; ULONG flags; } RXCREATECONTEXT;
typedef struct _RXDELETERESOURCE { ULONG command; RXHANDLE hrxResource; } RXDELETERESOURCE;
typedef struct _RXDRAWPRIM { ULONG command; ULONG primType; ULONG numVertices; RXHANDLE hrxSharedMemVertexData; RXHANDLE hrxSharedMemVertexPtr; VOID *pSharedMem; } RXDRAWPRIM;
typedef struct _RXENABLEBUFFERS { ULONG command; ULONG buffers; } RXENABLEBUFFERS;
typedef struct _RXFILLRECT { ULONG command; ULONG fillType; RXRECT fillRect; } RXFILLRECT;
typedef struct _RXGETINFO { ULONG command; ULONG infoType; ULONG flags; ULONG height; ULONG width; ULONG bitsPerPixel; ULONG refreshRate; } RXGETINFO;
typedef struct _RXLOADTEXTURE { ULONG command; ULONG numTextures; ULONG numColorComponents; ULONG flags; RXHANDLE hrxTextureMem; RXHANDLE hrxSharedMem; } RXLOADTEXTURE;
typedef struct _RXMAPMEM { ULONG command; ULONG action; RXHANDLE hrxSharedMem; RXSHAREMEM shareMem; } RXMAPMEM;
typedef struct _RXPOLYDRAWSPAN { ULONG command; ULONG numSpans; RXHANDLE hrxSharedMem; VOID *pSharedMem; } RXPOLYDRAWSPAN;
typedef struct _RXQUERYTEXTUREMEMORY { ULONG command; RXHANDLE hrxTextureHeap; } RXQUERYTEXTUREMEMORY;
typedef struct _RXREADRECT { ULONG command; ULONG sourceX; ULONG sourceY; RXRECT destRect; ULONG sourceBuffer; RXHANDLE hrxSharedMem; VOID *pSharedMem; LONG sharedPitch; } RXREADRECT;
typedef struct _RXSETSTATE { ULONG command; ULONG stateToChange; ULONG newState[1]; } RXSETSTATE;
typedef struct _RXSWAPBUFFERS { ULONG command; ULONG flags; } RXSWAPBUFFERS;
typedef struct _RXTEXTUREHEAP { ULONG command; ULONG action; ULONG size; RXHANDLE hrxTextureHeap; } RXTEXTUREHEAP;
typedef struct _RXWRITERECT { ULONG command; ULONG sourceX; ULONG sourceY; RXRECT destRect; ULONG destBuffer; RXHANDLE hrxSharedMem; VOID *pSharedMem; LONG sharedPitch; } RXWRITERECT;
/* Basic 3D DDI command header. There is an
extended version of this structure for each 3D DDI command */
typedef struct _RXCMD { ULONG command; } RXCMD;
/* RXHDR flags */
#define RX_FL_CREATE_CONTEXT 0x0001
#define RX_FL_MAP_MEM 0x0002
#define RX_NO_CLIPPING_NEEDED 0x0004
#define RX_FRONT_LEFT 0x0001
#define RX_BACK_LEFT 0x0002
#define RX_READ_RECT_FRONT_LEFT 1
#define RX_READ_RECT_BACK_LEFT 2
#define RX_READ_RECT_Z 3
#define RX_WRITE_RECT_PIX 1
#define RX_WRITE_RECT_Z 2
#define RX_FLAT 1
#define RX_SMOOTH 2
#define RX_SOLID 3
#define RX_SPAN_HORIZONTAL 1
#define RX_SPAN_VERTICAL 2
/* flags in RXCMD_CREATE_CONTEXT */
#define RX_FLOAT_COORDS 0x0001
#define RX_COLOR_INDEXED 0x0002
/* RX_ENABLE_BUFFERS flags */
#define RX_ENABLE_Z_BUFFER 0x0001
#define RX_ENABLE_BACK_LEFT_BUFFER 0x0100
#define RX_CLEAR_ON_SWAP 0x0001
/* stateToChange in RXCMD_SET_STATE */
#define RX_LINE_PATTERN 1
#define RX_STIPPLE_PATTERN 2
#define RX_ROP2 3
#define RX_SPAN_TYPE 4
#define RX_ACTIVE_BUFFER 5
#define RX_PLANE_MASK 6
#define RX_Z_WRITE_ENABLE 7
#define RX_Z_ENABLE 8
#define RX_ALPHA_TEST_ENABLE 9
#define RX_LAST_PIXEL 10
#define RX_TEX_MAG 11
#define RX_TEX_MIN 12
#define RX_SRC_BLEND 13
#define RX_DST_BLEND 14
#define RX_TEX_MAP_BLEND 15
#define RX_CULL_MODE 16
#define RX_SPAN_DIRECTION 17
#define RX_Z_FUNC 18
#define RX_ALPHA_REF 19
#define RX_ALPHA_FUNC 20
#define RX_DITHER_ENABLE 21
#define RX_BLEND_ENABLE 22
#define RX_TEXTURE 23
#define RX_FILL_COLOR 24
#define RX_FILL_Z 25
#define RX_SOLID_COLOR 26
#define RX_SCISSORS_ENABLE 27
#define RX_SCISSORS_RECT 28
#define RX_MASK_START 29
#define RX_SHADE_MODE 30
#define RX_VERTEX_TYPE 31
#define RX_TEXTURE_PERSPECTIVE 32
#define RX_TEX_TRANSP_ENABLE 33
#define RX_TEX_TRANSP_COLOR 34
#define RX_DITHER_ORIGIN 35
#define RX_FOG_MODE 36
#define RX_FOG_COLOR 37
#define RX_VERTEX_COLOR_TYPE 38
#define RX_SPAN_COLOR_TYPE 39
#define RX_PRIMLIST_SKIP 40
#define RX_PRIMSTRIP_SKIP 41
#define RX_FILL_RECT_COLOR 0x0001
#define RX_FILL_RECT_Z 0x0002
/* RX_FOG_MODE settings */
#define RX_FOG_DISABLE 0x0001
#define RX_FOG_NORMAL 0x0002
#define RX_FOG_CONSTANT 0x0004
/* Comparison functions. Test passes if new pixel value meets the */ /* specified condition with the current pixel value. */
#define RX_CMP_NEVER 0x0001
#define RX_CMP_LESS 0x0002
#define RX_CMP_EQUAL 0x0004
#define RX_CMP_LEQUAL 0x0008
#define RX_CMP_GREATER 0x0010
#define RX_CMP_NOTEQUAL 0x0020
#define RX_CMP_GEQUAL 0x0040
#define RX_CMP_ALWAYS 0x0080
#define RX_CMP_ALLGL 0x00ff
/* RXCAPS miscCaps */
#define RX_MASK_MSB 0x0001
#define RX_MASK_LSB 0x0002
#define RX_MASK_PLANES 0x0004
#define RX_MASK_Z 0x0008
#define RX_LINE_PATTERN_REP 0x0010
#define RX_CULL 0x0020
#define RX_HORIZONTAL_SPANS 0x0040
#define RX_VERTICAL_SPANS 0x0080
/* Blending flags */
#define RX_BLEND_ZERO 0x0001
#define RX_BLEND_ONE 0x0002
#define RX_BLEND_SRC_COLOR 0x0004
#define RX_BLEND_INV_SRC_COLOR 0x0008
#define RX_BLEND_SRC_ALPHA 0x0010
#define RX_BLEND_INV_SRC_ALPHA 0x0020
#define RX_BLEND_DST_ALPHA 0x0040
#define RX_BLEND_INV_DST_ALPHA 0x0080
#define RX_BLEND_DST_COLOR 0x0100
#define RX_BLEND_INV_DST_COLOR 0x0200
#define RX_BLEND_SRC_ALPHA_SAT 0x0400
#define RX_BLEND_BOTH_SRC_ALPHA 0x0800
#define RX_BLEND_BOTH_INV_SRC_ALPHA 0x1000
#define RX_BLEND_ALLGL 0x07ff
/* RXCAPS shadeCaps */
#define RX_SHADE_SMOOTH 0x0001
#define RX_FLAT_ALPHA 0x0002
#define RX_SMOOTH_ALPHA 0x0004
#define RX_SOLID_ALPHA 0x0008
#define RX_NORMAL_FOG 0x0010
#define RX_CONSTANT_FOG 0x0020
/* RXCAPS texCaps */
#define RX_TEX_PERSPECTIVE 0x0001
#define RX_TEX_POW2 0x0002
#define RX_TEX_ALPHA 0x0004
#define RX_TEX_TRANSPARENCY 0x0008
#define RX_TEX_BORDER 0x0010
#define RX_TEX_8888 0x0020
#define RX_TEX_4444 0x0040
#define RX_TEX_1555 0x0080
#define RX_TEX_0565 0x0100
#define RX_TEX_0332 0x0200
/* Texture-mapping flags */
#define RX_TEX_NEAREST 0x0001
#define RX_TEX_LINEAR 0x0002
#define RX_TEX_MIP_NEAREST 0x0004
#define RX_TEX_MIP_LINEAR 0x0008
#define RX_TEX_LINEAR_MIP_NEAREST 0x0010
#define RX_TEX_LINEAR_MIP_LINEAR 0x0020
/* Texture blending flags */
#define RX_TEX_DECAL 0x0001
#define RX_TEX_MODULATE 0x0002
#define RX_TEX_DECAL_ALPHA 0x0004
#define RX_TEX_MODULATE_ALPHA 0x0008
#define RX_TEX_DECAL_MASK 0x0010
#define RX_TEX_MODULATE_MASK 0x0020
/* RXCAPS rasterCalcType values */
#define RX_RASTER_FIXED 1
#define RX_RASTER_ERROR_TERM 2
#define RX_RASTER_OTHER 3
/* RX_TEX_MAP_BLEND state values */
#define RX_TEX_MAP_DECAL 1
#define RX_TEX_MAP_MODULATE 2
#define RX_TEX_MAP_DECAL_ALPHA 3
#define RX_TEX_MAP_MODULATE_ALPHA 4
#define RX_TEX_MAP_DECAL_MASK 5
#define RX_TEX_MAP_MODULATE_MASK 6
/* RXCAPS rasterCaps flags */
#define RX_RASTER_DITHER 0x0001
#define RX_RASTER_ROP2 0x0002
#define RX_RASTER_XOR 0x0004
#define RX_RASTER_PAT 0x0008
#define RX_RASTER_SUBPIXEL 0x0010
/* flags in RXSURFACEINFO */
#define RX_SWAP_PRESERVE_BACK 0x0001
#define RX_BACK_BUFFER 0x0002
#define RX_MULTIBUFFER_WRITE 0x0004
#define RX_SWAP_AND_CLEAR 0x0008
#define RX_LINEAR_TEXMEM 0x0010
#define RX_LINEAR_PLUS_K_TEXMEM 0x0020
#define RX_LINEAR_MIPMEM 0x0040
#define RX_LINEAR_PLUS_K_MIPMEM 0x0080
#define RX_LINEAR_DWORD_PER_SCAN 0x0100
#define RX_FLOAT_VALUES 0x0200
#define RX_VERTEX_COLOR_RXREALS 0x0400
/* RX_SPAN_TYPE state values */
#define RX_SPAN_COLOR 1
#define RX_SPAN_COLOR_Z 2
#define RX_SPAN_COLOR_Z_TEX 3
/* RX_CULL_MODE state values */
#define RX_CULL_NONE 1
#define RX_CULL_CW 2
#define RX_CULL_CCW 3
/* flags in RXSPAN */
#define RX_SPAN_DELTA 0x0001
#define RX_SPAN_MASK 0x0002
/* flags for driverPrivate field in RXTEXTURE */
#define RX_DONT_SET_DEVICE_FORMAT 0x0000
#define RX_SET_DEVICE_FORMAT 0x0001
#define RX_IN_DEVICE_FORMAT 0x0002
#define RX_PRIVATE_DEVICE_FORMAT (~0x0003)
/* flags in RXGETINFO */
#define RX_QUERY_CURRENT_MODE 0x0001
#define RX_MATCH_REFRESH 0x0002
#define RX_GET_INFO_COLOR_INDEX 0x0004
#define RX_FULLSCREEN_INFO 0x0008
/* RXCMD_GET_INFO return values */
#define RX_GET_INFO_INVALID_MODE 1
#define RX_GET_INFO_CI_NOT_SUPPORTED 2
#define RX_GET_INFO_RGBA_NOT_SUPPORTED 3
#define RX_GET_INFO_CAP_NOT_SUPPORTED 4
/* RXMAPMEM action field values */
#define RX_CREATE_MEM_MAP 1
#define RX_DELETE_MEM_MAP 2
/* RXLOADTEXTURE flag values */
#define RX_COMPRESS_LOSSY 1
/* RXTEXTUREHEAP action field values */
#define RX_CREATE_TEXTURE_HEAP 1
#define RX_DELETE_TEXTURE_HEAP 2
#define RX_CLEAR_TEXTURE_HEAP 3
/* Primitive types for RXDRAWPRIM */
#define RX_PRIM_LINESTRIP 1
#define RX_PRIM_TRISTRIP 2
#define RX_PRIM_QUADSTRIP 3
#define RX_PRIM_LINELIST 4
#define RX_PRIM_TRILIST 5
#define RX_PRIM_QUADLIST 6
#define RX_PRIM_INTLINESTRIP 7
/* RX_VERTEX_TYPE state values */
#define RX_POINT 1
#define RX_POINTZ 2
#define RX_POINTZTEX 3
/* RX_SPAN_COLOR_TYPE state values */
#define RX_SPAN_COLOR_RGB 1
#define RX_SPAN_COLOR_RGBA 2
#define RX_SPAN_COLOR_RGBAF 3
/* RX_VERTEX_COLOR_TYPE state values */
#define RX_VERTEX_COLOR_PACKED 1
#define RX_VERTEX_COLOR_NONE 2
#define RX_VERTEX_COLOR_RGB 3
#define RX_VERTEX_COLOR_RGBA 4
#define RX_VERTEX_COLOR_RGBAF 5
/* Texture formats */
#define RX_TEXTURE_8888 1
#define RX_TEXTURE_4444 2
#define RX_TEXTURE_1555 3
#define RX_TEXTURE_0565 4
#define RX_TEXTURE_0332 5
/* RXGETINFO infoType field values */
#define RX_INFO_GLOBAL_CAPS 1
#define RX_INFO_SURFACE_CAPS 2
#define RX_INFO_SPAN_CAPS 3
#define RX_INFO_LINE_CAPS 4
#define RX_INFO_TRIANGLE_CAPS 5
#define RX_INFO_QUAD_CAPS 6
#define RX_INFO_INTLINE_CAPS 7
#endif // _RX_
|