Leaked source code of windows server 2003
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.
 
 
 
 
 
 

5667 lines
179 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: directxconst.idl
//
//--------------------------------------------------------------------------
typedef enum CONST_D3DVERTEXBLENDFLAGS
{
D3DVBLEND_DISABLE = 0, // Disable vertex blending
D3DVBLEND_1WEIGHT = 1, // blend between 2 matrices
D3DVBLEND_2WEIGHTS = 2, // blend between 3 matrices
D3DVBLEND_3WEIGHTS = 3, // blend between 4 matrices
} CONST_D3DVERTEXBLENDFLAGS;
typedef enum CONST_D3DTEXTURETRANSFORMFLAGS {
D3DTTFF_DISABLE = 0, // texture coordinates are passed directly
D3DTTFF_COUNT1 = 1, // rasterizer should expect 1-D texture coords
D3DTTFF_COUNT2 = 2, // rasterizer should expect 2-D texture coords
D3DTTFF_COUNT3 = 3, // rasterizer should expect 3-D texture coords
D3DTTFF_COUNT4 = 4, // rasterizer should expect 4-D texture coords
D3DTTFF_PROJECTED = 256 // texcoords to be divided by COUNTth element
} CONST_D3DTEXTURETRANSFORMFLAGS;
typedef enum CONST_D3DVTXPCAPSFLAGS {
D3DVTXPCAPS_TEXGEN = 0x00000001,
D3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002,
D3DVTXPCAPS_VERTEXFOG = 0x00000004,
D3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008,
D3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010,
D3DVTXPCAPS_NONLOCALVIEWER = 0x00000020,
} D3DVTXPCAPSFLAGS;
typedef enum CONST_D3DFDSFLAGS {
D3DFDS_COLORMODE =0x00000001, /* Match color mode, */
D3DFDS_GUID =0x00000002, /* Match guid */
D3DFDS_HARDWARE =0x00000004, /* Match hardware/software */
D3DFDS_TRIANGLES =0x00000008, /* Match in triCaps */
D3DFDS_LINES =0x00000010, /* Match in lineCaps */
D3DFDS_MISCCAPS =0x00000020, /* Match primCaps.dwMiscCaps */
D3DFDS_RASTERCAPS =0x00000040, /* Match primCaps.dwRasterCaps */
D3DFDS_ZCMPCAPS =0x00000080, /* Match primCaps.dwZCmpCaps */
D3DFDS_ALPHACMPCAPS =0x00000100, /* Match primCaps.dwAlphaCmpCaps */
D3DFDS_SRCBLENDCAPS =0x00000200, /* Match primCaps.dwSourceBlendCaps */
D3DFDS_DSTBLENDCAPS =0x00000400, /* Match primCaps.dwDestBlendCaps */
D3DFDS_SHADECAPS =0x00000800, /* Match primCaps.dwShadeCaps */
D3DFDS_TEXTURECAPS =0x00001000, /* Match primCaps.dwTextureCaps */
D3DFDS_TEXTUREFILTERCAPS =0x00002000, /* Match primCaps.dwTextureFilterCaps */
D3DFDS_TEXTUREBLENDCAPS =0x00004000, /* Match primCaps.dwTextureBlendCaps */
D3DFDS_TEXTUREADDRESSCAPS =0x00008000, /* Match primCaps.dwTextureBlendCaps */
} D3DFDSFLAGS;
typedef enum CONST_D3DTEXOPCAPSFLAGS {
D3DTEXOPCAPS_DISABLE =0x00000001,
D3DTEXOPCAPS_SELECTARG1 =0x00000002,
D3DTEXOPCAPS_SELECTARG2 =0x00000004,
D3DTEXOPCAPS_MODULATE =0x00000008,
D3DTEXOPCAPS_MODULATE2X =0x00000010,
D3DTEXOPCAPS_MODULATE4X =0x00000020,
D3DTEXOPCAPS_ADD =0x00000040,
D3DTEXOPCAPS_ADDSIGNED =0x00000080,
D3DTEXOPCAPS_ADDSIGNED2X =0x00000100,
D3DTEXOPCAPS_SUBTRACT =0x00000200,
D3DTEXOPCAPS_ADDSMOOTH =0x00000400,
D3DTEXOPCAPS_BLENDDIFFUSEALPHA =0x00000800,
D3DTEXOPCAPS_BLENDTEXTUREALPHA =0x00001000,
D3DTEXOPCAPS_BLENDFACTORALPHA =0x00002000,
D3DTEXOPCAPS_BLENDTEXTUREALPHAPM =0x00004000,
D3DTEXOPCAPS_BLENDCURRENTALPHA =0x00008000,
D3DTEXOPCAPS_PREMODULATE =0x00010000,
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR =0x00020000,
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA =0x00040000,
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR =0x00080000,
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA =0x00100000,
D3DTEXOPCAPS_BUMPENVMAP =0x00200000,
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE =0x00400000,
D3DTEXOPCAPS_DOTPRODUCT3 =0x00800000,
} D3DTEXOPCAPSFLAGS;
typedef enum CONST_D3DDPFLAGS {
D3DDP_DEFAULT =0x00000000,
D3DDP_WAIT =0x00000001
//D3DDP_DONOTCLIP =0x00000004,
//D3DDP_DONOTUPDATEEXTENTS =0x00000008,
//D3DDP_DONOTLIGHT =0x00000010
} D3DDPFLAGS;
//typedef enum CONST_D3DNEXTFLAGS {
// D3DNEXT_NEXT =0x00000001,
// D3DNEXT_HEAD =0x00000002,
// D3DNEXT_TAIL =0x00000004
//} D3DNEXTFLAGS;
typedef enum CONST_D3DCLEARFLAGS {
D3DCLEAR_TARGET = 0x00000001, /* Clear target surface */
D3DCLEAR_ZBUFFER = 0x00000002, /* Clear target z buffer */
D3DCLEAR_STENCIL = 0x00000004, /* Clear target z buffer */
D3DCLEAR_ALL = 0x00000007
} D3DCLEARFLAGS;
typedef enum CONST_D3DLIGHTCAPSFLAGS {
D3DLIGHTCAPS_POINT = 0x00000001, /* Point lights supported */
D3DLIGHTCAPS_SPOT = 0x00000002, /* Spot lights supported */
D3DLIGHTCAPS_DIRECTIONAL = 0x00000004, /* Directional lights supported */
//not supported D3DLIGHTCAPS_PARALLELPOINT = 0x00000008 /* Parallel point lights supported */
} D3DLIGHTCAPSFLAGS;
//typedef enum CONST_D3DTRANSFORMFLAGS {
// D3DTRANSFORM_CLIPPED = 0x00000001,
// D3DTRANSFORM_UNCLIPPED = 0x00000002
//} D3DTRANSFORMFLAGS;
//typedef enum CONST_D3DTRANSFORMCAPS {
// D3DTRANSFORMCAPS_CLIP =1
//} D3DTRANSFORMCAPS;
typedef enum CONST_D3DVOPFLAGS{
/* Vertex Operations for ProcessVertices */
D3DVOP_LIGHT = 1024,
D3DVOP_TRANSFORM =1,
D3DVOP_CLIP =4,
D3DVOP_EXTENTS =8
} D3DVOPFLAGS;
typedef enum CONST_D3DCOLORMODEL {
D3DCOLOR_MONO =1,
D3DCOLOR_RGB =2,
} D3DCOLORMODEL;
typedef enum CONST_D3DLIGHTTYPE {
D3DLIGHT_POINT = 1,
D3DLIGHT_SPOT = 2,
D3DLIGHT_DIRECTIONAL = 3,
//not supported D3DLIGHT_PARALLELPOINT = 4
} D3DLIGHTTYPE;
typedef enum CONST_D3DLIGHTINGMODELFLAGS {
D3DLIGHTINGMODEL_RGB = 0x00000001,
D3DLIGHTINGMODEL_MONO = 0x00000002
} D3DLIGHTINGMODELFLAGS;
typedef enum CONST_D3DCAPSRASTER {
/* D3DPRIMCAPS dwRasterCaps */
D3DPRASTERCAPS_DITHER =0x00000001,
D3DPRASTERCAPS_ROP2 =0x00000002,
D3DPRASTERCAPS_XOR =0x00000004,
D3DPRASTERCAPS_PAT =0x00000008,
D3DPRASTERCAPS_ZTEST =0x00000010,
D3DPRASTERCAPS_SUBPIXEL =0x00000020,
D3DPRASTERCAPS_SUBPIXELX =0x00000040,
D3DPRASTERCAPS_FOGVERTEX =0x00000080,
D3DPRASTERCAPS_FOGTABLE =0x00000100,
D3DPRASTERCAPS_STIPPLE =0x00000200,
D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT =0x00000400,
D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT =0x00000800,
D3DPRASTERCAPS_ANTIALIASEDGES =0x00001000,
D3DPRASTERCAPS_MIPMAPLODBIAS =0x00002000,
D3DPRASTERCAPS_ZBIAS =0x00004000,
D3DPRASTERCAPS_ZBUFFERLESSHSR =0x00008000,
D3DPRASTERCAPS_FOGRANGE =0x00010000,
D3DPRASTERCAPS_ANISOTROPY =0x00020000,
D3DPRASTERCAPS_WBUFFER =0x00040000,
//D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT=0x00080000, b25684
D3DPRASTERCAPS_WFOG =0x00100000,
D3DPRASTERCAPS_ZFOG =0x00200000,
// D3DPRASTERCAPS_COLORKEYBLEND =0x00400000 removed
} D3DCAPSRASTER;
typedef enum CONST_D3DCAPSCMP {
/* D3DPRIMCAPS dwZCmpCaps, dwAlphaCmpCaps */
D3DPCMPCAPS_NEVER =0x00000001,
D3DPCMPCAPS_LESS =0x00000002,
D3DPCMPCAPS_EQUAL =0x00000004,
D3DPCMPCAPS_LESSEQUAL =0x00000008,
D3DPCMPCAPS_GREATER =0x00000010,
D3DPCMPCAPS_NOTEQUAL =0x00000020,
D3DPCMPCAPS_GREATEREQUAL =0x00000040,
D3DPCMPCAPS_ALWAYS =0x00000080
} D3DCAPSCMP;
typedef enum CONST_D3DCAPSBLEND {
/* D3DPRIMCAPS dwSourceBlendCaps, dwDestBlendCaps */
D3DPBLENDCAPS_ZERO =0x00000001,
D3DPBLENDCAPS_ONE =0x00000002,
D3DPBLENDCAPS_SRCCOLOR =0x00000004,
D3DPBLENDCAPS_INVSRCCOLOR =0x00000008,
D3DPBLENDCAPS_SRCALPHA =0x00000010,
D3DPBLENDCAPS_INVSRCALPHA =0x00000020,
D3DPBLENDCAPS_DESTALPHA =0x00000040,
D3DPBLENDCAPS_INVDESTALPHA =0x00000080,
D3DPBLENDCAPS_DESTCOLOR =0x00000100,
D3DPBLENDCAPS_INVDESTCOLOR =0x00000200,
D3DPBLENDCAPS_SRCALPHASAT =0x00000400,
D3DPBLENDCAPS_BOTHSRCALPHA =0x00000800,
D3DPBLENDCAPS_BOTHINVSRCALPHA =0x00001000
} D3DCAPSBLEND;
typedef enum CONST_D3DCAPSSHADE {
/* D3DPRIMCAPS dwShadeCaps */
D3DPSHADECAPS_COLORFLATMONO =0x00000001,
D3DPSHADECAPS_COLORFLATRGB =0x00000002,
D3DPSHADECAPS_COLORGOURAUDMONO =0x00000004,
D3DPSHADECAPS_COLORGOURAUDRGB =0x00000008,
D3DPSHADECAPS_COLORPHONGMONO =0x00000010,
D3DPSHADECAPS_COLORPHONGRGB =0x00000020,
D3DPSHADECAPS_SPECULARFLATMONO =0x00000040,
D3DPSHADECAPS_SPECULARFLATRGB =0x00000080,
D3DPSHADECAPS_SPECULARGOURAUDMONO =0x00000100,
D3DPSHADECAPS_SPECULARGOURAUDRGB =0x00000200,
D3DPSHADECAPS_SPECULARPHONGMONO =0x00000400,
D3DPSHADECAPS_SPECULARPHONGRGB =0x00000800,
D3DPSHADECAPS_ALPHAFLATBLEND =0x00001000,
D3DPSHADECAPS_ALPHAFLATSTIPPLED =0x00002000,
D3DPSHADECAPS_ALPHAGOURAUDBLEND =0x00004000,
D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED =0x00008000,
D3DPSHADECAPS_ALPHAPHONGBLEND =0x00010000,
D3DPSHADECAPS_ALPHAPHONGSTIPPLED =0x00020000,
D3DPSHADECAPS_FOGFLAT =0x00040000,
D3DPSHADECAPS_FOGGOURAUD =0x00080000,
D3DPSHADECAPS_FOGPHONG =0x00100000
} D3DCAPSSHADE;
typedef enum CONST_D3DCAPSTEXTURE {
/* D3DPRIMCAPS dwTextureCaps */
D3DPTEXTURECAPS_PERSPECTIVE =0x00000001,
D3DPTEXTURECAPS_POW2 =0x00000002,
D3DPTEXTURECAPS_ALPHA =0x00000004,
D3DPTEXTURECAPS_TRANSPARENCY =0x00000008,
D3DPTEXTURECAPS_BORDER =0x00000010,
D3DPTEXTURECAPS_SQUAREONLY =0x00000020,
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE =0x00000040,
D3DPTEXTURECAPS_ALPHAPALETTE =0x00000080,
D3DPTEXTURECAPS_NONPOW2CONDITIONAL =0x00000100,
D3DPTEXTURECAPS_TEXTURETRANSFORM =0x00000200,
D3DPTEXTURECAPS_PROJECTED =0x00000400,
D3DPTEXTURECAPS_CUBEMAP =0x00000800,
D3DPTEXTURECAPS_COLORKEYBLEND = 0x00001000,
} D3DCAPSTEXTURE;
typedef enum CONST_D3DCAPSTEXTUREFILTER {
/* D3DPRIMCAPS dwTextureFilterCaps */
D3DPTFILTERCAPS_NEAREST =0x00000001,
D3DPTFILTERCAPS_LINEAR =0x00000002,
D3DPTFILTERCAPS_MIPNEAREST =0x00000004,
D3DPTFILTERCAPS_MIPLINEAR =0x00000008,
D3DPTFILTERCAPS_LINEARMIPNEAREST =0x00000010,
D3DPTFILTERCAPS_LINEARMIPLINEAR =0x00000020
} D3DCAPSTEXTUREFILTER;
/*
typedef enum CONST_D3DCAPSTEXTUREBLEND {
D3DPRIMCAPS dwTextureBlendCaps
D3DPTBLENDCAPS_DECAL =0x00000001,
D3DPTBLENDCAPS_MODULATE =0x00000002,
D3DPTBLENDCAPS_DECALALPHA =0x00000004,
D3DPTBLENDCAPS_MODULATEALPHA =0x00000008,
D3DPTBLENDCAPS_DECALMASK =0x00000010,
D3DPTBLENDCAPS_MODULATEMASK =0x00000020,
D3DPTBLENDCAPS_COPY =0x00000040,
D3DPTBLENDCAPS_ADD =0x00000080
} D3DCAPSTEXTUREBLEND;
*/
typedef enum CONST_D3DCAPSTEXTUREADDRESS {
/* D3DPRIMCAPS dwTextureAddressCaps */
D3DPTADDRESSCAPS_WRAP =0x00000001,
D3DPTADDRESSCAPS_MIRROR =0x00000002,
D3DPTADDRESSCAPS_CLAMP =0x00000004,
D3DPTADDRESSCAPS_BORDER =0x00000008,
D3DPTADDRESSCAPS_INDEPENDENTUV =0x00000010
} D3DCAPSTEXTUREADDRESS;
#if 0
//not needed as D3DDEVICEDESC no longer has flags
typedef enum CONST_D3DDEVICEDESCFLAGS {
/* D3DDEVICEDESC dwFlags indicating valid fields */
//D3DDD_COLORMODEL =0x00000001,/* dcmColorMode,is valid */
D3DDD_DEVCAPS =0x00000002,/* dwDevCaps is valid */
D3DDD_TRANSFORMCAPS =0x00000004,/* dtcTransformCaps is valid */
D3DDD_LIGHTINGCAPS =0x00000008,/* dlcLightingCaps is valid */
D3DDD_BCLIPPING =0x00000010,/* bClipping is valid */
D3DDD_LINECAPS =0x00000020,/* dpcLineCaps is valid */
D3DDD_TRICAPS =0x00000040,/* dpcTriCaps is valid */
D3DDD_DEVICERENDERBITDEPTH =0x00000080, /* dwDeviceRenderBitDepth is valid */
D3DDD_DEVICEZBUFFERBITDEPTH =0x00000100, /* dwDeviceZBufferBitDepth is valid */
D3DDD_MAXBUFFERSIZE =0x00000200,/* dwMaxBufferSize is valid */
D3DDD_MAXVERTEXCOUNT =0x00000400,/* dwMaxVertexCount is valid */
} D3DDEVICEDESCFLAGS;
#endif
typedef enum CONST_D3DDEVICEDESCCAPS {
/* D3DDEVICEDESC dwDevCaps flags */
D3DDEVCAPS_FLOATTLVERTEX =0x00000001,/* Device accepts floating point */ /* for post-transform vertex data */
D3DDEVCAPS_SORTINCREASINGZ =0x00000002,/* Device needs data sorted for increasing Z*/
D3DDEVCAPS_SORTDECREASINGZ =0x00000004,/* Device needs data sorted for decreasing Z*/
D3DDEVCAPS_SORTEXACT =0x00000008,/* Device needs data sorted exactly */
// D3DDEVCAPS_EXECUTESYSTEMMEMORY =0x00000010,/* Device can use execute buffers from system memory */
// D3DDEVCAPS_EXECUTEVIDEOMEMORY =0x00000020,/* Device can use execute buffers from video memory */
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY =0x00000040,/* Device can use T,buffers from system memory */
D3DDEVCAPS_TLVERTEXVIDEOMEMORY =0x00000080,/* Device can use T,buffers from video memory */
D3DDEVCAPS_TEXTURESYSTEMMEMORY =0x00000100,/* Device can texture from system memory */
D3DDEVCAPS_TEXTUREVIDEOMEMORY =0x00000200,/* Device can texture from device memory */
D3DDEVCAPS_DRAWPRIMTLVERTEX =0x00000400,/* Device can draw TLVERTEX primitives */
D3DDEVCAPS_CANRENDERAFTERFLIP =0x00000800,/* Device can render without waiting for flip to complete */
D3DDEVCAPS_TEXTURENONLOCALVIDMEM =0x00001000,/* Device can texture from nonloca,video memory */
D3DDEVCAPS_SEPARATETEXTUREMEMORIES= 0x00004000,
D3DDEVCAPS_HWTRANSFORMANDLIGHT=0x00008000,
D3DDEVCAPS_CANBLTSYSTONONLOCAL=0x00020000,
//D3DDEVCAPS_STRIDEDVERTICES=0x00010000,
D3DDEVCAPS_HWRASTERIZATION =0x00080000, /* Device has HW acceleration for rasterization */
} D3DDEVICEDESCCAPS;
// shanee thinks this is only needed for execute buffers
//
//typedef enum CONST_D3DSETSTATUSFLAGS {
// D3DSETSTATUS_STATUS = 0x00000001,
// D3DSETSTATUS_EXTENTS = 0x00000002,
// D3DSETSTATUS_ALL = 3 //(D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS),
//} D3DSETSTATUSFLAGS;
typedef enum CONST_D3DCLIPFLAGS {
D3DCLIP_LEFT = 0x00000001,
D3DCLIP_RIGHT = 0x00000002,
D3DCLIP_TOP = 0x00000004,
D3DCLIP_BOTTOM= 0x00000008,
D3DCLIP_FRONT = 0x00000010,
D3DCLIP_BACK = 0x00000020,
D3DCLIP_GEN0 = 0x00000040,
D3DCLIP_GEN1 = 0x00000080,
D3DCLIP_GEN2 = 0x00000100,
D3DCLIP_GEN3 = 0x00000200,
D3DCLIP_GEN4 = 0x00000400,
D3DCLIP_GEN5 = 0x00000800,
D3DSTATUS_CLIPINTERSECTIONLEFT = 0x00001000,
D3DSTATUS_CLIPINTERSECTIONRIGHT = 0x00002000,
D3DSTATUS_CLIPINTERSECTIONTOP = 0x00004000,
D3DSTATUS_CLIPINTERSECTIONBOTTOM = 0x00008000,
D3DSTATUS_CLIPINTERSECTIONFRONT = 0x00010000,
D3DSTATUS_CLIPINTERSECTIONBACK = 0x00020000,
D3DSTATUS_CLIPINTERSECTIONGEN0 = 0x00040000,
D3DSTATUS_CLIPINTERSECTIONGEN1 = 0x00080000,
D3DSTATUS_CLIPINTERSECTIONGEN2 = 0x00100000,
D3DSTATUS_CLIPINTERSECTIONGEN3 = 0x00200000,
D3DSTATUS_CLIPINTERSECTIONGEN4 = 0x00400000,
D3DSTATUS_CLIPINTERSECTIONGEN5 = 0x00800000,
D3DSTATUS_CLIPUNIONLEFT = 0x00000001,
D3DSTATUS_CLIPUNIONRIGHT = 0x00000002,
D3DSTATUS_CLIPUNIONTOP = 0x00000004,
D3DSTATUS_CLIPUNIONBOTTOM = 0x00000008,
D3DSTATUS_CLIPUNIONFRONT = 0x00000010,
D3DSTATUS_CLIPUNIONBACK = 0x00000020,
D3DSTATUS_CLIPUNIONGEN0 = 0x00000040,
D3DSTATUS_CLIPUNIONGEN1 = 0x00000080,
D3DSTATUS_CLIPUNIONGEN2 = 0x00000100,
D3DSTATUS_CLIPUNIONGEN3 = 0x00000200,
D3DSTATUS_CLIPUNIONGEN4 = 0x00000400,
D3DSTATUS_CLIPUNIONGEN5 = 0x00000800,
D3DSTATUS_ZNOTVISIBLE = 0x01000000,
// Do not use 0x80000000 for any status flags in future as it is reserved
D3DSTATUS_CLIPUNIONALL =0x00FFF000,
// D3DSTATUS_CLIPUNIONALL ( \
// D3DSTATUS_CLIPUNIONLEFT | \
// D3DSTATUS_CLIPUNIONRIGHT | \
// D3DSTATUS_CLIPUNIONTOP | \
// D3DSTATUS_CLIPUNIONBOTTOM | \
// D3DSTATUS_CLIPUNIONFRONT | \
// D3DSTATUS_CLIPUNIONBACK | \
// D3DSTATUS_CLIPUNIONGEN0 | \
// D3DSTATUS_CLIPUNIONGEN1 | \
// D3DSTATUS_CLIPUNIONGEN2 | \
// D3DSTATUS_CLIPUNIONGEN3 | \
// D3DSTATUS_CLIPUNIONGEN4 | \
// D3DSTATUS_CLIPUNIONGEN5 \
// )
D3DSTATUS_CLIPINTERSECTIONALL=0x00FFF000,
// D3DSTATUS_CLIPINTERSECTIONALL ( \
// D3DSTATUS_CLIPINTERSECTIONLEFT | \
// D3DSTATUS_CLIPINTERSECTIONRIGHT | \
// D3DSTATUS_CLIPINTERSECTIONTOP | \
// D3DSTATUS_CLIPINTERSECTIONBOTTOM | \
// D3DSTATUS_CLIPINTERSECTIONFRONT | \
// D3DSTATUS_CLIPINTERSECTIONBACK | \
// D3DSTATUS_CLIPINTERSECTIONGEN0 | \
// D3DSTATUS_CLIPINTERSECTIONGEN1 | \
// D3DSTATUS_CLIPINTERSECTIONGEN2 | \
// D3DSTATUS_CLIPINTERSECTIONGEN3 | \
// D3DSTATUS_CLIPINTERSECTIONGEN4 | \
// D3DSTATUS_CLIPINTERSECTIONGEN5 \
// )
D3DSTATUS_DEFAULT =0x01FFF000
// D3DSTATUS_DEFAULT ( \
// D3DSTATUS_CLIPINTERSECTIONALL | \
// D3DSTATUS_ZNOTVISIBLE)
} D3DCLIPFLAGS;
#if 0
/*
* execute buffer flags
D3DTRIFLAG_START = 0x00000000,
D3DTRIFLAG_ODD = 0x0000001e,
D3DTRIFLAG_EVEN= 0x0000001f,
D3DTRIFLAG_EDGEENABLE1 = 0x00000100, // v0-v1 edge
D3DTRIFLAG_EDGEENABLE2 = 0x00000200, // v1-v2 edge
D3DTRIFLAG_EDGEENABLE3 = 0x00000400, // v2-v0 edge
D3DTRIFLAG_EDGEENABLETRIANGLE = 0x00000700,
D3DPROCESSVERTICES_TRANSFORMLIGHT =0x00000000,
D3DPROCESSVERTICES_TRANSFORM =0x00000001,
D3DPROCESSVERTICES_COPY =0x00000002,
D3DPROCESSVERTICES_OPMASK =0x00000007,
D3DPROCESSVERTICES_UPDATEEXTENTS =0x00000008,
D3DPROCESSVERTICES_NOCOLOR =0x00000010,
// (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3),
// Execute options.
//When calling using D3DEXECUTE_UNCLIPPED all the primitives
//inside the buffer must be contained within the viewport.
//
D3DEXECUTE_CLIPPED = 0x00000001,
D3DEXECUTE_UNCLIPPED = 0x00000002,
//
//Amount to add to a state to generate the override for that state.
D3DSTATE_OVERRIDE_BIAS = 256,
*/
#endif
typedef enum CONST_D3DCLIPSTATUSFLAGS {
D3DCLIPSTATUS_STATUS = 0x00000001,
D3DCLIPSTATUS_EXTENTS2 = 0x00000002,
D3DCLIPSTATUS_EXTENTS3 = 0x00000004
} D3DCLIPSTATUSFLAGS;
typedef enum CONST_D3DLIGHTFLAGS {
D3DLIGHT_ACTIVE = 0x00000001,
D3DLIGHT_NO_SPECULAR = 0x00000002,
D3DLIGHT_ALL = 0x00000003
} D3DLIGHTFLAGS;
typedef enum CONST_DDPALFLAGS {
PC_DEFAULT=0,
PC_RESERVED=1,
PC_EXPLICIT=2,
PC_NOCOLLAPSE=4
} DDPALFLAGS;
typedef enum CONST_DDDEVICEIDFLAGS {
DDGDI_DEFAULT=0,
DDGDI_GETHOSTIDENTIFIER=1
} DDDEVICEIDFLAGS;
//typedef enum CONST_D3DPALFLAGS {
// /*
// * Palette flags.
// * This are or'ed with the peFlags in the PALETTEENTRYs passed to DirectDraw.
// */
// D3DPAL_FREE= 0x00, /* Renderer may use this entry freely */
// D3DPAL_READONLY= 0x40, /* Renderer may not set this entry */
// D3DPAL_RESERVED= 0x80 /* Renderer may not use this entry */
//
//} D3DPALFLAGS;
typedef enum CONST_D3DVBCAPSFLAGS {
D3DVBCAPS_SYSTEMMEMORY = 0x00000800,
D3DVBCAPS_WRITEONLY = 0x00010000,
D3DVBCAPS_OPTIMIZED = 0x80000000,
D3DVBCAPS_DONOTCLIP = 0x00000001,
D3DVBCAPS_DEFAULT = 0x00000000
} D3DVBCAPSFLAGS;
typedef enum CONST_D3DFVFCAPSFLAGS {
D3DFVFCAPS_TEXCOORDCOUNTMASK =0x0000ffff, /* mask for texture coordinate count field */
D3DFVFCAPS_DONOTSTRIPELEMENTS =0x00080000 /* Device prefers that vertex elements not be stripped */
} D3DFVFCAPSFLAGS;
typedef enum CONST_D3DFVFFLAGS {
// Flexible vertex format bits
//
// D3DFVF_RESERVED0 =0x001,
// D3DFVF_POSITION_MASK =0x00E,
D3DFVF_XYZ =0x002,
D3DFVF_XYZRHW =0x004,
D3DFVF_XYZB1 =0x006,
D3DFVF_XYZB2 =0x008,
D3DFVF_XYZB3 =0x00a,
D3DFVF_XYZB4 =0x00c,
D3DFVF_XYZB5 =0x00e,
D3DFVF_NORMAL =0x010,
// D3DFVF_RESERVED1 =0x020,
D3DFVF_DIFFUSE =0x040,
D3DFVF_SPECULAR =0x080,
// D3DFVF_TEXCOUNT_MASK =0xf00,
// D3DFVF_TEXCOUNT_SHIFT =8,
D3DFVF_TEX0 =0x000,
D3DFVF_TEX1 =0x100,
D3DFVF_TEX2 =0x200,
D3DFVF_TEX3 =0x300,
D3DFVF_TEX4 =0x400,
D3DFVF_TEX5 =0x500,
D3DFVF_TEX6 =0x600,
D3DFVF_TEX7 =0x700,
D3DFVF_TEX8 =0x800,
// D3DFVF_RESERVED2 =0xf000, // 4 reserved bits
D3DFVF_VERTEX=0x112,
D3DFVF_LVERTEX=0x1e2,
D3DFVF_TLVERTEX=0x1c4
} D3DFVFFLAGS;
/*
typedef enum CONST_D3DVISFLAGS {
D3DVIS_INSIDE_FRUSTUM = 0,
D3DVIS_INTERSECT_FRUSTUM = 1,
D3DVIS_OUTSIDE_FRUSTUM = 2,
D3DVIS_INSIDE_LEFT = 0,
D3DVIS_INTERSECT_LEFT = 2, //(1 << 2)
D3DVIS_OUTSIDE_LEFT = 4, //(2 << 2)
D3DVIS_INSIDE_RIGHT = 0,
D3DVIS_INTERSECT_RIGHT = 16, //(1 << 4)
D3DVIS_OUTSIDE_RIGHT = 32, //(2 << 4)
D3DVIS_INSIDE_TOP = 0,
D3DVIS_INTERSECT_TOP = 64, //(1 << 6)
D3DVIS_OUTSIDE_TOP = 128, //(2 << 6)
D3DVIS_INSIDE_BOTTOM = 0,
D3DVIS_INTERSECT_BOTTOM = 256, //(1 << 8)
D3DVIS_OUTSIDE_BOTTOM = 512, //(2 << 8)
D3DVIS_INSIDE_NEAR = 0,
D3DVIS_INTERSECT_NEAR = 1024, //(1 << 10)
D3DVIS_OUTSIDE_NEAR = 2048, //(2 << 10)
D3DVIS_INSIDE_FAR = 0,
D3DVIS_INTERSECT_FAR = 4096, //(1 << 12)
D3DVIS_OUTSIDE_FAR = 8192, //(2 << 12)
//D3DVIS_MASK_FRUSTUM = 3,
//D3DVIS_MASK_LEFT = 12, //(3 << 2)
//D3DVIS_MASK_RIGHT = 40, // (3 << 4)
//D3DVIS_MASK_TOP = 192, //(3 << 6)
//D3DVIS_MASK_BOTTOM = 768, //(3 << 8)
//D3DVIS_MASK_NEAR = 3072, //(3 << 10)
//D3DVIS_MASK_FAR = 12288
} D3DVISFLAGS;
*/
typedef enum CONST_D3DTAFLAGS {
D3DTA_SELECTMASK = 0x0000000f, // mask for arg selector
D3DTA_DIFFUSE = 0x00000000, // select diffuse color
D3DTA_CURRENT = 0x00000001, // select result of previous stage
D3DTA_TEXTURE = 0x00000002, // select texture color
D3DTA_TFACTOR = 0x00000003, // select RENDERSTATE_TEXTUREFACTORur
D3DTA_COMPLEMENT = 0x00000010, // take 1.0 - x
D3DTA_ALPHAREPLICATE = 0x00000020, // replicate alpha to color components
//DX7
D3DTA_SPECULAR = 0x00000004
} D3DTAFLAGS;
typedef enum CONST_D3DCAPSMISC {
D3DPMISCCAPS_MASKPLANES =0x00000001,
D3DPMISCCAPS_MASKZ =0x00000002,
// D3DPMISCCAPS_LINEPATTERNREP =0x00000004,
D3DPMISCCAPS_CONFORMANT =0x00000008,
D3DPMISCCAPS_CULLNONE =0x00000010,
D3DPMISCCAPS_CULLCW =0x00000020,
D3DPMISCCAPS_CULLCCW =0x00000040
} D3DCAPSMISC;
typedef enum CONST_D3D {
// Bias to apply to the texture coordinate set to apply a wrap to.
D3DRENDERSTATE_WRAPBIAS = 128,
D3DDP_MAXTEXCOORD =8,
/* Flags to construct the WRAP render states */
D3DWRAPCOORD_0= 0x00000001,
D3DWRAPCOORD_1= 0x00000002,
D3DWRAPCOORD_2=0x00000004,
D3DWRAPCOORD_3=0x00000008
} D3DFLAGS;
/******************
* RM
*******************/
typedef enum CONST_D3DRMCREATEDEVICEFLAGS {
D3DRMDEVICE_DEFAULT =0,
D3DRMDEVICE_NOZBUFFER =1
} D3DRMCREATEDEVICEFLAGS;
typedef enum CONST_D3DRMADDFACESFLAGS{
D3DRMADDFACES_DEFAULT =0,
D3DRMADDFACES_VERTICESONLY =1
} D3DRMADDFACESFLAGS;
typedef enum CONST_D3DRMMESHBUILDERENABLEFLAGS {
D3DRMMESHBUILDER_RENDERENABLE =1,
D3DRMMESHBUILDER_PICKENABLE =2,
D3DRMMESHBUILDER_PICKANDRENDERENABLE =3
} D3DRMMESHBUILDERFLAGS;
typedef enum CONST_D3DRMMESHBUILDERAGEFLAGS {
D3DRMMESHBUILDERAGE_GEOMETRY =0x00000001,
D3DRMMESHBUILDERAGE_MATERIALS =0x00000002,
D3DRMMESHBUILDERAGE_TEXTURES =0x00000004
}D3DRMMESHBUILDERAGEFLAGS;
typedef enum CONST_D3DRMPARENTINGFLAGS {
D3DRMMESHBUILDER_DIRECTPARENT = 1,
D3DRMMESHBUILDER_ROOTMESH = 2
} D3DRMPARENTINGFLAGS;
/*
typedef enum CONST_D3DRMUSERVISUALREASON {
D3DRMUSERVISUAL_CANSEE,
D3DRMUSERVISUAL_RENDER
} D3DRMUSERVISUALREASON;
*/
typedef enum CONST_D3DRMADDMESHBUILDERFLAGS {
D3DRMADDMESHBUILDER_DONTCOPYAPPDATA = 1,
D3DRMADDMESHBUILDER_FLATTENSUBMESHES = 2,
D3DRMADDMESHBUILDER_NOSUBMESHES = 4
} D3DRMADDMESHBUILDERFLAGS ;
typedef enum CONST_D3DRMGENERATENORMALSFLAGS {
D3DRMGENERATENORMALS_PRECOMPACT = 1,
D3DRMGENERATENORMALS_USECREASEANGLE = 2
} D3DRMGENERATENORMALSFLAGS;
typedef enum CONST_D3DRMTEXTURECACHEFLAGS {
D3DRMTEXTURE_FORCERESIDENT = 0x00000001, /* texture should be kept in video memory */
D3DRMTEXTURE_STATIC = 0x00000002, /* texture will not change */
D3DRMTEXTURE_DOWNSAMPLEPOINT = 0x00000004, /* point filtering should be used when downsampling */
D3DRMTEXTURE_DOWNSAMPLEBILINEAR = 0x00000008, /* bilinear filtering should be used when downsampling */
D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH= 0x00000010, /* reduce bit depth when downsampling */
D3DRMTEXTURE_DOWNSAMPLENONE = 0x00000020 /* texture should never be downsampled */
} D3DRMTEXTURECACHEFLAGS;
typedef enum CONST_D3DRMLIGHTTYPE
{ D3DRMLIGHT_AMBIENT,
D3DRMLIGHT_POINT,
D3DRMLIGHT_SPOT,
D3DRMLIGHT_DIRECTIONAL,
// not supported D3DRMLIGHT_PARALLELPOINT
} D3DRMLIGHTTYPE;
typedef enum CONST_D3DRMVIEWPORTCLEARFLAGS {
D3DRMCLEAR_TARGET =1,
D3DRMCLEAR_ZBUFFER =2,
D3DRMCLEAR_DIRTYRECTS =4,
D3DRMCLEAR_ALL =7
} D3DRMVIEWPORTCLEARFLAGS;
typedef enum CONST_D3DRMRENDERQUALITY {
D3DRMSHADE_FLAT = 0,
D3DRMSHADE_GOURAUD = 1,
D3DRMSHADE_PHONG = 2,
D3DRMSHADE_MASK = 7,
D3DRMSHADE_MAX = 8,
D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX,
D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX,
D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX,
D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX,
D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX,
D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX,
D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX,
D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX,
D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX,
D3DRMRENDER_WIREFRAME =(D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME),
D3DRMRENDER_UNLITFLAT= (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID),
D3DRMRENDER_FLAT =(D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID),
D3DRMRENDER_GOURAUD =(D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID),
D3DRMRENDER_PHONG= (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
} D3DRMRENDERQUALITY;
typedef enum CONST_D3DRMTEXTURECHANGEDFLAGS {
D3DRMTEXTURE_CHANGEDPIXELS = 0x00000040, /* pixels have changed */
D3DRMTEXTURE_CHANGEDPALETTE = 0x00000080, /* palette has changed */
D3DRMTEXTURE_INVALIDATEONLY = 0x00000100 /* dirty regions are invalid */
} D3DRMTEXTURECHANGEDFLAGS;
typedef enum CONST_D3DRMTEXTUREQUALITY
{ D3DRMTEXTURE_NEAREST, /* choose nearest texel */
D3DRMTEXTURE_LINEAR, /* interpolate 4 texels */
D3DRMTEXTURE_MIPNEAREST, /* nearest texel in nearest mipmap */
D3DRMTEXTURE_MIPLINEAR, /* interpolate 2 texels from 2 mipmaps */
D3DRMTEXTURE_LINEARMIPNEAREST, /* interpolate 4 texels in nearest mipmap */
D3DRMTEXTURE_LINEARMIPLINEAR /* interpolate 8 texels from 2 mipmaps */
} D3DRMTEXTUREQUALITY;
typedef enum CONST_D3DRMCOMBINETYPE
{ D3DRMCOMBINE_REPLACE,
D3DRMCOMBINE_BEFORE,
D3DRMCOMBINE_AFTER
} D3DRMCOMBINETYPE;
typedef enum CONST_D3DRMPALETTEFLAGS
{ D3DRMPALETTE_FREE, /* renderer may use this entry freely */
D3DRMPALETTE_READONLY, /* fixed but may be used by renderer */
D3DRMPALETTE_RESERVED /* may not be used by renderer */
} D3DRMPALETTEFLAGS;
typedef enum CONST_D3DRMWRAPTYPE
{ D3DRMWRAP_FLAT,
D3DRMWRAP_CYLINDER,
D3DRMWRAP_SPHERE,
D3DRMWRAP_CHROME
} D3DRMWRAPTYPE;
typedef enum CONST_D3DRMPROJECTIONTYPE
{ D3DRMPROJECT_PERSPECTIVE,
D3DRMPROJECT_ORTHOGRAPHIC,
D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
} D3DRMPROJECTIONTYPE;
typedef enum CONST_D3DRMXOFFORMAT
{ D3DRMXOF_BINARY,
D3DRMXOF_COMPRESSED,
D3DRMXOF_TEXT
} D3DRMXOFFORMAT;
typedef enum CONST_D3DRMCOLORSOURCE
{ D3DRMCOLOR_FROMFACE,
D3DRMCOLOR_FROMVERTEX
} D3DRMCOLORSOURCE;
typedef enum CONST_D3DRMFRAMECONSTRAINT
{ D3DRMCONSTRAIN_Z, /* use only X and Y rotations */
D3DRMCONSTRAIN_Y, /* use only X and Z rotations */
D3DRMCONSTRAIN_X /* use only Y and Z rotations */
} D3DRMFRAMECONSTRAINT;
typedef enum CONST_D3DRMMATERIALMODE
{ D3DRMMATERIAL_FROMMESH,
D3DRMMATERIAL_FROMPARENT,
D3DRMMATERIAL_FROMFRAME
} D3DRMMATERIALMODE;
typedef enum CONST_D3DRMFOGMODE
{ D3DRMFOG_LINEAR, /* linear between start and end */
D3DRMFOG_EXPONENTIAL, /* density * exp(-distance) */
D3DRMFOG_EXPONENTIALSQUARED /* density * exp(-distance*distance) */
} D3DRMFOGMODE;
typedef enum CONST_D3DRMZBUFFERMODE {
D3DRMZBUFFER_FROMPARENT, /* default */
D3DRMZBUFFER_ENABLE, /* enable zbuffering */
D3DRMZBUFFER_DISABLE /* disable zbuffering */
} D3DRMZBUFFERMODE;
typedef enum CONST_D3DRMSORTMODE {
D3DRMSORT_FROMPARENT, /* default */
D3DRMSORT_NONE, /* don't sort child frames */
D3DRMSORT_FRONTTOBACK, /* sort child frames front-to-back */
D3DRMSORT_BACKTOFRONT /* sort child frames back-to-front */
} D3DRMSORTMODE;
typedef enum CONST_D3DRMRAYPICKFLAGS {
D3DRMRAYPICK_ONLYBOUNDINGBOXES =1,
D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES= 2,
D3DRMRAYPICK_INTERPOLATEUV =4,
D3DRMRAYPICK_INTERPOLATECOLOR = 8,
D3DRMRAYPICK_INTERPOLATENORMAL = 0x10
} D3DRMRAYPICKFLAGS;
typedef enum CONST_D3DRMADDTRIANGLESVT {
D3DRMFVF_TYPE =0x00000001,
D3DRMFVF_NORMAL =0x00000002,
D3DRMFVF_COLOR =0x00000004,
D3DRMFVF_TEXTURECOORDS =0x00000008
} D3DRMADDTRIANGLESVT;
typedef enum CONST_D3DRMADDTRIANGLESFLAGS {
D3DRMVERTEX_STRIP =0x00000001,
D3DRMVERTEX_FAN =0x00000002,
D3DRMVERTEX_LIST =0x00000004
} D3DRMADDTRIANGLESFLAGS;
typedef enum CONST_D3DRMFOGMETHOD {
D3DRMFOGMETHOD_VERTEX =1,
D3DRMFOGMETHOD_TABLE =2,
D3DRMFOGMETHOD_ANY =4
} D3DRMFOGMETHOD;
typedef enum CONST_D3DRMTRAVERALFLAGS {
D3DRMFRAME_RENDERENABLE = 0x00000001,
D3DRMFRAME_PICKENABLE = 0x00000002,
D3DRMFRAME_RENDERANDPICKENABLE = 0x00000003
} D3DRMTRAVERSALFLAGS;
typedef enum CONST_D3DRMINTERPOLATIONFLAGS {
D3DRMINTERPOLATION_OPEN=0x01,
D3DRMINTERPOLATION_CLOSED=0x02,
D3DRMINTERPOLATION_NEAREST=0x0100,
D3DRMINTERPOLATION_LINEAR=0x04,
D3DRMINTERPOLATION_SPLINE=0x08,
D3DRMINTERPOLATION_VERTEXCOLOR=0x40,
D3DRMINTERPOLATION_SLERPNORMALS=0x80
} D3DRMINTERPOLATIONFLAGS;
typedef enum CONST_D3DRMHANDEDNESS {
D3DRMOPTIONS_LEFTHANDED =1,
D3DRMOPTIONS_RIGHTHANDED =2
} D3DRMHANDEDNESS;
typedef enum CONST_D3DRMWIREFRAMEFLAGS {
D3DRMWIREFRAME_CULL = 1, /* cul,backfaces */
D3DRMWIREFRAME_HIDDENLINE =2, /* lines are obscured by closer objects */
D3DRMWIREFRAME_CULLANDHIDELINES =3
} D3DRMWIREFRAMEFLAGS ;
typedef enum CONST_D3DRMCALLBACKORDERFLAGS {
D3DRMCALLBACK_PREORDER =0,
D3DRMCALLBACK_POSTORDER =1
} D3DRMCALLBACKORDERFLAGS;
typedef enum CONST_D3DRMRENDERMODEFLAGS {
D3DRMRENDERMODE_DEFAULT=0,
D3DRMRENDERMODE_BLENDEDTRANSPARENCY=1,
D3DRMRENDERMODE_SORTEDTRANSPARENCY=2,
D3DRMRENDERMODE_LIGHTINMODELSPACE= 8,
D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR =16,
D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE =32
} D3DRMRENDERMODEFLAGS;
typedef enum CONST_D3DRMPMESHSTATUSFLAGS {
D3DRMPMESHSTATUS_VALID =0x01,
D3DRMPMESHSTATUS_INTERRUPTED =0x02,
D3DRMPMESHSTATUS_BASEMESHCOMPLETE =0x04,
D3DRMPMESHSTATUS_COMPLETE =0x08,
D3DRMPMESHSTATUS_RENDERABLE =0x10
} D3DRMPMESHSTATUSFLAGS ;
typedef enum CONST_D3DRMPMESHEVENTFLAGS {
D3DRMPMESHEVENT_BASEMESH =0x01,
D3DRMPMESHEVENT_COMPLETE =0x02
} D3DRMPMESHEVENTFLAGS ;
typedef enum CONST_D3DRMFPTFFLAGS {
D3DRMFPTF_ALPHA =0x00000001,
D3DRMFPTF_NOALPHA =0x00000002,
D3DRMFPTF_PALETTIZED =0x00000004,
D3DRMFPTF_NOTPALETTIZED =0x00000008
} D3DRMFPTFFLAGS;
typedef enum CONST_D3DRMMAPPINGFLAGS {
D3DRMMAP_WRAPU = 1,
D3DRMMAP_WRAPV = 2,
D3DRMMAP_PERSPCORRECT = 4
} D3DRMMAPPINGFLAGS;
typedef enum CONST_D3DRMSTATECHANGEFLAGS {
D3DRMSTATECHANGE_UPDATEONLY =0x000000001,
D3DRMSTATECHANGE_VOLATILE =0x000000002,
D3DRMSTATECHANGE_NONVOLATILE =0x000000004,
D3DRMSTATECHANGE_RENDER =0x000000020,
D3DRMSTATECHANGE_LIGHT =0x000000040
} D3DRMSTATECHANGEFLAGS ;
typedef enum CONST_D3DRMLOADFLAGS {
D3DRMLOAD_FROMFILE=0x00,
D3DRMLOAD_FROMRESOURCE=0x01,
D3DRMLOAD_FROMMEMORY=0x02,
D3DRMLOAD_FROMSTREAM=0x04,
D3DRMLOAD_FROMUR=0x08,
D3DRMLOAD_BYNAME=0x10,
D3DRMLOAD_BYPOSITION=0x20,
D3DRMLOAD_BYGUID=0x40,
D3DRMLOAD_FIRST =0x80,
D3DRMLOAD_INSTANCEBYREFERENCE =0x100,
D3DRMLOAD_INSTANCEBYCOPYING =0x200,
D3DRMLOAD_ASYNCHRONOUS =0x400,
}D3DRMLOADFLAGS;
typedef enum CONST_D3DRMSAVEFLAGS {
D3DRMXOFSAVE_NORMALS =1,
D3DRMXOFSAVE_TEXTURECOORDINATES =2,
D3DRMXOFSAVE_MATERIALS =4,
D3DRMXOFSAVE_TEXTURENAMES =8,
D3DRMXOFSAVE_ALL=15,
D3DRMXOFSAVE_TEMPLATES =16,
D3DRMXOFSAVE_TEXTURETOPOLOGY =32
} D3DRMSAVEFLAGS;
typedef enum CONST_D3DRMMATERIALOVERRIDEFLAGS {
D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY =0x00000001,
D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY =0x00000002,
D3DRMMATERIALOVERRIDE_DIFFUSE =0x00000003,
D3DRMMATERIALOVERRIDE_AMBIENT =0x00000004,
D3DRMMATERIALOVERRIDE_EMISSIVE =0x00000008,
D3DRMMATERIALOVERRIDE_SPECULAR =0x00000010,
D3DRMMATERIALOVERRIDE_POWER =0x00000020,
D3DRMMATERIALOVERRIDE_TEXTURE =0x00000040,
D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY =0x00000080,
D3DRMMATERIALOVERRIDE_ALL =0x000000FF
} D3DRMMATERIALOVERRIDEFLAGS;
/************************/
/* D3DIM STUFF */
/************************/
/*
* Execute buffers are allocated via Direct3D. These buffers may then
* be filled by the application with instructions to execute along with
* vertex data.
*/
#if 0
/*
* Supported op codes for execute instructions.
*/
typedef enum CONST_D3DOPCODE {
D3DOP_POINT = 1,
D3DOP_LINE = 2,
D3DOP_TRIANGLE = 3,
D3DOP_MATRIXLOAD = 4,
D3DOP_MATRIXMULTIPLY = 5,
D3DOP_STATETRANSFORM = 6,
D3DOP_STATELIGHT = 7,
D3DOP_STATERENDER = 8,
D3DOP_PROCESSVERTICES = 9,
D3DOP_TEXTURELOAD = 10,
D3DOP_EXIT = 11,
D3DOP_BRANCHFORWARD = 12,
D3DOP_SPAN = 13,
D3DOP_SETSTATUS = 14
} D3DOPCODE;
#endif
/*
* The following defines the rendering states which can be set in the
* execute buffer.
*/
typedef enum CONST_D3DSHADEMODE {
D3DSHADE_FLAT = 1,
D3DSHADE_GOURAUD = 2,
D3DSHADE_PHONG = 3
} D3DSHADEMODE;
typedef enum CONST_D3DFILLMODE {
D3DFILL_POINT = 1,
D3DFILL_WIREFRAME = 2,
D3DFILL_SOLID = 3
} D3DFILLMODE;
/*
typedef enum CONST_D3DTEXTUREFILTER {
D3DFILTER_NEAREST = 1,
D3DFILTER_LINEAR = 2,
D3DFILTER_MIPNEAREST = 3,
D3DFILTER_MIPLINEAR = 4,
D3DFILTER_LINEARMIPNEAREST = 5,
D3DFILTER_LINEARMIPLINEAR = 6
} D3DTEXTUREFILTER;
*/
typedef enum CONST_D3DBLEND {
D3DBLEND_ZERO = 1,
D3DBLEND_ONE = 2,
D3DBLEND_SRCCOLOR = 3,
D3DBLEND_INVSRCCOLOR = 4,
D3DBLEND_SRCALPHA = 5,
D3DBLEND_INVSRCALPHA = 6,
D3DBLEND_DESTALPHA = 7,
D3DBLEND_INVDESTALPHA = 8,
D3DBLEND_DESTCOLOR = 9,
D3DBLEND_INVDESTCOLOR = 10,
D3DBLEND_SRCALPHASAT = 11,
D3DBLEND_BOTHSRCALPHA = 12,
D3DBLEND_BOTHINVSRCALPHA = 13
} D3DBLEND;
/*
typedef enum CONST_D3DTEXTUREBLEND {
D3DTBLEND_DECAL = 1,
D3DTBLEND_MODULATE = 2,
D3DTBLEND_DECALALPHA = 3,
D3DTBLEND_MODULATEALPHA = 4,
D3DTBLEND_DECALMASK = 5,
D3DTBLEND_MODULATEMASK = 6,
D3DTBLEND_COPY = 7,
D3DTBLEND_ADD = 8
} D3DTEXTUREBLEND;
*/
typedef enum CONST_D3DTEXTUREADDRESS {
D3DTADDRESS_WRAP = 1,
D3DTADDRESS_MIRROR = 2,
D3DTADDRESS_CLAMP = 3,
D3DTADDRESS_BORDER = 4
} D3DTEXTUREADDRESS;
typedef enum CONST_D3DCULL {
D3DCULL_NONE = 1,
D3DCULL_CW = 2,
D3DCULL_CCW = 3
} D3DCULL;
typedef enum CONST_D3DCMPFUNC {
D3DCMP_NEVER = 1,
D3DCMP_LESS = 2,
D3DCMP_EQUAL = 3,
D3DCMP_LESSEQUAL = 4,
D3DCMP_GREATER = 5,
D3DCMP_NOTEQUAL = 6,
D3DCMP_GREATEREQUAL = 7,
D3DCMP_ALWAYS = 8
} D3DCMPFUNC;
typedef enum CONST_D3DSTENCILOP {
D3DSTENCILOP_KEEP = 1,
D3DSTENCILOP_ZERO = 2,
D3DSTENCILOP_REPLACE = 3,
D3DSTENCILOP_INCRSAT = 4,
D3DSTENCILOP_DECRSAT = 5,
D3DSTENCILOP_INVERT = 6,
D3DSTENCILOP_INCR = 7,
D3DSTENCILOP_DECR = 8
} D3DSTENCILOP;
typedef enum CONST_D3DFOGMODE {
D3DFOG_NONE = 0,
D3DFOG_EXP = 1,
D3DFOG_EXP2 = 2,
D3DFOG_LINEAR = 3
} D3DFOGMODE;
typedef enum CONST_D3DZBUFFERTYPE {
D3DZB_FALSE = 0,
D3DZB_TRUE = 1, // Z buffering
D3DZB_USEW = 2 // W buffering
} D3DZBUFFERTYPE;
typedef enum CONST_D3DANTIALIASMODE {
D3DANTIALIAS_NONE = 0,
D3DANTIALIAS_SORTDEPENDENT = 1,
D3DANTIALIAS_SORTINDEPENDENT = 2
} D3DANTIALIASMODE;
typedef enum CONST_D3DPROCESSVERTICESFLAGS {
D3DPV_DEFAULT=0,
D3DPV_DONOTCOPYDATA=1
} D3DPROCESSVERTICESFLAGS;
// Vertex types supported by Direct3D
//typedef enum CONST_D3DVERTEXTYPE {
// D3DVT_VERTEX = 1,
// D3DVT_LVERTEX = 2,
// D3DVT_TLVERTEX = 3
//} D3DVERTEXTYPE;
// Primitives supported by draw-primitive API
typedef enum CONST_D3DPRIMITIVETYPE {
D3DPT_POINTLIST = 1,
D3DPT_LINELIST = 2,
D3DPT_LINESTRIP = 3,
D3DPT_TRIANGLELIST = 4,
D3DPT_TRIANGLESTRIP = 5,
D3DPT_TRIANGLEFAN = 6
} D3DPRIMITIVETYPE;
typedef enum CONST_D3DTRANSFORMSTATETYPE {
D3DTRANSFORMSTATE_WORLD = 1,
D3DTRANSFORMSTATE_VIEW = 2,
D3DTRANSFORMSTATE_PROJECTION = 3
} D3DTRANSFORMSTATETYPE;
//typedef enum CONST_D3DLIGHTSTATETYPE {
// D3DLIGHTSTATE_MATERIAL = 1,
// D3DLIGHTSTATE_AMBIENT = 2,
// D3DLIGHTSTATE_COLORMODEL = 3,
// D3DLIGHTSTATE_FOGMODE = 4,
// D3DLIGHTSTATE_FOGSTART = 5,
// D3DLIGHTSTATE_FOGEND = 6,
// D3DLIGHTSTATE_FOGDENSITY = 7
//} D3DLIGHTSTATETYPE;
typedef enum CONST_D3DRENDERSTATETYPE {
//D3DRENDERSTATE_TEXTUREHANDLE = 1, /* Texture handle */
D3DRENDERSTATE_ANTIALIAS = 2, /* D3DANTIALIASMODE */
//D3DRENDERSTATE_TEXTUREADDRESS = 3, /* D3DTEXTUREADDRESS */
D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, /* TRUE for perspective correction */
//D3DRENDERSTATE_WRAPU = 5, /* TRUE for wrapping in u */
//D3DRENDERSTATE_WRAPV = 6, /* TRUE for wrapping in v */
D3DRENDERSTATE_ZENABLE = 7, /* TRUE to enable z test */
D3DRENDERSTATE_FILLMODE = 8, /* D3DFILL_MODE */
D3DRENDERSTATE_SHADEMODE = 9, /* D3DSHADEMODE */
//REMOVING LINE PATERN BECUASE IT REQUIRES A STRUCTURE
//ALL OTHER RENDER STATES JUST TAKE A LONG
//Andrewke- added back in - use can be documented
D3DRENDERSTATE_LINEPATTERN = 10, /* D3DLINEPATTERN */
//D3DRENDERSTATE_MONOENABLE = 11, /* TRUE to enable mono rasterization */
//D3DRENDERSTATE_ROP2 = 12, /* ROP2 */
//D3DRENDERSTATE_PLANEMASK = 13, /* DWORD physical plane mask */
D3DRENDERSTATE_ZWRITEENABLE = 14, /* TRUE to enable z writes */
D3DRENDERSTATE_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */
D3DRENDERSTATE_LASTPIXEL = 16, /* TRUE for last-pixel on lines */
//D3DRENDERSTATE_TEXTUREMAG = 17, /* D3DTEXTUREFILTER */
//D3DRENDERSTATE_TEXTUREMIN = 18, /* D3DTEXTUREFILTER */
D3DRENDERSTATE_SRCBLEND = 19, /* D3DBLEND */
D3DRENDERSTATE_DESTBLEND = 20, /* D3DBLEND */
//D3DRENDERSTATE_TEXTUREMAPBLEND = 21, /* D3DTEXTUREBLEND */
D3DRENDERSTATE_CULLMODE = 22, /* D3DCULL */
D3DRENDERSTATE_ZFUNC = 23, /* D3DCMPFUNC */
D3DRENDERSTATE_ALPHAREF = 24, /* D3DFIXED */
D3DRENDERSTATE_ALPHAFUNC = 25, /* D3DCMPFUNC */
D3DRENDERSTATE_DITHERENABLE = 26, /* TRUE to enable dithering */
D3DRENDERSTATE_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */
D3DRENDERSTATE_FOGENABLE = 28, /* TRUE to enable fog */
D3DRENDERSTATE_SPECULARENABLE = 29, /* TRUE to enable specular */
D3DRENDERSTATE_ZVISIBLE = 30, /* TRUE to enable z checking */
//D3DRENDERSTATE_SUBPIXEL = 31, /* TRUE to enable subpixel correction */
//D3DRENDERSTATE_SUBPIXELX = 32, /* TRUE to enable correction in X only */
D3DRENDERSTATE_STIPPLEDALPHA = 33, /* TRUE to enable stippled alpha */
D3DRENDERSTATE_FOGCOLOR = 34, /* D3DCOLOR */
D3DRENDERSTATE_FOGTABLEMODE = 35, /* D3DFOGMODE */
//D3DRENDERSTATE_STIPPLEENABLE = 39, /* TRUE to enable stippling */
D3DRENDERSTATE_EDGEANTIALIAS = 40, /* TRUE to enable edge antialiasing */
D3DRENDERSTATE_COLORKEYENABLE = 41, /* TRUE to enable source colorkeyed textures */
//D3DRENDERSTATE_BORDERCOLOR = 43, /* Border color for texturing w/border */
//D3DRENDERSTATE_TEXTUREADDRESSU = 44, /* Texture addressing mode for U coordinate */
//D3DRENDERSTATE_TEXTUREADDRESSV = 45, /* Texture addressing mode for V coordinate */
//D3DRENDERSTATE_MIPMAPLODBIAS = 46, /* D3DVALUE Mipmap LOD bias */
D3DRENDERSTATE_ZBIAS = 47, /* LONG Z bias */
D3DRENDERSTATE_RANGEFOGENABLE = 48, /* Enables range-based fog */
//D3DRENDERSTATE_ANISOTROPY = 49, /* Max. anisotropy. 1 = no anisotropy */
//D3DRENDERSTATE_FLUSHBATCH = 50, /* Explicit flush for DP batching (DX5 Only) */
//D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT=51, /* BOOL enable sort-independent transparency */
D3DRENDERSTATE_STENCILENABLE = 52, /* BOOL enable/disable stenciling */
D3DRENDERSTATE_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */
D3DRENDERSTATE_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */
D3DRENDERSTATE_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */
D3DRENDERSTATE_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */
D3DRENDERSTATE_STENCILREF = 57, /* Reference value used in stencil test */
D3DRENDERSTATE_STENCILMASK = 58, /* Mask value used in stencil test */
D3DRENDERSTATE_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */
D3DRENDERSTATE_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */
//D3DRENDERSTATE_STIPPLEPATTERN00 = 64, /* Stipple pattern 01... */
/*D3DRENDERSTATE_STIPPLEPATTERN01 = 65,
D3DRENDERSTATE_STIPPLEPATTERN02 = 66,
D3DRENDERSTATE_STIPPLEPATTERN03 = 67,
D3DRENDERSTATE_STIPPLEPATTERN04 = 68,
D3DRENDERSTATE_STIPPLEPATTERN05 = 69,
D3DRENDERSTATE_STIPPLEPATTERN06 = 70,
D3DRENDERSTATE_STIPPLEPATTERN07 = 71,
D3DRENDERSTATE_STIPPLEPATTERN08 = 72,
D3DRENDERSTATE_STIPPLEPATTERN09 = 73,
D3DRENDERSTATE_STIPPLEPATTERN10 = 74,
D3DRENDERSTATE_STIPPLEPATTERN11 = 75,
D3DRENDERSTATE_STIPPLEPATTERN12 = 76,
D3DRENDERSTATE_STIPPLEPATTERN13 = 77,
D3DRENDERSTATE_STIPPLEPATTERN14 = 78,
D3DRENDERSTATE_STIPPLEPATTERN15 = 79,
D3DRENDERSTATE_STIPPLEPATTERN16 = 80,
D3DRENDERSTATE_STIPPLEPATTERN17 = 81,
D3DRENDERSTATE_STIPPLEPATTERN18 = 82,
D3DRENDERSTATE_STIPPLEPATTERN19 = 83,
D3DRENDERSTATE_STIPPLEPATTERN20 = 84,
D3DRENDERSTATE_STIPPLEPATTERN21 = 85,
D3DRENDERSTATE_STIPPLEPATTERN22 = 86,
D3DRENDERSTATE_STIPPLEPATTERN23 = 87,
D3DRENDERSTATE_STIPPLEPATTERN24 = 88,
D3DRENDERSTATE_STIPPLEPATTERN25 = 89,
D3DRENDERSTATE_STIPPLEPATTERN26 = 90,
D3DRENDERSTATE_STIPPLEPATTERN27 = 91,
D3DRENDERSTATE_STIPPLEPATTERN28 = 92,
D3DRENDERSTATE_STIPPLEPATTERN29 = 93,
D3DRENDERSTATE_STIPPLEPATTERN30 = 94,
D3DRENDERSTATE_STIPPLEPATTERN31 = 95,
*/
D3DRENDERSTATE_WRAP0 = 128, /* wrap for 1st texture coord. set */
D3DRENDERSTATE_WRAP1 = 129, /* wrap for 2nd texture coord. set */
D3DRENDERSTATE_WRAP2 = 130, /* wrap for 3rd texture coord. set */
D3DRENDERSTATE_WRAP3 = 131, /* wrap for 4th texture coord. set */
D3DRENDERSTATE_WRAP4 = 132, /* wrap for 5th texture coord. set */
D3DRENDERSTATE_WRAP5 = 133, /* wrap for 6th texture coord. set */
D3DRENDERSTATE_WRAP6 = 134, /* wrap for 7th texture coord. set */
D3DRENDERSTATE_WRAP7 = 135, /* wrap for 8th texture coord. set */
//DX7STATE
D3DRENDERSTATE_CLIPPING = 136,
D3DRENDERSTATE_LIGHTING = 137,
D3DRENDERSTATE_EXTENTS = 138,
D3DRENDERSTATE_AMBIENT = 139,
D3DRENDERSTATE_FOGVERTEXMODE = 140,
D3DRENDERSTATE_COLORVERTEX = 141,
D3DRENDERSTATE_LOCALVIEWER = 142,
D3DRENDERSTATE_NORMALIZENORMALS = 143,
D3DRENDERSTATE_COLORKEYBLENDENABLE = 144,
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145,
D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146,
D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147,
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148,
D3DRENDERSTATE_ALPHASOURCE = 149,
D3DRENDERSTATE_FOGFACTORSOURCE = 150,
D3DRENDERSTATE_VERTEXBLEND = 151,
D3DRENDERSTATE_CLIPPLANEENABLE = 152,
//D3DRENDERSTATE_POINTSIZE = 153, /* D3DVALUE Point size */
//D3DRENDERSTATE_POINTATTENUATION_A = 154, /* D3DVALUE Point attenuation a value */
//D3DRENDERSTATE_POINTATTENUATION_B = 155, /* D3DVALUE Point attenuation b value */
//D3DRENDERSTATE_POINTATTENUATION_C = 156, /* D3DVALUE Point attenuation c value */
//D3DRENDERSTATE_POINTSIZEMIN = 157, /* D3DVALUE Point size minimum threshold */
//D3DRENDERSTATE_POINTSPRITEENABLE = 158, /* BOOL if true, render whole texture for point, */
} D3DRENDERSTATETYPE;
typedef enum CONST_D3DRENDERSTATESINGLE {
D3DRENDERSTATE_FOGSTART = 36, /* Fog table start */
D3DRENDERSTATE_FOGEND = 37, /* Fog table end */
D3DRENDERSTATE_FOGDENSITY = 38, /* Fog table density */
} D3DRENDERSTATESINGLE;
typedef enum CONST_DDLOCKFLAGS {
/****************************************************************************
*
* DIRECTDRAWSURFACE LOCK FLAGS
*
****************************************************************************/
/*
* The default. Set to indicate that Lock should return a valid memory pointer
* to the top of the specified rectangle. If no rectangle is specified then a
* pointer to the top of the surface is returned.
*/
DDLOCK_SURFACEMEMORYPTR =0x00000000, // default
/*
* Set to indicate that Lock should wait until it can obtain a valid memory
* pointer before returning. If this bit is set, Lock will never return
* DDERR_WASSTILLDRAWING.
*/
DDLOCK_WAIT =0x00000001,
/*
* Set if an event handle is being passed to Lock. Lock will trigger the event
* when it can return the surface memory pointer requested.
*/
DDLOCK_EVENT =0x00000002,
/*
* Indicates that the surface being locked will only be read from.
*/
DDLOCK_READONLY =0x00000010,
/*
* Indicates that the surface being locked will only be written to
*/
DDLOCK_WRITEONLY =0x00000020,
/*
* Indicates that a system wide lock should not be taken when this surface
* is locked. This has several advantages (cursor responsiveness, ability
* to call more Windows functions, easier debugging) when locking video
* memory surfaces. However, an application specifying this flag must
* comply with a number of conditions documented in the help file.
* Furthermore, this flag cannot be specified when locking the primary.
*/
DDLOCK_NOSYSLOCK =0x00000800,
DDLOCK_DONOTWAIT =0x00004000,
} DDLOCKFLAGS;
typedef enum CONST_DDPCAPSFLAGS {
/****************************************************************************
*
* DIRECTDRAWPALETTE CAPABILITIES
*
****************************************************************************/
/*
* Index is 4 bits. There are sixteen color entries in the palette table.
*/
DDPCAPS_4BIT =0x00000001,
/*
* Index is onto a 8 bit color index. This field is only valid with the
* DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target
* surface is in 8bpp. Each color entry is one byte long and is an index
* into destination surface's 8bpp palette.
*/
DDPCAPS_8BITENTRIES =0x00000002,
/*
* Index is 8 bits. There are 256 color entries in the palette table.
*/
DDPCAPS_8BIT =0x00000004,
/*
* Indicates that this DIRECTDRAWPALETTE should use the palette color array
* passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE
* object.
*/
DDPCAPS_INITIALIZE =0x00000008,
/*
* This palette is the one attached to the primary surface. Changing this
* table has immediate effect on the display unless DDPSETPAL_VSYNC is specified
* and supported.
*/
DDPCAPS_PRIMARYSURFACE =0x00000010,
/*
* This palette is the one attached to the primary surface left. Changing
* this table has immediate effect on the display for the left eye unless
* DDPSETPAL_VSYNC is specified and supported.
*/
DDPCAPS_PRIMARYSURFACELEFT =0x00000020,
/*
* This palette can have all 256 entries defined
*/
DDPCAPS_ALLOW256 =0x00000040,
/*
* This palette can have modifications to it synced with the monitors
* refresh rate.
*/
DDPCAPS_VSYNC =0x00000080,
/*
* Index is 1 bit. There are two color entries in the palette table.
*/
DDPCAPS_1BIT =0x00000100,
/*
* Index is 2 bit. There are four color entries in the palette table.
*/
DDPCAPS_2BIT =0x00000200,
DDPCAPS_ALPHA =0x00000400
} DDPCAPSFLAGS;
typedef enum CONST_DDEDMFLAGS {
/****************************************************************************
*
* DIRECTDRAW ENUMDISPLAYMODES FLAGS
*
****************************************************************************/
DDEDM_DEFAULT =0x00000000,
/*
* Enumerate Modes with different refresh rates. EnumDisplayModes guarantees
* that a particular mode will be enumerated only once. This flag specifies whether
* the refresh rate is taken into account when determining if a mode is unique.
*/
DDEDM_REFRESHRATES =0x00000001,
/*
* Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA
* modes such as mode =0x13 in addition to the usual ModeX modes (which are always
* enumerated if the application has previously called SetCooperativeLevel with the
* DDSCL_ALLOWMODEX flag set).
*/
DDEDM_STANDARDVGAMODES =0x00000002
} DDEDMFLAGS;
typedef enum CONST_DDSCLFLAGS {
/****************************************************************************
*
* DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
*
****************************************************************************/
/*
* Exclusive mode owner will be responsible for the entire primary surface.
* GDI can be ignored. used with DD
*/
DDSCL_FULLSCREEN =0x00000001,
/*
* allow CTRL_ALT_DEL to work while in fullscreen exclusive mode
*/
DDSCL_ALLOWREBOOT =0x00000002,
/*
* prevents DDRAW from modifying the application window.
* prevents DDRAW from minimize/restore the application window on activation.
*/
DDSCL_NOWINDOWCHANGES =0x00000004,
/*
* app wants to work as a regular Windows application
*/
DDSCL_NORMAL =0x00000008,
/*
* app wants exclusive access
*/
DDSCL_EXCLUSIVE =0x00000010,
/*
* app can deal with non-windows display modes
*/
DDSCL_ALLOWMODEX =0x00000040,
DDSCL_CREATEDEVICEWINDOW =0x00000200,
//DDSCL_FPUSETUP =0x00000800,
DDSCL_MULTITHREADED =0x00000400,
DDSCL_SETDEVICEWINDOW =0x00000100,
DDSCL_SETFOCUSWINDOW =0x00000080
} DDSCLFLAGS;
typedef enum CONST_DDSDMFLAGS {
/****************************************************************************
*
* DIRECTDRAW SETDISPLAYMODE FLAGS
*
****************************************************************************/
DDSDM_DEFAULT =0x00000000,
/*
* The desired mode is a standard VGA mode
*/
DDSDM_STANDARDVGAMODE =0x00000001
} DDSDMFLAGS;
// ******** DDRAW * //
typedef enum CONST_DDBLTFLAGS {
/****************************************************************************
*
* DIRECTDRAW BLT FLAGS
*
****************************************************************************/
/*
* Use the alpha information in the pixel format or the alpha channel surface
* attached to the destination surface as the alpha channel for this blt.
*/
//DDBLT_ALPHADEST =0x00000001,
/*
* Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel
* for the destination surface for this blt.
*/
//DDBLT_ALPHADESTCONSTOVERRIDE =0x00000002,
/*
* The NEG suffix indicates that the destination surface becomes more
* transparent as the alpha value increases. (0 is opaque)
*/
//DDBLT_ALPHADESTNEG =0x00000004,
/*
* Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha
* channel for the destination for this blt.
*/
//DDBLT_ALPHADESTSURFACEOVERRIDE =0x00000008,
/*
* Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel
* for the edges of the image that border the color key colors.
*/
//DDBLT_ALPHAEDGEBLEND =0x00000010,
/*
* Use the alpha information in the pixel format or the alpha channel surface
* attached to the source surface as the alpha channel for this blt.
*/
//DDBLT_ALPHASRC =0x00000020,
/*
* Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel
* for the source for this blt.
*/
//DDBLT_ALPHASRCCONSTOVERRIDE =0x00000040,
/*
* The NEG suffix indicates that the source surface becomes more transparent
* as the alpha value increases. (0 is opaque)
*/
//DDBLT_ALPHASRCNEG =0x00000080,
/*
* Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel
* for the source for this blt.
*/
//DDBLT_ALPHASRCSURFACEOVERRIDE =0x00000100,
/*
* Z-buffered blt using the z-buffers attached to the source and destination
* surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the
* z-buffer opcode.
*/
//DDBLT_ZBUFFER =0x00080000,
/*
* Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field
* in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
* for the destination.
*/
//DDBLT_ZBUFFERDESTCONSTOVERRIDE =0x00100000,
/*
* Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode
* field in the DDBLTFX structure as the z-buffer and z-buffer opcode
* respectively for the destination.
*/
//DDBLT_ZBUFFERDESTOVERRIDE =0x00200000,
/*
* Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field
* in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
* for the source.
*/
//DDBLT_ZBUFFERSRCCONSTOVERRIDE =0x00400000,
/*
* Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode
* field in the DDBLTFX structure as the z-buffer and z-buffer opcode
* respectively for the source.
*/
//DDBLT_ZBUFFERSRCOVERRIDE =0x00800000,
/*
* Do this blt asynchronously through the FIFO in the order received. If
* there is no room in the hardware FIFO fail the call.
*/
DDBLT_ASYNC =0x00000200,
/*
* Uses the dwFillColor field in the DDBLTFX structure as the RGB color
* to fill the destination rectangle on the destination surface with.
*/
DDBLT_COLORFILL =0x00000400,
/*
* Uses the dwDDFX field in the DDBLTFX structure to specify the effects
* to use for the blt.
*/
DDBLT_DDFX =0x00000800,
/*
* Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS
* that are not part of the Win32 API.
*/
DDBLT_DDROPS =0x00001000,
/*
* Use the color key associated with the destination surface.
*/
DDBLT_KEYDEST =0x00002000,
/*
* Use the dckDestColorkey field in the DDBLTFX structure as the color key
* for the destination surface.
*/
DDBLT_KEYDESTOVERRIDE =0x00004000,
/*
* Use the color key associated with the source surface.
*/
DDBLT_KEYSRC =0x00008000,
/*
* Use the dckSrcColorkey field in the DDBLTFX structure as the color key
* for the source surface.
*/
DDBLT_KEYSRCOVERRIDE =0x00010000,
/*
* Use the dwROP field in the DDBLTFX structure for the raster operation
* for this blt. These ROPs are the same as the ones defined in the Win32 API.
*/
DDBLT_ROP =0x00020000,
/*
* Use the dwRotationAngle field in the DDBLTFX structure as the angle
* (specified in 1/100th of a degree) to rotate the surface.
*/
DDBLT_ROTATIONANGLE =0x00040000,
/*
* wait until the device is ready to handle the blt
* this will cause blt to not return DDERR_WASSTILLDRAWING
*/
DDBLT_WAIT =0x01000000,
/*
* Uses the dwFillDepth field in the DDBLTFX structure as the depth value
* to fill the destination rectangle on the destination Z-buffer surface
* with.
*/
DDBLT_DEPTHFILL =0x02000000,
//DX7
DDBLT_DONOTWAIT =0x08000000,
} DDBLTFLAGS;
#if 0
typedef enum CONST_DDBASICBLTFLAGS;
/*
* Do this blt asynchronously through the FIFO in the order received. If
* there is no room in the hardware FIFO fail the call.
*/
DDBLT_ASYNC =0x00000200,
/*
* Use the color key associated with the destination surface.
*/
DDBLT_KEYDEST =0x00002000,
/*
* Use the color key associated with the source surface.
*/
DDBLT_KEYSRC =0x00008000,
/*
* wait until the device is ready to handle the blt
* this will cause blt to not return DDERR_WASSTILLDRAWING
*/
DDBLT_WAIT =0x01000000,
/*
* Uses the dwFillDepth field in the DDBLTFX structure as the depth value
* to fill the destination rectangle on the destination Z-buffer surface
* with.
*/
DDBLT_DEPTHFILL =0x02000000
} DDBASICBLTFLAGS;
#endif
typedef enum CONST_DDBLTFASTFLAGS {
/****************************************************************************
*
* BLTFAST FLAGS
*
****************************************************************************/
DDBLTFAST_NOCOLORKEY =0x00000000,
DDBLTFAST_SRCCOLORKEY =0x00000001,
DDBLTFAST_DESTCOLORKEY =0x00000002,
DDBLTFAST_WAIT =0x00000010,
DDBLTFAST_DONOTWAIT =0x00000020
} DDBLTFASTFLAGS;
#if 0
typedef enum CONST_DDABLTFLAGS {
DDABLT_KEYSRC =0x40000000,
DDABLT_MIRRORLEFTRIGHT =0x20000000,
DDABLT_MIRRORUPDOWN =0x10000000,
DDABLT_WAIT =0x08000000,
DDABLT_HARDWAREONLY =0x04000000,
DDABLT_NOBLEND =0x02000000,
DDABLT_FILTERENABLE =0x01000000,
DDABLT_FILTERDISABLE =0x00800000,
DDABLT_DEGRADEARGBSCALING =0x00400000,
DDABLT_DONOTWAIT =0x00200000,
DDABLT_USEFILLVALUE =0x00100000,
DDABLT_SOFTWAREONLY =0x00080000,
DDABLT_FILTERTRANSPBORDER =0x00040000
} CONST_DDABLTFLAGS;
#endif
typedef enum CONST_DDFLIPFLAGS {
/****************************************************************************
*
* FLIP FLAGS
*
****************************************************************************/
DDFLIP_WAIT =0x00000001,
/*
* Indicates that the target surface contains the even field of video data.
* This flag is only valid with an overlay surface.
*/
DDFLIP_EVEN =0x00000002,
/*
* Indicates that the target surface contains the odd field of video data.
* This flag is only valid with an overlay surface.
*/
DDFLIP_ODD =0x00000004,
DDFLIP_NOVSYNC =0x00000008,
DDFLIP_STEREO =0x00000010,
DDFLIP_DONOTWAIT =0x00000020,
DDFLIP_INTERFVAL2 =0x20000000,
DDFLIP_INTERFVAL3 =0x30000000,
DDFLIP_INTERFVAL4 =0x40000000
} DDFLIPFLAGS;
typedef enum CONST_DDENUMOVERLAYZFLAGS {
/*
*
* DIRECTDRAW ENUMOVERLAYZORDER FLAGS
*
****************************************************************************/
/*
* Enumerate overlays back to front.
*/
DDENUMOVERLAYZ_BACKTOFRONT =0x00000000,
/*
* Enumerate overlays front to back
*/
DDENUMOVERLAYZ_FRONTTOBACK =0x00000001,
} DDENUMOVERLAYZFLAGS;
typedef enum CONST_DDOVERFLAGS {
/****************************************************************************
*
* DIRECTDRAW SURFACE OVERLAY FLAGS
*
****************************************************************************/
/*
* Use the alpha information in the pixel format or the alpha channel surface
* attached to the destination surface as the alpha channel for the
* destination overlay.
*/
DDOVER_ALPHADEST =0x00000001,
/*
* Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the
* destination alpha channel for this overlay.
*/
DDOVER_ALPHADESTCONSTOVERRIDE =0x00000002,
/*
* The NEG suffix indicates that the destination surface becomes more
* transparent as the alpha value increases.
*/
DDOVER_ALPHADESTNEG =0x00000004,
/*
* Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha
* channel destination for this overlay.
*/
DDOVER_ALPHADESTSURFACEOVERRIDE =0x00000008,
/*
* Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha
* channel for the edges of the image that border the color key colors.
*/
DDOVER_ALPHAEDGEBLEND =0x00000010,
/*
* Use the alpha information in the pixel format or the alpha channel surface
* attached to the source surface as the source alpha channel for this overlay.
*/
DDOVER_ALPHASRC =0x00000020,
/*
* Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source
* alpha channel for this overlay.
*/
DDOVER_ALPHASRCCONSTOVERRIDE =0x00000040,
/*
* The NEG suffix indicates that the source surface becomes more transparent
* as the alpha value increases.
*/
DDOVER_ALPHASRCNEG =0x00000080,
/*
* Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel
* source for this overlay.
*/
DDOVER_ALPHASRCSURFACEOVERRIDE =0x00000100,
/*
* Turn this overlay off.
*/
DDOVER_HIDE =0x00000200,
/*
* Use the color key associated with the destination surface.
*/
DDOVER_KEYDEST =0x00000400,
/*
* Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key
* for the destination surface
*/
DDOVER_KEYDESTOVERRIDE =0x00000800,
/*
* Use the color key associated with the source surface.
*/
DDOVER_KEYSRC =0x00001000,
/*
* Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key
* for the source surface.
*/
DDOVER_KEYSRCOVERRIDE =0x00002000,
/*
* Turn this overlay on.
*/
DDOVER_SHOW =0x00004000,
/*
* Add a dirty rect to an emulated overlayed surface.
*/
DDOVER_ADDDIRTYRECT =0x00008000,
/*
* Redraw all dirty rects on an emulated overlayed surface.
*/
DDOVER_REFRESHDIRTYRECTS =0x00010000,
/*
* Redraw the entire surface on an emulated overlayed surface.
*/
DDOVER_REFRESHALL =0x00020000,
/*
* Use the overlay FX flags to define special overlay FX
*/
DDOVER_DDFX =0x00080000,
/*
* Autoflip the overlay when ever the video port autoflips
*/
DDOVER_AUTOFLIP =0x00100000,
/*
* Display each field of video port data individually without
* causing any jittery artifacts
*/
DDOVER_BOB =0x00200000,
/*
* Indicates that bob/weave decisions should not be overridden by other
* interfaces.
*/
DDOVER_OVERRIDEBOBWEAVE =0x00400000,
/*
* Indicates that the surface memory is composed of interleaved fields.
*/
DDOVER_INTERLEAVED =0x00800000,
/* DX7 */
DDOVER_ARGBSCALEFACTORS =0x02000000,
DDOVER_DEGRADEARGBSCALING =0x04000000
} DDOVERFLAGS;
typedef enum CONST_DDOVERZFLAGS {
/****************************************************************************
*
* DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
*
****************************************************************************/
/*
* Send overlay to front
*/
DDOVERZ_SENDTOFRONT =0x00000000,
/*
* Send overlay to back
*/
DDOVERZ_SENDTOBACK =0x00000001,
/*
* Move Overlay forward
*/
DDOVERZ_MOVEFORWARD =0x00000002,
/*
* Move Overlay backward
*/
DDOVERZ_MOVEBACKWARD =0x00000003,
/*
* Move Overlay in front of relative surface
*/
DDOVERZ_INSERTINFRONTOF =0x00000004,
/*
* Move Overlay in back of relative surface
*/
DDOVERZ_INSERTINBACKOF =0x00000005,
} DDOVERZFLAGS;
typedef enum CONST_DDGFSFLAGS {
/****************************************************************************
*
* DIRECTDRAW GETFLIPSTATUS FLAGS
*
****************************************************************************/
/*
* is it OK to flip now?
*/
DDGFS_CANFLIP =0x00000001,
/*
* is the last flip finished?
*/
DDGFS_ISFLIPDONE =0x00000002
} DDGFSFLAGS;
typedef enum CONST_DDGBSFLAGS {
/****************************************************************************
*
* DIRECTDRAW GETBLTSTATUS FLAGS
*
****************************************************************************/
/*
* is it OK to blt now?
*/
DDGBS_CANBLT =0x00000001,
/*
* is the blt to the surface finished?
*/
DDGBS_ISBLTDONE =0x00000002
} DDGBSFLAGS;
typedef enum CONST_DDCKEYFLAGS {
/****************************************************************************
*
* DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
*
****************************************************************************/
/*
* Set if the structure contains a color space. Not set if the structure
* contains a single color key.
*/
DDCKEY_COLORSPACE =0x00000001,
/*
* Set if the structure specifies a color key or color space which is to be
* used as a destination color key for blt operations.
*/
DDCKEY_DESTBLT =0x00000002,
/*
* Set if the structure specifies a color key or color space which is to be
* used as a destination color key for overlay operations.
*/
DDCKEY_DESTOVERLAY =0x00000004,
/*
* Set if the structure specifies a color key or color space which is to be
* used as a source color key for blt operations.
*/
DDCKEY_SRCBLT =0x00000008,
/*
* Set if the structure specifies a color key or color space which is to be
* used as a source color key for overlay operations.
*/
DDCKEY_SRCOVERLAY =0x00000010
} DDCKEYFLAGS;
typedef enum CONST_DDSGRFLAGS {
DDSGR_DEFAULT = 0x00000000,
DDSGR_CALIBRATE = 0x00000001
} DDSGRFLAGS;
typedef enum CONST_DBOOLFLAGS {
D_FALSE =0,
D_TRUE =1
} DBOOLFLAGS;
typedef enum CONST_DDBITDEPTHFLAGS {
/*
* 1 bit per pixel.
*/
DDBD_1 =0x00004000,
/*
* 2 bits per pixel.
*/
DDBD_2 =0x00002000,
/*
* 4 bits per pixel.
*/
DDBD_4 =0x00001000,
/*
* 8 bits per pixel.
*/
DDBD_8 =0x00000800,
/*
* 16 bits per pixel.
*/
DDBD_16 =0x00000400,
/*
* 24 bits per pixel.
*/
DDBD_24 =0x00000200,
/*
* 32 bits per pixel.
*/
DDBD_32 =0x00000100,
} DDBITDEPTHFLAGS;
typedef enum CONST_DDSURFACEDESCFLAGS {
/*
* ddsCaps field is valid.
*/
DDSD_CAPS =0x00000001, // default
/*
* dwHeight field is valid.
*/
DDSD_HEIGHT =0x00000002,
/*
* dwWidth field is valid.
*/
DDSD_WIDTH =0x00000004,
/*
* lPitch is valid.
*/
DDSD_PITCH =0x00000008,
/*
* dwBackBufferCount is valid.
*/
DDSD_BACKBUFFERCOUNT =0x00000020,
/*
* dwZBufferBitDepth is valid.
*/
DDSD_ZBUFFERBITDEPTH =0x00000040,
/*
* dwAlphaBitDepth is valid.
*/
DDSD_ALPHABITDEPTH =0x00000080,
DDSD_TEXTURESTAGE =0x00100000,
/*
* lpSurface is valid.
*/
DDSD_LPSURFACE =0x00000800,
/*
* ddpfPixelFormat is valid.
*/
DDSD_PIXELFORMAT =0x00001000,
/*
* ddckCKDestOverlay is valid.
*/
DDSD_CKDESTOVERLAY =0x00002000,
/*
* ddckCKDestBlt is valid.
*/
DDSD_CKDESTBLT =0x00004000,
/*
* ddckCKSrcOverlay is valid.
*/
DDSD_CKSRCOVERLAY =0x00008000,
/*
* ddckCKSrcBlt is valid.
*/
DDSD_CKSRCBLT =0x00010000,
/*
* dwMipMapCount is valid.
*/
DDSD_MIPMAPCOUNT =0x00020000,
/*
* dwRefreshRate is valid
*/
DDSD_REFRESHRATE =0x00040000,
/*
* dwLinearSize is valid
*/
DDSD_LINEARSIZE =0x00080000,
/*
* All input fields are valid.
*/
DDSD_ALL =0x000ff9ee,
} DDSURFACEDESCFLAGS;
typedef enum CONST_DDCOLORFLAGS {
/*
* lBrightness field is valid.
*/
DDCOLOR_BRIGHTNESS =0x00000001,
/*
* lContrast field is valid.
*/
DDCOLOR_CONTRAST =0x00000002,
/*
* lHue field is valid.
*/
DDCOLOR_HUE =0x00000004,
/*
* lSaturation field is valid.
*/
DDCOLOR_SATURATION =0x00000008,
/*
* lSharpness field is valid.
*/
DDCOLOR_SHARPNESS =0x00000010,
/*
* lGamma field is valid.
*/
DDCOLOR_GAMMA =0x00000020,
/*
* lColorEnable field is valid.
*/
DDCOLOR_COLORENABLE =0x00000040
} DDCOLORFLAGS;
typedef enum CONST_DDSURFACECAPSFLAGS {
/*
* Indicates that this surface contains alpha-only information.
* (To determine if a surface is RGBA/YUVA, the pixel format must be
* interrogated.)
*/
DDSCAPS_ALPHA =0x00000002,
/*
* Indicates that this surface is a backbuffer. It is generally
* set by CreateSurface when the DDSCAPS_FLIP capability bit is set.
* It indicates that this surface is THE back buffer of a surface
* flipping structure. DirectDraw supports N surfaces in a
* surface flipping structure. Only the surface that immediately
* precedeces the DDSCAPS_FRONTBUFFER has this capability bit set.
* The other surfaces are identified as back buffers by the presence
* of the DDSCAPS_FLIP capability, their attachment order, and the
* absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER
* capabilities. The bit is sent to CreateSurface when a standalone
* back buffer is being created. This surface could be attached to
* a front buffer and/or back buffers to form a flipping surface
* structure after the CreateSurface call. See AddAttachments for
* a detailed description of the behaviors in this case.
*/
DDSCAPS_BACKBUFFER =0x00000004,
/*
* Indicates a complex surface structure is being described. A
* complex surface structure results in the creation of more than
* one surface. The additional surfaces are attached to the root
* surface. The complex structure can only be destroyed by
* destroying the root.
*/
DDSCAPS_COMPLEX =0x00000008,
/*
* Indicates that this surface is a part of a surface flipping structure.
* When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and
* DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface
* on the resulting creations. The dwBackBufferCount field in the
* DDSURFACEDESC structure must be set to at least 1 in order for
* the CreateSurface call to succeed. The DDSCAPS_COMPLEX capability
* must always be set with creating multiple surfaces through CreateSurface.
*/
DDSCAPS_FLIP =0x00000010,
/*
* Indicates that this surface is THE front buffer of a surface flipping
* structure. It is generally set by CreateSurface when the DDSCAPS_FLIP
* capability bit is set.
* If this capability is sent to CreateSurface then a standalonw front buffer
* is created. This surface will not have the DDSCAPS_FLIP capability.
* It can be attached to other back buffers to form a flipping structure.
* See AddAttachments for a detailed description of the behaviors in this
* case.
*/
DDSCAPS_FRONTBUFFER =0x00000020,
/*
* Indicates that this surface is any offscreen surface that is not an overlay,
* texture, zbuffer, front buffer, back buffer, or alpha surface. It is used
* to identify plain vanilla surfaces.
*/
DDSCAPS_OFFSCREENPLAIN =0x00000040,
/*
* Indicates that this surface is an overlay. It may or may not be directly visible
* depending on whether or not it is currently being overlayed onto the primary
* surface. DDSCAPS_VISIBLE can be used to determine whether or not it is being
* overlayed at the moment.
*/
DDSCAPS_OVERLAY =0x00000080,
/*
* Indicates that unique DirectDrawPalette objects can be created and
* attached to this surface.
*/
DDSCAPS_PALETTE =0x00000100,
/*
* Indicates that this surface is the primary surface. The primary
* surface represents what the user is seeing at the moment.
*/
DDSCAPS_PRIMARYSURFACE =0x00000200,
/*
* Indicates that this surface is the primary surface for the left eye.
* The primary surface for the left eye represents what the user is seeing
* at the moment with the users left eye. When this surface is created the
* DDSCAPS_PRIMARYSURFACE represents what the user is seeing with the users
* right eye.
*/
DDSCAPS_PRIMARYSURFACELEFT =0x00000400,
/*
* Indicates that this surface memory was allocated in system memory
*/
DDSCAPS_SYSTEMMEMORY =0x00000800,
/*
* Indicates that this surface can be used as a 3D texture. It does not
* indicate whether or not the surface is being used for that purpose.
*/
DDSCAPS_TEXTURE =0x00001000,
/*
* Indicates that a surface may be a destination for 3D rendering. This
* bit must be set in order to query for a Direct3D Device Interface
* from this surface.
*/
DDSCAPS_3DDEVICE =0x00002000,
/*
* Indicates that this surface exists in video memory.
*/
DDSCAPS_VIDEOMEMORY =0x00004000,
/*
* Indicates that changes made to this surface are immediately visible.
* It is always set for the primary surface and is set for overlays while
* they are being overlayed and texture maps while they are being textured.
*/
DDSCAPS_VISIBLE =0x00008000,
/*
* Indicates that only writes are permitted to the surface. Read accesses
* from the surface may or may not generate a protection fault, but the
* results of a read from this surface will not be meaningful. READ ONLY.
*/
DDSCAPS_WRITEONLY =0x00010000,
/*
* Indicates that this surface is a z buffer. A z buffer does not contain
* displayable information. Instead it contains bit depth information that is
* used to determine which pixels are visible and which are obscured.
*/
DDSCAPS_ZBUFFER =0x00020000,
/*
* Indicates surface will have a DC associated long term
*/
DDSCAPS_OWNDC =0x00040000,
/*
* Indicates surface should be able to receive live video
*/
DDSCAPS_LIVEVIDEO =0x00080000,
/*
* Indicates surface should be able to have a stream decompressed
* to it by the hardware.
*/
DDSCAPS_HWCODEC =0x00100000,
/*
* Surface is a ModeX surface.
*
*/
DDSCAPS_MODEX =0x00200000,
/*
* Indicates surface is one level of a mip-map. This surface will
* be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map.
* This can be done explicitly, by creating a number of surfaces and
* attaching them with AddAttachedSurface or by implicitly by CreateSurface.
* If this bit is set then DDSCAPS_TEXTURE must also be set.
*/
DDSCAPS_MIPMAP =0x00400000,
/*
* This bit is reserved. It should not be specified.
*/
DDSCAPS_RESERVED2 =0x00800000,
/*
* Indicates that memory for the surface is not allocated until the surface
* is loaded (via the Direct3D texture Load() function).
*/
DDSCAPS_ALLOCONLOAD =0x04000000,
/*
* Indicates that the surface will recieve data from a video port.
*/
DDSCAPS_VIDEOPORT =0x08000000,
/*
* Indicates that a video memory surface is resident in true, local video
* memory rather than non-local video memory. If this flag is specified then
* so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
* DDSCAPS_NONLOCALVIDMEM.
*/
DDSCAPS_LOCALVIDMEM =0x10000000,
/*
* Indicates that a video memory surface is resident in non-local video
* memory rather than true, local video memory. If this flag is specified
* then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
* DDSCAPS_LOCALVIDMEM.
*/
DDSCAPS_NONLOCALVIDMEM =0x20000000,
/*
* Indicates that this surface is a standard VGA mode surface, and not a
* ModeX surface. (This flag will never be set in combination with the
* DDSCAPS_MODEX flag).
*/
DDSCAPS_STANDARDVGAMODE =0x40000000,
/*
* Indicates that this surface will be an optimized surface. This flag is
* currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface
* will be created without any underlying video memory until loaded.
*/
DDSCAPS_OPTIMIZED =0x80000000
} DDSURFACECAPSFLAGS;
typedef enum CONST_DDSURFACECAPS2FLAGS {
DDSCAPS2_HARDWAREDEINTERLACE =0x00000002,
DDSCAPS2_HINTDYNAMIC =0x00000004,
DDSCAPS2_HINTSTATIC =0x00000008,
DDSCAPS2_TEXTUREMANAGE =0x00000010,
DDSCAPS2_OPAQUE =0x00000080,
DDSCAPS2_HINTANTIALIASING =0x00000100,
//DX7 FLAGS
DDSCAPS2_CUBEMAP =0x00000200,
DDSCAPS2_CUBEMAP_POSITIVEX = 0x00000400,
DDSCAPS2_CUBEMAP_NEGATIVEX = 0x00000800,
DDSCAPS2_CUBEMAP_POSITIVEY = 0x00001000,
DDSCAPS2_CUBEMAP_NEGATIVEY = 0x00002000,
DDSCAPS2_CUBEMAP_POSITIVEZ = 0x00004000,
DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x00008000,
DDSCAPS2_CUBEMAP_ALLFACES = 0x0000FE00,
DDSCAPS2_MIPMAPSUBLEVEL = 0x00010000,
DDSCAPS2_D3DTEXTUREMANAGE = 0x00020000,
DDSCAPS2_STEREOSURFACELEFT = 0x00080000
} DDSURFACECAPS2FLAGS;
typedef enum CONST_DDCAPS1FLAGS {
/****************************************************************************
*
* DIRECTDRAW DRIVER CAPABILITY FLAGS
*
****************************************************************************/
/*
* Display hardware has 3D acceleration.
*/
DDCAPS_3D =0x00000001,
/*
* Indicates that DirectDraw will support only dest rectangles that are aligned
* on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.
* READ ONLY.
*/
DDCAPS_ALIGNBOUNDARYDEST =0x00000002,
/*
* Indicates that DirectDraw will support only source rectangles whose sizes in
* BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively. READ ONLY.
*/
DDCAPS_ALIGNSIZEDEST =0x00000004,
/*
* Indicates that DirectDraw will support only source rectangles that are aligned
* on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.
* READ ONLY.
*/
DDCAPS_ALIGNBOUNDARYSRC =0x00000008,
/*
* Indicates that DirectDraw will support only source rectangles whose sizes in
* BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively. READ ONLY.
*/
DDCAPS_ALIGNSIZESRC =0x00000010,
/*
* Indicates that DirectDraw will create video memory surfaces that have a stride
* alignment equal to DIRECTDRAWCAPS.dwAlignStride. READ ONLY.
*/
DDCAPS_ALIGNSTRIDE =0x00000020,
/*
* Display hardware is capable of blt operations.
*/
DDCAPS_BLT =0x00000040,
/*
* Display hardware is capable of asynchronous blt operations.
*/
DDCAPS_BLTQUEUE =0x00000080,
/*
* Display hardware is capable of color space conversions during the blt operation.
*/
DDCAPS_BLTFOURCC =0x00000100,
/*
* Display hardware is capable of stretching during blt operations.
*/
DDCAPS_BLTSTRETCH =0x00000200,
/*
* Display hardware is shared with GDI.
*/
DDCAPS_GDI =0x00000400,
/*
* Display hardware can overlay.
*/
DDCAPS_OVERLAY =0x00000800,
/*
* Set if display hardware supports overlays but can not clip them.
*/
DDCAPS_OVERLAYCANTCLIP =0x00001000,
/*
* Indicates that overlay hardware is capable of color space conversions during
* the overlay operation.
*/
DDCAPS_OVERLAYFOURCC =0x00002000,
/*
* Indicates that stretching can be done by the overlay hardware.
*/
DDCAPS_OVERLAYSTRETCH =0x00004000,
/*
* Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces
* other than the primary surface.
*/
DDCAPS_PALETTE =0x00008000,
/*
* Indicates that palette changes can be syncd with the veritcal refresh.
*/
DDCAPS_PALETTEVSYNC =0x00010000,
/*
* Display hardware can return the current scan line.
*/
DDCAPS_READSCANLINE =0x00020000,
/*
* Display hardware has stereo vision capabilities. DDSCAPS_PRIMARYSURFACELEFT
* can be created.
*/
DDCAPS_STEREOVIEW =0x00040000,
/*
* Display hardware is capable of generating a vertical blank interrupt.
*/
DDCAPS_VBI =0x00080000,
/*
* Supports the use of z buffers with blt operations.
*/
DDCAPS_ZBLTS =0x00100000,
/*
* Supports Z Ordering of overlays.
*/
DDCAPS_ZOVERLAYS =0x00200000,
/*
* Supports color key
*/
DDCAPS_COLORKEY =0x00400000,
/*
* Supports alpha surfaces
*/
DDCAPS_ALPHA =0x00800000,
/*
* colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)
*/
DDCAPS_COLORKEYHWASSIST =0x01000000,
/*
* no hardware support at all
*/
DDCAPS_NOHARDWARE =0x02000000,
/*
* Display hardware is capable of color fill with bltter
*/
DDCAPS_BLTCOLORFILL =0x04000000,
/*
* Display hardware is bank switched, and potentially very slow at
* random access to VRAM.
*/
DDCAPS_BANKSWITCHED =0x08000000,
/*
* Display hardware is capable of depth filling Z-buffers with bltter
*/
DDCAPS_BLTDEPTHFILL =0x10000000,
/*
* Display hardware is capable of clipping while bltting.
*/
DDCAPS_CANCLIP =0x20000000,
/*
* Display hardware is capable of clipping while stretch bltting.
*/
DDCAPS_CANCLIPSTRETCHED =0x40000000,
/*
* Display hardware is capable of bltting to or from system memory
*/
DDCAPS_CANBLTSYSMEM =0x80000000
} DDCAPS1FLAGS;
typedef enum CONST_DDCAPS2FLAGS {
/****************************************************************************
*
* MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
*
****************************************************************************/
/*
* Display hardware is certified
*/
DDCAPS2_CERTIFIED =0x00000001,
/*
* Driver cannot interleave 2D operations (lock and blt) to surfaces with
* Direct3D rendering operations between calls to BeginScene() and EndScene()
*/
DDCAPS2_NO2DDURING3DSCENE =0x00000002,
/*
* Display hardware contains a video port
*/
DDCAPS2_VIDEOPORT =0x00000004,
/*
* The overlay can be automatically flipped according to the video port
* VSYNCs, providing automatic doubled buffered display of video port
* data using an overlay
*/
DDCAPS2_AUTOFLIPOVERLAY =0x00000008,
/*
* Overlay can display each field of interlaced data individually while
* it is interleaved in memory without causing jittery artifacts.
*/
DDCAPS2_CANBOBINTERLEAVED =0x00000010,
/*
* Overlay can display each field of interlaced data individually while
* it is not interleaved in memory without causing jittery artifacts.
*/
DDCAPS2_CANBOBNONINTERLEAVED =0x00000020,
/*
* The overlay surface contains color controls (brightness, sharpness, etc.)
*/
DDCAPS2_COLORCONTROLOVERLAY =0x00000040,
/*
* The primary surface contains color controls (gamma, etc.)
*/
DDCAPS2_COLORCONTROLPRIMARY =0x00000080,
/*
* RGBZ -> RGB supported for 16:16 RGB:Z
*/
DDCAPS2_CANDROPZ16BIT =0x00000100,
/*
* Driver supports non-local video memory.
*/
DDCAPS2_NONLOCALVIDMEM =0x00000200,
/*
* Dirver supports non-local video memory but has different capabilities for
* non-local video memory surfaces. If this bit is set then so must
* DDCAPS2_NONLOCALVIDMEM.
*/
DDCAPS2_NONLOCALVIDMEMCAPS =0x00000400,
/*
* Driver neither requires nor prefers surfaces to be pagelocked when performing
* blts involving system memory surfaces
*/
DDCAPS2_NOPAGELOCKREQUIRED =0x00000800,
/*
* Driver can create surfaces which are wider than the primary surface
*/
DDCAPS2_WIDESURFACES =0x00001000,
/*
* Driver supports bob using software without using a video port
*/
DDCAPS2_CANFLIPODDEVEN =0x00002000,
DDCAPS2_CANBOBHARDWARE =0x00004000,
DDCAPS2_COPYFOURCC =0x00008000,
DDCAPS2_PRIMARYGAMMA =0x00020000,
DDCAPS2_CANRENDERWINDOWED =0x00080000,
DDCAPS2_CANCALIBRATEGAMMA =0x00100000,
DDCAPS2_FLIPINTERVAL =0x00200000,
DDCAPS2_FLIPNOVSYNC =0x00400000,
//DX7
DDCAPS2_CANMANAGETEXTURE =0x00800000,
DDCAPS2_STEREO =0x02000000
} DDCAPS2FLAGS;
#if 0
typedef enum CONST_DDFXALPHACAPSFLAGS {
/****************************************************************************
*
* DIRECTDRAW FX ALPHA CAPABILITY FLAGS
*
****************************************************************************/
/*
* Supports alpha blending around the edge of a source color keyed surface.
* For Blt.
*/
DDFXALPHACAPS_BLTALPHAEDGEBLEND =0x00000001,
/*
* Supports alpha information in the pixel format. The bit depth of alpha
* information in the pixel format can be 1,2,4, or 8. The alpha value becomes
* more opaque as the alpha value increases. (0 is transparent.)
* For Blt.
*/
DDFXALPHACAPS_BLTALPHAPIXELS =0x00000002,
/*
* Supports alpha information in the pixel format. The bit depth of alpha
* information in the pixel format can be 1,2,4, or 8. The alpha value
* becomes more transparent as the alpha value increases. (0 is opaque.)
* This flag can only be set if DDCAPS_ALPHA is set.
* For Blt.
*/
DDFXALPHACAPS_BLTALPHAPIXELSNEG =0x00000004,
/*
* Supports alpha only surfaces. The bit depth of an alpha only surface can be
* 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases.
* (0 is transparent.)
* For Blt.
*/
DDFXALPHACAPS_BLTALPHASURFACES =0x00000008,
/*
* The depth of the alpha channel data can range can be 1,2,4, or 8.
* The NEG suffix indicates that this alpha channel becomes more transparent
* as the alpha value increases. (0 is opaque.) This flag can only be set if
* DDCAPS_ALPHA is set.
* For Blt.
*/
DDFXALPHACAPS_BLTALPHASURFACESNEG =0x00000010,
/*
* Supports alpha blending around the edge of a source color keyed surface.
* For Overlays.
*/
DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND =0x00000020,
/*
* Supports alpha information in the pixel format. The bit depth of alpha
* information in the pixel format can be 1,2,4, or 8. The alpha value becomes
* more opaque as the alpha value increases. (0 is transparent.)
* For Overlays.
*/
DDFXALPHACAPS_OVERLAYALPHAPIXELS =0x00000040,
/*
* Supports alpha information in the pixel format. The bit depth of alpha
* information in the pixel format can be 1,2,4, or 8. The alpha value
* becomes more transparent as the alpha value increases. (0 is opaque.)
* This flag can only be set if DDCAPS_ALPHA is set.
* For Overlays.
*/
DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG =0x00000080,
/*
* Supports alpha only surfaces. The bit depth of an alpha only surface can be
* 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases.
* (0 is transparent.)
* For Overlays.
*/
DDFXALPHACAPS_OVERLAYALPHASURFACES =0x00000100,
/*
* The depth of the alpha channel data can range can be 1,2,4, or 8.
* The NEG suffix indicates that this alpha channel becomes more transparent
* as the alpha value increases. (0 is opaque.) This flag can only be set if
* DDCAPS_ALPHA is set.
* For Overlays.
*/
DDFXALPHACAPS_OVERLAYALPHASURFACESNEG =0x00000200
} DDFXALPHACAPSFLAGS;
#endif
typedef enum CONST_DDFXCAPSFLAGS {
/****************************************************************************
*
* DIRECTDRAW FX CAPABILITY FLAGS
*
****************************************************************************/
/*
* Uses arithmetic operations to stretch and shrink surfaces during blt
* rather than pixel doubling techniques. Along the Y axis.
*/
DDFXCAPS_BLTARITHSTRETCHY =0x00000020,
/*
* Uses arithmetic operations to stretch during blt
* rather than pixel doubling techniques. Along the Y axis. Only
* works for x1, x2, etc.
*/
DDFXCAPS_BLTARITHSTRETCHYN =0x00000010,
/*
* Supports mirroring left to right in blt.
*/
DDFXCAPS_BLTMIRRORLEFTRIGHT =0x00000040,
/*
* Supports mirroring top to bottom in blt.
*/
DDFXCAPS_BLTMIRRORUPDOWN =0x00000080,
/*
* Supports arbitrary rotation for blts.
*/
DDFXCAPS_BLTROTATION =0x00000100,
/*
* Supports 90 degree rotations for blts.
*/
DDFXCAPS_BLTROTATION90 =0x00000200,
/*
* DirectDraw supports arbitrary shrinking of a surface along the
* x axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSHRINKX =0x00000400,
/*
* DirectDraw supports integer shrinking (1x,2x,) of a surface
* along the x axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSHRINKXN =0x00000800,
/*
* DirectDraw supports arbitrary shrinking of a surface along the
* y axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSHRINKY =0x00001000,
/*
* DirectDraw supports integer shrinking (1x,2x,) of a surface
* along the y axis (vertical direction) for blts.
*/
DDFXCAPS_BLTSHRINKYN =0x00002000,
/*
* DirectDraw supports arbitrary stretching of a surface along the
* x axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSTRETCHX =0x00004000,
/*
* DirectDraw supports integer stretching (1x,2x,) of a surface
* along the x axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSTRETCHXN =0x00008000,
/*
* DirectDraw supports arbitrary stretching of a surface along the
* y axis (horizontal direction) for blts.
*/
DDFXCAPS_BLTSTRETCHY =0x00010000,
/*
* DirectDraw supports integer stretching (1x,2x,) of a surface
* along the y axis (vertical direction) for blts.
*/
DDFXCAPS_BLTSTRETCHYN =0x00020000,
/*
* Uses arithmetic operations to stretch and shrink surfaces during
* overlay rather than pixel doubling techniques. Along the Y axis
* for overlays.
*/
DDFXCAPS_OVERLAYARITHSTRETCHY =0x00040000,
/*
* Uses arithmetic operations to stretch surfaces during
* overlay rather than pixel doubling techniques. Along the Y axis
* for overlays. Only works for x1, x2, etc.
*/
DDFXCAPS_OVERLAYARITHSTRETCHYN =0x00000008,
/*
* DirectDraw supports arbitrary shrinking of a surface along the
* x axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSHRINKX =0x00080000,
/*
* DirectDraw supports integer shrinking (1x,2x,) of a surface
* along the x axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSHRINKXN =0x00100000,
/*
* DirectDraw supports arbitrary shrinking of a surface along the
* y axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSHRINKY =0x00200000,
/*
* DirectDraw supports integer shrinking (1x,2x,) of a surface
* along the y axis (vertical direction) for overlays.
*/
DDFXCAPS_OVERLAYSHRINKYN =0x00400000,
/*
* DirectDraw supports arbitrary stretching of a surface along the
* x axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSTRETCHX =0x00800000,
/*
* DirectDraw supports integer stretching (1x,2x,) of a surface
* along the x axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSTRETCHXN =0x01000000,
/*
* DirectDraw supports arbitrary stretching of a surface along the
* y axis (horizontal direction) for overlays.
*/
DDFXCAPS_OVERLAYSTRETCHY =0x02000000,
/*
* DirectDraw supports integer stretching (1x,2x,) of a surface
* along the y axis (vertical direction) for overlays.
*/
DDFXCAPS_OVERLAYSTRETCHYN =0x04000000,
/*
* DirectDraw supports mirroring of overlays across the vertical axis
*/
DDFXCAPS_OVERLAYMIRRORLEFTRIGHT =0x08000000,
/*
* DirectDraw supports mirroring of overlays across the horizontal axis
*/
DDFXCAPS_OVERLAYMIRRORUPDOWN =0x10000000,
DDFXCAPS_BLTALPHA =0x00000001,
DDFXCAPS_BLTTRANSFORM =0x00000002,
DDFXCAPS_BLTFILTER =0x00000020,
DDFXCAPS_OVERLAYALPHA =0x00000004,
DDFXCAPS_OVERLAYTRANSFORM =0x20000000,
DDFXCAPS_OVERLAYFILTER =0x00040000
} DDFXCAPSFLAGS;
typedef enum CONST_DDSTEREOCAPSFLAGS {
/****************************************************************************
*
* DIRECTDRAW STEREO VIEW CAPABILITIES
*
****************************************************************************/
/*
* The stereo view is accomplished via enigma encoding.
*/
DDSVCAPS_ENIGMA =0x00000001,
/*
* The stereo view is accomplished via high frequency flickering.
*/
DDSVCAPS_FLICKER =0x00000002,
/*
* The stereo view is accomplished via red and blue filters applied
* to the left and right eyes. All images must adapt their colorspaces
* for this process.
*/
DDSVCAPS_REDBLUE =0x00000004,
/*
* The stereo view is accomplished with split screen technology.
*/
DDSVCAPS_SPLIT =0x00000008,
DDSVCAPS_STEREOSEQUENTIAL = 0x00000010
} DDSTEREOCAPSFLAGS;
typedef enum CONST_DDCKEYCAPSFLAGS {
/****************************************************************************
*
* DIRECTDRAW COLOR KEY CAPABILITY FLAGS
*
****************************************************************************/
/*
* Supports transparent blting using a color key to identify the replaceable
* bits of the destination surface for RGB colors.
*/
DDCKEYCAPS_DESTBLT =0x00000001,
/*
* Supports transparent blting using a color space to identify the replaceable
* bits of the destination surface for RGB colors.
*/
DDCKEYCAPS_DESTBLTCLRSPACE =0x00000002,
/*
* Supports transparent blting using a color space to identify the replaceable
* bits of the destination surface for YUV colors.
*/
DDCKEYCAPS_DESTBLTCLRSPACEYUV =0x00000004,
/*
* Supports transparent blting using a color key to identify the replaceable
* bits of the destination surface for YUV colors.
*/
DDCKEYCAPS_DESTBLTYUV =0x00000008,
/*
* Supports overlaying using colorkeying of the replaceable bits of the surface
* being overlayed for RGB colors.
*/
DDCKEYCAPS_DESTOVERLAY =0x00000010,
/*
* Supports a color space as the color key for the destination for RGB colors.
*/
DDCKEYCAPS_DESTOVERLAYCLRSPACE =0x00000020,
/*
* Supports a color space as the color key for the destination for YUV colors.
*/
DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV =0x00000040,
/*
* Supports only one active destination color key value for visible overlay
* surfaces.
*/
DDCKEYCAPS_DESTOVERLAYONEACTIVE =0x00000080,
/*
* Supports overlaying using colorkeying of the replaceable bits of the
* surface being overlayed for YUV colors.
*/
DDCKEYCAPS_DESTOVERLAYYUV =0x00000100,
/*
* Supports transparent blting using the color key for the source with
* this surface for RGB colors.
*/
DDCKEYCAPS_SRCBLT =0x00000200,
/*
* Supports transparent blting using a color space for the source with
* this surface for RGB colors.
*/
DDCKEYCAPS_SRCBLTCLRSPACE =0x00000400,
/*
* Supports transparent blting using a color space for the source with
* this surface for YUV colors.
*/
DDCKEYCAPS_SRCBLTCLRSPACEYUV =0x00000800,
/*
* Supports transparent blting using the color key for the source with
* this surface for YUV colors.
*/
DDCKEYCAPS_SRCBLTYUV =0x00001000,
/*
* Supports overlays using the color key for the source with this
* overlay surface for RGB colors.
*/
DDCKEYCAPS_SRCOVERLAY =0x00002000,
/*
* Supports overlays using a color space as the source color key for
* the overlay surface for RGB colors.
*/
DDCKEYCAPS_SRCOVERLAYCLRSPACE =0x00004000,
/*
* Supports overlays using a color space as the source color key for
* the overlay surface for YUV colors.
*/
DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV =0x00008000,
/*
* Supports only one active source color key value for visible
* overlay surfaces.
*/
DDCKEYCAPS_SRCOVERLAYONEACTIVE =0x00010000,
/*
* Supports overlays using the color key for the source with this
* overlay surface for YUV colors.
*/
DDCKEYCAPS_SRCOVERLAYYUV =0x00020000,
/*
* there are no bandwidth trade-offs for using colorkey with an overlay
*/
DDCKEYCAPS_NOCOSTOVERLAY =0x00040000
} DDCKEYCAPSFLAGS;
typedef enum CONST_DDPIXELFORMATFLAGS {
/****************************************************************************
*
* DIRECTDRAW PIXELFORMAT FLAGS
*
****************************************************************************/
/*
* The surface has alpha channel information in the pixel format.
*/
DDPF_ALPHAPIXELS =0x00000001,
/*
* The pixel format contains alpha only information
*/
DDPF_ALPHA =0x00000002,
/*
* The FourCC code is valid.
*/
DDPF_FOURCC =0x00000004,
/*
* The surface is 4-bit color indexed.
*/
DDPF_PALETTEINDEXED4 =0x00000008,
/*
* The surface is indexed into a palette which stores indices
* into the destination surface's 8-bit palette.
*/
DDPF_PALETTEINDEXEDTO8 =0x00000010,
/*
* The surface is 8-bit color indexed.
*/
DDPF_PALETTEINDEXED8 =0x00000020,
/*
* The RGB data in the pixel format structure is valid.
*/
DDPF_RGB =0x00000040,
/*
* The surface will accept pixel data in the format specified
* and compress it during the write.
*/
DDPF_COMPRESSED =0x00000080,
/*
* The surface will accept RGB data and translate it during
* the write to YUV data. The format of the data to be written
* will be contained in the pixel format structure. The DDPF_RGB
* flag will be set.
*/
DDPF_RGBTOYUV =0x00000100,
/*
* pixel format is YUV - YUV data in pixel format struct is valid
*/
DDPF_YUV =0x00000200,
/*
* pixel format is a z buffer only surface
*/
DDPF_ZBUFFER =0x00000400,
/*
* The surface is 1-bit color indexed.
*/
DDPF_PALETTEINDEXED1 =0x00000800,
/*
* The surface is 2-bit color indexed.
*/
DDPF_PALETTEINDEXED2 =0x00001000,
/*
* The surface contains Z information in the pixels
*/
DDPF_ZPIXELS =0x00002000,
DDPF_STENCILBUFFER =0x00004000,
DDPF_ALPHAPREMULT =0x00008000,
DDPF_LUMINANCE =0x00020000,
DDPF_BUMPLUMINANCE =0x00040000,
DDPF_BUMPDUDV =0x00080000
} DDPIXELFORMATFLAGS;
typedef enum CONST_DDENUMSURFACESFLAGS {
/****************************************************************************
*
* DIRECTDRAW ENUMSURFACES FLAGS
*
****************************************************************************/
/*
* Enumerate all of the surfaces that meet the search criterion.
*/
DDENUMSURFACES_ALL =0x00000001,
/*
* A search hit is a surface that matches the surface description.
*/
DDENUMSURFACES_MATCH =0x00000002,
/*
* A search hit is a surface that does not match the surface description.
*/
DDENUMSURFACES_NOMATCH =0x00000004,
/*
* Enumerate the first surface that can be created which meets the search criterion.
*/
DDENUMSURFACES_CANBECREATED =0x00000008,
/*
* Enumerate the surfaces that already exist that meet the search criterion.
*/
DDENUMSURFACES_DOESEXIST =0x00000010
} DDENUMSURFACESFLAGS;
typedef enum CONST_DDRAW {
DD_ROP_SPACE =(256/32), // space required to store ROP array
} DDRAWFLAGS;
typedef enum CONST_DDBLTFXFLAGS {
/****************************************************************************
*
* DIRECTDRAWSURFACE BLT FX FLAGS
*
****************************************************************************/
/*
* If stretching, use arithmetic stretching along the Y axis for this blt.
*/
DDBLTFX_ARITHSTRETCHY =0x00000001,
/*
* Do this blt mirroring the surface left to right. Spin the
* surface around its y-axis.
*/
DDBLTFX_MIRRORLEFTRIGHT =0x00000002,
/*
* Do this blt mirroring the surface up and down. Spin the surface
* around its x-axis.
*/
DDBLTFX_MIRRORUPDOWN =0x00000004,
/*
* Schedule this blt to avoid tearing.
*/
DDBLTFX_NOTEARING =0x00000008,
/*
* Do this blt rotating the surface one hundred and eighty degrees.
*/
DDBLTFX_ROTATE180 =0x00000010,
/*
* Do this blt rotating the surface two hundred and seventy degrees.
*/
DDBLTFX_ROTATE270 =0x00000020,
/*
* Do this blt rotating the surface ninety degrees.
*/
DDBLTFX_ROTATE90 =0x00000040,
/*
* Do this z blt using dwZBufferLow and dwZBufferHigh as range values
* specified to limit the bits copied from the source surface.
*/
DDBLTFX_ZBUFFERRANGE =0x00000080,
/*
* Do this z blt adding the dwZBufferBaseDest to each of the sources z values
* before comparing it with the desting z values.
*/
DDBLTFX_ZBUFFERBASEDEST =0x00000100
} DDBLTFXFLAGS;
#if 0
typedef enum CONST_DDOVERLAYFXFLAGS {
/****************************************************************************
*
* DIRECTDRAWSURFACE OVERLAY FX FLAGS
*
****************************************************************************/
/*
* If stretching, use arithmetic stretching along the Y axis for this overlay.
*/
DDOVERFX_ARITHSTRETCHY =0x00000001,
/*
* Mirror the overlay across the vertical axis
*/
DDOVERFX_MIRRORLEFTRIGHT =0x00000002,
/*
* Mirror the overlay across the horizontal axis
*/
DDOVERFX_MIRRORUPDOWN =0x00000004
} DDOVERLAYFXFLAGS;
#endif
typedef enum CONST_DDWAITVBFLAGS {
/****************************************************************************
*
* DIRECTDRAW WAITFORVERTICALBLANK FLAGS
*
****************************************************************************/
/*
* return when the vertical blank interval begins
*/
DDWAITVB_BLOCKBEGIN =0x00000001,
/*
* set up an event to trigger when the vertical blank begins
*/
DDWAITVB_BLOCKBEGINEVENT =0x00000002,
/*
* return when the vertical blank interval ends and display begins
*/
DDWAITVB_BLOCKEND =0x00000004
} DDWAITVBFLAGS;
/************************************************/
// DINPUT
/************************************************/
typedef enum CONST_DIENUMDEVICESFLAGS {
DIEDFL_ALLDEVICES =0x00000000,
DIEDFL_ATTACHEDONLY =0x00000001,
DIEDFL_FORCEFEEDBACK =0x00000100,
DIEDFL_INCLUDEALIASES =0x00010000,
DIEDFL_INCLUDEPHANTOMS =0x00020000
} DIENUMDEVICESFLAGS;
typedef enum CONST_DIDEVICETYPE {
DIDEVTYPE_DEVICE =1,
DIDEVTYPE_MOUSE =2,
DIDEVTYPE_KEYBOARD =3,
DIDEVTYPE_JOYSTICK =4,
DIDEVTYPE_HID =0x00010000,
DIDEVTYPEMOUSE_UNKNOWN = 0x100,
DIDEVTYPEMOUSE_TRADITIONAL = 0x200,
DIDEVTYPEMOUSE_FINGERSTICK = 0x300,
DIDEVTYPEMOUSE_TOUCHPAD = 0x400,
DIDEVTYPEMOUSE_TRACKBALL = 0x500,
DIDEVTYPEKEYBOARD_UNKNOWN = 0x000,
DIDEVTYPEKEYBOARD_PCXT = 0x100,
DIDEVTYPEKEYBOARD_OLIVETTI = 0x200,
DIDEVTYPEKEYBOARD_PCAT = 0x300,
DIDEVTYPEKEYBOARD_PCENH = 0x400,
DIDEVTYPEKEYBOARD_NOKIA1050 = 0x500,
DIDEVTYPEKEYBOARD_NOKIA9140 = 0x600,
DIDEVTYPEKEYBOARD_NEC98 = 0x700,
DIDEVTYPEKEYBOARD_NEC98LAPTOP = 0x800,
DIDEVTYPEKEYBOARD_NEC98106 = 0x900,
DIDEVTYPEKEYBOARD_JAPAN106 = 0xA00,
DIDEVTYPEKEYBOARD_JAPANAX = 0xB00,
DIDEVTYPEKEYBOARD_J3100 = 0xC00,
DIDEVTYPEJOYSTICK_UNKNOWN = 0x100,
DIDEVTYPEJOYSTICK_TRADITIONAL = 0x200,
DIDEVTYPEJOYSTICK_FLIGHTSTICK = 0x300,
DIDEVTYPEJOYSTICK_GAMEPAD = 0x400,
DIDEVTYPEJOYSTICK_RUDDER = 0x500,
DIDEVTYPEJOYSTICK_WHEEL = 0x600,
DIDEVTYPEJOYSTICK_HEADTRACKER = 0x700
} DIDEVICETYPE;
typedef enum CONST_DIDFTFLAGS {
DIDFT_ALL =0x00000000,
DIDFT_RELAXIS =0x00000001,
DIDFT_ABSAXIS =0x00000002,
DIDFT_AXIS =0x00000003,
DIDFT_PSHBUTTON =0x00000004,
DIDFT_TGLBUTTON =0x00000008,
DIDFT_BUTTON =0x0000000C,
DIDFT_POV =0x00000010,
DIDFT_COLLECTION =0x00000040,
DIDFT_NODATA =0x00000080,
DIDFT_ANYINSTANCE =0x00FFFF00,
DIDFT_INSTANCEMASK =DIDFT_ANYINSTANCE,
DIDFT_FFACTUATOR =0x01000000,
DIDFT_FFEFFECTTRIGGER =0x02000000,
DIDFT_NOCOLLECTION =0x00FFFF00
} DIDFTFLAGS;
typedef enum CONST_DIDGDDFLAGS {
DIGDD_DEFAULT =0x00000000,
DIGDD_PEEK =0x00000001
} DIDGDDFLAGS;
typedef enum CONST_DIPHFLAGS {
DIPH_DEVICE =0,
DIPH_BYOFFSET =1,
DIPH_BYID =2
} DIPHFLAGS;
typedef enum CONST_DISCLFLAGS {
DISCL_EXCLUSIVE =0x00000001,
DISCL_NONEXCLUSIVE =0x00000002,
DISCL_FOREGROUND =0x00000004,
DISCL_BACKGROUND =0x00000008
} DISCLFLAGS;
typedef enum CONST_DIDEVCAPSFLAGS {
DIDC_ATTACHED =0x00000001,
DIDC_POLLEDDEVICE =0x00000002,
DIDC_EMULATED =0x00000004,
DIDC_POLLEDDATAFORMAT =0x00000008,
DIDC_FORCEFEEDBACK =0x00000100,
DIDC_FFATTACK =0x00000200,
DIDC_FFFADE =0x00000400,
DIDC_SATURATION =0x00000800,
DIDC_POSNEGCOEFFICIENTS =0x00001000,
DIDC_POSNEGSATURATION =0x00002000,
DIDC_DEADBAND =0x00004000,
DIDC_ALIAS =0x00010000,
DIDC_PHANTOM =0x00020000
} DIDEVCAPSFLAGS;
typedef enum CONST_DIDATAFORMATFLAGS {
DIDF_ABSAXIS =0x00000001,
DIDF_RELAXIS =0x00000002
} DIDATAFORMATFLAGS;
typedef enum CONST_DIDEVICEOBJINSTANCEFLAGS {
DIDOI_FFACTUATOR =0x00000001,
DIDOI_FFEFFECTTRIGGER =0x00000002,
DIDOI_POLLED =0x00008000,
DIDOI_ASPECTPOSITION =0x00000100,
DIDOI_ASPECTVELOCITY =0x00000200,
DIDOI_ASPECTACCEL =0x00000300,
DIDOI_ASPECTFORCE =0x00000400,
DIDOI_ASPECTMASK =0x00000F00
} DIDEVICEOBJINSTANCEFLAGS;
/*
typedef enum CONST_DIPROPERTYFLAGS {
DIPROP_BUFFERSIZE =1,
DIPROP_AXISMODE =2,
DIPROPAXISMODE_ABS =0,
DIPROPAXISMODE_REL =1,
DIPROP_GRANULARITY =3,
DIPROP_RANGE =4,
DIPROP_DEADZONE =5,
DIPROP_SATURATION =6,
DIPROP_FFGAIN =7,
DIPROP_FFLOAD =8,
DIPROP_AUTOCENTER =9,
DIPROPAUTOCENTER_OFF =0,
DIPROPAUTOCENTER_ON =1,
DIPROP_CALIBRATIONMODE =10,
DIPROPCALIBRATIONMODE_COOKED= 0,
DIPROPCALIBRATIONMODE_RAW = 1
} DIPROPERTYFLAGS;
*/
typedef enum CONST_DIKEYFLAGS {
DIK_ESCAPE = 0x01,
DIK_1 = 0x02,
DIK_2 = 0x03,
DIK_3 = 0x04,
DIK_4 = 0x05,
DIK_5 = 0x06,
DIK_6 = 0x07,
DIK_7 = 0x08,
DIK_8 = 0x09,
DIK_9 = 0x0A,
DIK_0 = 0x0B,
DIK_MINUS = 0x0C , /* - on main keyboard */
DIK_EQUALS = 0x0D,
DIK_BACK = 0x0E , /* backspace */
DIK_TAB = 0x0F,
DIK_Q = 0x10,
DIK_W = 0x11,
DIK_E = 0x12,
DIK_R = 0x13,
DIK_T = 0x14,
DIK_Y = 0x15,
DIK_U = 0x16,
DIK_I = 0x17,
DIK_O = 0x18,
DIK_P = 0x19,
DIK_LBRACKET = 0x1A,
DIK_RBRACKET = 0x1B,
DIK_RETURN = 0x1C , /* Enter on main keyboard */
DIK_LCONTROL = 0x1D,
DIK_A = 0x1E,
DIK_S = 0x1F,
DIK_D = 0x20,
DIK_F = 0x21,
DIK_G = 0x22,
DIK_H = 0x23,
DIK_J = 0x24,
DIK_K = 0x25,
DIK_L = 0x26,
DIK_SEMICOLON = 0x27,
DIK_APOSTROPHE = 0x28,
DIK_GRAVE = 0x29 , /* accent grave */
DIK_LSHIFT = 0x2A,
DIK_BACKSLASH = 0x2B,
DIK_Z = 0x2C,
DIK_X = 0x2D,
DIK_C = 0x2E,
DIK_V = 0x2F,
DIK_B = 0x30,
DIK_N = 0x31,
DIK_M = 0x32,
DIK_COMMA = 0x33,
DIK_PERIOD = 0x34 , /* . on main keyboard */
DIK_SLASH = 0x35 , /* / on main keyboard */
DIK_RSHIFT = 0x36,
DIK_MULTIPLY = 0x37 , /* * on numeric keypad */
DIK_LMENU = 0x38 , /* left Alt */
DIK_SPACE = 0x39,
DIK_CAPITAL = 0x3A,
DIK_F1 = 0x3B,
DIK_F2 = 0x3C,
DIK_F3 = 0x3D,
DIK_F4 = 0x3E,
DIK_F5 = 0x3F,
DIK_F6 = 0x40,
DIK_F7 = 0x41,
DIK_F8 = 0x42,
DIK_F9 = 0x43,
DIK_F10 = 0x44,
DIK_NUMLOCK = 0x45,
DIK_SCROLL = 0x46 , /* Scroll Lock */
DIK_NUMPAD7 = 0x47,
DIK_NUMPAD8 = 0x48,
DIK_NUMPAD9 = 0x49,
DIK_SUBTRACT = 0x4A , /* - on numeric keypad */
DIK_NUMPAD4 = 0x4B,
DIK_NUMPAD5 = 0x4C,
DIK_NUMPAD6 = 0x4D,
DIK_ADD = 0x4E , /* + on numeric keypad */
DIK_NUMPAD1 = 0x4F,
DIK_NUMPAD2 = 0x50,
DIK_NUMPAD3 = 0x51,
DIK_NUMPAD0 = 0x52,
DIK_DECIMAL = 0x53, /* . on numeric keypad */
DIK_F11 = 0x57,
DIK_F12 = 0x58 ,
DIK_F13 = 0x64 , /* (NEC PC98) */
DIK_F14 = 0x65 , /* (NEC PC98) */
DIK_F15 = 0x66 , /* (NEC PC98) */
DIK_KANA = 0x70 , /* (Japanese keyboard) */
DIK_CONVERT = 0x79 , /* (Japanese keyboard) */
DIK_NOCONVERT = 0x7B , /* (Japanese keyboard) */
DIK_YEN = 0x7D , /* (Japanese keyboard) */
DIK_NUMPADEQUALS = 0x8D , /* = on numeric keypad (NEC PC98) */
DIK_CIRCUMFLEX = 0x90 , /* (Japanese keyboard) */
DIK_AT = 0x91 , /* (NEC PC98) */
DIK_COLON = 0x92 , /* (NEC PC98) */
DIK_UNDERLINE = 0x93 , /* (NEC PC98) */
DIK_KANJI = 0x94 , /* (Japanese keyboard) */
DIK_STOP = 0x95 , /* (NEC PC98) */
DIK_AX = 0x96 , /* (Japan AX) */
DIK_UNLABELED = 0x97 , /* (J3100) */
DIK_NUMPADENTER = 0x9C , /* Enter on numeric keypad */
DIK_RCONTROL = 0x9D ,
DIK_NUMPADCOMMA = 0xB3, /* , on numeric keypad (NEC PC98) */
DIK_DIVIDE = 0xB5, /* / on numeric keypad */
DIK_SYSRQ = 0xB7,
DIK_RMENU = 0xB8, /* right Al t */
DIK_PAUSE = 0xC5, /* Pause */
DIK_HOME = 0xC7, /* Home on arrow keypad */
DIK_UP = 0xC8, /* UpArrow on arrow keypad */
DIK_PRIOR = 0xC9, /* PgUp on arrow keypad */
DIK_LEFT = 0xCB, /* LeftArrow on arrow keypad */
DIK_RIGHT = 0xCD, /* RightArrow on arrow keypad */
DIK_END = 0xCF, /* End on arrow keypad */
DIK_DOWN = 0xD0, /* DownArrow on arrow keypad */
DIK_NEXT = 0xD1, /* PgDn on arrow keypad */
DIK_INSERT = 0xD2, /* Insert on arrow keypad */
DIK_DELETE = 0xD3, /* Delete on arrow keypad */
DIK_LWIN = 0xDB, /* Left Windows key */
DIK_RWIN = 0xDC, /* Right Windows key */
DIK_APPS = 0xDD, /* AppMenu key */
} DIKEYFLAGS;
typedef enum CONST_DINPUT {
DIPROPRANGE_NOMIN =0x80000000,
DIPROPRANGE_NOMAX =0x7FFFFFFF,
/*
DIEFT_ALL = 0x00000000,
DIEFT_CONSTANTFORCE = 0x00000001,
DIEFT_RAMPFORCE = 0x00000002,
DIEFT_PERIODIC = 0x00000003,
DIEFT_CONDITION = 0x00000004,
DIEFT_CUSTOMFORCE = 0x00000005,
DIEFT_HARDWARE = 0x000000FF,
DIEFT_FFATTACK = 0x00000200,
DIEFT_FFFADE = 0x00000400,
DIEFT_SATURATION = 0x00000800,
DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
DIEFT_POSNEGSATURATION = 0x00002000,
DIEFT_DEADBAND = 0x00004000,
DI_DEGREES = 100,
DI_FFNOMINALMAX = 10000,
DI_SECONDS = 1000000,
DIEFF_OBJECTIDS = 0x00000001,
DIEFF_OBJECTOFFSETS = 0x00000002,
DIEFF_CARTESIAN = 0x00000010,
DIEFF_POLAR = 0x00000020,
DIEFF_SPHERICAL = 0x00000040,
DIEP_DURATION = 0x00000001,
DIEP_SAMPLEPERIOD = 0x00000002,
DIEP_GAIN = 0x00000004,
DIEP_TRIGGERBUTTON = 0x00000008,
DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
DIEP_AXES = 0x00000020,
DIEP_DIRECTION = 0x00000040,
DIEP_ENVELOPE = 0x00000080,
DIEP_TYPESPECIFICPARAMS = 0x00000100,
DIEP_ALLPARAMS = 0x000001FF,
DIEP_START = 0x20000000,
DIEP_NORESTART = 0x40000000,
DIEP_NODOWNLOAD = 0x80000000,
DIEB_NOTRIGGER = 0xFFFFFFFF,
DIES_SOLO = 0x00000001,
DIES_NODOWNLOAD = 0x80000000,
DIEGES_PLAYING = 0x00000001,
DIEGES_EMULATED = 0x00000002,
DISFFC_RESET = 0x00000001,
DISFFC_STOPALL = 0x00000002,
DISFFC_PAUSE = 0x00000004,
DISFFC_CONTINUE = 0x00000008,
DISFFC_SETACTUATORSON = 0x00000010,
DISFFC_SETACTUATORSOFF = 0x00000020,
DIGFFS_EMPTY = 0x00000001,
DIGFFS_STOPPED = 0x00000002,
DIGFFS_PAUSED = 0x00000004,
DIGFFS_ACTUATORSON = 0x00000010,
DIGFFS_ACTUATORSOFF = 0x00000020,
DIGFFS_POWERON = 0x00000040,
DIGFFS_POWEROFF = 0x00000080,
DIGFFS_SAFETYSWITCHON = 0x00000100,
DIGFFS_SAFETYSWITCHOFF = 0x00000200,
DIGFFS_USERFFSWITCHON = 0x00000400,
DIGFFS_USERFFSWITCHOFF = 0x00000800,
DIGFFS_DEVICELOST = 0x80000000,
*/
/*
Alternate names for keys, to facilitate transition from DOS.
DIK_BACKSPACE = DIK_BACK , // backspace
DIK_NUMPADSTAR = DIK_MULTIPLY, // * on numeric keypad
DIK_LALT = DIK_LMENU , // left Alt
DIK_CAPSLOCK = DIK_CAPITAL , // CapsLock
DIK_NUMPADMINUS = DIK_SUBTRACT, // - on numeric keypad
DIK_NUMPADPLUS = DIK_ADD , // + on numeric keypad
DIK_NUMPADPERIOD = DIK_DECIMAL, // . on numeric keypad
DIK_NUMPADSLASH = DIK_DIVIDE, // / on numeric keypad
DIK_RALT = DIK_RMENU , // right Alt
DIK_UPARROW = DIK_UP , // UpArrow on arrow keypad
DIK_PGUP = DIK_PRIOR , // PgUp on arrow keypad
DIK_LEFTARROW = DIK_LEFT , // LeftArrow on arrow keypad
DIK_RIGHTARROW = DIK_RIGHT , // RightArrow on arrow keypad
DIK_DOWNARROW = DIK_DOWN , // DownArrow on arrow keypad
DIK_PGDN = DIK_NEXT , // PgDn on arrow keypad
*/
// DIENUM_STOP =0,
// DIENUM_CONTINUE =1,
/*
* Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
* contains mini-driver specific data to be passed by VJoyD to the mini-
* driver instead of doing a poll.
*/
// JOY_PASSDRIVERDATA =0x10000000,
/*
* Hardware Setting indicating that the device is a headtracker
*/
// JOY_HWS_ISHEADTRACKER =0x02000000,
/*
* Hardware Setting indicating that the VxD is used to replace
* the standard analog polling
*/
// JOY_HWS_ISGAMEPORTDRIVER =0x04000000,
/*
* Hardware Setting indicating that the driver needs a standard
* gameport in order to communicate with the device.
*/
// JOY_HWS_ISANALOGPORTDRIVER =0x08000000,
/*
* Hardware Setting indicating that VJoyD should not load this
* driver, it will be loaded externally and will register with
* VJoyD of it's own accord.
*/
// JOY_HWS_AUTOLOAD =0x10000000,
/*
* Hardware Setting indicating that the driver acquires any
* resources needed without needing a devnode through VJoyD.
*/
// JOY_HWS_NODEVNODE =0x20000000,
/*
* Hardware Setting indicating that the VxD can be used as
* a port 201h emulator.
*/
// JOY_HWS_ISGAMEPORTEMULATOR =0x40000000,
/*
* Usage Setting indicating that the settings are volatile and
* should be removed if still present on a reboot.
*/
// JOY_US_VOLATILE =0x00000008,
DIPROPAXISMODE_ABS =0,
DIPROPAXISMODE_REL =1,
DIPROPCALIBRATIONMODE_COOKED=0,
DIPROPCALIBRATIONMODE_RAW=1,
DIPROPAUTOCENTER_OFF =0,
DIPROPAUTOCENTER_ON =1,
DIEB_NOTRIGGER = 0xFFFFFFFF
} DINPUTCONSTANTS;
/****************** DIRECT PLAY********************/
typedef enum CONST_DSSCLFLAGS {
DSSCL_NORMAL =0x00000001,
DSSCL_PRIORITY =0x00000002,
DSSCL_EXCLUSIVE =0x00000003,
DSSCL_WRITEPRIMARY =0x00000004
} DSSCLFLAGS;
typedef enum CONST_DSSPEAKERFLAGS {
DSSPEAKER_HEADPHONE =0x00000001,
DSSPEAKER_MONO =0x00000002,
DSSPEAKER_QUAD =0x00000003,
DSSPEAKER_STEREO =0x00000004,
DSSPEAKER_SURROUND =0x00000005,
DSSPEAKER_GEOMETRY_MIN =0x00000005, // 5 degrees
DSSPEAKER_GEOMETRY_NARROW =0x0000000A, // 10 degrees
DSSPEAKER_GEOMETRY_WIDE =0x00000014, // 20 degrees
DSSPEAKER_GEOMETRY_MAX =0x000000B4 // 180 degrees
} DSSPEAKERFLAGS;
typedef enum CONST_DSBPLAYFLAGS{
DSBPLAY_DEFAULT =0x00000000,
DSBPLAY_LOOPING =0x00000001
} DSBPLAYFLAGS;
typedef enum CONST_DSBLOCKFLAGS {
DSBLOCK_DEFAULT =0x00000000,
DSBLOCK_FROMWRITECURSOR =0x00000001,
DSBLOCK_ENTIREBUFFER =0x00000002
} DSBLOCKFLAGS;
typedef enum CONST_DSCBLOCKFLAGS {
DSCBLOCK_DEFAULT =0x00000000,
DSCBLOCK_ENTIREBUFFER =0x00000001
} DSCBLOCKFLAGS;
typedef enum CONST_DSBSTATUSFLAGS {
DSBSTATUS_PLAYING =0x00000001,
DSBSTATUS_BUFFERLOST =0x00000002,
DSBSTATUS_LOOPING =0x00000004,
} DSBSTATUSFLAGS;
typedef enum CONST_DS3DAPPLYFLAGS {
DS3D_IMMEDIATE =0x00000000,
DS3D_DEFERRED =0x00000001
} DS3DAPPLYFLAGS;
typedef enum CONST_DS3DMODEFLAGS {
DS3DMODE_NORMAL =0x00000000,
DS3DMODE_HEADRELATIVE =0x00000001,
DS3DMODE_DISABLE =0x00000002
} DS3DMODEFLAGS;
typedef enum CONST_DSCBSTATUSFLAGS {
DSCBSTATUS_CAPTURING =0x00000001,
DSCBSTATUS_LOOPING =0x00000002
} DSCBSTATUSFLAGS;
typedef enum CONST_DSCBSTARTFLAGS {
DSCBSTART_DEFAULT =0x00000000,
DSCBSTART_LOOPING =0x00000001
} DSCBSTARTFLAGS;
typedef enum CONST_DSCAPSFLAGS {
DSCAPS_PRIMARYMONO =0x00000001,
DSCAPS_PRIMARYSTEREO =0x00000002,
DSCAPS_PRIMARY8BIT =0x00000004,
DSCAPS_PRIMARY16BIT =0x00000008,
DSCAPS_CONTINUOUSRATE =0x00000010,
DSCAPS_EMULDRIVER =0x00000020,
DSCAPS_CERTIFIED =0x00000040,
DSCAPS_SECONDARYMONO =0x00000100,
DSCAPS_SECONDARYSTEREO =0x00000200,
DSCAPS_SECONDARY8BIT =0x00000400,
DSCAPS_SECONDARY16BIT =0x00000800
} DSCAPSFLAGS;
typedef enum CONST_DSBCAPSFLAGS {
DSBCAPS_PRIMARYBUFFER =0x00000001,
DSBCAPS_STATIC =0x00000002,
DSBCAPS_LOCHARDWARE =0x00000004,
DSBCAPS_LOCSOFTWARE =0x00000008,
DSBCAPS_CTRL3D =0x00000010,
DSBCAPS_CTRLFREQUENCY =0x00000020,
DSBCAPS_CTRLPAN =0x00000040,
DSBCAPS_CTRLVOLUME =0x00000080,
DSBCAPS_CTRLPOSITIONNOTIFY =0x00000100,
//DSBCAPS_CTRLDEFAULT =0x000000E0,
//DSBCAPS_CTRLALL =0x000001F0,
DSBCAPS_STICKYFOCUS =0x00004000,
DSBCAPS_GLOBALFOCUS =0x00008000,
DSBCAPS_GETCURRENTPOSITION2 =0x00010000,
DSBCAPS_MUTE3DATMAXDISTANCE =0x00020000
} DSBCAPSFLAGS;
typedef enum CONST_DSCBCAPSFLAGS {
DSCBCAPS_DEFAULT =0x00000000,
DSCBCAPS_WAVEMAPPED =0x80000000
} DSCBCAPSFLAGS;
typedef enum CONST_DSCCAPSFLAGS {
DSCCAPS_DEFAULT =0x00000000,
DSCCAPS_EMULDRIVER =0x00000020
} DSCCAPSFLAGS;
typedef enum CONST_DSOUND {
//KSPROPERTY_SUPPORT_GET =0x00000001,
//KSPROPERTY_SUPPORT_SET =0x00000002,
DS3D_MINDISTANCEFACTOR =0,
DS3D_MAXDISTANCEFACTOR =10,
DS3D_DEFAULTDISTANCEFACTOR =1,
DS3D_MINROLLOFFFACTOR =0,
DS3D_MAXROLLOFFFACTOR =10,
DS3D_DEFAULTROLLOFFFACTOR =1,
DS3D_MINDOPPLERFACTOR =0,
DS3D_MAXDOPPLERFACTOR =10,
DS3D_DEFAULTDOPPLERFACTOR =1,
DS3D_DEFAULTMINDISTANCE =1,
DS3D_DEFAULTMAXDISTANCE =1000000000,
DS3D_MINCONEANGLE =0,
DS3D_MAXCONEANGLE =360,
DS3D_DEFAULTCONEANGLE =360,
DS3D_DEFAULTCONEOUTSIDEVOLUME = 0,
DSBFREQUENCY_MIN =100,
DSBFREQUENCY_MAX =100000,
DSBFREQUENCY_ORIGINAL =0,
DSBPAN_LEFT =-10000,
DSBPAN_CENTER =0,
DSBPAN_RIGHT =10000,
DSBVOLUME_MIN =-10000,
DSBVOLUME_MAX =0,
DSBSIZE_MIN =4,
DSBSIZE_MAX =0x0FFFFFFF,
DSBPN_OFFSETSTOP =0xFFFFFFFF,
WAVE_FORMAT_PCM =1
} DSOUNDCONSTANTS;
/*
* State enumerants for per-stage texture processing.
*/
typedef enum CONST_D3DTEXTURESTAGESTATETYPE
{
D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */
D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */
D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */
D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */
D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */
D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */
D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */
D3DTSS_ADDRESS = 12, /* D3DTEXTUREADDRESS for both coordinates */
D3DTSS_ADDRESSU = 13, /* D3DTEXTUREADDRESS for U coordinate */
D3DTSS_ADDRESSV = 14, /* D3DTEXTUREADDRESS for V coordinate */
D3DTSS_BORDERCOLOR = 15, /* D3DCOLOR */
D3DTSS_MAGFILTER = 16, /* D3DTEXTUREMAGFILTER filter to use for magnification */
D3DTSS_MINFILTER = 17, /* D3DTEXTUREMINFILTER filter to use for minification */
D3DTSS_MIPFILTER = 18, /* D3DTEXTUREMIPFILTER filter to use between mipmaps during minification */
D3DTSS_MAXMIPLEVEL = 20, /* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) */
D3DTSS_MAXANISOTROPY = 21, /* DWORD maximum anisotropy */
D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */
//should be in own enum
//D3DTSS_TCI_PASSTHRU = 0x00000000,
//D3DTSS_TCI_CAMERASPACENORMAL = 0x00010000,
//D3DTSS_TCI_CAMERASPACEPOSITION = 0x00020000,
//D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x00030000,
} D3DTEXTURESTAGESTATETYPE;
typedef enum CONST_D3DTEXCOORDINDEXFLAGS
{
D3DTSS_TCI_CAMERASPACENORMAL = 65536,
D3DTSS_TCI_CAMERASPACEPOSITION = 131072,
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 196608,
D3DTSS_TCI_PASSTHRU = 0,
} D3DTEXCOORDINDEXFLAGS ;
typedef enum CONST_D3DTEXTURESTAGESINGLE
{
D3DTSS_BUMPENVMAT00 = 7, /* D3DVALUE (bump mapping matrix) */
D3DTSS_BUMPENVMAT01 = 8, /* D3DVALUE (bump mapping matrix) */
D3DTSS_BUMPENVMAT10 = 9, /* D3DVALUE (bump mapping matrix) */
D3DTSS_BUMPENVMAT11 = 10, /* D3DVALUE (bump mapping matrix) */
D3DTSS_MIPMAPLODBIAS = 19, /* D3DVALUE Mipmap LOD bias */
D3DTSS_BUMPENVLSCALE = 22, /* D3DVALUE scale for bump map luminance */
D3DTSS_BUMPENVLOFFSET = 23, /* D3DVALUE offset for bump map luminance */
} D3DTEXTURESTAGESINGLE ;
/*
* Enumerations for COLOROP and ALPHAOP texture blending operations set in
* texture processing stage controls in D3DRENDERSTATE.
*/
typedef enum CONST_D3DTEXTUREOP
{
// Control
D3DTOP_DISABLE = 1, // disables stage
D3DTOP_SELECTARG1 = 2, // the default
D3DTOP_SELECTARG2 = 3,
// Modulate
D3DTOP_MODULATE = 4, // multiply args together
D3DTOP_MODULATE2X = 5, // multiply and 1 bit
D3DTOP_MODULATE4X = 6, // multiply and 2 bits
// Add
D3DTOP_ADD = 7, // add arguments together
D3DTOP_ADDSIGNED = 8, // add with -0.5 bias
D3DTOP_ADDSIGNED2X = 9, // as above but left 1 bit
D3DTOP_SUBTRACT = 10, // Arg1 - Arg2, with no saturation
D3DTOP_ADDSMOOTH = 11, // add 2 args, subtract product
// Arg1 + Arg2 - Arg1*Arg2
// = Arg1 + (1-Arg1)*Arg2
// Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha)
D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha
D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha
D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRENDERSTATE_TEXTUREFACTOR
// Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha)
D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha
D3DTOP_BLENDCURRENTALPHA = 16, // by alpha of current color
// Specular mapping
D3DTOP_PREMODULATE = 17, // modulate with next texture before use
D3DTOP_MODULATEALPHA_ADDCOLOR = 18, // Arg1.RGB + Arg1.A*Arg2.RGB
// COLOROP only
D3DTOP_MODULATECOLOR_ADDALPHA = 19, // Arg1.RGB*Arg2.RGB + Arg1.A
// COLOROP only
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB
// COLOROP only
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A
// COLOROP only
// Bump mapping
D3DTOP_BUMPENVMAP = 22, // per pixel env map perturbation
D3DTOP_BUMPENVMAPLUMINANCE = 23, // with luminance channel
// This can do either diffuse or specular bump mapping with correct input.
// Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B)
// where each component has been scaled and offset to make it signed.
// The result is replicated into all four (including alpha) channels.
// This is a valid COLOROP only.
D3DTOP_DOTPRODUCT3 = 24
} D3DTEXTUREOP;
typedef enum CONST_D3DTEXTUREMAGFILTER
{
D3DTFG_POINT = 1, // nearest
D3DTFG_LINEAR = 2, // linear interpolation
D3DTFG_FLATCUBIC = 3, // cubic
D3DTFG_GAUSSIANCUBIC = 4, // different cubic kernel
D3DTFG_ANISOTROPIC = 5
} D3DTEXTUREMAGFILTER;
typedef enum CONST_D3DTEXTUREMINFILTER
{
D3DTFN_POINT = 1, // nearest
D3DTFN_LINEAR = 2, // linear interpolation
D3DTFN_ANISOTROPIC = 3,
} D3DTEXTUREMINFILTER;
typedef enum CONST_D3DTEXTUREMIPFILTER
{
D3DTFP_NONE = 1, // mipmapping disabled (use MAG filter)
D3DTFP_POINT = 2, // nearest
D3DTFP_LINEAR = 3 // linear interpolation
} D3DTEXTUREMIPFILTER;
typedef enum CONST_DSETUPFLAGS {
// DSETUP flags. DirectX 5.0 apps should use these flags only.
DSETUP_DDRAWDRV = 0x00000008,
DSETUP_DSOUNDDRV = 0x00000010,
DSETUP_DXCORE = 0x00010000,
DSETUP_DIRECTX =0x00010018,
DSETUP_TESTINSTALL =0x00020000
} DSETUPFLAGS;
typedef enum CONST_DSETUPCALLBACKFLAGS {
// DSETUP Message Info Codes, passed to callback as Reason parameter.
DSETUP_CB_MSG_NOMESSAGE = 0,
DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS = 1,
DSETUP_CB_MSG_CANTINSTALL_NT = 2,
DSETUP_CB_MSG_CANTINSTALL_BETA = 3,
DSETUP_CB_MSG_CANTINSTALL_NOTWIN32 = 4,
DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE = 5,
DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM = 6,
DSETUP_CB_MSG_PREINSTALL_NT = 7,
DSETUP_CB_MSG_NOTPREINSTALLEDONNT = 8,
DSETUP_CB_MSG_SETUP_INIT_FAILED = 9,
DSETUP_CB_MSG_INTERNAL_ERROR = 10,
DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE = 11,
DSETUP_CB_MSG_OUTOFDISKSPACE = 12,
DSETUP_CB_MSG_BEGIN_INSTALL = 13,
DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME = 14,
DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS = 15,
DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS = 16,
DSETUP_CB_MSG_FILECOPYERROR = 17,
DSETUP_CB_UPGRADE_TYPE_MASK =0x000F,
DSETUP_CB_UPGRADE_KEEP =0x0001,
DSETUP_CB_UPGRADE_SAFE =0x0002,
DSETUP_CB_UPGRADE_FORCE =0x0004,
DSETUP_CB_UPGRADE_UNKNOWN =0x0008,
DSETUP_CB_UPGRADE_HASWARNINGS =0x0100,
DSETUP_CB_UPGRADE_CANTBACKUP =0x0200,
DSETUP_CB_UPGRADE_DEVICE_ACTIVE =0x0800,
DSETUP_CB_UPGRADE_DEVICE_DISPLAY =0x1000,
DSETUP_CB_UPGRADE_DEVICE_MEDIA =0x2000
} DSETUPCALLBACKFLAGS;
typedef enum CONST_D3DRMANIMATIONFLAGS {
D3DRMANIMATION_OPEN =0x01,
D3DRMANIMATION_CLOSED= 0x02,
D3DRMANIMATION_LINEARPOSITION= 0x04,
D3DRMANIMATION_SPLINEPOSITION= 0x08,
D3DRMANIMATION_SCALEANDROTATION= 0x00000010,
D3DRMANIMATION_POSITION= 0x00000020
} D3DRMANIMATIONOPTIONS ;
typedef enum CONST_D3DRMANIMATIONKEYFLAGS {
D3DRMANIMATION_ROTATEKEY = 0x01,
D3DRMANIMATION_SCALEKEY = 0x02,
D3DRMANIMATION_POSITIONKEY = 0x03
} D3DRMANIMATIONKEYFLAGS;
typedef enum CONST_DPGROUPFLAGS {
DPGROUP_DEFAULT=0x0,
DPGROUP_LOCAL=0x08,
DPGROUP_STAGINGAREA=0x0800,
DPGROUP_HIDDEN=0x1000
} DPGROUPFLAGS;
typedef enum CONST_DPPLAYERFLAGS {
DPPLAYER_DEFAULT=0x0,
DPPLAYER_SERVERPLAYER=0x100,
DPPLAYER_SPECTATOR=0x200,
DPPLAYER_LOCAL=0x08,
//DPPLAYER_OWNER=0x2000 this is an internal dplay flag..
} DPPLAYERFLAGS;
typedef enum CONST_DPENUMCONNECTIONFLAGS {
DPCONNECTION_DIRECTPLAY=1,
DPCONNECTION_DIRECTPLAYLOBBY=2
} DPENUMCONNECTIONFLAGS;
typedef enum CONST_DPCONNECTFLAGS {
DPCONNECTION_DEFAULT=0,
DPCONNECTION_RETURNSTATUS=0x80
} DPCONNECTFLAGS;
typedef enum CONST_DPENUMPLAYERFLAGS {
DPENUMPLAYERS_ALL =0x00000000,
DPENUMPLAYERS_LOCAL =0x00000008,
DPENUMPLAYERS_REMOTE =0x00000010,
DPENUMPLAYERS_GROUP =0x00000020,
DPENUMPLAYERS_SESSION =0x00000080,
DPENUMPLAYERS_SERVERPLAYER =0x00000100,
DPENUMPLAYERS_SPECTATOR =0x00000200,
DPENUMPLAYERS_OWNER=0x2000,
} DPENUMPLAYERFLAGS;
typedef enum CONST_DPENUMGROUPFLAGS {
DPENUMGROUPS_ALL=0x00,
DPENUMGROUPS_HIDDEN=0x1000,
DPENUMGROUPS_LOCAL=0x8,
DPENUMGROUPS_REMOTE=0x10,
DPENUMGROUPS_SESSION=0x80,
DPENUMGROUPS_STAGINGAREA=0x0800,
DPENUMGROUPS_SHORTCUT =0x00000400
} DPENUMGROUPFLAGS;
typedef enum CONST_DPENUMSESSIONFLAGS {
DPENUMSESSIONS_ALL=2,
DPENUMSESSIONS_ASYNC=0x10,
DPENUMSESSIONS_AVAILABLE=1,
DPENUMSESSIONS_PASSWORDREQUIRED=0x40,
DPENUMSESSIONS_RETURNSTATUS=0x80,
DPENUMSESSIONS_STOPASYNC=0x10
} DPENUMSESSIONFLAGS;
typedef enum CONST_DPGETCAPSFLAGS {
DPGETCAPS_DEFAULT =0,
DPGETCAPS_GUARANTEED =1
} DPGETCAPSFLAGS;
typedef enum CONST_DPGETFLAGS {
DPGET_REMOTE =0,
DPGET_LOCAL = 1
} DPGETFLAGS;
typedef enum CONST_DPSETFLAGS {
DPSET_REMOTE =0,
DPSET_LOCAL = 1,
DPSET_GUARANTEED = 2
} DPSETFLAGS;
typedef enum CONST_DPMESSAGEQUEUEFLAGS {
DPMESSAGEQUEUE_SEND = 1,
DPMESSAGEQUEUE_RECEIVE= 2
} DPMESSAGEQUEUEFLAGS;
typedef enum CONST_DPOPENFLAGS {
DPOPEN_JOIN=0x01,
DPOPEN_CREATE=0x02,
DPOPEN_RETURNSTATUS=0x80
} DPOPENFLAGS;
typedef enum CONST_DPRECEIVEFLAGS {
DPRECEIVE_ALL=1,
DPRECEIVE_PEEK=8,
DPRECEIVE_TOPLAYER=2,
DPRECEIVE_FROMPLAYER=4
} DPRECEIVEFLAGS;
typedef enum CONST_DPSENDFLAGS {
DPSEND_DEFAULT =0x00000000,
DPSEND_GUARANTEED =0x00000001,
DPSEND_SIGNED =0x00000020,
DPSEND_ENCRYPTED =0x00000040,
DPSEND_NOSENDCOMPLETEMSG =0x00000400,
DPSEND_ASYNC =0x00000200
} DPSENDFLAGS;
typedef enum CONST_DPLMSG
{
/*
* This is a message flag used by ReceiveLobbyMessage. It can be
* returned in the dwMessageFlags parameter to indicate a message from
* the system.
*/
DPLMSG_SYSTEM =0x00000001,
/*
* This is a message flag used by ReceiveLobbyMessage and SendLobbyMessage.
* It is used to indicate that the message is a standard lobby message.
* DPLMSG_SETPROPERTY, DPLMSG_SETPROPERTYRESPONSE, DPLMSG_GETPROPERTY,
* DPLMSG_GETPROPERTYRESPONSE
*/
DPLMSG_STANDARD =0x00000002,
DPLMSG_USERDEFINED =0x00000000
} DPLMSG;
typedef enum CONST_DPLWAIT {
DPLWAIT_DEFAULT =0,
DPLWAIT_CANCEL =1
} DPLWAIT;
typedef enum CONST_DPIDFLAGS {
DPID_SYSMSG =0,
DPID_ALLPLAYERS =0,
DPID_SERVERPLAYER =1,
DPID_UNKNOWN =0xFFFFFFFF
} DPIDFLAGS;
typedef enum CONST_DPSESSIONFLAGS {
DPSESSION_NEWPLAYERSDISABLED =0x00000001 ,
DPSESSION_MIGRATEHOST =0x00000004,
DPSESSION_NOMESSAGEID =0x00000008,
DPSESSION_JOINDISABLED =0x00000020,
DPSESSION_KEEPALIVE =0x00000040,
DPSESSION_NODATAMESSAGES =0x00000080,
DPSESSION_SECURESERVER =0x00000100,
DPSESSION_PRIVATE =0x00000200,
DPSESSION_PASSWORDREQUIRED =0x00000400,
DPSESSION_MULTICASTSERVER =0x00000800,
DPSESSION_CLIENTSERVER =0x00001000,
DPSESSION_DIRECTPLAYPROTOCOL =0x00002000,
DPSESSION_NOPRESERVEORDER =0x00004000,
DPSESSION_OPTIMIZELATENCY =0x00008000
} DPSESSIONFLAGS;
typedef enum CONST_DPLCONNECTIONFLAGS {
DPLCONNECTION_CREATESESSION = DPOPEN_CREATE,
DPLCONNECTION_JOINSESSION = DPOPEN_JOIN,
} DPLCONNECTIONFLAGS;
typedef enum CONST_DPSYSMSGTYPES {
/****************************************************************************
*
* DirectPlay system messages and message data structures
*
* All system message come 'From' player DPID_SYSMSG. To determine what type
* of message it is, cast the lpData from Receive to DPMSG_GENERIC and check
* the dwType member against one of the following DPSYS_xxx constants. Once
* a match is found, cast the lpData to the corresponding of the DPMSG_xxx
* structures to access the data of the message.
*
****************************************************************************/
/*
* A new player or group has been created in the session
* Use DPMSG_CREATEPLAYERORGROUP. Check dwPlayerType to see if it
* is a player or a group.
*/
DPSYS_CREATEPLAYERORGROUP =0x0003 ,
/*
* A player has been deleted from the session
* Use DPMSG_DESTROYPLAYERORGROUP
*/
DPSYS_DESTROYPLAYERORGROUP =0x0005 ,
/*
* A player has been added to a group
* Use DPMSG_ADDPLAYERTOGROUP
*/
DPSYS_ADDPLAYERTOGROUP =0x0007 ,
/*
* A player has been removed from a group
* Use DPMSG_DELETEPLAYERFROMGROUP
*/
DPSYS_DELETEPLAYERFROMGROUP =0x0021 ,
/*
* This DirectPlay object lost its connection with all the
* other players in the session.
* Use DPMSG_SESSIONLOST.
*/
DPSYS_SESSIONLOST =0x0031,
/*
* The current host has left the session.
* This DirectPlay object is now the host.
* Use DPMSG_HOST.
*/
DPSYS_HOST =0x0101,
/*
* The remote data associated with a player or
* group has changed. Check dwPlayerType to see
* if it is a player or a group
* Use DPMSG_SETPLAYERORGROUPDATA
*/
DPSYS_SETPLAYERORGROUPDATA =0x0102,
/*
* The name of a player or group has changed.
* Check dwPlayerType to see if it is a player
* or a group.
* Use DPMSG_SETPLAYERORGROUPNAME
*/
DPSYS_SETPLAYERORGROUPNAME =0x0103,
/*
* The session description has changed.
* Use DPMSG_SETSESSIONDESC
*/
DPSYS_SETSESSIONDESC =0x0104,
/*
* A group has been added to a group
* Use DPMSG_ADDGROUPTOGROUP
*/
DPSYS_ADDGROUPTOGROUP =0x0105 ,
/*
* A group has been removed from a group
* Use DPMSG_DELETEGROUPFROMGROUP
*/
DPSYS_DELETEGROUPFROMGROUP =0x0106,
/*
* A secure player-player message has arrived.
* Use DPMSG_SECUREMESSAGE
*/
DPSYS_SECUREMESSAGE =0x0107,
/*
* Start a new session.
* Use DPMSG_STARTSESSION
*/
DPSYS_STARTSESSION =0x0108,
/*
* A chat message has arrived
* Use DPMSG_CHAT
*/
DPSYS_CHAT =0x0109,
/*
* The owner of a group has changed
* Use DPMSG_SETGROUPOWNER
*/
DPSYS_SETGROUPOWNER =0x010A,
/*
* An async send has finished, failed or been cancelled
* Use DPMSG_SENDCOMPLETE
*/
DPSYS_SENDCOMPLETE =0x010d,
/*
* The application has read the connection settings.
* It is now O.K. for the lobby client to release
* its IDirectPlayLobby interface.
*/
DPLSYS_CONNECTIONSETTINGSREAD =0x00000001,
/*
* The application's call to DirectPlayConnect failed
*/
DPLSYS_DPLAYCONNECTFAILED =0x00000002,
/*
* The application has created a DirectPlay session.
*/
DPLSYS_DPLAYCONNECTSUCCEEDED =0x00000003,
/*
* The application has terminated.
*/
DPLSYS_APPTERMINATED =0x00000004,
/*
* The message is a DPLMSG_SETPROPERTY message.
*/
DPLSYS_SETPROPERTY =0x00000005,
/*
* The message is a DPLMSG_SETPROPERTYRESPONSE message.
*/
DPLSYS_SETPROPERTYRESPONSE =0x00000006,
/*
* The message is a DPLMSG_GETPROPERTY message.
*/
DPLSYS_GETPROPERTY =0x00000007,
/*
* The message is a DPLMSG_GETPROPERTYRESPONSE message.
*/
DPLSYS_GETPROPERTYRESPONSE =0x00000008,
DPLSYS_NEWCONNECTIONSETTINGS =0x0000000A,
DPLSYS_NEWSESSIONHOST =0x00000009
} DPSYSMSGTYPES;
typedef enum CONST_DPPLAYERTYPEFLAGS{
DPPLAYERTYPE_GROUP =0x00000000,
DPPLAYERTYPE_PLAYER =0x00000001
} DPPLAYERTYPEFLAGS;
#if 0
DPESC_TIMEDOUT =0x00000001,
DPCPA_NOFLOW = 0 ,// no flow control
DPCPA_XONXOFFFLOW = 1 ,// software flow control
DPCPA_RTSFLOW = 2 ,// hardware flow control with RTS
DPCPA_DTRFLOW = 3 ,// hardware flow control with DTR
DPCPA_RTSDTRFLOW = 4 ,// hardware flow control with RTS and DTR
DPLAD_SYSTEM = DPLMSG_SYSTEM
#endif
typedef enum CONST_D3DSTENCILCAPSFLAGS {
D3DSTENCILCAPS_KEEP =0x00000001,
D3DSTENCILCAPS_ZERO =0x00000002,
D3DSTENCILCAPS_REPLACE =0x00000004,
D3DSTENCILCAPS_INCRSAT =0x00000008,
D3DSTENCILCAPS_DECRSAT =0x00000010,
D3DSTENCILCAPS_INVERT =0x00000020,
D3DSTENCILCAPS_INCR =0x00000040,
D3DSTENCILCAPS_DECR =0x00000080
} D3DSTENCILCAPSFLAGS;
typedef enum CONST_WAVEFORMATFLAGS {
WAVE_FORMAT_1M08 =0x00000001, /* 11.025 kHz, Mono, 8-bit */
WAVE_FORMAT_1S08 =0x00000002, /* 11.025 kHz, Stereo, 8-bit */
WAVE_FORMAT_1M16 =0x00000004, /* 11.025 kHz, Mono, 16-bit */
WAVE_FORMAT_1S16 =0x00000008, /* 11.025 kHz, Stereo, 16-bit */
WAVE_FORMAT_2M08 =0x00000010, /* 22.05 kHz, Mono, 8-bit */
WAVE_FORMAT_2S08 =0x00000020, /* 22.05 kHz, Stereo, 8-bit */
WAVE_FORMAT_2M16 =0x00000040, /* 22.05 kHz, Mono, 16-bit */
WAVE_FORMAT_2S16 =0x00000080, /* 22.05 kHz, Stereo, 16-bit */
WAVE_FORMAT_4M08 =0x00000100, /* 44.1 kHz, Mono, 8-bit */
WAVE_FORMAT_4S08 =0x00000200, /* 44.1 kHz, Stereo, 8-bit */
WAVE_FORMAT_4M16 =0x00000400, /* 44.1 kHz, Mono, 16-bit */
WAVE_FORMAT_4S16 = 0x00000800 /* 44.1 kHz, Stereo, 16-bit */
} WAVEFORMATFLAGS;
typedef enum CONST_DPCAPSFLAGS {
/*
* Current Open settings supports all forms of Cancel
*/
DPCAPS_ASYNCCANCELSUPPORTED =0x00001000,
/*
* Current Open settings supports CancelAll, but not Cancel
*/
DPCAPS_ASYNCCANCELALLSUPPORTED =0x00002000,
/*
* Current Open settings supports Send Timeouts for sends
*/
DPCAPS_SENDTIMEOUTSUPPORTED =0x00004000,
/*
* Current Open settings supports send priority
*/
DPCAPS_SENDPRIORITYSUPPORTED =0x00008000,
/*
* Current Open settings supports DPSEND_ASYNC flag
*/
DPCAPS_ASYNCSUPPORTED =0x00010000,
DPCAPS_ISHOST =0x00000002,
DPCAPS_GROUPOPTIMIZED =0x00000008,
DPCAPS_KEEPALIVEOPTIMIZED =0x00000010,
DPCAPS_GUARANTEEDOPTIMIZED =0x00000020,
DPCAPS_GUARANTEEDSUPPORTED =0x00000040,
DPCAPS_SIGNINGSUPPORTED =0x00000080,
DPCAPS_ENCRYPTIONSUPPORTED =0x00000100
} DPCAPSFLAGS;
typedef enum CONST_DSETUPERR {
DSETUPERR_SUCCESS_RESTART = 1,
DSETUPERR_SUCCESS = 0,
DSETUPERR_BADWINDOWSVERSION = -1,
DSETUPERR_SOURCEFILENOTFOUND = -2,
DSETUPERR_BADSOURCESIZE = -3,
DSETUPERR_BADSOURCETIME = -4,
DSETUPERR_NOCOPY = -5,
DSETUPERR_OUTOFDISKSPACE = -6,
DSETUPERR_CANTFINDINF = -7,
DSETUPERR_CANTFINDDIR = -8,
DSETUPERR_INTERNAL = -9,
DSETUPERR_NTWITHNO3D = -10,
DSETUPERR_UNKNOWNOS = -11,
DSETUPERR_USERHITCANCEL = -12,
DSETUPERR_NOTPREINSTALLEDONNT = -13
} DSETUPERR;
typedef enum CONST_DSOUNDERR {
DS_OK = 0,
DSERR_ALLOCATED = -2005401590,
DSERR_CONTROLUNAVAIL = -2005401570,
DSERR_INVALIDPARAM = -2147024809,
DSERR_INVALIDCALL = -2005401550,
DSERR_GENERIC = -2147467259,
DSERR_PRIOLEVELNEEDED = -2005401530,
DSERR_OUTOFMEMORY = 7, // -2147024882,
DSERR_BADFORMAT = -2005401500,
DSERR_UNSUPPORTED = -2147467263,
DSERR_NODRIVER = -2005401480,
DSERR_ALREADYINITIALIZED = -2005401470,
//DSERR_NOAGGREGATION = -2147467262,
DSERR_BUFFERLOST = -2005401450,
DSERR_OTHERAPPHASPRIO = -2005401440,
DSERR_UNINITIALIZED = -2005401430,
DSERR_NOINTERFACE = 430 //-2147467262
} DSOUNDERR;
typedef enum CONST_DDRAWERR {
DD_OK = 0,
//DD_FALSE = 1,
DDENUMRET_CANCEL = 0,
DDENUMRET_OK = 1,
DDERR_ALREADYINITIALIZED = -2005532667,
DDERR_CANNOTATTACHSURFACE = -2005532662,
DDERR_CANNOTDETACHSURFACE = -2005532652,
DDERR_CURRENTLYNOTAVAIL = -2005532632,
DDERR_EXCEPTION = -2005532617,
DDERR_GENERIC = -2147467259, //E_FAIL
DDERR_HEIGHTALIGN = -2005532582,
DDERR_INCOMPATIBLEPRIMARY = -2005532577,
DDERR_INVALIDCAPS = -2005532572,
DDERR_INVALIDCLIPLIST = -2005532562,
DDERR_INVALIDMODE = -2005532552,
DDERR_INVALIDOBJECT = -2005532542,
DDERR_INVALIDPARAMS = 5, //-2147024809, E_INVALIDARG
DDERR_INVALIDPIXELFORMAT = -2005532527,
DDERR_INVALIDRECT = -2005532522,
DDERR_LOCKEDSURFACES = -2005532512,
DDERR_NO3D = -2005532502,
DDERR_NOALPHAHW = -2005532492,
DDERR_NOCLIPLIST = -2005532467,
DDERR_NOCOLORCONVHW = -2005532462,
DDERR_NOCOOPERATIVELEVELSET = -2005532460,
DDERR_NOCOLORKEY = -2005532457,
DDERR_NOCOLORKEYHW = -2005532452,
DDERR_NODIRECTDRAWSUPPORT = -2005532450,
DDERR_NOEXCLUSIVEMODE = -2005532447,
DDERR_NOFLIPHW = -2005532442,
DDERR_NOGDI = -2005532432,
DDERR_NOMIRRORHW = -2005532422,
DDERR_NOTFOUND = -2005532417,
DDERR_NOOVERLAYHW = -2005532412,
DDERR_OVERLAPPINGRECTS = -2005532402,
DDERR_NORASTEROPHW = -2005532392,
DDERR_NOROTATIONHW = -2005532382,
DDERR_NOSTRETCHHW = -2005532362,
DDERR_NOT4BITCOLOR = -2005532356,
DDERR_NOT4BITCOLORINDEX = -2005532355,
DDERR_NOT8BITCOLOR = -2005532352,
DDERR_NOTEXTUREHW = -2005532342,
DDERR_NOVSYNCHW = -2005532337,
DDERR_NOZBUFFERHW = -2005532332,
DDERR_NOZOVERLAYHW = -2005532322,
DDERR_OUTOFCAPS = -2005532312,
DDERR_OUTOFMEMORY = 7, //-2147024882, E_OUTOFMEMORY
DDERR_OUTOFVIDEOMEMORY = -2005532292,
DDERR_OVERLAYCANTCLIP = -2005532290,
DDERR_OVERLAYCOLORKEYONLYONEACTIVE = -2005532288,
DDERR_PALETTEBUSY = -2005532285,
DDERR_COLORKEYNOTSET = -2005532272,
DDERR_SURFACEALREADYATTACHED = -2005532262,
DDERR_SURFACEALREADYDEPENDENT = -2005532252,
DDERR_SURFACEBUSY = -2005532242,
DDERR_CANTLOCKSURFACE = -2005532237,
DDERR_SURFACEISOBSCURED = -2005532232,
DDERR_SURFACELOST = -2005532222,
DDERR_SURFACENOTATTACHED = -2005532212,
DDERR_TOOBIGHEIGHT = -2005532202,
DDERR_TOOBIGSIZE = -2005532192,
DDERR_TOOBIGWIDTH = -2005532182,
DDERR_UNSUPPORTED = -2147467263,
DDERR_UNSUPPORTEDFORMAT = -2005532162,
DDERR_UNSUPPORTEDMASK = -2005532152,
DDERR_INVALIDSTREAM = -2005532151,
DDERR_VERTICALBLANKINPROGRESS = -2005532135,
DDERR_WASSTILLDRAWING = -2005532132,
DDERR_XALIGN = -2005532112,
DDERR_INVALIDDIRECTDRAWGUID = -2005532111,
DDERR_DIRECTDRAWALREADYCREATED = -2005532110,
DDERR_NODIRECTDRAWHW = -2005532109,
DDERR_PRIMARYSURFACEALREADYEXISTS = -2005532108,
DDERR_NOEMULATION = -2005532107,
DDERR_REGIONTOOSMALL = -2005532106,
DDERR_CLIPPERISUSINGHWND = -2005532105,
DDERR_NOCLIPPERATTACHED = -2005532104,
DDERR_NOHWND = -2005532103,
DDERR_HWNDSUBCLASSED = -2005532102,
DDERR_HWNDALREADYSET = -2005532101,
DDERR_NOPALETTEATTACHED = -2005532100,
DDERR_NOPALETTEHW = -2005532099,
DDERR_BLTFASTCANTCLIP = -2005532098,
DDERR_NOBLTHW = -2005532097,
DDERR_NODDROPSHW = -2005532096,
DDERR_OVERLAYNOTVISIBLE = -2005532095,
DDERR_NOOVERLAYDEST = -2005532094,
DDERR_INVALIDPOSITION = -2005532093,
DDERR_NOTAOVERLAYSURFACE = -2005532092,
DDERR_EXCLUSIVEMODEALREADYSET = -2005532091,
DDERR_NOTFLIPPABLE = -2005532090,
DDERR_CANTDUPLICATE = -2005532089,
DDERR_NOTLOCKED = -2005532088,
DDERR_CANTCREATEDC = -2005532087,
DDERR_NODC = -2005532086,
DDERR_WRONGMODE = -2005532085,
DDERR_IMPLICITLYCREATED = -2005532084,
DDERR_NOTPALETTIZED = -2005532083,
DDERR_UNSUPPORTEDMODE = -2005532082,
DDERR_NOMIPMAPHW = -2005532081,
DDERR_INVALIDSURFACETYPE = -2005532080,
DDERR_NOOPTIMIZEHW = -2005532072,
DDERR_NOTLOADED = -2005532071,
DDERR_NOFOCUSWINDOW = -2005532070,
DDERR_DCALREADYCREATED = -2005532052,
DDERR_NONONLOCALVIDMEM = -2005532042,
DDERR_CANTPAGELOCK = -2005532032,
DDERR_CANTPAGEUNLOCK = -2005532012,
DDERR_NOTPAGELOCKED = -2005531992,
DDERR_MOREDATA = -2005531982,
DDERR_EXPIRED = -2005531981,
DDERR_VIDEONOTACTIVE = -2005531977,
DDERR_DEVICEDOESNTOWNSURFACE = -2005531973,
DDERR_NOTINITIALIZED = -2147221008,
DDERR_NOSTEREOHARDWARE = 0x887600B5,
DDERR_NOSURFACELEFT =0x887600B6
} DDRAWERR;
typedef enum CONST_D3DIMERR {
D3D_OK = 0,
D3DERR_BADMAJORVERSION = -2005531972,
D3DERR_BADMINORVERSION = -2005531971,
D3DERR_INVALID_DEVICE = -2005531967,
D3DERR_INITFAILED = -2005531966,
D3DERR_DEVICEAGGREGATED = -2005531965,
//D3DERR_EXECUTE_CREATE_FAILED = -2005531962,
//D3DERR_EXECUTE_DESTROY_FAILED = -2005531961,
//D3DERR_EXECUTE_LOCK_FAILED = -2005531960,
//D3DERR_EXECUTE_UNLOCK_FAILED = -2005531959,
//D3DERR_EXECUTE_LOCKED = -2005531958,
//D3DERR_EXECUTE_NOT_LOCKED = -2005531957,
//D3DERR_EXECUTE_FAILED = -2005531956,
//D3DERR_EXECUTE_CLIPPED_FAILED = -2005531955,
D3DERR_TEXTURE_NO_SUPPORT = -2005531952,
D3DERR_TEXTURE_CREATE_FAILED = -2005531951,
D3DERR_TEXTURE_DESTROY_FAILED = -2005531950,
D3DERR_TEXTURE_LOCK_FAILED = -2005531949,
D3DERR_TEXTURE_UNLOCK_FAILED = -2005531948,
D3DERR_TEXTURE_LOAD_FAILED = -2005531947,
D3DERR_TEXTURE_SWAP_FAILED = -2005531946,
D3DERR_TEXTURE_LOCKED = -2005531945,
D3DERR_TEXTURE_NOT_LOCKED = -2005531944,
D3DERR_TEXTURE_GETSURF_FAILED = -2005531943,
D3DERR_MATRIX_CREATE_FAILED = -2005531942,
D3DERR_MATRIX_DESTROY_FAILED = -2005531941,
D3DERR_MATRIX_SETDATA_FAILED = -2005531940,
D3DERR_MATRIX_GETDATA_FAILED = -2005531939,
D3DERR_SETVIEWPORTDATA_FAILED = -2005531938,
D3DERR_INVALIDCURRENTVIEWPORT = -2005531937,
D3DERR_INVALIDPRIMITIVETYPE = -2005531936,
D3DERR_INVALIDVERTEXTYPE = -2005531935,
D3DERR_TEXTURE_BADSIZE = -2005531934,
D3DERR_INVALIDRAMPTEXTURE = -2005531933,
D3DERR_MATERIAL_CREATE_FAILED = -2005531932,
D3DERR_MATERIAL_DESTROY_FAILED = -2005531931,
D3DERR_MATERIAL_SETDATA_FAILED = -2005531930,
D3DERR_MATERIAL_GETDATA_FAILED = -2005531929,
D3DERR_INVALIDPALETTE = -2005531928,
D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY = -2005531927,
D3DERR_ZBUFF_NEEDS_VIDEOMEMORY = -2005531926,
D3DERR_SURFACENOTINVIDMEM = -2005531925,
D3DERR_LIGHT_SET_FAILED = -2005531922,
D3DERR_LIGHTHASVIEWPORT = -2005531921,
D3DERR_LIGHTNOTINTHISVIEWPORT = -2005531920,
D3DERR_SCENE_IN_SCENE = -2005531912,
D3DERR_SCENE_NOT_IN_SCENE = -2005531911,
D3DERR_SCENE_BEGIN_FAILED = -2005531910,
D3DERR_SCENE_END_FAILED = -2005531909,
D3DERR_INBEGIN = -2005531902,
D3DERR_NOTINBEGIN = -2005531901,
D3DERR_NOVIEWPORTS = -2005531900,
D3DERR_VIEWPORTDATANOTSET = -2005531899,
D3DERR_VIEWPORTHASNODEVICE = -2005531898,
D3DERR_NOCURRENTVIEWPORT = -2005531897,
D3DERR_INVALIDVERTEXFORMAT = -2005530624,
D3DERR_COLORKEYATTACHED = -2005530622,
D3DERR_VERTEXBUFFEROPTIMIZED = -2005530612,
D3DERR_VBUF_CREATE_FAILED = -2005530611,
D3DERR_VERTEXBUFFERLOCKED = -2005530610,
D3DERR_ZBUFFER_NOTPRESENT = -2005530602,
D3DERR_STENCILBUFFER_NOTPRESENT = -2005530601,
D3DERR_WRONGTEXTUREFORMAT = -2005530600,
D3DERR_UNSUPPORTEDCOLOROPERATION = -2005530599,
D3DERR_UNSUPPORTEDCOLORARG = -2005530598,
D3DERR_UNSUPPORTEDALPHAOPERATION = -2005530597,
D3DERR_UNSUPPORTEDALPHAARG = -2005530596,
D3DERR_TOOMANYOPERATIONS = -2005530595,
D3DERR_CONFLICTINGTEXTUREFILTER = -2005530594,
D3DERR_UNSUPPORTEDFACTORVALUE = -2005530593,
D3DERR_CONFLICTINGRENDERSTATE = -2005530591,
D3DERR_UNSUPPORTEDTEXTUREFILTER = -2005530590,
D3DERR_TOOMANYPRIMITIVES = -2005530589,
D3DERR_INVALIDMATRIX = -2005530588,
D3DERR_TOOMANYVERTICES = -2005530587,
D3DERR_CONFLICTINGTEXTUREPALETTE = -2005530586,
D3DERR_INVALIDSTATEBLOCK =0x88760834,
D3DERR_INBEGINSTATEBLOCK =0x88760835,
D3DERR_NOTINBEGINSTATEBLOCK =0x88760836,
D3DERR_VERTEXBUFFERUNLOCKFAILED =0x8876080F,
} D3DIMERR;
typedef enum CONST_DPLAYERR {
DP_OK = 0,
DPERR_ALREADYINITIALIZED = -2005467131,
DPERR_ACCESSDENIED = -2005467126,
DPERR_ACTIVEPLAYERS = -2005467116,
DPERR_BUFFERTOOSMALL = -2005467106,
DPERR_CANTADDPLAYER = -2005467096,
DPERR_CANTCREATEGROUP = -2005467086,
DPERR_CANTCREATEPLAYER = -2005467076,
DPERR_CANTCREATESESSION = -2005467066,
DPERR_CAPSNOTAVAILABLEYET = -2005467056,
DPERR_EXCEPTION = -2005467046,
DPERR_GENERIC = -2147467259, //E_FAIL
DPERR_INVALIDFLAGS = -2005467016,
DPERR_INVALIDOBJECT = -2005467006,
DPERR_INVALIDPARAM = -2147024809,
DPERR_INVALIDPARAMS = -2147024809,
DPERR_INVALIDPLAYER = -2005466986,
DPERR_INVALIDGROUP = -2005466981,
DPERR_NOCAPS = -2005466976,
DPERR_NOCONNECTION = -2005466966,
//DPERR_NOMEMORY = 7, //2147024882, E_OUTOFMEMORY
DPERR_OUTOFMEMORY =7, // -2147024882,
DPERR_NOMESSAGES = -2005466946,
DPERR_NONAMESERVERFOUND = -2005466936,
DPERR_NOPLAYERS = -2005466926,
DPERR_NOSESSIONS = -2005466916,
DPERR_PENDING = -2147024889, //0x8007007
DPERR_SENDTOOBIG = -2005466906,
DPERR_TIMEOUT = -2005466896,
DPERR_UNAVAILABLE = -2005466886,
DPERR_UNSUPPORTED = 445, //-2147467263, E_NOTIMPL
DPERR_BUSY = -2005466866,
DPERR_USERCANCEL = -2005466856,
DPERR_NOINTERFACE = 430,//-2147467262,
DPERR_CANNOTCREATESERVER = -2005466846,
DPERR_PLAYERLOST = -2005466836,
DPERR_SESSIONLOST = -2005466826,
DPERR_UNINITIALIZED = -2005466816,
DPERR_NONEWPLAYERS = -2005466806,
DPERR_INVALIDPASSWORD = -2005466796,
DPERR_CONNECTING = -2005466786,
DPERR_CONNECTIONLOST = -2005466776,
DPERR_UNKNOWNMESSAGE = -2005466766,
DPERR_CANCELFAILED = -2005466756,
DPERR_INVALIDPRIORITY = -2005466746,
//DPERR_NOTHANDLED = -2005466736,
DPERR_CANCELLED = -2005466726,
DPERR_ABORTED = -2005466716,
DPERR_BUFFERTOOLARGE = -2005466136,
DPERR_CANTCREATEPROCESS = -2005466126,
DPERR_APPNOTSTARTED = -2005466116,
DPERR_INVALIDINTERFACE = -2005466106,
//DPERR_NOSERVICEPROVIDER = -2005466096,
DPERR_UNKNOWNAPPLICATION = -2005466086,
DPERR_NOTLOBBIED = -2005466066,
//DPERR_SERVICEPROVIDERLOADED = -2005466056,
//DPERR_ALREADYREGISTERED = -2005466046,
//DPERR_NOTREGISTERED = -2005466036,
DPERR_AUTHENTICATIONFAILED = -2005465136,
DPERR_CANTLOADSSPI = -2005465126,
DPERR_ENCRYPTIONFAILED = -2005465116,
DPERR_SIGNFAILED = -2005465106,
DPERR_CANTLOADSECURITYPACKAGE = -2005465096,
DPERR_ENCRYPTIONNOTSUPPORTED = -2005465086,
DPERR_CANTLOADCAPI = -2005465076,
DPERR_NOTLOGGEDIN = -2005465066,
DPERR_LOGONDENIED = -2005465056,
//E_NO_AUTHENTICATING_AUTHORITY=0x80090311,
} DPLAYERR;
typedef enum CONST_DINPUTERR{
DI_OK = 0,
DI_BUFFEROVERFLOW = 0x80040260,
//DI_NOTATTACHED = 1,
//DI_BUFFEROVERFLOW = 1,
//DI_PROPNOEFFECT = 1,
//DI_NOEFFECT = 1,
//DI_POLLEDDEVICE = 2,
//DI_DOWNLOADSKIPPED = 3,
//DI_EFFECTRESTARTED = 4,
//DI_TRUNCATED = 8,
//DI_TRUNCATEDANDRESTARTED = 12,
DIERR_INVALIDHANDLE = 0x80070006,
DIERR_OLDDIRECTINPUTVERSION = 0x8007047E,
DIERR_BETADIRECTINPUTVERSION = 0x80070481,
DIERR_BADDRIVERVER = 0x80070077,
DIERR_DEVICENOTREG = 0x80040154,
DIERR_NOTFOUND = 0x80070002,
DIERR_OBJECTNOTFOUND = 0x80070002,
DIERR_INVALIDPARAM = 5, //0x80070057,
DIERR_NOINTERFACE =430,// 0x80004002,
DIERR_GENERIC = 0x80004005,
DIERR_OUTOFMEMORY = 7, //0x8007000E,
DIERR_UNSUPPORTED = 445 ,//0x80004001,
DIERR_NOTINITIALIZED = 0x80070015,
DIERR_ALREADYINITIALIZED = 0x800704DF,
DIERR_INPUTLOST = 0x8007001E,
DIERR_ACQUIRED = 0x800700AA,
DIERR_NOTACQUIRED = 0x8007000C,
DIERR_NOAGGREGATION = 0x80004002,
DIERR_OTHERAPPHASPRIO = 0x80070005,
DIERR_READONLY = 0x80070005,
DIERR_HANDLEEXISTS = 0x80070005,
E_PENDING = 0x80070007,
DIERR_INSUFFICIENTPRIVS = 0x80040200,
DIERR_DEVICEFULL = 0x80040201,
DIERR_MOREDATA = 0x80040202,
DIERR_NOTDOWNLOADED = 0x80040203,
DIERR_HASEFFECTS = 0x80040204,
DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205,
DIERR_INCOMPLETEEFFECT = 0x80040206,
DIERR_NOTBUFFERED = 0x80040207,
DIERR_EFFECTPLAYING = 0x80040208
} DINPUTERR;
typedef enum CONST_D3DRMERR {
D3DRM_OK = 0,
D3DRMERR_BADOBJECT = -2005531891,
D3DRMERR_BADTYPE = -2005531890,
D3DRMERR_BADALLOC = -2005531889,
D3DRMERR_FACEUSED = -2005531888,
D3DRMERR_NOTFOUND = -2005531887,
D3DRMERR_NOTDONEYET = -2005531886,
D3DRMERR_FILENOTFOUND = -2005531885,
D3DRMERR_BADFILE = -2005531884,
D3DRMERR_BADDEVICE = -2005531883,
D3DRMERR_BADVALUE = -2005531882,
D3DRMERR_BADMAJORVERSION = -2005531881,
D3DRMERR_BADMINORVERSION = -2005531880,
D3DRMERR_UNABLETOEXECUTE = -2005531879,
D3DRMERR_LIBRARYNOTFOUND = -2005531878,
D3DRMERR_INVALIDLIBRARY = -2005531877,
D3DRMERR_PENDING = -2005531876,
D3DRMERR_NOTENOUGHDATA = -2005531875,
D3DRMERR_REQUESTTOOLARGE = -2005531874,
D3DRMERR_REQUESTTOOSMALL = -2005531873,
D3DRMERR_CONNECTIONLOST = -2005531872,
D3DRMERR_LOADABORTED = -2005531871,
D3DRMERR_NOINTERNET = -2005531870,
D3DRMERR_BADCACHEFILE = -2005531869,
D3DRMERR_BOXNOTSET = -2005531868,
D3DRMERR_BADPMDATA = -2005531867,
D3DRMERR_CLIENTNOTREGISTERED = -2005531866,
D3DRMERR_NOTCREATEDFROMDDS = -2005531865,
D3DRMERR_NOSUCHKEY = -2005531864,
D3DRMERR_INCOMPATABLEKEY = -2005531863,
D3DRMERR_ELEMENTINUSE = -2005531862,
D3DRMERR_TEXTUREFORMATNOTFOUND = -2005531861,
D3DRMERR_NOTAGGREGATED = -2005531860
} D3DRMERR;
typedef enum CONST_DICOMMONDATAFORMATS
{
DIFORMAT_KEYBOARD=1,
DIFORMAT_MOUSE=2,
DIFORMAT_JOYSTICK=3,
DIFORMAT_JOYSTICK2=4
} DICOMMONDATAFORMATS;
typedef enum CONST_D3DVERTEXCOMPONENT {
D3DVERTCOMP_POSITION =1,
D3DVERTCOMP_NORMAL =2,
D3DVERTCOMP_DIFFUSE =3,
D3DVERTCOMP_SPECULAR =4,
D3DVERTCOMP_TEXTURE1 =5,
D3DVERTCOMP_TEXTURE2 =6,
D3DVERTCOMP_TEXTURE3 =7,
D3DVERTCOMP_TEXTURE4 =8,
D3DVERTCOMP_TEXTURE5 =9,
D3DVERTCOMP_TEXTURE6 =10,
D3DVERTCOMP_TEXTURE7 =11,
D3DVERTCOMP_TEXTURE8 =12
} D3DVERTEXCOMPONENT;
typedef enum CONST_D3DMATERIALCOLORSOURCE
{
D3DMCS_MATERIAL=0,
D3DMCS_COLOR1=1,
D3DMCS_COLOR2=2
} CONST_D3DMATERIALCOLORSOURCE;
#if 0
typedef enum CONST_DDALPHACAPSFLAGS
{
DDALPHACAPS_BLTALPHAPIXELS = 0x00000001,
DDALPHACAPS_BLTSATURATE = 0x00000002,
DDALPHACAPS_BLTPREMULT = 0x00000004,
DDALPHACAPS_BLTNONPREMULT = 0x00000008,
DDALPHACAPS_BLTARGBSCALE1F = 0x00000010,
DDALPHACAPS_BLTARGBSCALE2F = 0x00000020,
DDALPHACAPS_BLTARGBSCALE4F = 0x00000040,
DDALPHACAPS_BLTALPHAFILL = 0x00000080,
DDALPHACAPS_BLTALPHAANDARGBSCALING= 0x00000100,
DDALPHACAPS_OVERLAYALPHAPIXELS = 0x00010000,
DDALPHACAPS_OVERLAYSATURATE = 0x00020000,
DDALPHACAPS_OVERLAYPREMULT = 0x00040000,
DDALPHACAPS_OVERLAYNONPREMULT = 0x00080000,
DDALPHACAPS_OVERLAYARGBSCALE1F = 0x00100000,
DDALPHACAPS_OVERLAYARGBSCALE2F = 0x00200000,
DDALPHACAPS_OVERLAYARGBSCALE4F = 0x00400000,
DDALPHACAPS_OVERLAYALPHAANDKEYDEST = 0x00800000,
DDALPHACAPS_OVERLAYALPHAANDARGBSCALING = 0x01000000
} CONST_DDALPHACAPSFLAGS;
#endif
#if 0
typedef enum CONST_DDFILTCAPSFLAGS
{
DDFILTCAPS_BLTQUALITYFILTER =0x00000001,
DDFILTCAPS_BLTCANDISABLEFILTER =0x00000002,
DDFILTCAPS_BLTTRANSPBORDER =0x00000004
} CONST_DDFILTCAPSFLAGS;
#endif
typedef enum CONST_DMUS
{
DMUS_MAXSUBCHORD=8,
DMUS_TEMPO_MAX =350,
DMUS_TEMPO_MIN = 10
// DMUSB_LOADED =0, not needed according to a-perterd
// DMUSB_DEFAULT =2,
} CONST_DMUS;
typedef enum CONST_DMUS_CURVES
{
DMUS_CURVES_LINEAR = 0,
DMUS_CURVES_INSTANT = 1,
DMUS_CURVES_EXP = 2,
DMUS_CURVES_LOG = 3,
DMUS_CURVES_SINE = 4
} CONST_DMUS_CURVES;
typedef enum CONST_DMUS_CURVET
{
DMUS_CURVET_PBCURVE = 0x03,
DMUS_CURVET_CCCURVE = 0x04,
DMUS_CURVET_MATCURVE = 0x05,
DMUS_CURVET_PATCURVE = 0x06
} CONST_DMUS_CURVET;
/* The following correspond to GUID_NOTIFICATION_SEGMENT */
typedef enum CONST_DMUS_NOTIFICATION_SUBTYPE
{
DMUS_NOTIFICATION_MUSICSTARTED =0,
DMUS_NOTIFICATION_MUSICSTOPPED =1,
DMUS_NOTIFICATION_MEASUREBEAT =0,
DMUS_NOTIFICATION_CHORD =0,
DMUS_NOTIFICATION_GROOVE =0,
DMUS_NOTIFICATION_EMBELLISHMENT =1,
DMUS_NOTIFICATION_SEGSTART =0,
DMUS_NOTIFICATION_SEGEND =1,
DMUS_NOTIFICATION_SEGALMOSTEND =2,
DMUS_NOTIFICATION_SEGLOOP =3,
DMUS_NOTIFICATION_SEGABORT =4
} CONST_DMUS_NOTIFICATION_SUBTYPE;
typedef enum CONST_DMUS_COMMANDT_TYPES
{
DMUS_COMMANDT_GROOVE = 0,
DMUS_COMMANDT_FILL = 1,
DMUS_COMMANDT_INTRO = 2,
DMUS_COMMANDT_BREAK = 3,
DMUS_COMMANDT_END = 4,
DMUS_COMMANDT_ENDANDINTRO = 5
} CONST_DMUS_COMMANDT_TYPES;
typedef enum CONST_DMUS_SHAPET_TYPES
{
DMUS_SHAPET_FALLING = 0,
DMUS_SHAPET_LEVEL = 1,
DMUS_SHAPET_LOOPABLE = 2,
DMUS_SHAPET_LOUD = 3,
DMUS_SHAPET_QUIET = 4,
DMUS_SHAPET_PEAKING = 5,
DMUS_SHAPET_RANDOM = 6,
DMUS_SHAPET_RISING = 7,
DMUS_SHAPET_SONG = 8
} CONST_DMUS_SHAPET_TYPES;
typedef enum CONST_DMUS_COMPOSEF_FLAGS
{
DMUS_COMPOSEF_NONE = 0,
DMUS_COMPOSEF_ALIGN = 0x1,
DMUS_COMPOSEF_OVERLAP = 0x2,
DMUS_COMPOSEF_IMMEDIATE = 0x4,
DMUS_COMPOSEF_GRID = 0x8,
DMUS_COMPOSEF_BEAT = 0x10,
DMUS_COMPOSEF_MEASURE = 0x20,
DMUS_COMPOSEF_AFTERPREPARETIME = 0x40,
DMUS_COMPOSEF_MODULATE = 0x1000,
DMUS_COMPOSEF_LONG = 0x2000
} CONST_DMUS_COMPOSEF_FLAGS;
typedef enum CONST_DMUS_PMSGF_FLAGS
{
DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid */
DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid */
DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately */
DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time */
DMUS_PMSGF_TOOL_ATTIME = 16, /* if PMSG should be processed at the time stamp */
DMUS_PMSGF_TOOL_FLUSH = 32 /* if PMSG is being flushed */
/* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the */
/* DMUS_PMSG's dwFlags member. */
} CONST_DMUS_PMSGF_FLAGS;
#if 0
// NOT NEEDED
typedef enum enumDMUS_PMSGT_TYPES
{
DMUS_PMSGT_MIDI = 0, /* MIDI short message */
DMUS_PMSGT_NOTE = 1, /* Interactive Music Note */
DMUS_PMSGT_SYSEX = 2, /* MIDI long message (system exclusive message) */
DMUS_PMSGT_NOTIFICATION = 3, /* Notification message */
DMUS_PMSGT_TEMPO = 4, /* Tempo message */
DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve */
DMUS_PMSGT_TIMESIG = 6, /* Time signature */
DMUS_PMSGT_PATCH = 7, /* Patch changes */
DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages */
DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority */
DMUS_PMSGT_STOP = 10, /* Stop message */
DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh */
DMUS_PMSGT_USER = 255 /* User message */
} CONST_DMUS_PMSGT_TYPES;
#endif
typedef enum CONST_DMUS_SEGF_FLAGS
{
DMUS_SEGF_REFTIME = 64, /* time parameter is in reference time */
DMUS_SEGF_SECONDARY = 128, /* secondary segment */
DMUS_SEGF_QUEUE = 256, /* queue at the end of the primary segment queue (primary only) */
DMUS_SEGF_CONTROL = 512, /* play as a control track (secondary segments only) */
DMUS_SEGF_AFTERPREPARETIME = 0x400, /* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) */
DMUS_SEGF_GRID = 0x800, /* play on grid boundary */
DMUS_SEGF_BEAT = 0x1000, /* play on beat boundary */
DMUS_SEGF_MEASURE = 0x2000, /* play on measure boundary */
DMUS_SEGF_DEFAULT = 0x4000, /* use segment's default boundary */
DMUS_SEGF_NOINVALIDATE = 0x8000 /* play without invalidating the currently playing segment(s) */
} CONST_DMUS_SEGF_FLAGS;
#if 0
//NOT NEEDED
typedef enum enumDMUS_TRACKF_FLAGS
{
DMUS_TRACKF_SEEK = 1, /* set on a seek */
DMUS_TRACKF_LOOP = 2, /* set on a loop (repeat) */
DMUS_TRACKF_START = 4, /* set on first call to Play */
DMUS_TRACKF_FLUSH = 8, /* set when this call is in response to a flush on the perfomance */
DMUS_TRACKF_DIRTY = 16, /* set when the track should consider any cached values from a previous call to GetParam to be invalidated */
} CONST_DMUS_TRACKF_FLAGS;
#endif
typedef enum CONST_DMUS_NOTEF_FLAGS
{
DMUS_NOTEF_NOTEON = 1, /* Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off */
} CONST_DMUS_NOTEF_FLAGS;
typedef enum CONST_DMUS_PLAYMODE_FLAGS
{
DMUS_PLAYMODE_KEY_ROOT = 1, /* Transpose on top of the key root. */
DMUS_PLAYMODE_CHORD_ROOT = 2, /* Transpose on top of the chord root. */
DMUS_PLAYMODE_SCALE_INTERVALS = 4, /* Use scale intervals from scale pattern. */
DMUS_PLAYMODE_CHORD_INTERVALS = 8, /* Use chord intervals from chord pattern. */
DMUS_PLAYMODE_NONE = 16, /* No mode. Indicates the parent part's mode should be used. */
//derived flags
DMUS_PLAYMODE_FIXED =0,
DMUS_PLAYMODE_FIXEDTOKEY =1,
DMUS_PLAYMODE_FIXEDTOCHORD =2,
DMUS_PLAYMODE_PEDALPOINT =5,
DMUS_PLAYMODE_MELODIC =6,
DMUS_PLAYMODE_NORMALCHORD =10,
DMUS_PLAYMODE_ALWAYSPLAY =14 ,
//DMUS_PLAYMODE_PURPLEIZED =14,
//DMUS_PLAYMODE_SCALE_ROOT =1,
//DMUS_PLAYMODE_FIXEDTOSCALE =1,
} CONST_DMUS_PLAYMODE_FLAGS;
typedef enum CONST_DMUS_CURVE_FLAGS
{
DMUS_CURVE_RESET = 1, /* Set if the curve needs to be reset. */
} CONST_DMUS_CURVE_FLAGS;
typedef enum CONST_DMUSERR {
//DMUS_S_PARTIALLOAD =0x08781091,
//DMUS_S_REQUEUE =0x08781200,
//DMUS_S_FREE= 0x08781201,
//DMUS_S_END =0x08781202,
//DMUS_S_STRING_TRUNCATED =0x08781210,
//DMUS_S_LAST_TOOL =0x08781211,
//DMUS_S_OVER_CHORD =0x08781212,
//DMUS_S_UP_OCTAVE =0x08781213,
//DMUS_S_DOWN_OCTAVE =0x08781214,
DMUS_E_DRIVER_FAILED =0x88781101,
DMUS_E_PORTS_OPEN =0x88781102,
DMUS_E_DEVICE_IN_USE =0x88781103,
DMUS_E_INSUFFICIENTBUFFER =0x88781104,
DMUS_E_BUFFERNOTSET =0x88781105,
DMUS_E_BUFFERNOTAVAILABLE =0x88781106,
DMUS_E_NOTADLSCOL =0x88781108,
DMUS_E_INVALIDOFFSET =0x88781109,
DMUS_E_ALREADY_LOADED =0x88781111,
DMUS_E_INVALIDPOS =0x88781113,
DMUS_E_INVALIDPATCH =0x88781114,
DMUS_E_CANNOTSEEK =0x88781115,
DMUS_E_CANNOTWRITE =0x88781116,
DMUS_E_CHUNKNOTFOUND =0x88781117,
DMUS_E_INVALID_DOWNLOADID =0x88781119,
DMUS_E_NOT_DOWNLOADED_TO_PORT =0x88781120,
DMUS_E_ALREADY_DOWNLOADED =0x88781121,
DMUS_E_UNKNOWN_PROPERTY =0x88781122,
DMUS_E_SET_UNSUPPORTED =0x88781123,
DMUS_E_GET_UNSUPPORTED =0x88781124,
DMUS_E_NOTMONO =0x88781125,
DMUS_E_BADARTICULATION =0x88781126,
DMUS_E_BADINSTRUMENT =0x88781127,
DMUS_E_BADWAVELINK =0x88781128,
DMUS_E_NOARTICULATION =0x88781129,
DMUS_E_NOTPCM =0x8878112A,
DMUS_E_BADWAVE =0x8878112B,
DMUS_E_BADOFFSETTABLE =0x8878112C,
DMUS_E_UNKNOWNDOWNLOAD =0x8878112D,
DMUS_E_NOSYNTHSINK =0x8878112E,
DMUS_E_ALREADYOPEN =0x8878112F,
DMUS_E_ALREADYCLOSED =0x88781130,
DMUS_E_SYNTHNOTCONFIGURED =0x88781131,
DMUS_E_SYNTHACTIVE =0x88781132,
DMUS_E_CANNOTREAD =0x88781133,
DMUS_E_DMUSIC_RELEASED =0x88781134,
DMUS_E_BUFFER_EMPTY =0x88781135,
DMUS_E_BUFFER_FULL =0x88781136,
DMUS_E_PORT_NOT_CAPTURE =0x88781137,
DMUS_E_PORT_NOT_RENDER =0x88781138,
DMUS_E_DSOUND_NOT_SET =0x88781139,
DMUS_E_ALREADY_ACTIVATED =0x8878113A,
DMUS_E_INVALIDBUFFER =0x8878113B,
DMUS_E_WAVEFORMATNOTSUPPORTED =0x8878113C,
DMUS_E_SYNTHINACTIVE =0x8878113D,
DMUS_E_DSOUND_ALREADY_SET =0x8878113E,
DMUS_E_INVALID_EVENT =0x8878113F,
DMUS_E_UNSUPPORTED_STREAM =0x88781150,
DMUS_E_ALREADY_INITED =0x88781151,
DMUS_E_INVALID_BAND =0x88781152,
DMUS_E_TRACK_HDR_NOT_FIRST_CK =0x88781155,
DMUS_E_TOOL_HDR_NOT_FIRST_CK =0x88781156,
DMUS_E_INVALID_TRACK_HDR =0x88781157,
DMUS_E_INVALID_TOOL_HDR =0x88781158,
DMUS_E_ALL_TOOLS_FAILED =0x88781159,
DMUS_E_ALL_TRACKS_FAILED =0x88781160,
DMUS_E_NOT_FOUND =0x88781161,
DMUS_E_NOT_INIT =0x88781162,
DMUS_E_TYPE_DISABLED =0x88781163,
DMUS_E_TYPE_UNSUPPORTED =0x88781164,
DMUS_E_TIME_PAST =0x88781165,
DMUS_E_TRACK_NOT_FOUND =0x88781166,
DMUS_E_NO_MASTER_CLOCK =0x88781170,
DMUS_E_LOADER_NOCLASSID =0x88781180,
DMUS_E_LOADER_BADPATH =0x88781181,
DMUS_E_LOADER_FAILEDOPEN =0x88781182,
DMUS_E_LOADER_FORMATNOTSUPPORTED =0x88781183,
DMUS_E_LOADER_FAILEDCREATE =0x88781184,
DMUS_E_LOADER_OBJECTNOTFOUND =0x88781185,
DMUS_E_LOADER_NOFILENAME =0x88781186,
DMUS_E_INVALIDFILE =0x88781200,
DMUS_E_ALREADY_EXISTS =0x88781201,
DMUS_E_OUT_OF_RANGE =0x88781202,
DMUS_E_SEGMENT_INIT_FAILED =0x88781203,
DMUS_E_ALREADY_SENT =0x88781204,
DMUS_E_CANNOT_FREE =0x88781205,
DMUS_E_CANNOT_OPEN_PORT =0x88781206,
DMUS_E_CONNOT_CONVERT =0x88781207,
DMUS_E_DESCEND_CHUNK_FAIL =0x88781210,
DMUS_E_FAIL =0x80070057,
DMUS_E_INVALIDARG =5,
DMUS_E_NOINTERFACE =430,
DMUS_E_OUTOFMEMORY =7,
DMUS_E_NOTIMPL =445
} DMUSERR;
/* For DMUS_PORTCAPS dwClass
*/
typedef enum CONST_DMUS_PC_CLASS{
DMUS_PC_INPUTCLASS =0,
DMUS_PC_OUTPUTCLASS =1,
} CONST_DMUS_PC_CLASS;
/* For DMUS_PORTCAPS dwFlags
*/
typedef enum CONST_DMUS_PC_FLAGS{
DMUS_PC_DLS =0x00000001,
DMUS_PC_EXTERNAL =0x00000002,
DMUS_PC_SOFTWARESYNTH =0x00000004,
DMUS_PC_MEMORYSIZEFIXED =0x00000008,
DMUS_PC_GMINHARDWARE =0x00000010,
DMUS_PC_GSINHARDWARE =0x00000020,
DMUS_PC_XGINHARDWARE =0x00000040,
DMUS_PC_DIRECTSOUND =0x00000080,
DMUS_PC_SHAREABLE =0x00000100,
DMUS_PC_SYSTEMMEMORY =0x7FFFFFFF
} CONST_DMUS_PC_FLAGS;
typedef enum CONST_DMUS_PORT_TYPE {
DMUS_PORT_WINMM_DRIVER =0,
DMUS_PORT_USER_MODE_SYNTH =1,
DMUS_PORT_KERNEL_MODE =2
} CONST_DMUS_PORT_TYPE;
typedef enum CONST_DMUS_PORTPARAMS_FLAGS {
DMUS_PORTPARAMS_VOICES =0x00000001,
DMUS_PORTPARAMS_CHANNELGROUPS =0x00000002,
DMUS_PORTPARAMS_AUDIOCHANNELS =0x00000004,
DMUS_PORTPARAMS_SAMPLERATE =0x00000008,
DMUS_PORTPARAMS_EFFECTS =0x00000020,
DMUS_PORTPARAMS_SHARE =0x00000040
} CONST_DMUS_PORTPARAMS_FLAGS;
typedef enum CONST_DIMOUSEOFS {
DIMOFS_X =0,
DIMOFS_Y =4,
DIMOFS_Z =8,
DIMOFS_BUTTON0 =12,
DIMOFS_BUTTON1 =13,
DIMOFS_BUTTON2 =14,
DIMOFS_BUTTON3 =15
} CONST_DIMOUSEOFS;
typedef enum CONST_DIJOYSTICKOFS {
DIJOFS_X =0,
DIJOFS_Y =4,
DIJOFS_Z =8,
DIJOFS_RX =12,
DIJOFS_RY =16,
DIJOFS_RZ =20,
DIJOFS_SLIDER0 =24,
DIJOFS_SLIDER1 =28,
DIJOFS_POV0 =32,
DIJOFS_POV1 =36,
DIJOFS_POV2 =40,
DIJOFS_POV3 =44,
DIJOFS_BUTTON0 =48,
DIJOFS_BUTTON1 =49,
DIJOFS_BUTTON2 =50,
DIJOFS_BUTTON3 =51,
DIJOFS_BUTTON4 =52,
DIJOFS_BUTTON5 =53,
DIJOFS_BUTTON6 =54,
DIJOFS_BUTTON7 =55,
DIJOFS_BUTTON8 =56,
DIJOFS_BUTTON9 =57,
DIJOFS_BUTTON10 =58,
DIJOFS_BUTTON11 =59,
DIJOFS_BUTTON12 =60,
DIJOFS_BUTTON13 =61,
DIJOFS_BUTTON14 =62,
DIJOFS_BUTTON15 =63,
DIJOFS_BUTTON16 =64,
DIJOFS_BUTTON17 =65,
DIJOFS_BUTTON18 =66,
DIJOFS_BUTTON19 =67,
DIJOFS_BUTTON20 =68,
DIJOFS_BUTTON21 =69,
DIJOFS_BUTTON22 =70,
DIJOFS_BUTTON23 =71,
DIJOFS_BUTTON24 =72,
DIJOFS_BUTTON25 =73,
DIJOFS_BUTTON26 =74,
DIJOFS_BUTTON27 =75,
DIJOFS_BUTTON28 =76,
DIJOFS_BUTTON29 =77,
DIJOFS_BUTTON30 =78,
DIJOFS_BUTTON31 =79
} CONST_DIJOYSTICKOFS;
typedef enum CONST_DIEFTFLAGS {
DIEFT_ALL = 0x00000000,
DIEFT_CONSTANTFORCE = 0x00000001,
DIEFT_RAMPFORCE = 0x00000002,
DIEFT_PERIODIC = 0x00000003,
DIEFT_CONDITION = 0x00000004,
DIEFT_CUSTOMFORCE = 0x00000005,
DIEFT_HARDWARE = 0x000000FF,
DIEFT_FFATTACK = 0x00000200,
DIEFT_FFFADE = 0x00000400,
DIEFT_SATURATION = 0x00000800,
DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
DIEFT_POSNEGSATURATION = 0x00002000,
DIEFT_DEADBAND = 0x00004000
} DIEFTFLAGS;
// DI_DEGREES = 100,
// DI_FFNOMINALMAX = 10000,
// DI_SECONDS = 1000000,
typedef enum CONST_DIEFFFLAGS {
//DIEFF_OBJECTIDS = 0x00000001,
DIEFF_OBJECTOFFSETS = 0x00000002,
DIEFF_CARTESIAN = 0x00000010,
DIEFF_POLAR = 0x00000020
//DIEFF_SPHERICAL = 0x00000040,
} DIEFFFLAGS;
typedef enum CONST_DIEPFLAGS {
DIEP_DURATION = 0x00000001,
DIEP_SAMPLEPERIOD = 0x00000002,
DIEP_GAIN = 0x00000004,
DIEP_TRIGGERBUTTON = 0x00000008,
DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
DIEP_AXES = 0x00000020,
DIEP_DIRECTION = 0x00000040,
DIEP_ENVELOPE = 0x00000080,
DIEP_TYPESPECIFICPARAMS = 0x00000100,
DIEP_ALLPARAMS = 0x000001FF,
DIEP_START = 0x20000000,
DIEP_NORESTART = 0x40000000,
DIEP_NODOWNLOAD = 0x80000000,
} DIEPFLAGS;
typedef enum CONST_DIEGESFLAGS {
DIEGES_PLAYING = 0x00000001,
DIEGES_EMULATED = 0x00000002
} DIEGESFLAGS;
typedef enum CONST_DIESFLAGS {
DIES_SOLO = 0x00000001,
DIES_NODOWNLOAD = 0x80000000
} DIESFLAGS;
typedef enum CONST_DISFFCFLAGS {
DISFFC_RESET = 0x00000001,
DISFFC_STOPALL = 0x00000002,
DISFFC_PAUSE = 0x00000004,
DISFFC_CONTINUE = 0x00000008,
DISFFC_SETACTUATORSON = 0x00000010,
DISFFC_SETACTUATORSOFF = 0x00000020,
} DISFFCFLAGS;
typedef enum CONST_DIGFFSFLAGS {
DIGFFS_EMPTY = 0x00000001,
DIGFFS_STOPPED = 0x00000002,
DIGFFS_PAUSED = 0x00000004,
DIGFFS_ACTUATORSON = 0x00000010,
DIGFFS_ACTUATORSOFF = 0x00000020,
DIGFFS_POWERON = 0x00000040,
DIGFFS_POWEROFF = 0x00000080,
DIGFFS_SAFETYSWITCHON = 0x00000100,
DIGFFS_SAFETYSWITCHOFF = 0x00000200,
DIGFFS_USERFFSWITCHON = 0x00000400,
DIGFFS_USERFFSWITCHOFF = 0x00000800,
DIGFFS_DEVICELOST = 0x80000000
} DIGFFSFLAGS;
typedef enum CONST_DISDDFLAGS {
DISDD_DEFAULT =0,
DISDD_CONTINUE = 1
} DISDDFLAGS;
typedef enum CONST_DMUS_EFFECT_FLAGS {
DMUS_EFFECT_NONE=0,
DMUS_EFFECT_REVERB=1,
DMUS_EFFECT_CHORUS=2
} CONST_DMUS_EFFECT_FLAGS;
typedef enum CONST_D3DDEVINFOID {
D3DDEVINFOID_D3DTEXTUREMANAGER = 2,
D3DDEVINFOID_TEXTUREMANAGER = 1,
D3DDEVINFOID_TEXTURING = 3
} D3DDEVINFOID;
typedef enum CONST_DDOVERFXFLAGS {
DDOVERFX_ARITHSTRETCHY = 1,
DDOVERFX_MIRRORLEFTRIGHT =2,
DDOVERFX_MIRRORUPDOWN =4
} DDOVERFXFLAGS;
typedef enum CONST_D3DRMSHADOWFLAGS {
D3DRMSHADOW_TRUEALPHA=1
} D3DRMSHADOWFLAGS;
typedef enum CONST_DICONDITIONFLAGS {
DICONDITION_USE_BOTH_AXES=1,
DICONDITION_USE_DIRECTION =2
} DICONDITIONFLAGS;
typedef enum CONST_D3DSTATEBLOCKTYPE{
D3DSBT_ALL = 1,
D3DSBT_PIXELSTATE = 2,
D3DSBT_VERTEXSTATE = 3,
} D3DSTATEBLOCKTYPE;
typedef enum CONST_D3DCLIPPLANEFLAGS {
D3DCPF_DISABLEALL = 0,
D3DCPF_ENABLEPLANE0 = 1,
D3DCPF_ENABLEPLANE1 = 2,
D3DCPF_ENABLEPLANE2 = 4,
D3DCPF_ENABLEPLANE3 = 8,
D3DCPF_ENABLEPLANE4 = 16,
D3DCPF_ENABLEPLANE5 = 32,
D3DCPF_ENABLEPLANE6 = 64,
D3DCPF_ENABLEPLANE7 = 128,
D3DCPF_ENABLEPLANE8 = 256,
D3DCPF_ENABLEPLANE9 = 512,
D3DCPF_ENABLEPLANE10 = 1024,
D3DCPF_ENABLEPLANE11 = 2048,
D3DCPF_ENABLEPLANE12 = 4096,
D3DCPF_ENABLEPLANE13 = 8192,
D3DCPF_ENABLEPLANE14 = 16384,
D3DCPF_ENABLEPLANE15 = 32768,
D3DCPF_ENABLEPLANE16 = 0x10000,
D3DCPF_ENABLEPLANE17 = 0x20000,
D3DCPF_ENABLEPLANE18 = 0x40000,
D3DCPF_ENABLEPLANE19 = 0x80000,
D3DCPF_ENABLEPLANE20 = 0x100000,
D3DCPF_ENABLEPLANE21 = 0x200000,
D3DCPF_ENABLEPLANE22 = 0x400000,
D3DCPF_ENABLEPLANE23 = 0x800000,
D3DCPF_ENABLEPLANE24 = 0x1000000,
D3DCPF_ENABLEPLANE25 = 0x2000000,
D3DCPF_ENABLEPLANE26 = 0x4000000,
D3DCPF_ENABLEPLANE27 = 0x8000000,
D3DCPF_ENABLEPLANE28 = 0x10000000,
D3DCPF_ENABLEPLANE29 = 0x20000000,
D3DCPF_ENABLEPLANE30 = 0x40000000,
D3DCPF_ENABLEPLANE31 = 0x80000000,
} D3DCLIPPLANEFLAGS;