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

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: directxconst.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. typedef enum CONST_D3DVERTEXBLENDFLAGS
  11. {
  12. D3DVBLEND_DISABLE = 0, // Disable vertex blending
  13. D3DVBLEND_1WEIGHT = 1, // blend between 2 matrices
  14. D3DVBLEND_2WEIGHTS = 2, // blend between 3 matrices
  15. D3DVBLEND_3WEIGHTS = 3, // blend between 4 matrices
  16. } CONST_D3DVERTEXBLENDFLAGS;
  17. typedef enum CONST_D3DTEXTURETRANSFORMFLAGS {
  18. D3DTTFF_DISABLE = 0, // texture coordinates are passed directly
  19. D3DTTFF_COUNT1 = 1, // rasterizer should expect 1-D texture coords
  20. D3DTTFF_COUNT2 = 2, // rasterizer should expect 2-D texture coords
  21. D3DTTFF_COUNT3 = 3, // rasterizer should expect 3-D texture coords
  22. D3DTTFF_COUNT4 = 4, // rasterizer should expect 4-D texture coords
  23. D3DTTFF_PROJECTED = 256 // texcoords to be divided by COUNTth element
  24. } CONST_D3DTEXTURETRANSFORMFLAGS;
  25. typedef enum CONST_D3DVTXPCAPSFLAGS {
  26. D3DVTXPCAPS_TEXGEN = 0x00000001,
  27. D3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002,
  28. D3DVTXPCAPS_VERTEXFOG = 0x00000004,
  29. D3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008,
  30. D3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010,
  31. D3DVTXPCAPS_NONLOCALVIEWER = 0x00000020,
  32. } D3DVTXPCAPSFLAGS;
  33. typedef enum CONST_D3DFDSFLAGS {
  34. D3DFDS_COLORMODE =0x00000001, /* Match color mode, */
  35. D3DFDS_GUID =0x00000002, /* Match guid */
  36. D3DFDS_HARDWARE =0x00000004, /* Match hardware/software */
  37. D3DFDS_TRIANGLES =0x00000008, /* Match in triCaps */
  38. D3DFDS_LINES =0x00000010, /* Match in lineCaps */
  39. D3DFDS_MISCCAPS =0x00000020, /* Match primCaps.dwMiscCaps */
  40. D3DFDS_RASTERCAPS =0x00000040, /* Match primCaps.dwRasterCaps */
  41. D3DFDS_ZCMPCAPS =0x00000080, /* Match primCaps.dwZCmpCaps */
  42. D3DFDS_ALPHACMPCAPS =0x00000100, /* Match primCaps.dwAlphaCmpCaps */
  43. D3DFDS_SRCBLENDCAPS =0x00000200, /* Match primCaps.dwSourceBlendCaps */
  44. D3DFDS_DSTBLENDCAPS =0x00000400, /* Match primCaps.dwDestBlendCaps */
  45. D3DFDS_SHADECAPS =0x00000800, /* Match primCaps.dwShadeCaps */
  46. D3DFDS_TEXTURECAPS =0x00001000, /* Match primCaps.dwTextureCaps */
  47. D3DFDS_TEXTUREFILTERCAPS =0x00002000, /* Match primCaps.dwTextureFilterCaps */
  48. D3DFDS_TEXTUREBLENDCAPS =0x00004000, /* Match primCaps.dwTextureBlendCaps */
  49. D3DFDS_TEXTUREADDRESSCAPS =0x00008000, /* Match primCaps.dwTextureBlendCaps */
  50. } D3DFDSFLAGS;
  51. typedef enum CONST_D3DTEXOPCAPSFLAGS {
  52. D3DTEXOPCAPS_DISABLE =0x00000001,
  53. D3DTEXOPCAPS_SELECTARG1 =0x00000002,
  54. D3DTEXOPCAPS_SELECTARG2 =0x00000004,
  55. D3DTEXOPCAPS_MODULATE =0x00000008,
  56. D3DTEXOPCAPS_MODULATE2X =0x00000010,
  57. D3DTEXOPCAPS_MODULATE4X =0x00000020,
  58. D3DTEXOPCAPS_ADD =0x00000040,
  59. D3DTEXOPCAPS_ADDSIGNED =0x00000080,
  60. D3DTEXOPCAPS_ADDSIGNED2X =0x00000100,
  61. D3DTEXOPCAPS_SUBTRACT =0x00000200,
  62. D3DTEXOPCAPS_ADDSMOOTH =0x00000400,
  63. D3DTEXOPCAPS_BLENDDIFFUSEALPHA =0x00000800,
  64. D3DTEXOPCAPS_BLENDTEXTUREALPHA =0x00001000,
  65. D3DTEXOPCAPS_BLENDFACTORALPHA =0x00002000,
  66. D3DTEXOPCAPS_BLENDTEXTUREALPHAPM =0x00004000,
  67. D3DTEXOPCAPS_BLENDCURRENTALPHA =0x00008000,
  68. D3DTEXOPCAPS_PREMODULATE =0x00010000,
  69. D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR =0x00020000,
  70. D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA =0x00040000,
  71. D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR =0x00080000,
  72. D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA =0x00100000,
  73. D3DTEXOPCAPS_BUMPENVMAP =0x00200000,
  74. D3DTEXOPCAPS_BUMPENVMAPLUMINANCE =0x00400000,
  75. D3DTEXOPCAPS_DOTPRODUCT3 =0x00800000,
  76. } D3DTEXOPCAPSFLAGS;
  77. typedef enum CONST_D3DDPFLAGS {
  78. D3DDP_DEFAULT =0x00000000,
  79. D3DDP_WAIT =0x00000001
  80. //D3DDP_DONOTCLIP =0x00000004,
  81. //D3DDP_DONOTUPDATEEXTENTS =0x00000008,
  82. //D3DDP_DONOTLIGHT =0x00000010
  83. } D3DDPFLAGS;
  84. //typedef enum CONST_D3DNEXTFLAGS {
  85. // D3DNEXT_NEXT =0x00000001,
  86. // D3DNEXT_HEAD =0x00000002,
  87. // D3DNEXT_TAIL =0x00000004
  88. //} D3DNEXTFLAGS;
  89. typedef enum CONST_D3DCLEARFLAGS {
  90. D3DCLEAR_TARGET = 0x00000001, /* Clear target surface */
  91. D3DCLEAR_ZBUFFER = 0x00000002, /* Clear target z buffer */
  92. D3DCLEAR_STENCIL = 0x00000004, /* Clear target z buffer */
  93. D3DCLEAR_ALL = 0x00000007
  94. } D3DCLEARFLAGS;
  95. typedef enum CONST_D3DLIGHTCAPSFLAGS {
  96. D3DLIGHTCAPS_POINT = 0x00000001, /* Point lights supported */
  97. D3DLIGHTCAPS_SPOT = 0x00000002, /* Spot lights supported */
  98. D3DLIGHTCAPS_DIRECTIONAL = 0x00000004, /* Directional lights supported */
  99. //not supported D3DLIGHTCAPS_PARALLELPOINT = 0x00000008 /* Parallel point lights supported */
  100. } D3DLIGHTCAPSFLAGS;
  101. //typedef enum CONST_D3DTRANSFORMFLAGS {
  102. // D3DTRANSFORM_CLIPPED = 0x00000001,
  103. // D3DTRANSFORM_UNCLIPPED = 0x00000002
  104. //} D3DTRANSFORMFLAGS;
  105. //typedef enum CONST_D3DTRANSFORMCAPS {
  106. // D3DTRANSFORMCAPS_CLIP =1
  107. //} D3DTRANSFORMCAPS;
  108. typedef enum CONST_D3DVOPFLAGS{
  109. /* Vertex Operations for ProcessVertices */
  110. D3DVOP_LIGHT = 1024,
  111. D3DVOP_TRANSFORM =1,
  112. D3DVOP_CLIP =4,
  113. D3DVOP_EXTENTS =8
  114. } D3DVOPFLAGS;
  115. typedef enum CONST_D3DCOLORMODEL {
  116. D3DCOLOR_MONO =1,
  117. D3DCOLOR_RGB =2,
  118. } D3DCOLORMODEL;
  119. typedef enum CONST_D3DLIGHTTYPE {
  120. D3DLIGHT_POINT = 1,
  121. D3DLIGHT_SPOT = 2,
  122. D3DLIGHT_DIRECTIONAL = 3,
  123. //not supported D3DLIGHT_PARALLELPOINT = 4
  124. } D3DLIGHTTYPE;
  125. typedef enum CONST_D3DLIGHTINGMODELFLAGS {
  126. D3DLIGHTINGMODEL_RGB = 0x00000001,
  127. D3DLIGHTINGMODEL_MONO = 0x00000002
  128. } D3DLIGHTINGMODELFLAGS;
  129. typedef enum CONST_D3DCAPSRASTER {
  130. /* D3DPRIMCAPS dwRasterCaps */
  131. D3DPRASTERCAPS_DITHER =0x00000001,
  132. D3DPRASTERCAPS_ROP2 =0x00000002,
  133. D3DPRASTERCAPS_XOR =0x00000004,
  134. D3DPRASTERCAPS_PAT =0x00000008,
  135. D3DPRASTERCAPS_ZTEST =0x00000010,
  136. D3DPRASTERCAPS_SUBPIXEL =0x00000020,
  137. D3DPRASTERCAPS_SUBPIXELX =0x00000040,
  138. D3DPRASTERCAPS_FOGVERTEX =0x00000080,
  139. D3DPRASTERCAPS_FOGTABLE =0x00000100,
  140. D3DPRASTERCAPS_STIPPLE =0x00000200,
  141. D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT =0x00000400,
  142. D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT =0x00000800,
  143. D3DPRASTERCAPS_ANTIALIASEDGES =0x00001000,
  144. D3DPRASTERCAPS_MIPMAPLODBIAS =0x00002000,
  145. D3DPRASTERCAPS_ZBIAS =0x00004000,
  146. D3DPRASTERCAPS_ZBUFFERLESSHSR =0x00008000,
  147. D3DPRASTERCAPS_FOGRANGE =0x00010000,
  148. D3DPRASTERCAPS_ANISOTROPY =0x00020000,
  149. D3DPRASTERCAPS_WBUFFER =0x00040000,
  150. //D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT=0x00080000, b25684
  151. D3DPRASTERCAPS_WFOG =0x00100000,
  152. D3DPRASTERCAPS_ZFOG =0x00200000,
  153. // D3DPRASTERCAPS_COLORKEYBLEND =0x00400000 removed
  154. } D3DCAPSRASTER;
  155. typedef enum CONST_D3DCAPSCMP {
  156. /* D3DPRIMCAPS dwZCmpCaps, dwAlphaCmpCaps */
  157. D3DPCMPCAPS_NEVER =0x00000001,
  158. D3DPCMPCAPS_LESS =0x00000002,
  159. D3DPCMPCAPS_EQUAL =0x00000004,
  160. D3DPCMPCAPS_LESSEQUAL =0x00000008,
  161. D3DPCMPCAPS_GREATER =0x00000010,
  162. D3DPCMPCAPS_NOTEQUAL =0x00000020,
  163. D3DPCMPCAPS_GREATEREQUAL =0x00000040,
  164. D3DPCMPCAPS_ALWAYS =0x00000080
  165. } D3DCAPSCMP;
  166. typedef enum CONST_D3DCAPSBLEND {
  167. /* D3DPRIMCAPS dwSourceBlendCaps, dwDestBlendCaps */
  168. D3DPBLENDCAPS_ZERO =0x00000001,
  169. D3DPBLENDCAPS_ONE =0x00000002,
  170. D3DPBLENDCAPS_SRCCOLOR =0x00000004,
  171. D3DPBLENDCAPS_INVSRCCOLOR =0x00000008,
  172. D3DPBLENDCAPS_SRCALPHA =0x00000010,
  173. D3DPBLENDCAPS_INVSRCALPHA =0x00000020,
  174. D3DPBLENDCAPS_DESTALPHA =0x00000040,
  175. D3DPBLENDCAPS_INVDESTALPHA =0x00000080,
  176. D3DPBLENDCAPS_DESTCOLOR =0x00000100,
  177. D3DPBLENDCAPS_INVDESTCOLOR =0x00000200,
  178. D3DPBLENDCAPS_SRCALPHASAT =0x00000400,
  179. D3DPBLENDCAPS_BOTHSRCALPHA =0x00000800,
  180. D3DPBLENDCAPS_BOTHINVSRCALPHA =0x00001000
  181. } D3DCAPSBLEND;
  182. typedef enum CONST_D3DCAPSSHADE {
  183. /* D3DPRIMCAPS dwShadeCaps */
  184. D3DPSHADECAPS_COLORFLATMONO =0x00000001,
  185. D3DPSHADECAPS_COLORFLATRGB =0x00000002,
  186. D3DPSHADECAPS_COLORGOURAUDMONO =0x00000004,
  187. D3DPSHADECAPS_COLORGOURAUDRGB =0x00000008,
  188. D3DPSHADECAPS_COLORPHONGMONO =0x00000010,
  189. D3DPSHADECAPS_COLORPHONGRGB =0x00000020,
  190. D3DPSHADECAPS_SPECULARFLATMONO =0x00000040,
  191. D3DPSHADECAPS_SPECULARFLATRGB =0x00000080,
  192. D3DPSHADECAPS_SPECULARGOURAUDMONO =0x00000100,
  193. D3DPSHADECAPS_SPECULARGOURAUDRGB =0x00000200,
  194. D3DPSHADECAPS_SPECULARPHONGMONO =0x00000400,
  195. D3DPSHADECAPS_SPECULARPHONGRGB =0x00000800,
  196. D3DPSHADECAPS_ALPHAFLATBLEND =0x00001000,
  197. D3DPSHADECAPS_ALPHAFLATSTIPPLED =0x00002000,
  198. D3DPSHADECAPS_ALPHAGOURAUDBLEND =0x00004000,
  199. D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED =0x00008000,
  200. D3DPSHADECAPS_ALPHAPHONGBLEND =0x00010000,
  201. D3DPSHADECAPS_ALPHAPHONGSTIPPLED =0x00020000,
  202. D3DPSHADECAPS_FOGFLAT =0x00040000,
  203. D3DPSHADECAPS_FOGGOURAUD =0x00080000,
  204. D3DPSHADECAPS_FOGPHONG =0x00100000
  205. } D3DCAPSSHADE;
  206. typedef enum CONST_D3DCAPSTEXTURE {
  207. /* D3DPRIMCAPS dwTextureCaps */
  208. D3DPTEXTURECAPS_PERSPECTIVE =0x00000001,
  209. D3DPTEXTURECAPS_POW2 =0x00000002,
  210. D3DPTEXTURECAPS_ALPHA =0x00000004,
  211. D3DPTEXTURECAPS_TRANSPARENCY =0x00000008,
  212. D3DPTEXTURECAPS_BORDER =0x00000010,
  213. D3DPTEXTURECAPS_SQUAREONLY =0x00000020,
  214. D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE =0x00000040,
  215. D3DPTEXTURECAPS_ALPHAPALETTE =0x00000080,
  216. D3DPTEXTURECAPS_NONPOW2CONDITIONAL =0x00000100,
  217. D3DPTEXTURECAPS_TEXTURETRANSFORM =0x00000200,
  218. D3DPTEXTURECAPS_PROJECTED =0x00000400,
  219. D3DPTEXTURECAPS_CUBEMAP =0x00000800,
  220. D3DPTEXTURECAPS_COLORKEYBLEND = 0x00001000,
  221. } D3DCAPSTEXTURE;
  222. typedef enum CONST_D3DCAPSTEXTUREFILTER {
  223. /* D3DPRIMCAPS dwTextureFilterCaps */
  224. D3DPTFILTERCAPS_NEAREST =0x00000001,
  225. D3DPTFILTERCAPS_LINEAR =0x00000002,
  226. D3DPTFILTERCAPS_MIPNEAREST =0x00000004,
  227. D3DPTFILTERCAPS_MIPLINEAR =0x00000008,
  228. D3DPTFILTERCAPS_LINEARMIPNEAREST =0x00000010,
  229. D3DPTFILTERCAPS_LINEARMIPLINEAR =0x00000020
  230. } D3DCAPSTEXTUREFILTER;
  231. /*
  232. typedef enum CONST_D3DCAPSTEXTUREBLEND {
  233. D3DPRIMCAPS dwTextureBlendCaps
  234. D3DPTBLENDCAPS_DECAL =0x00000001,
  235. D3DPTBLENDCAPS_MODULATE =0x00000002,
  236. D3DPTBLENDCAPS_DECALALPHA =0x00000004,
  237. D3DPTBLENDCAPS_MODULATEALPHA =0x00000008,
  238. D3DPTBLENDCAPS_DECALMASK =0x00000010,
  239. D3DPTBLENDCAPS_MODULATEMASK =0x00000020,
  240. D3DPTBLENDCAPS_COPY =0x00000040,
  241. D3DPTBLENDCAPS_ADD =0x00000080
  242. } D3DCAPSTEXTUREBLEND;
  243. */
  244. typedef enum CONST_D3DCAPSTEXTUREADDRESS {
  245. /* D3DPRIMCAPS dwTextureAddressCaps */
  246. D3DPTADDRESSCAPS_WRAP =0x00000001,
  247. D3DPTADDRESSCAPS_MIRROR =0x00000002,
  248. D3DPTADDRESSCAPS_CLAMP =0x00000004,
  249. D3DPTADDRESSCAPS_BORDER =0x00000008,
  250. D3DPTADDRESSCAPS_INDEPENDENTUV =0x00000010
  251. } D3DCAPSTEXTUREADDRESS;
  252. #if 0
  253. //not needed as D3DDEVICEDESC no longer has flags
  254. typedef enum CONST_D3DDEVICEDESCFLAGS {
  255. /* D3DDEVICEDESC dwFlags indicating valid fields */
  256. //D3DDD_COLORMODEL =0x00000001,/* dcmColorMode,is valid */
  257. D3DDD_DEVCAPS =0x00000002,/* dwDevCaps is valid */
  258. D3DDD_TRANSFORMCAPS =0x00000004,/* dtcTransformCaps is valid */
  259. D3DDD_LIGHTINGCAPS =0x00000008,/* dlcLightingCaps is valid */
  260. D3DDD_BCLIPPING =0x00000010,/* bClipping is valid */
  261. D3DDD_LINECAPS =0x00000020,/* dpcLineCaps is valid */
  262. D3DDD_TRICAPS =0x00000040,/* dpcTriCaps is valid */
  263. D3DDD_DEVICERENDERBITDEPTH =0x00000080, /* dwDeviceRenderBitDepth is valid */
  264. D3DDD_DEVICEZBUFFERBITDEPTH =0x00000100, /* dwDeviceZBufferBitDepth is valid */
  265. D3DDD_MAXBUFFERSIZE =0x00000200,/* dwMaxBufferSize is valid */
  266. D3DDD_MAXVERTEXCOUNT =0x00000400,/* dwMaxVertexCount is valid */
  267. } D3DDEVICEDESCFLAGS;
  268. #endif
  269. typedef enum CONST_D3DDEVICEDESCCAPS {
  270. /* D3DDEVICEDESC dwDevCaps flags */
  271. D3DDEVCAPS_FLOATTLVERTEX =0x00000001,/* Device accepts floating point */ /* for post-transform vertex data */
  272. D3DDEVCAPS_SORTINCREASINGZ =0x00000002,/* Device needs data sorted for increasing Z*/
  273. D3DDEVCAPS_SORTDECREASINGZ =0x00000004,/* Device needs data sorted for decreasing Z*/
  274. D3DDEVCAPS_SORTEXACT =0x00000008,/* Device needs data sorted exactly */
  275. // D3DDEVCAPS_EXECUTESYSTEMMEMORY =0x00000010,/* Device can use execute buffers from system memory */
  276. // D3DDEVCAPS_EXECUTEVIDEOMEMORY =0x00000020,/* Device can use execute buffers from video memory */
  277. D3DDEVCAPS_TLVERTEXSYSTEMMEMORY =0x00000040,/* Device can use T,buffers from system memory */
  278. D3DDEVCAPS_TLVERTEXVIDEOMEMORY =0x00000080,/* Device can use T,buffers from video memory */
  279. D3DDEVCAPS_TEXTURESYSTEMMEMORY =0x00000100,/* Device can texture from system memory */
  280. D3DDEVCAPS_TEXTUREVIDEOMEMORY =0x00000200,/* Device can texture from device memory */
  281. D3DDEVCAPS_DRAWPRIMTLVERTEX =0x00000400,/* Device can draw TLVERTEX primitives */
  282. D3DDEVCAPS_CANRENDERAFTERFLIP =0x00000800,/* Device can render without waiting for flip to complete */
  283. D3DDEVCAPS_TEXTURENONLOCALVIDMEM =0x00001000,/* Device can texture from nonloca,video memory */
  284. D3DDEVCAPS_SEPARATETEXTUREMEMORIES= 0x00004000,
  285. D3DDEVCAPS_HWTRANSFORMANDLIGHT=0x00008000,
  286. D3DDEVCAPS_CANBLTSYSTONONLOCAL=0x00020000,
  287. //D3DDEVCAPS_STRIDEDVERTICES=0x00010000,
  288. D3DDEVCAPS_HWRASTERIZATION =0x00080000, /* Device has HW acceleration for rasterization */
  289. } D3DDEVICEDESCCAPS;
  290. // shanee thinks this is only needed for execute buffers
  291. //
  292. //typedef enum CONST_D3DSETSTATUSFLAGS {
  293. // D3DSETSTATUS_STATUS = 0x00000001,
  294. // D3DSETSTATUS_EXTENTS = 0x00000002,
  295. // D3DSETSTATUS_ALL = 3 //(D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS),
  296. //} D3DSETSTATUSFLAGS;
  297. typedef enum CONST_D3DCLIPFLAGS {
  298. D3DCLIP_LEFT = 0x00000001,
  299. D3DCLIP_RIGHT = 0x00000002,
  300. D3DCLIP_TOP = 0x00000004,
  301. D3DCLIP_BOTTOM= 0x00000008,
  302. D3DCLIP_FRONT = 0x00000010,
  303. D3DCLIP_BACK = 0x00000020,
  304. D3DCLIP_GEN0 = 0x00000040,
  305. D3DCLIP_GEN1 = 0x00000080,
  306. D3DCLIP_GEN2 = 0x00000100,
  307. D3DCLIP_GEN3 = 0x00000200,
  308. D3DCLIP_GEN4 = 0x00000400,
  309. D3DCLIP_GEN5 = 0x00000800,
  310. D3DSTATUS_CLIPINTERSECTIONLEFT = 0x00001000,
  311. D3DSTATUS_CLIPINTERSECTIONRIGHT = 0x00002000,
  312. D3DSTATUS_CLIPINTERSECTIONTOP = 0x00004000,
  313. D3DSTATUS_CLIPINTERSECTIONBOTTOM = 0x00008000,
  314. D3DSTATUS_CLIPINTERSECTIONFRONT = 0x00010000,
  315. D3DSTATUS_CLIPINTERSECTIONBACK = 0x00020000,
  316. D3DSTATUS_CLIPINTERSECTIONGEN0 = 0x00040000,
  317. D3DSTATUS_CLIPINTERSECTIONGEN1 = 0x00080000,
  318. D3DSTATUS_CLIPINTERSECTIONGEN2 = 0x00100000,
  319. D3DSTATUS_CLIPINTERSECTIONGEN3 = 0x00200000,
  320. D3DSTATUS_CLIPINTERSECTIONGEN4 = 0x00400000,
  321. D3DSTATUS_CLIPINTERSECTIONGEN5 = 0x00800000,
  322. D3DSTATUS_CLIPUNIONLEFT = 0x00000001,
  323. D3DSTATUS_CLIPUNIONRIGHT = 0x00000002,
  324. D3DSTATUS_CLIPUNIONTOP = 0x00000004,
  325. D3DSTATUS_CLIPUNIONBOTTOM = 0x00000008,
  326. D3DSTATUS_CLIPUNIONFRONT = 0x00000010,
  327. D3DSTATUS_CLIPUNIONBACK = 0x00000020,
  328. D3DSTATUS_CLIPUNIONGEN0 = 0x00000040,
  329. D3DSTATUS_CLIPUNIONGEN1 = 0x00000080,
  330. D3DSTATUS_CLIPUNIONGEN2 = 0x00000100,
  331. D3DSTATUS_CLIPUNIONGEN3 = 0x00000200,
  332. D3DSTATUS_CLIPUNIONGEN4 = 0x00000400,
  333. D3DSTATUS_CLIPUNIONGEN5 = 0x00000800,
  334. D3DSTATUS_ZNOTVISIBLE = 0x01000000,
  335. // Do not use 0x80000000 for any status flags in future as it is reserved
  336. D3DSTATUS_CLIPUNIONALL =0x00FFF000,
  337. // D3DSTATUS_CLIPUNIONALL ( \
  338. // D3DSTATUS_CLIPUNIONLEFT | \
  339. // D3DSTATUS_CLIPUNIONRIGHT | \
  340. // D3DSTATUS_CLIPUNIONTOP | \
  341. // D3DSTATUS_CLIPUNIONBOTTOM | \
  342. // D3DSTATUS_CLIPUNIONFRONT | \
  343. // D3DSTATUS_CLIPUNIONBACK | \
  344. // D3DSTATUS_CLIPUNIONGEN0 | \
  345. // D3DSTATUS_CLIPUNIONGEN1 | \
  346. // D3DSTATUS_CLIPUNIONGEN2 | \
  347. // D3DSTATUS_CLIPUNIONGEN3 | \
  348. // D3DSTATUS_CLIPUNIONGEN4 | \
  349. // D3DSTATUS_CLIPUNIONGEN5 \
  350. // )
  351. D3DSTATUS_CLIPINTERSECTIONALL=0x00FFF000,
  352. // D3DSTATUS_CLIPINTERSECTIONALL ( \
  353. // D3DSTATUS_CLIPINTERSECTIONLEFT | \
  354. // D3DSTATUS_CLIPINTERSECTIONRIGHT | \
  355. // D3DSTATUS_CLIPINTERSECTIONTOP | \
  356. // D3DSTATUS_CLIPINTERSECTIONBOTTOM | \
  357. // D3DSTATUS_CLIPINTERSECTIONFRONT | \
  358. // D3DSTATUS_CLIPINTERSECTIONBACK | \
  359. // D3DSTATUS_CLIPINTERSECTIONGEN0 | \
  360. // D3DSTATUS_CLIPINTERSECTIONGEN1 | \
  361. // D3DSTATUS_CLIPINTERSECTIONGEN2 | \
  362. // D3DSTATUS_CLIPINTERSECTIONGEN3 | \
  363. // D3DSTATUS_CLIPINTERSECTIONGEN4 | \
  364. // D3DSTATUS_CLIPINTERSECTIONGEN5 \
  365. // )
  366. D3DSTATUS_DEFAULT =0x01FFF000
  367. // D3DSTATUS_DEFAULT ( \
  368. // D3DSTATUS_CLIPINTERSECTIONALL | \
  369. // D3DSTATUS_ZNOTVISIBLE)
  370. } D3DCLIPFLAGS;
  371. #if 0
  372. /*
  373. * execute buffer flags
  374. D3DTRIFLAG_START = 0x00000000,
  375. D3DTRIFLAG_ODD = 0x0000001e,
  376. D3DTRIFLAG_EVEN= 0x0000001f,
  377. D3DTRIFLAG_EDGEENABLE1 = 0x00000100, // v0-v1 edge
  378. D3DTRIFLAG_EDGEENABLE2 = 0x00000200, // v1-v2 edge
  379. D3DTRIFLAG_EDGEENABLE3 = 0x00000400, // v2-v0 edge
  380. D3DTRIFLAG_EDGEENABLETRIANGLE = 0x00000700,
  381. D3DPROCESSVERTICES_TRANSFORMLIGHT =0x00000000,
  382. D3DPROCESSVERTICES_TRANSFORM =0x00000001,
  383. D3DPROCESSVERTICES_COPY =0x00000002,
  384. D3DPROCESSVERTICES_OPMASK =0x00000007,
  385. D3DPROCESSVERTICES_UPDATEEXTENTS =0x00000008,
  386. D3DPROCESSVERTICES_NOCOLOR =0x00000010,
  387. // (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3),
  388. // Execute options.
  389. //When calling using D3DEXECUTE_UNCLIPPED all the primitives
  390. //inside the buffer must be contained within the viewport.
  391. //
  392. D3DEXECUTE_CLIPPED = 0x00000001,
  393. D3DEXECUTE_UNCLIPPED = 0x00000002,
  394. //
  395. //Amount to add to a state to generate the override for that state.
  396. D3DSTATE_OVERRIDE_BIAS = 256,
  397. */
  398. #endif
  399. typedef enum CONST_D3DCLIPSTATUSFLAGS {
  400. D3DCLIPSTATUS_STATUS = 0x00000001,
  401. D3DCLIPSTATUS_EXTENTS2 = 0x00000002,
  402. D3DCLIPSTATUS_EXTENTS3 = 0x00000004
  403. } D3DCLIPSTATUSFLAGS;
  404. typedef enum CONST_D3DLIGHTFLAGS {
  405. D3DLIGHT_ACTIVE = 0x00000001,
  406. D3DLIGHT_NO_SPECULAR = 0x00000002,
  407. D3DLIGHT_ALL = 0x00000003
  408. } D3DLIGHTFLAGS;
  409. typedef enum CONST_DDPALFLAGS {
  410. PC_DEFAULT=0,
  411. PC_RESERVED=1,
  412. PC_EXPLICIT=2,
  413. PC_NOCOLLAPSE=4
  414. } DDPALFLAGS;
  415. typedef enum CONST_DDDEVICEIDFLAGS {
  416. DDGDI_DEFAULT=0,
  417. DDGDI_GETHOSTIDENTIFIER=1
  418. } DDDEVICEIDFLAGS;
  419. //typedef enum CONST_D3DPALFLAGS {
  420. // /*
  421. // * Palette flags.
  422. // * This are or'ed with the peFlags in the PALETTEENTRYs passed to DirectDraw.
  423. // */
  424. // D3DPAL_FREE= 0x00, /* Renderer may use this entry freely */
  425. // D3DPAL_READONLY= 0x40, /* Renderer may not set this entry */
  426. // D3DPAL_RESERVED= 0x80 /* Renderer may not use this entry */
  427. //
  428. //} D3DPALFLAGS;
  429. typedef enum CONST_D3DVBCAPSFLAGS {
  430. D3DVBCAPS_SYSTEMMEMORY = 0x00000800,
  431. D3DVBCAPS_WRITEONLY = 0x00010000,
  432. D3DVBCAPS_OPTIMIZED = 0x80000000,
  433. D3DVBCAPS_DONOTCLIP = 0x00000001,
  434. D3DVBCAPS_DEFAULT = 0x00000000
  435. } D3DVBCAPSFLAGS;
  436. typedef enum CONST_D3DFVFCAPSFLAGS {
  437. D3DFVFCAPS_TEXCOORDCOUNTMASK =0x0000ffff, /* mask for texture coordinate count field */
  438. D3DFVFCAPS_DONOTSTRIPELEMENTS =0x00080000 /* Device prefers that vertex elements not be stripped */
  439. } D3DFVFCAPSFLAGS;
  440. typedef enum CONST_D3DFVFFLAGS {
  441. // Flexible vertex format bits
  442. //
  443. // D3DFVF_RESERVED0 =0x001,
  444. // D3DFVF_POSITION_MASK =0x00E,
  445. D3DFVF_XYZ =0x002,
  446. D3DFVF_XYZRHW =0x004,
  447. D3DFVF_XYZB1 =0x006,
  448. D3DFVF_XYZB2 =0x008,
  449. D3DFVF_XYZB3 =0x00a,
  450. D3DFVF_XYZB4 =0x00c,
  451. D3DFVF_XYZB5 =0x00e,
  452. D3DFVF_NORMAL =0x010,
  453. // D3DFVF_RESERVED1 =0x020,
  454. D3DFVF_DIFFUSE =0x040,
  455. D3DFVF_SPECULAR =0x080,
  456. // D3DFVF_TEXCOUNT_MASK =0xf00,
  457. // D3DFVF_TEXCOUNT_SHIFT =8,
  458. D3DFVF_TEX0 =0x000,
  459. D3DFVF_TEX1 =0x100,
  460. D3DFVF_TEX2 =0x200,
  461. D3DFVF_TEX3 =0x300,
  462. D3DFVF_TEX4 =0x400,
  463. D3DFVF_TEX5 =0x500,
  464. D3DFVF_TEX6 =0x600,
  465. D3DFVF_TEX7 =0x700,
  466. D3DFVF_TEX8 =0x800,
  467. // D3DFVF_RESERVED2 =0xf000, // 4 reserved bits
  468. D3DFVF_VERTEX=0x112,
  469. D3DFVF_LVERTEX=0x1e2,
  470. D3DFVF_TLVERTEX=0x1c4
  471. } D3DFVFFLAGS;
  472. /*
  473. typedef enum CONST_D3DVISFLAGS {
  474. D3DVIS_INSIDE_FRUSTUM = 0,
  475. D3DVIS_INTERSECT_FRUSTUM = 1,
  476. D3DVIS_OUTSIDE_FRUSTUM = 2,
  477. D3DVIS_INSIDE_LEFT = 0,
  478. D3DVIS_INTERSECT_LEFT = 2, //(1 << 2)
  479. D3DVIS_OUTSIDE_LEFT = 4, //(2 << 2)
  480. D3DVIS_INSIDE_RIGHT = 0,
  481. D3DVIS_INTERSECT_RIGHT = 16, //(1 << 4)
  482. D3DVIS_OUTSIDE_RIGHT = 32, //(2 << 4)
  483. D3DVIS_INSIDE_TOP = 0,
  484. D3DVIS_INTERSECT_TOP = 64, //(1 << 6)
  485. D3DVIS_OUTSIDE_TOP = 128, //(2 << 6)
  486. D3DVIS_INSIDE_BOTTOM = 0,
  487. D3DVIS_INTERSECT_BOTTOM = 256, //(1 << 8)
  488. D3DVIS_OUTSIDE_BOTTOM = 512, //(2 << 8)
  489. D3DVIS_INSIDE_NEAR = 0,
  490. D3DVIS_INTERSECT_NEAR = 1024, //(1 << 10)
  491. D3DVIS_OUTSIDE_NEAR = 2048, //(2 << 10)
  492. D3DVIS_INSIDE_FAR = 0,
  493. D3DVIS_INTERSECT_FAR = 4096, //(1 << 12)
  494. D3DVIS_OUTSIDE_FAR = 8192, //(2 << 12)
  495. //D3DVIS_MASK_FRUSTUM = 3,
  496. //D3DVIS_MASK_LEFT = 12, //(3 << 2)
  497. //D3DVIS_MASK_RIGHT = 40, // (3 << 4)
  498. //D3DVIS_MASK_TOP = 192, //(3 << 6)
  499. //D3DVIS_MASK_BOTTOM = 768, //(3 << 8)
  500. //D3DVIS_MASK_NEAR = 3072, //(3 << 10)
  501. //D3DVIS_MASK_FAR = 12288
  502. } D3DVISFLAGS;
  503. */
  504. typedef enum CONST_D3DTAFLAGS {
  505. D3DTA_SELECTMASK = 0x0000000f, // mask for arg selector
  506. D3DTA_DIFFUSE = 0x00000000, // select diffuse color
  507. D3DTA_CURRENT = 0x00000001, // select result of previous stage
  508. D3DTA_TEXTURE = 0x00000002, // select texture color
  509. D3DTA_TFACTOR = 0x00000003, // select RENDERSTATE_TEXTUREFACTORur
  510. D3DTA_COMPLEMENT = 0x00000010, // take 1.0 - x
  511. D3DTA_ALPHAREPLICATE = 0x00000020, // replicate alpha to color components
  512. //DX7
  513. D3DTA_SPECULAR = 0x00000004
  514. } D3DTAFLAGS;
  515. typedef enum CONST_D3DCAPSMISC {
  516. D3DPMISCCAPS_MASKPLANES =0x00000001,
  517. D3DPMISCCAPS_MASKZ =0x00000002,
  518. // D3DPMISCCAPS_LINEPATTERNREP =0x00000004,
  519. D3DPMISCCAPS_CONFORMANT =0x00000008,
  520. D3DPMISCCAPS_CULLNONE =0x00000010,
  521. D3DPMISCCAPS_CULLCW =0x00000020,
  522. D3DPMISCCAPS_CULLCCW =0x00000040
  523. } D3DCAPSMISC;
  524. typedef enum CONST_D3D {
  525. // Bias to apply to the texture coordinate set to apply a wrap to.
  526. D3DRENDERSTATE_WRAPBIAS = 128,
  527. D3DDP_MAXTEXCOORD =8,
  528. /* Flags to construct the WRAP render states */
  529. D3DWRAPCOORD_0= 0x00000001,
  530. D3DWRAPCOORD_1= 0x00000002,
  531. D3DWRAPCOORD_2=0x00000004,
  532. D3DWRAPCOORD_3=0x00000008
  533. } D3DFLAGS;
  534. /******************
  535. * RM
  536. *******************/
  537. typedef enum CONST_D3DRMCREATEDEVICEFLAGS {
  538. D3DRMDEVICE_DEFAULT =0,
  539. D3DRMDEVICE_NOZBUFFER =1
  540. } D3DRMCREATEDEVICEFLAGS;
  541. typedef enum CONST_D3DRMADDFACESFLAGS{
  542. D3DRMADDFACES_DEFAULT =0,
  543. D3DRMADDFACES_VERTICESONLY =1
  544. } D3DRMADDFACESFLAGS;
  545. typedef enum CONST_D3DRMMESHBUILDERENABLEFLAGS {
  546. D3DRMMESHBUILDER_RENDERENABLE =1,
  547. D3DRMMESHBUILDER_PICKENABLE =2,
  548. D3DRMMESHBUILDER_PICKANDRENDERENABLE =3
  549. } D3DRMMESHBUILDERFLAGS;
  550. typedef enum CONST_D3DRMMESHBUILDERAGEFLAGS {
  551. D3DRMMESHBUILDERAGE_GEOMETRY =0x00000001,
  552. D3DRMMESHBUILDERAGE_MATERIALS =0x00000002,
  553. D3DRMMESHBUILDERAGE_TEXTURES =0x00000004
  554. }D3DRMMESHBUILDERAGEFLAGS;
  555. typedef enum CONST_D3DRMPARENTINGFLAGS {
  556. D3DRMMESHBUILDER_DIRECTPARENT = 1,
  557. D3DRMMESHBUILDER_ROOTMESH = 2
  558. } D3DRMPARENTINGFLAGS;
  559. /*
  560. typedef enum CONST_D3DRMUSERVISUALREASON {
  561. D3DRMUSERVISUAL_CANSEE,
  562. D3DRMUSERVISUAL_RENDER
  563. } D3DRMUSERVISUALREASON;
  564. */
  565. typedef enum CONST_D3DRMADDMESHBUILDERFLAGS {
  566. D3DRMADDMESHBUILDER_DONTCOPYAPPDATA = 1,
  567. D3DRMADDMESHBUILDER_FLATTENSUBMESHES = 2,
  568. D3DRMADDMESHBUILDER_NOSUBMESHES = 4
  569. } D3DRMADDMESHBUILDERFLAGS ;
  570. typedef enum CONST_D3DRMGENERATENORMALSFLAGS {
  571. D3DRMGENERATENORMALS_PRECOMPACT = 1,
  572. D3DRMGENERATENORMALS_USECREASEANGLE = 2
  573. } D3DRMGENERATENORMALSFLAGS;
  574. typedef enum CONST_D3DRMTEXTURECACHEFLAGS {
  575. D3DRMTEXTURE_FORCERESIDENT = 0x00000001, /* texture should be kept in video memory */
  576. D3DRMTEXTURE_STATIC = 0x00000002, /* texture will not change */
  577. D3DRMTEXTURE_DOWNSAMPLEPOINT = 0x00000004, /* point filtering should be used when downsampling */
  578. D3DRMTEXTURE_DOWNSAMPLEBILINEAR = 0x00000008, /* bilinear filtering should be used when downsampling */
  579. D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH= 0x00000010, /* reduce bit depth when downsampling */
  580. D3DRMTEXTURE_DOWNSAMPLENONE = 0x00000020 /* texture should never be downsampled */
  581. } D3DRMTEXTURECACHEFLAGS;
  582. typedef enum CONST_D3DRMLIGHTTYPE
  583. { D3DRMLIGHT_AMBIENT,
  584. D3DRMLIGHT_POINT,
  585. D3DRMLIGHT_SPOT,
  586. D3DRMLIGHT_DIRECTIONAL,
  587. // not supported D3DRMLIGHT_PARALLELPOINT
  588. } D3DRMLIGHTTYPE;
  589. typedef enum CONST_D3DRMVIEWPORTCLEARFLAGS {
  590. D3DRMCLEAR_TARGET =1,
  591. D3DRMCLEAR_ZBUFFER =2,
  592. D3DRMCLEAR_DIRTYRECTS =4,
  593. D3DRMCLEAR_ALL =7
  594. } D3DRMVIEWPORTCLEARFLAGS;
  595. typedef enum CONST_D3DRMRENDERQUALITY {
  596. D3DRMSHADE_FLAT = 0,
  597. D3DRMSHADE_GOURAUD = 1,
  598. D3DRMSHADE_PHONG = 2,
  599. D3DRMSHADE_MASK = 7,
  600. D3DRMSHADE_MAX = 8,
  601. D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX,
  602. D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX,
  603. D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX,
  604. D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX,
  605. D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX,
  606. D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX,
  607. D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX,
  608. D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX,
  609. D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX,
  610. D3DRMRENDER_WIREFRAME =(D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME),
  611. D3DRMRENDER_UNLITFLAT= (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID),
  612. D3DRMRENDER_FLAT =(D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID),
  613. D3DRMRENDER_GOURAUD =(D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID),
  614. D3DRMRENDER_PHONG= (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
  615. } D3DRMRENDERQUALITY;
  616. typedef enum CONST_D3DRMTEXTURECHANGEDFLAGS {
  617. D3DRMTEXTURE_CHANGEDPIXELS = 0x00000040, /* pixels have changed */
  618. D3DRMTEXTURE_CHANGEDPALETTE = 0x00000080, /* palette has changed */
  619. D3DRMTEXTURE_INVALIDATEONLY = 0x00000100 /* dirty regions are invalid */
  620. } D3DRMTEXTURECHANGEDFLAGS;
  621. typedef enum CONST_D3DRMTEXTUREQUALITY
  622. { D3DRMTEXTURE_NEAREST, /* choose nearest texel */
  623. D3DRMTEXTURE_LINEAR, /* interpolate 4 texels */
  624. D3DRMTEXTURE_MIPNEAREST, /* nearest texel in nearest mipmap */
  625. D3DRMTEXTURE_MIPLINEAR, /* interpolate 2 texels from 2 mipmaps */
  626. D3DRMTEXTURE_LINEARMIPNEAREST, /* interpolate 4 texels in nearest mipmap */
  627. D3DRMTEXTURE_LINEARMIPLINEAR /* interpolate 8 texels from 2 mipmaps */
  628. } D3DRMTEXTUREQUALITY;
  629. typedef enum CONST_D3DRMCOMBINETYPE
  630. { D3DRMCOMBINE_REPLACE,
  631. D3DRMCOMBINE_BEFORE,
  632. D3DRMCOMBINE_AFTER
  633. } D3DRMCOMBINETYPE;
  634. typedef enum CONST_D3DRMPALETTEFLAGS
  635. { D3DRMPALETTE_FREE, /* renderer may use this entry freely */
  636. D3DRMPALETTE_READONLY, /* fixed but may be used by renderer */
  637. D3DRMPALETTE_RESERVED /* may not be used by renderer */
  638. } D3DRMPALETTEFLAGS;
  639. typedef enum CONST_D3DRMWRAPTYPE
  640. { D3DRMWRAP_FLAT,
  641. D3DRMWRAP_CYLINDER,
  642. D3DRMWRAP_SPHERE,
  643. D3DRMWRAP_CHROME
  644. } D3DRMWRAPTYPE;
  645. typedef enum CONST_D3DRMPROJECTIONTYPE
  646. { D3DRMPROJECT_PERSPECTIVE,
  647. D3DRMPROJECT_ORTHOGRAPHIC,
  648. D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
  649. D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
  650. } D3DRMPROJECTIONTYPE;
  651. typedef enum CONST_D3DRMXOFFORMAT
  652. { D3DRMXOF_BINARY,
  653. D3DRMXOF_COMPRESSED,
  654. D3DRMXOF_TEXT
  655. } D3DRMXOFFORMAT;
  656. typedef enum CONST_D3DRMCOLORSOURCE
  657. { D3DRMCOLOR_FROMFACE,
  658. D3DRMCOLOR_FROMVERTEX
  659. } D3DRMCOLORSOURCE;
  660. typedef enum CONST_D3DRMFRAMECONSTRAINT
  661. { D3DRMCONSTRAIN_Z, /* use only X and Y rotations */
  662. D3DRMCONSTRAIN_Y, /* use only X and Z rotations */
  663. D3DRMCONSTRAIN_X /* use only Y and Z rotations */
  664. } D3DRMFRAMECONSTRAINT;
  665. typedef enum CONST_D3DRMMATERIALMODE
  666. { D3DRMMATERIAL_FROMMESH,
  667. D3DRMMATERIAL_FROMPARENT,
  668. D3DRMMATERIAL_FROMFRAME
  669. } D3DRMMATERIALMODE;
  670. typedef enum CONST_D3DRMFOGMODE
  671. { D3DRMFOG_LINEAR, /* linear between start and end */
  672. D3DRMFOG_EXPONENTIAL, /* density * exp(-distance) */
  673. D3DRMFOG_EXPONENTIALSQUARED /* density * exp(-distance*distance) */
  674. } D3DRMFOGMODE;
  675. typedef enum CONST_D3DRMZBUFFERMODE {
  676. D3DRMZBUFFER_FROMPARENT, /* default */
  677. D3DRMZBUFFER_ENABLE, /* enable zbuffering */
  678. D3DRMZBUFFER_DISABLE /* disable zbuffering */
  679. } D3DRMZBUFFERMODE;
  680. typedef enum CONST_D3DRMSORTMODE {
  681. D3DRMSORT_FROMPARENT, /* default */
  682. D3DRMSORT_NONE, /* don't sort child frames */
  683. D3DRMSORT_FRONTTOBACK, /* sort child frames front-to-back */
  684. D3DRMSORT_BACKTOFRONT /* sort child frames back-to-front */
  685. } D3DRMSORTMODE;
  686. typedef enum CONST_D3DRMRAYPICKFLAGS {
  687. D3DRMRAYPICK_ONLYBOUNDINGBOXES =1,
  688. D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES= 2,
  689. D3DRMRAYPICK_INTERPOLATEUV =4,
  690. D3DRMRAYPICK_INTERPOLATECOLOR = 8,
  691. D3DRMRAYPICK_INTERPOLATENORMAL = 0x10
  692. } D3DRMRAYPICKFLAGS;
  693. typedef enum CONST_D3DRMADDTRIANGLESVT {
  694. D3DRMFVF_TYPE =0x00000001,
  695. D3DRMFVF_NORMAL =0x00000002,
  696. D3DRMFVF_COLOR =0x00000004,
  697. D3DRMFVF_TEXTURECOORDS =0x00000008
  698. } D3DRMADDTRIANGLESVT;
  699. typedef enum CONST_D3DRMADDTRIANGLESFLAGS {
  700. D3DRMVERTEX_STRIP =0x00000001,
  701. D3DRMVERTEX_FAN =0x00000002,
  702. D3DRMVERTEX_LIST =0x00000004
  703. } D3DRMADDTRIANGLESFLAGS;
  704. typedef enum CONST_D3DRMFOGMETHOD {
  705. D3DRMFOGMETHOD_VERTEX =1,
  706. D3DRMFOGMETHOD_TABLE =2,
  707. D3DRMFOGMETHOD_ANY =4
  708. } D3DRMFOGMETHOD;
  709. typedef enum CONST_D3DRMTRAVERALFLAGS {
  710. D3DRMFRAME_RENDERENABLE = 0x00000001,
  711. D3DRMFRAME_PICKENABLE = 0x00000002,
  712. D3DRMFRAME_RENDERANDPICKENABLE = 0x00000003
  713. } D3DRMTRAVERSALFLAGS;
  714. typedef enum CONST_D3DRMINTERPOLATIONFLAGS {
  715. D3DRMINTERPOLATION_OPEN=0x01,
  716. D3DRMINTERPOLATION_CLOSED=0x02,
  717. D3DRMINTERPOLATION_NEAREST=0x0100,
  718. D3DRMINTERPOLATION_LINEAR=0x04,
  719. D3DRMINTERPOLATION_SPLINE=0x08,
  720. D3DRMINTERPOLATION_VERTEXCOLOR=0x40,
  721. D3DRMINTERPOLATION_SLERPNORMALS=0x80
  722. } D3DRMINTERPOLATIONFLAGS;
  723. typedef enum CONST_D3DRMHANDEDNESS {
  724. D3DRMOPTIONS_LEFTHANDED =1,
  725. D3DRMOPTIONS_RIGHTHANDED =2
  726. } D3DRMHANDEDNESS;
  727. typedef enum CONST_D3DRMWIREFRAMEFLAGS {
  728. D3DRMWIREFRAME_CULL = 1, /* cul,backfaces */
  729. D3DRMWIREFRAME_HIDDENLINE =2, /* lines are obscured by closer objects */
  730. D3DRMWIREFRAME_CULLANDHIDELINES =3
  731. } D3DRMWIREFRAMEFLAGS ;
  732. typedef enum CONST_D3DRMCALLBACKORDERFLAGS {
  733. D3DRMCALLBACK_PREORDER =0,
  734. D3DRMCALLBACK_POSTORDER =1
  735. } D3DRMCALLBACKORDERFLAGS;
  736. typedef enum CONST_D3DRMRENDERMODEFLAGS {
  737. D3DRMRENDERMODE_DEFAULT=0,
  738. D3DRMRENDERMODE_BLENDEDTRANSPARENCY=1,
  739. D3DRMRENDERMODE_SORTEDTRANSPARENCY=2,
  740. D3DRMRENDERMODE_LIGHTINMODELSPACE= 8,
  741. D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR =16,
  742. D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE =32
  743. } D3DRMRENDERMODEFLAGS;
  744. typedef enum CONST_D3DRMPMESHSTATUSFLAGS {
  745. D3DRMPMESHSTATUS_VALID =0x01,
  746. D3DRMPMESHSTATUS_INTERRUPTED =0x02,
  747. D3DRMPMESHSTATUS_BASEMESHCOMPLETE =0x04,
  748. D3DRMPMESHSTATUS_COMPLETE =0x08,
  749. D3DRMPMESHSTATUS_RENDERABLE =0x10
  750. } D3DRMPMESHSTATUSFLAGS ;
  751. typedef enum CONST_D3DRMPMESHEVENTFLAGS {
  752. D3DRMPMESHEVENT_BASEMESH =0x01,
  753. D3DRMPMESHEVENT_COMPLETE =0x02
  754. } D3DRMPMESHEVENTFLAGS ;
  755. typedef enum CONST_D3DRMFPTFFLAGS {
  756. D3DRMFPTF_ALPHA =0x00000001,
  757. D3DRMFPTF_NOALPHA =0x00000002,
  758. D3DRMFPTF_PALETTIZED =0x00000004,
  759. D3DRMFPTF_NOTPALETTIZED =0x00000008
  760. } D3DRMFPTFFLAGS;
  761. typedef enum CONST_D3DRMMAPPINGFLAGS {
  762. D3DRMMAP_WRAPU = 1,
  763. D3DRMMAP_WRAPV = 2,
  764. D3DRMMAP_PERSPCORRECT = 4
  765. } D3DRMMAPPINGFLAGS;
  766. typedef enum CONST_D3DRMSTATECHANGEFLAGS {
  767. D3DRMSTATECHANGE_UPDATEONLY =0x000000001,
  768. D3DRMSTATECHANGE_VOLATILE =0x000000002,
  769. D3DRMSTATECHANGE_NONVOLATILE =0x000000004,
  770. D3DRMSTATECHANGE_RENDER =0x000000020,
  771. D3DRMSTATECHANGE_LIGHT =0x000000040
  772. } D3DRMSTATECHANGEFLAGS ;
  773. typedef enum CONST_D3DRMLOADFLAGS {
  774. D3DRMLOAD_FROMFILE=0x00,
  775. D3DRMLOAD_FROMRESOURCE=0x01,
  776. D3DRMLOAD_FROMMEMORY=0x02,
  777. D3DRMLOAD_FROMSTREAM=0x04,
  778. D3DRMLOAD_FROMUR=0x08,
  779. D3DRMLOAD_BYNAME=0x10,
  780. D3DRMLOAD_BYPOSITION=0x20,
  781. D3DRMLOAD_BYGUID=0x40,
  782. D3DRMLOAD_FIRST =0x80,
  783. D3DRMLOAD_INSTANCEBYREFERENCE =0x100,
  784. D3DRMLOAD_INSTANCEBYCOPYING =0x200,
  785. D3DRMLOAD_ASYNCHRONOUS =0x400,
  786. }D3DRMLOADFLAGS;
  787. typedef enum CONST_D3DRMSAVEFLAGS {
  788. D3DRMXOFSAVE_NORMALS =1,
  789. D3DRMXOFSAVE_TEXTURECOORDINATES =2,
  790. D3DRMXOFSAVE_MATERIALS =4,
  791. D3DRMXOFSAVE_TEXTURENAMES =8,
  792. D3DRMXOFSAVE_ALL=15,
  793. D3DRMXOFSAVE_TEMPLATES =16,
  794. D3DRMXOFSAVE_TEXTURETOPOLOGY =32
  795. } D3DRMSAVEFLAGS;
  796. typedef enum CONST_D3DRMMATERIALOVERRIDEFLAGS {
  797. D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY =0x00000001,
  798. D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY =0x00000002,
  799. D3DRMMATERIALOVERRIDE_DIFFUSE =0x00000003,
  800. D3DRMMATERIALOVERRIDE_AMBIENT =0x00000004,
  801. D3DRMMATERIALOVERRIDE_EMISSIVE =0x00000008,
  802. D3DRMMATERIALOVERRIDE_SPECULAR =0x00000010,
  803. D3DRMMATERIALOVERRIDE_POWER =0x00000020,
  804. D3DRMMATERIALOVERRIDE_TEXTURE =0x00000040,
  805. D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY =0x00000080,
  806. D3DRMMATERIALOVERRIDE_ALL =0x000000FF
  807. } D3DRMMATERIALOVERRIDEFLAGS;
  808. /************************/
  809. /* D3DIM STUFF */
  810. /************************/
  811. /*
  812. * Execute buffers are allocated via Direct3D. These buffers may then
  813. * be filled by the application with instructions to execute along with
  814. * vertex data.
  815. */
  816. #if 0
  817. /*
  818. * Supported op codes for execute instructions.
  819. */
  820. typedef enum CONST_D3DOPCODE {
  821. D3DOP_POINT = 1,
  822. D3DOP_LINE = 2,
  823. D3DOP_TRIANGLE = 3,
  824. D3DOP_MATRIXLOAD = 4,
  825. D3DOP_MATRIXMULTIPLY = 5,
  826. D3DOP_STATETRANSFORM = 6,
  827. D3DOP_STATELIGHT = 7,
  828. D3DOP_STATERENDER = 8,
  829. D3DOP_PROCESSVERTICES = 9,
  830. D3DOP_TEXTURELOAD = 10,
  831. D3DOP_EXIT = 11,
  832. D3DOP_BRANCHFORWARD = 12,
  833. D3DOP_SPAN = 13,
  834. D3DOP_SETSTATUS = 14
  835. } D3DOPCODE;
  836. #endif
  837. /*
  838. * The following defines the rendering states which can be set in the
  839. * execute buffer.
  840. */
  841. typedef enum CONST_D3DSHADEMODE {
  842. D3DSHADE_FLAT = 1,
  843. D3DSHADE_GOURAUD = 2,
  844. D3DSHADE_PHONG = 3
  845. } D3DSHADEMODE;
  846. typedef enum CONST_D3DFILLMODE {
  847. D3DFILL_POINT = 1,
  848. D3DFILL_WIREFRAME = 2,
  849. D3DFILL_SOLID = 3
  850. } D3DFILLMODE;
  851. /*
  852. typedef enum CONST_D3DTEXTUREFILTER {
  853. D3DFILTER_NEAREST = 1,
  854. D3DFILTER_LINEAR = 2,
  855. D3DFILTER_MIPNEAREST = 3,
  856. D3DFILTER_MIPLINEAR = 4,
  857. D3DFILTER_LINEARMIPNEAREST = 5,
  858. D3DFILTER_LINEARMIPLINEAR = 6
  859. } D3DTEXTUREFILTER;
  860. */
  861. typedef enum CONST_D3DBLEND {
  862. D3DBLEND_ZERO = 1,
  863. D3DBLEND_ONE = 2,
  864. D3DBLEND_SRCCOLOR = 3,
  865. D3DBLEND_INVSRCCOLOR = 4,
  866. D3DBLEND_SRCALPHA = 5,
  867. D3DBLEND_INVSRCALPHA = 6,
  868. D3DBLEND_DESTALPHA = 7,
  869. D3DBLEND_INVDESTALPHA = 8,
  870. D3DBLEND_DESTCOLOR = 9,
  871. D3DBLEND_INVDESTCOLOR = 10,
  872. D3DBLEND_SRCALPHASAT = 11,
  873. D3DBLEND_BOTHSRCALPHA = 12,
  874. D3DBLEND_BOTHINVSRCALPHA = 13
  875. } D3DBLEND;
  876. /*
  877. typedef enum CONST_D3DTEXTUREBLEND {
  878. D3DTBLEND_DECAL = 1,
  879. D3DTBLEND_MODULATE = 2,
  880. D3DTBLEND_DECALALPHA = 3,
  881. D3DTBLEND_MODULATEALPHA = 4,
  882. D3DTBLEND_DECALMASK = 5,
  883. D3DTBLEND_MODULATEMASK = 6,
  884. D3DTBLEND_COPY = 7,
  885. D3DTBLEND_ADD = 8
  886. } D3DTEXTUREBLEND;
  887. */
  888. typedef enum CONST_D3DTEXTUREADDRESS {
  889. D3DTADDRESS_WRAP = 1,
  890. D3DTADDRESS_MIRROR = 2,
  891. D3DTADDRESS_CLAMP = 3,
  892. D3DTADDRESS_BORDER = 4
  893. } D3DTEXTUREADDRESS;
  894. typedef enum CONST_D3DCULL {
  895. D3DCULL_NONE = 1,
  896. D3DCULL_CW = 2,
  897. D3DCULL_CCW = 3
  898. } D3DCULL;
  899. typedef enum CONST_D3DCMPFUNC {
  900. D3DCMP_NEVER = 1,
  901. D3DCMP_LESS = 2,
  902. D3DCMP_EQUAL = 3,
  903. D3DCMP_LESSEQUAL = 4,
  904. D3DCMP_GREATER = 5,
  905. D3DCMP_NOTEQUAL = 6,
  906. D3DCMP_GREATEREQUAL = 7,
  907. D3DCMP_ALWAYS = 8
  908. } D3DCMPFUNC;
  909. typedef enum CONST_D3DSTENCILOP {
  910. D3DSTENCILOP_KEEP = 1,
  911. D3DSTENCILOP_ZERO = 2,
  912. D3DSTENCILOP_REPLACE = 3,
  913. D3DSTENCILOP_INCRSAT = 4,
  914. D3DSTENCILOP_DECRSAT = 5,
  915. D3DSTENCILOP_INVERT = 6,
  916. D3DSTENCILOP_INCR = 7,
  917. D3DSTENCILOP_DECR = 8
  918. } D3DSTENCILOP;
  919. typedef enum CONST_D3DFOGMODE {
  920. D3DFOG_NONE = 0,
  921. D3DFOG_EXP = 1,
  922. D3DFOG_EXP2 = 2,
  923. D3DFOG_LINEAR = 3
  924. } D3DFOGMODE;
  925. typedef enum CONST_D3DZBUFFERTYPE {
  926. D3DZB_FALSE = 0,
  927. D3DZB_TRUE = 1, // Z buffering
  928. D3DZB_USEW = 2 // W buffering
  929. } D3DZBUFFERTYPE;
  930. typedef enum CONST_D3DANTIALIASMODE {
  931. D3DANTIALIAS_NONE = 0,
  932. D3DANTIALIAS_SORTDEPENDENT = 1,
  933. D3DANTIALIAS_SORTINDEPENDENT = 2
  934. } D3DANTIALIASMODE;
  935. typedef enum CONST_D3DPROCESSVERTICESFLAGS {
  936. D3DPV_DEFAULT=0,
  937. D3DPV_DONOTCOPYDATA=1
  938. } D3DPROCESSVERTICESFLAGS;
  939. // Vertex types supported by Direct3D
  940. //typedef enum CONST_D3DVERTEXTYPE {
  941. // D3DVT_VERTEX = 1,
  942. // D3DVT_LVERTEX = 2,
  943. // D3DVT_TLVERTEX = 3
  944. //} D3DVERTEXTYPE;
  945. // Primitives supported by draw-primitive API
  946. typedef enum CONST_D3DPRIMITIVETYPE {
  947. D3DPT_POINTLIST = 1,
  948. D3DPT_LINELIST = 2,
  949. D3DPT_LINESTRIP = 3,
  950. D3DPT_TRIANGLELIST = 4,
  951. D3DPT_TRIANGLESTRIP = 5,
  952. D3DPT_TRIANGLEFAN = 6
  953. } D3DPRIMITIVETYPE;
  954. typedef enum CONST_D3DTRANSFORMSTATETYPE {
  955. D3DTRANSFORMSTATE_WORLD = 1,
  956. D3DTRANSFORMSTATE_VIEW = 2,
  957. D3DTRANSFORMSTATE_PROJECTION = 3
  958. } D3DTRANSFORMSTATETYPE;
  959. //typedef enum CONST_D3DLIGHTSTATETYPE {
  960. // D3DLIGHTSTATE_MATERIAL = 1,
  961. // D3DLIGHTSTATE_AMBIENT = 2,
  962. // D3DLIGHTSTATE_COLORMODEL = 3,
  963. // D3DLIGHTSTATE_FOGMODE = 4,
  964. // D3DLIGHTSTATE_FOGSTART = 5,
  965. // D3DLIGHTSTATE_FOGEND = 6,
  966. // D3DLIGHTSTATE_FOGDENSITY = 7
  967. //} D3DLIGHTSTATETYPE;
  968. typedef enum CONST_D3DRENDERSTATETYPE {
  969. //D3DRENDERSTATE_TEXTUREHANDLE = 1, /* Texture handle */
  970. D3DRENDERSTATE_ANTIALIAS = 2, /* D3DANTIALIASMODE */
  971. //D3DRENDERSTATE_TEXTUREADDRESS = 3, /* D3DTEXTUREADDRESS */
  972. D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, /* TRUE for perspective correction */
  973. //D3DRENDERSTATE_WRAPU = 5, /* TRUE for wrapping in u */
  974. //D3DRENDERSTATE_WRAPV = 6, /* TRUE for wrapping in v */
  975. D3DRENDERSTATE_ZENABLE = 7, /* TRUE to enable z test */
  976. D3DRENDERSTATE_FILLMODE = 8, /* D3DFILL_MODE */
  977. D3DRENDERSTATE_SHADEMODE = 9, /* D3DSHADEMODE */
  978. //REMOVING LINE PATERN BECUASE IT REQUIRES A STRUCTURE
  979. //ALL OTHER RENDER STATES JUST TAKE A LONG
  980. //Andrewke- added back in - use can be documented
  981. D3DRENDERSTATE_LINEPATTERN = 10, /* D3DLINEPATTERN */
  982. //D3DRENDERSTATE_MONOENABLE = 11, /* TRUE to enable mono rasterization */
  983. //D3DRENDERSTATE_ROP2 = 12, /* ROP2 */
  984. //D3DRENDERSTATE_PLANEMASK = 13, /* DWORD physical plane mask */
  985. D3DRENDERSTATE_ZWRITEENABLE = 14, /* TRUE to enable z writes */
  986. D3DRENDERSTATE_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */
  987. D3DRENDERSTATE_LASTPIXEL = 16, /* TRUE for last-pixel on lines */
  988. //D3DRENDERSTATE_TEXTUREMAG = 17, /* D3DTEXTUREFILTER */
  989. //D3DRENDERSTATE_TEXTUREMIN = 18, /* D3DTEXTUREFILTER */
  990. D3DRENDERSTATE_SRCBLEND = 19, /* D3DBLEND */
  991. D3DRENDERSTATE_DESTBLEND = 20, /* D3DBLEND */
  992. //D3DRENDERSTATE_TEXTUREMAPBLEND = 21, /* D3DTEXTUREBLEND */
  993. D3DRENDERSTATE_CULLMODE = 22, /* D3DCULL */
  994. D3DRENDERSTATE_ZFUNC = 23, /* D3DCMPFUNC */
  995. D3DRENDERSTATE_ALPHAREF = 24, /* D3DFIXED */
  996. D3DRENDERSTATE_ALPHAFUNC = 25, /* D3DCMPFUNC */
  997. D3DRENDERSTATE_DITHERENABLE = 26, /* TRUE to enable dithering */
  998. D3DRENDERSTATE_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */
  999. D3DRENDERSTATE_FOGENABLE = 28, /* TRUE to enable fog */
  1000. D3DRENDERSTATE_SPECULARENABLE = 29, /* TRUE to enable specular */
  1001. D3DRENDERSTATE_ZVISIBLE = 30, /* TRUE to enable z checking */
  1002. //D3DRENDERSTATE_SUBPIXEL = 31, /* TRUE to enable subpixel correction */
  1003. //D3DRENDERSTATE_SUBPIXELX = 32, /* TRUE to enable correction in X only */
  1004. D3DRENDERSTATE_STIPPLEDALPHA = 33, /* TRUE to enable stippled alpha */
  1005. D3DRENDERSTATE_FOGCOLOR = 34, /* D3DCOLOR */
  1006. D3DRENDERSTATE_FOGTABLEMODE = 35, /* D3DFOGMODE */
  1007. //D3DRENDERSTATE_STIPPLEENABLE = 39, /* TRUE to enable stippling */
  1008. D3DRENDERSTATE_EDGEANTIALIAS = 40, /* TRUE to enable edge antialiasing */
  1009. D3DRENDERSTATE_COLORKEYENABLE = 41, /* TRUE to enable source colorkeyed textures */
  1010. //D3DRENDERSTATE_BORDERCOLOR = 43, /* Border color for texturing w/border */
  1011. //D3DRENDERSTATE_TEXTUREADDRESSU = 44, /* Texture addressing mode for U coordinate */
  1012. //D3DRENDERSTATE_TEXTUREADDRESSV = 45, /* Texture addressing mode for V coordinate */
  1013. //D3DRENDERSTATE_MIPMAPLODBIAS = 46, /* D3DVALUE Mipmap LOD bias */
  1014. D3DRENDERSTATE_ZBIAS = 47, /* LONG Z bias */
  1015. D3DRENDERSTATE_RANGEFOGENABLE = 48, /* Enables range-based fog */
  1016. //D3DRENDERSTATE_ANISOTROPY = 49, /* Max. anisotropy. 1 = no anisotropy */
  1017. //D3DRENDERSTATE_FLUSHBATCH = 50, /* Explicit flush for DP batching (DX5 Only) */
  1018. //D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT=51, /* BOOL enable sort-independent transparency */
  1019. D3DRENDERSTATE_STENCILENABLE = 52, /* BOOL enable/disable stenciling */
  1020. D3DRENDERSTATE_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */
  1021. D3DRENDERSTATE_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */
  1022. D3DRENDERSTATE_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */
  1023. D3DRENDERSTATE_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */
  1024. D3DRENDERSTATE_STENCILREF = 57, /* Reference value used in stencil test */
  1025. D3DRENDERSTATE_STENCILMASK = 58, /* Mask value used in stencil test */
  1026. D3DRENDERSTATE_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */
  1027. D3DRENDERSTATE_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */
  1028. //D3DRENDERSTATE_STIPPLEPATTERN00 = 64, /* Stipple pattern 01... */
  1029. /*D3DRENDERSTATE_STIPPLEPATTERN01 = 65,
  1030. D3DRENDERSTATE_STIPPLEPATTERN02 = 66,
  1031. D3DRENDERSTATE_STIPPLEPATTERN03 = 67,
  1032. D3DRENDERSTATE_STIPPLEPATTERN04 = 68,
  1033. D3DRENDERSTATE_STIPPLEPATTERN05 = 69,
  1034. D3DRENDERSTATE_STIPPLEPATTERN06 = 70,
  1035. D3DRENDERSTATE_STIPPLEPATTERN07 = 71,
  1036. D3DRENDERSTATE_STIPPLEPATTERN08 = 72,
  1037. D3DRENDERSTATE_STIPPLEPATTERN09 = 73,
  1038. D3DRENDERSTATE_STIPPLEPATTERN10 = 74,
  1039. D3DRENDERSTATE_STIPPLEPATTERN11 = 75,
  1040. D3DRENDERSTATE_STIPPLEPATTERN12 = 76,
  1041. D3DRENDERSTATE_STIPPLEPATTERN13 = 77,
  1042. D3DRENDERSTATE_STIPPLEPATTERN14 = 78,
  1043. D3DRENDERSTATE_STIPPLEPATTERN15 = 79,
  1044. D3DRENDERSTATE_STIPPLEPATTERN16 = 80,
  1045. D3DRENDERSTATE_STIPPLEPATTERN17 = 81,
  1046. D3DRENDERSTATE_STIPPLEPATTERN18 = 82,
  1047. D3DRENDERSTATE_STIPPLEPATTERN19 = 83,
  1048. D3DRENDERSTATE_STIPPLEPATTERN20 = 84,
  1049. D3DRENDERSTATE_STIPPLEPATTERN21 = 85,
  1050. D3DRENDERSTATE_STIPPLEPATTERN22 = 86,
  1051. D3DRENDERSTATE_STIPPLEPATTERN23 = 87,
  1052. D3DRENDERSTATE_STIPPLEPATTERN24 = 88,
  1053. D3DRENDERSTATE_STIPPLEPATTERN25 = 89,
  1054. D3DRENDERSTATE_STIPPLEPATTERN26 = 90,
  1055. D3DRENDERSTATE_STIPPLEPATTERN27 = 91,
  1056. D3DRENDERSTATE_STIPPLEPATTERN28 = 92,
  1057. D3DRENDERSTATE_STIPPLEPATTERN29 = 93,
  1058. D3DRENDERSTATE_STIPPLEPATTERN30 = 94,
  1059. D3DRENDERSTATE_STIPPLEPATTERN31 = 95,
  1060. */
  1061. D3DRENDERSTATE_WRAP0 = 128, /* wrap for 1st texture coord. set */
  1062. D3DRENDERSTATE_WRAP1 = 129, /* wrap for 2nd texture coord. set */
  1063. D3DRENDERSTATE_WRAP2 = 130, /* wrap for 3rd texture coord. set */
  1064. D3DRENDERSTATE_WRAP3 = 131, /* wrap for 4th texture coord. set */
  1065. D3DRENDERSTATE_WRAP4 = 132, /* wrap for 5th texture coord. set */
  1066. D3DRENDERSTATE_WRAP5 = 133, /* wrap for 6th texture coord. set */
  1067. D3DRENDERSTATE_WRAP6 = 134, /* wrap for 7th texture coord. set */
  1068. D3DRENDERSTATE_WRAP7 = 135, /* wrap for 8th texture coord. set */
  1069. //DX7STATE
  1070. D3DRENDERSTATE_CLIPPING = 136,
  1071. D3DRENDERSTATE_LIGHTING = 137,
  1072. D3DRENDERSTATE_EXTENTS = 138,
  1073. D3DRENDERSTATE_AMBIENT = 139,
  1074. D3DRENDERSTATE_FOGVERTEXMODE = 140,
  1075. D3DRENDERSTATE_COLORVERTEX = 141,
  1076. D3DRENDERSTATE_LOCALVIEWER = 142,
  1077. D3DRENDERSTATE_NORMALIZENORMALS = 143,
  1078. D3DRENDERSTATE_COLORKEYBLENDENABLE = 144,
  1079. D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145,
  1080. D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146,
  1081. D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147,
  1082. D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148,
  1083. D3DRENDERSTATE_ALPHASOURCE = 149,
  1084. D3DRENDERSTATE_FOGFACTORSOURCE = 150,
  1085. D3DRENDERSTATE_VERTEXBLEND = 151,
  1086. D3DRENDERSTATE_CLIPPLANEENABLE = 152,
  1087. //D3DRENDERSTATE_POINTSIZE = 153, /* D3DVALUE Point size */
  1088. //D3DRENDERSTATE_POINTATTENUATION_A = 154, /* D3DVALUE Point attenuation a value */
  1089. //D3DRENDERSTATE_POINTATTENUATION_B = 155, /* D3DVALUE Point attenuation b value */
  1090. //D3DRENDERSTATE_POINTATTENUATION_C = 156, /* D3DVALUE Point attenuation c value */
  1091. //D3DRENDERSTATE_POINTSIZEMIN = 157, /* D3DVALUE Point size minimum threshold */
  1092. //D3DRENDERSTATE_POINTSPRITEENABLE = 158, /* BOOL if true, render whole texture for point, */
  1093. } D3DRENDERSTATETYPE;
  1094. typedef enum CONST_D3DRENDERSTATESINGLE {
  1095. D3DRENDERSTATE_FOGSTART = 36, /* Fog table start */
  1096. D3DRENDERSTATE_FOGEND = 37, /* Fog table end */
  1097. D3DRENDERSTATE_FOGDENSITY = 38, /* Fog table density */
  1098. } D3DRENDERSTATESINGLE;
  1099. typedef enum CONST_DDLOCKFLAGS {
  1100. /****************************************************************************
  1101. *
  1102. * DIRECTDRAWSURFACE LOCK FLAGS
  1103. *
  1104. ****************************************************************************/
  1105. /*
  1106. * The default. Set to indicate that Lock should return a valid memory pointer
  1107. * to the top of the specified rectangle. If no rectangle is specified then a
  1108. * pointer to the top of the surface is returned.
  1109. */
  1110. DDLOCK_SURFACEMEMORYPTR =0x00000000, // default
  1111. /*
  1112. * Set to indicate that Lock should wait until it can obtain a valid memory
  1113. * pointer before returning. If this bit is set, Lock will never return
  1114. * DDERR_WASSTILLDRAWING.
  1115. */
  1116. DDLOCK_WAIT =0x00000001,
  1117. /*
  1118. * Set if an event handle is being passed to Lock. Lock will trigger the event
  1119. * when it can return the surface memory pointer requested.
  1120. */
  1121. DDLOCK_EVENT =0x00000002,
  1122. /*
  1123. * Indicates that the surface being locked will only be read from.
  1124. */
  1125. DDLOCK_READONLY =0x00000010,
  1126. /*
  1127. * Indicates that the surface being locked will only be written to
  1128. */
  1129. DDLOCK_WRITEONLY =0x00000020,
  1130. /*
  1131. * Indicates that a system wide lock should not be taken when this surface
  1132. * is locked. This has several advantages (cursor responsiveness, ability
  1133. * to call more Windows functions, easier debugging) when locking video
  1134. * memory surfaces. However, an application specifying this flag must
  1135. * comply with a number of conditions documented in the help file.
  1136. * Furthermore, this flag cannot be specified when locking the primary.
  1137. */
  1138. DDLOCK_NOSYSLOCK =0x00000800,
  1139. DDLOCK_DONOTWAIT =0x00004000,
  1140. } DDLOCKFLAGS;
  1141. typedef enum CONST_DDPCAPSFLAGS {
  1142. /****************************************************************************
  1143. *
  1144. * DIRECTDRAWPALETTE CAPABILITIES
  1145. *
  1146. ****************************************************************************/
  1147. /*
  1148. * Index is 4 bits. There are sixteen color entries in the palette table.
  1149. */
  1150. DDPCAPS_4BIT =0x00000001,
  1151. /*
  1152. * Index is onto a 8 bit color index. This field is only valid with the
  1153. * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target
  1154. * surface is in 8bpp. Each color entry is one byte long and is an index
  1155. * into destination surface's 8bpp palette.
  1156. */
  1157. DDPCAPS_8BITENTRIES =0x00000002,
  1158. /*
  1159. * Index is 8 bits. There are 256 color entries in the palette table.
  1160. */
  1161. DDPCAPS_8BIT =0x00000004,
  1162. /*
  1163. * Indicates that this DIRECTDRAWPALETTE should use the palette color array
  1164. * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE
  1165. * object.
  1166. */
  1167. DDPCAPS_INITIALIZE =0x00000008,
  1168. /*
  1169. * This palette is the one attached to the primary surface. Changing this
  1170. * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified
  1171. * and supported.
  1172. */
  1173. DDPCAPS_PRIMARYSURFACE =0x00000010,
  1174. /*
  1175. * This palette is the one attached to the primary surface left. Changing
  1176. * this table has immediate effect on the display for the left eye unless
  1177. * DDPSETPAL_VSYNC is specified and supported.
  1178. */
  1179. DDPCAPS_PRIMARYSURFACELEFT =0x00000020,
  1180. /*
  1181. * This palette can have all 256 entries defined
  1182. */
  1183. DDPCAPS_ALLOW256 =0x00000040,
  1184. /*
  1185. * This palette can have modifications to it synced with the monitors
  1186. * refresh rate.
  1187. */
  1188. DDPCAPS_VSYNC =0x00000080,
  1189. /*
  1190. * Index is 1 bit. There are two color entries in the palette table.
  1191. */
  1192. DDPCAPS_1BIT =0x00000100,
  1193. /*
  1194. * Index is 2 bit. There are four color entries in the palette table.
  1195. */
  1196. DDPCAPS_2BIT =0x00000200,
  1197. DDPCAPS_ALPHA =0x00000400
  1198. } DDPCAPSFLAGS;
  1199. typedef enum CONST_DDEDMFLAGS {
  1200. /****************************************************************************
  1201. *
  1202. * DIRECTDRAW ENUMDISPLAYMODES FLAGS
  1203. *
  1204. ****************************************************************************/
  1205. DDEDM_DEFAULT =0x00000000,
  1206. /*
  1207. * Enumerate Modes with different refresh rates. EnumDisplayModes guarantees
  1208. * that a particular mode will be enumerated only once. This flag specifies whether
  1209. * the refresh rate is taken into account when determining if a mode is unique.
  1210. */
  1211. DDEDM_REFRESHRATES =0x00000001,
  1212. /*
  1213. * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA
  1214. * modes such as mode =0x13 in addition to the usual ModeX modes (which are always
  1215. * enumerated if the application has previously called SetCooperativeLevel with the
  1216. * DDSCL_ALLOWMODEX flag set).
  1217. */
  1218. DDEDM_STANDARDVGAMODES =0x00000002
  1219. } DDEDMFLAGS;
  1220. typedef enum CONST_DDSCLFLAGS {
  1221. /****************************************************************************
  1222. *
  1223. * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
  1224. *
  1225. ****************************************************************************/
  1226. /*
  1227. * Exclusive mode owner will be responsible for the entire primary surface.
  1228. * GDI can be ignored. used with DD
  1229. */
  1230. DDSCL_FULLSCREEN =0x00000001,
  1231. /*
  1232. * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode
  1233. */
  1234. DDSCL_ALLOWREBOOT =0x00000002,
  1235. /*
  1236. * prevents DDRAW from modifying the application window.
  1237. * prevents DDRAW from minimize/restore the application window on activation.
  1238. */
  1239. DDSCL_NOWINDOWCHANGES =0x00000004,
  1240. /*
  1241. * app wants to work as a regular Windows application
  1242. */
  1243. DDSCL_NORMAL =0x00000008,
  1244. /*
  1245. * app wants exclusive access
  1246. */
  1247. DDSCL_EXCLUSIVE =0x00000010,
  1248. /*
  1249. * app can deal with non-windows display modes
  1250. */
  1251. DDSCL_ALLOWMODEX =0x00000040,
  1252. DDSCL_CREATEDEVICEWINDOW =0x00000200,
  1253. //DDSCL_FPUSETUP =0x00000800,
  1254. DDSCL_MULTITHREADED =0x00000400,
  1255. DDSCL_SETDEVICEWINDOW =0x00000100,
  1256. DDSCL_SETFOCUSWINDOW =0x00000080
  1257. } DDSCLFLAGS;
  1258. typedef enum CONST_DDSDMFLAGS {
  1259. /****************************************************************************
  1260. *
  1261. * DIRECTDRAW SETDISPLAYMODE FLAGS
  1262. *
  1263. ****************************************************************************/
  1264. DDSDM_DEFAULT =0x00000000,
  1265. /*
  1266. * The desired mode is a standard VGA mode
  1267. */
  1268. DDSDM_STANDARDVGAMODE =0x00000001
  1269. } DDSDMFLAGS;
  1270. // ******** DDRAW * //
  1271. typedef enum CONST_DDBLTFLAGS {
  1272. /****************************************************************************
  1273. *
  1274. * DIRECTDRAW BLT FLAGS
  1275. *
  1276. ****************************************************************************/
  1277. /*
  1278. * Use the alpha information in the pixel format or the alpha channel surface
  1279. * attached to the destination surface as the alpha channel for this blt.
  1280. */
  1281. //DDBLT_ALPHADEST =0x00000001,
  1282. /*
  1283. * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel
  1284. * for the destination surface for this blt.
  1285. */
  1286. //DDBLT_ALPHADESTCONSTOVERRIDE =0x00000002,
  1287. /*
  1288. * The NEG suffix indicates that the destination surface becomes more
  1289. * transparent as the alpha value increases. (0 is opaque)
  1290. */
  1291. //DDBLT_ALPHADESTNEG =0x00000004,
  1292. /*
  1293. * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha
  1294. * channel for the destination for this blt.
  1295. */
  1296. //DDBLT_ALPHADESTSURFACEOVERRIDE =0x00000008,
  1297. /*
  1298. * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel
  1299. * for the edges of the image that border the color key colors.
  1300. */
  1301. //DDBLT_ALPHAEDGEBLEND =0x00000010,
  1302. /*
  1303. * Use the alpha information in the pixel format or the alpha channel surface
  1304. * attached to the source surface as the alpha channel for this blt.
  1305. */
  1306. //DDBLT_ALPHASRC =0x00000020,
  1307. /*
  1308. * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel
  1309. * for the source for this blt.
  1310. */
  1311. //DDBLT_ALPHASRCCONSTOVERRIDE =0x00000040,
  1312. /*
  1313. * The NEG suffix indicates that the source surface becomes more transparent
  1314. * as the alpha value increases. (0 is opaque)
  1315. */
  1316. //DDBLT_ALPHASRCNEG =0x00000080,
  1317. /*
  1318. * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel
  1319. * for the source for this blt.
  1320. */
  1321. //DDBLT_ALPHASRCSURFACEOVERRIDE =0x00000100,
  1322. /*
  1323. * Z-buffered blt using the z-buffers attached to the source and destination
  1324. * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the
  1325. * z-buffer opcode.
  1326. */
  1327. //DDBLT_ZBUFFER =0x00080000,
  1328. /*
  1329. * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field
  1330. * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
  1331. * for the destination.
  1332. */
  1333. //DDBLT_ZBUFFERDESTCONSTOVERRIDE =0x00100000,
  1334. /*
  1335. * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode
  1336. * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
  1337. * respectively for the destination.
  1338. */
  1339. //DDBLT_ZBUFFERDESTOVERRIDE =0x00200000,
  1340. /*
  1341. * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field
  1342. * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
  1343. * for the source.
  1344. */
  1345. //DDBLT_ZBUFFERSRCCONSTOVERRIDE =0x00400000,
  1346. /*
  1347. * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode
  1348. * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
  1349. * respectively for the source.
  1350. */
  1351. //DDBLT_ZBUFFERSRCOVERRIDE =0x00800000,
  1352. /*
  1353. * Do this blt asynchronously through the FIFO in the order received. If
  1354. * there is no room in the hardware FIFO fail the call.
  1355. */
  1356. DDBLT_ASYNC =0x00000200,
  1357. /*
  1358. * Uses the dwFillColor field in the DDBLTFX structure as the RGB color
  1359. * to fill the destination rectangle on the destination surface with.
  1360. */
  1361. DDBLT_COLORFILL =0x00000400,
  1362. /*
  1363. * Uses the dwDDFX field in the DDBLTFX structure to specify the effects
  1364. * to use for the blt.
  1365. */
  1366. DDBLT_DDFX =0x00000800,
  1367. /*
  1368. * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS
  1369. * that are not part of the Win32 API.
  1370. */
  1371. DDBLT_DDROPS =0x00001000,
  1372. /*
  1373. * Use the color key associated with the destination surface.
  1374. */
  1375. DDBLT_KEYDEST =0x00002000,
  1376. /*
  1377. * Use the dckDestColorkey field in the DDBLTFX structure as the color key
  1378. * for the destination surface.
  1379. */
  1380. DDBLT_KEYDESTOVERRIDE =0x00004000,
  1381. /*
  1382. * Use the color key associated with the source surface.
  1383. */
  1384. DDBLT_KEYSRC =0x00008000,
  1385. /*
  1386. * Use the dckSrcColorkey field in the DDBLTFX structure as the color key
  1387. * for the source surface.
  1388. */
  1389. DDBLT_KEYSRCOVERRIDE =0x00010000,
  1390. /*
  1391. * Use the dwROP field in the DDBLTFX structure for the raster operation
  1392. * for this blt. These ROPs are the same as the ones defined in the Win32 API.
  1393. */
  1394. DDBLT_ROP =0x00020000,
  1395. /*
  1396. * Use the dwRotationAngle field in the DDBLTFX structure as the angle
  1397. * (specified in 1/100th of a degree) to rotate the surface.
  1398. */
  1399. DDBLT_ROTATIONANGLE =0x00040000,
  1400. /*
  1401. * wait until the device is ready to handle the blt
  1402. * this will cause blt to not return DDERR_WASSTILLDRAWING
  1403. */
  1404. DDBLT_WAIT =0x01000000,
  1405. /*
  1406. * Uses the dwFillDepth field in the DDBLTFX structure as the depth value
  1407. * to fill the destination rectangle on the destination Z-buffer surface
  1408. * with.
  1409. */
  1410. DDBLT_DEPTHFILL =0x02000000,
  1411. //DX7
  1412. DDBLT_DONOTWAIT =0x08000000,
  1413. } DDBLTFLAGS;
  1414. #if 0
  1415. typedef enum CONST_DDBASICBLTFLAGS;
  1416. /*
  1417. * Do this blt asynchronously through the FIFO in the order received. If
  1418. * there is no room in the hardware FIFO fail the call.
  1419. */
  1420. DDBLT_ASYNC =0x00000200,
  1421. /*
  1422. * Use the color key associated with the destination surface.
  1423. */
  1424. DDBLT_KEYDEST =0x00002000,
  1425. /*
  1426. * Use the color key associated with the source surface.
  1427. */
  1428. DDBLT_KEYSRC =0x00008000,
  1429. /*
  1430. * wait until the device is ready to handle the blt
  1431. * this will cause blt to not return DDERR_WASSTILLDRAWING
  1432. */
  1433. DDBLT_WAIT =0x01000000,
  1434. /*
  1435. * Uses the dwFillDepth field in the DDBLTFX structure as the depth value
  1436. * to fill the destination rectangle on the destination Z-buffer surface
  1437. * with.
  1438. */
  1439. DDBLT_DEPTHFILL =0x02000000
  1440. } DDBASICBLTFLAGS;
  1441. #endif
  1442. typedef enum CONST_DDBLTFASTFLAGS {
  1443. /****************************************************************************
  1444. *
  1445. * BLTFAST FLAGS
  1446. *
  1447. ****************************************************************************/
  1448. DDBLTFAST_NOCOLORKEY =0x00000000,
  1449. DDBLTFAST_SRCCOLORKEY =0x00000001,
  1450. DDBLTFAST_DESTCOLORKEY =0x00000002,
  1451. DDBLTFAST_WAIT =0x00000010,
  1452. DDBLTFAST_DONOTWAIT =0x00000020
  1453. } DDBLTFASTFLAGS;
  1454. #if 0
  1455. typedef enum CONST_DDABLTFLAGS {
  1456. DDABLT_KEYSRC =0x40000000,
  1457. DDABLT_MIRRORLEFTRIGHT =0x20000000,
  1458. DDABLT_MIRRORUPDOWN =0x10000000,
  1459. DDABLT_WAIT =0x08000000,
  1460. DDABLT_HARDWAREONLY =0x04000000,
  1461. DDABLT_NOBLEND =0x02000000,
  1462. DDABLT_FILTERENABLE =0x01000000,
  1463. DDABLT_FILTERDISABLE =0x00800000,
  1464. DDABLT_DEGRADEARGBSCALING =0x00400000,
  1465. DDABLT_DONOTWAIT =0x00200000,
  1466. DDABLT_USEFILLVALUE =0x00100000,
  1467. DDABLT_SOFTWAREONLY =0x00080000,
  1468. DDABLT_FILTERTRANSPBORDER =0x00040000
  1469. } CONST_DDABLTFLAGS;
  1470. #endif
  1471. typedef enum CONST_DDFLIPFLAGS {
  1472. /****************************************************************************
  1473. *
  1474. * FLIP FLAGS
  1475. *
  1476. ****************************************************************************/
  1477. DDFLIP_WAIT =0x00000001,
  1478. /*
  1479. * Indicates that the target surface contains the even field of video data.
  1480. * This flag is only valid with an overlay surface.
  1481. */
  1482. DDFLIP_EVEN =0x00000002,
  1483. /*
  1484. * Indicates that the target surface contains the odd field of video data.
  1485. * This flag is only valid with an overlay surface.
  1486. */
  1487. DDFLIP_ODD =0x00000004,
  1488. DDFLIP_NOVSYNC =0x00000008,
  1489. DDFLIP_STEREO =0x00000010,
  1490. DDFLIP_DONOTWAIT =0x00000020,
  1491. DDFLIP_INTERFVAL2 =0x20000000,
  1492. DDFLIP_INTERFVAL3 =0x30000000,
  1493. DDFLIP_INTERFVAL4 =0x40000000
  1494. } DDFLIPFLAGS;
  1495. typedef enum CONST_DDENUMOVERLAYZFLAGS {
  1496. /*
  1497. *
  1498. * DIRECTDRAW ENUMOVERLAYZORDER FLAGS
  1499. *
  1500. ****************************************************************************/
  1501. /*
  1502. * Enumerate overlays back to front.
  1503. */
  1504. DDENUMOVERLAYZ_BACKTOFRONT =0x00000000,
  1505. /*
  1506. * Enumerate overlays front to back
  1507. */
  1508. DDENUMOVERLAYZ_FRONTTOBACK =0x00000001,
  1509. } DDENUMOVERLAYZFLAGS;
  1510. typedef enum CONST_DDOVERFLAGS {
  1511. /****************************************************************************
  1512. *
  1513. * DIRECTDRAW SURFACE OVERLAY FLAGS
  1514. *
  1515. ****************************************************************************/
  1516. /*
  1517. * Use the alpha information in the pixel format or the alpha channel surface
  1518. * attached to the destination surface as the alpha channel for the
  1519. * destination overlay.
  1520. */
  1521. DDOVER_ALPHADEST =0x00000001,
  1522. /*
  1523. * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the
  1524. * destination alpha channel for this overlay.
  1525. */
  1526. DDOVER_ALPHADESTCONSTOVERRIDE =0x00000002,
  1527. /*
  1528. * The NEG suffix indicates that the destination surface becomes more
  1529. * transparent as the alpha value increases.
  1530. */
  1531. DDOVER_ALPHADESTNEG =0x00000004,
  1532. /*
  1533. * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha
  1534. * channel destination for this overlay.
  1535. */
  1536. DDOVER_ALPHADESTSURFACEOVERRIDE =0x00000008,
  1537. /*
  1538. * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha
  1539. * channel for the edges of the image that border the color key colors.
  1540. */
  1541. DDOVER_ALPHAEDGEBLEND =0x00000010,
  1542. /*
  1543. * Use the alpha information in the pixel format or the alpha channel surface
  1544. * attached to the source surface as the source alpha channel for this overlay.
  1545. */
  1546. DDOVER_ALPHASRC =0x00000020,
  1547. /*
  1548. * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source
  1549. * alpha channel for this overlay.
  1550. */
  1551. DDOVER_ALPHASRCCONSTOVERRIDE =0x00000040,
  1552. /*
  1553. * The NEG suffix indicates that the source surface becomes more transparent
  1554. * as the alpha value increases.
  1555. */
  1556. DDOVER_ALPHASRCNEG =0x00000080,
  1557. /*
  1558. * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel
  1559. * source for this overlay.
  1560. */
  1561. DDOVER_ALPHASRCSURFACEOVERRIDE =0x00000100,
  1562. /*
  1563. * Turn this overlay off.
  1564. */
  1565. DDOVER_HIDE =0x00000200,
  1566. /*
  1567. * Use the color key associated with the destination surface.
  1568. */
  1569. DDOVER_KEYDEST =0x00000400,
  1570. /*
  1571. * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key
  1572. * for the destination surface
  1573. */
  1574. DDOVER_KEYDESTOVERRIDE =0x00000800,
  1575. /*
  1576. * Use the color key associated with the source surface.
  1577. */
  1578. DDOVER_KEYSRC =0x00001000,
  1579. /*
  1580. * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key
  1581. * for the source surface.
  1582. */
  1583. DDOVER_KEYSRCOVERRIDE =0x00002000,
  1584. /*
  1585. * Turn this overlay on.
  1586. */
  1587. DDOVER_SHOW =0x00004000,
  1588. /*
  1589. * Add a dirty rect to an emulated overlayed surface.
  1590. */
  1591. DDOVER_ADDDIRTYRECT =0x00008000,
  1592. /*
  1593. * Redraw all dirty rects on an emulated overlayed surface.
  1594. */
  1595. DDOVER_REFRESHDIRTYRECTS =0x00010000,
  1596. /*
  1597. * Redraw the entire surface on an emulated overlayed surface.
  1598. */
  1599. DDOVER_REFRESHALL =0x00020000,
  1600. /*
  1601. * Use the overlay FX flags to define special overlay FX
  1602. */
  1603. DDOVER_DDFX =0x00080000,
  1604. /*
  1605. * Autoflip the overlay when ever the video port autoflips
  1606. */
  1607. DDOVER_AUTOFLIP =0x00100000,
  1608. /*
  1609. * Display each field of video port data individually without
  1610. * causing any jittery artifacts
  1611. */
  1612. DDOVER_BOB =0x00200000,
  1613. /*
  1614. * Indicates that bob/weave decisions should not be overridden by other
  1615. * interfaces.
  1616. */
  1617. DDOVER_OVERRIDEBOBWEAVE =0x00400000,
  1618. /*
  1619. * Indicates that the surface memory is composed of interleaved fields.
  1620. */
  1621. DDOVER_INTERLEAVED =0x00800000,
  1622. /* DX7 */
  1623. DDOVER_ARGBSCALEFACTORS =0x02000000,
  1624. DDOVER_DEGRADEARGBSCALING =0x04000000
  1625. } DDOVERFLAGS;
  1626. typedef enum CONST_DDOVERZFLAGS {
  1627. /****************************************************************************
  1628. *
  1629. * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
  1630. *
  1631. ****************************************************************************/
  1632. /*
  1633. * Send overlay to front
  1634. */
  1635. DDOVERZ_SENDTOFRONT =0x00000000,
  1636. /*
  1637. * Send overlay to back
  1638. */
  1639. DDOVERZ_SENDTOBACK =0x00000001,
  1640. /*
  1641. * Move Overlay forward
  1642. */
  1643. DDOVERZ_MOVEFORWARD =0x00000002,
  1644. /*
  1645. * Move Overlay backward
  1646. */
  1647. DDOVERZ_MOVEBACKWARD =0x00000003,
  1648. /*
  1649. * Move Overlay in front of relative surface
  1650. */
  1651. DDOVERZ_INSERTINFRONTOF =0x00000004,
  1652. /*
  1653. * Move Overlay in back of relative surface
  1654. */
  1655. DDOVERZ_INSERTINBACKOF =0x00000005,
  1656. } DDOVERZFLAGS;
  1657. typedef enum CONST_DDGFSFLAGS {
  1658. /****************************************************************************
  1659. *
  1660. * DIRECTDRAW GETFLIPSTATUS FLAGS
  1661. *
  1662. ****************************************************************************/
  1663. /*
  1664. * is it OK to flip now?
  1665. */
  1666. DDGFS_CANFLIP =0x00000001,
  1667. /*
  1668. * is the last flip finished?
  1669. */
  1670. DDGFS_ISFLIPDONE =0x00000002
  1671. } DDGFSFLAGS;
  1672. typedef enum CONST_DDGBSFLAGS {
  1673. /****************************************************************************
  1674. *
  1675. * DIRECTDRAW GETBLTSTATUS FLAGS
  1676. *
  1677. ****************************************************************************/
  1678. /*
  1679. * is it OK to blt now?
  1680. */
  1681. DDGBS_CANBLT =0x00000001,
  1682. /*
  1683. * is the blt to the surface finished?
  1684. */
  1685. DDGBS_ISBLTDONE =0x00000002
  1686. } DDGBSFLAGS;
  1687. typedef enum CONST_DDCKEYFLAGS {
  1688. /****************************************************************************
  1689. *
  1690. * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
  1691. *
  1692. ****************************************************************************/
  1693. /*
  1694. * Set if the structure contains a color space. Not set if the structure
  1695. * contains a single color key.
  1696. */
  1697. DDCKEY_COLORSPACE =0x00000001,
  1698. /*
  1699. * Set if the structure specifies a color key or color space which is to be
  1700. * used as a destination color key for blt operations.
  1701. */
  1702. DDCKEY_DESTBLT =0x00000002,
  1703. /*
  1704. * Set if the structure specifies a color key or color space which is to be
  1705. * used as a destination color key for overlay operations.
  1706. */
  1707. DDCKEY_DESTOVERLAY =0x00000004,
  1708. /*
  1709. * Set if the structure specifies a color key or color space which is to be
  1710. * used as a source color key for blt operations.
  1711. */
  1712. DDCKEY_SRCBLT =0x00000008,
  1713. /*
  1714. * Set if the structure specifies a color key or color space which is to be
  1715. * used as a source color key for overlay operations.
  1716. */
  1717. DDCKEY_SRCOVERLAY =0x00000010
  1718. } DDCKEYFLAGS;
  1719. typedef enum CONST_DDSGRFLAGS {
  1720. DDSGR_DEFAULT = 0x00000000,
  1721. DDSGR_CALIBRATE = 0x00000001
  1722. } DDSGRFLAGS;
  1723. typedef enum CONST_DBOOLFLAGS {
  1724. D_FALSE =0,
  1725. D_TRUE =1
  1726. } DBOOLFLAGS;
  1727. typedef enum CONST_DDBITDEPTHFLAGS {
  1728. /*
  1729. * 1 bit per pixel.
  1730. */
  1731. DDBD_1 =0x00004000,
  1732. /*
  1733. * 2 bits per pixel.
  1734. */
  1735. DDBD_2 =0x00002000,
  1736. /*
  1737. * 4 bits per pixel.
  1738. */
  1739. DDBD_4 =0x00001000,
  1740. /*
  1741. * 8 bits per pixel.
  1742. */
  1743. DDBD_8 =0x00000800,
  1744. /*
  1745. * 16 bits per pixel.
  1746. */
  1747. DDBD_16 =0x00000400,
  1748. /*
  1749. * 24 bits per pixel.
  1750. */
  1751. DDBD_24 =0x00000200,
  1752. /*
  1753. * 32 bits per pixel.
  1754. */
  1755. DDBD_32 =0x00000100,
  1756. } DDBITDEPTHFLAGS;
  1757. typedef enum CONST_DDSURFACEDESCFLAGS {
  1758. /*
  1759. * ddsCaps field is valid.
  1760. */
  1761. DDSD_CAPS =0x00000001, // default
  1762. /*
  1763. * dwHeight field is valid.
  1764. */
  1765. DDSD_HEIGHT =0x00000002,
  1766. /*
  1767. * dwWidth field is valid.
  1768. */
  1769. DDSD_WIDTH =0x00000004,
  1770. /*
  1771. * lPitch is valid.
  1772. */
  1773. DDSD_PITCH =0x00000008,
  1774. /*
  1775. * dwBackBufferCount is valid.
  1776. */
  1777. DDSD_BACKBUFFERCOUNT =0x00000020,
  1778. /*
  1779. * dwZBufferBitDepth is valid.
  1780. */
  1781. DDSD_ZBUFFERBITDEPTH =0x00000040,
  1782. /*
  1783. * dwAlphaBitDepth is valid.
  1784. */
  1785. DDSD_ALPHABITDEPTH =0x00000080,
  1786. DDSD_TEXTURESTAGE =0x00100000,
  1787. /*
  1788. * lpSurface is valid.
  1789. */
  1790. DDSD_LPSURFACE =0x00000800,
  1791. /*
  1792. * ddpfPixelFormat is valid.
  1793. */
  1794. DDSD_PIXELFORMAT =0x00001000,
  1795. /*
  1796. * ddckCKDestOverlay is valid.
  1797. */
  1798. DDSD_CKDESTOVERLAY =0x00002000,
  1799. /*
  1800. * ddckCKDestBlt is valid.
  1801. */
  1802. DDSD_CKDESTBLT =0x00004000,
  1803. /*
  1804. * ddckCKSrcOverlay is valid.
  1805. */
  1806. DDSD_CKSRCOVERLAY =0x00008000,
  1807. /*
  1808. * ddckCKSrcBlt is valid.
  1809. */
  1810. DDSD_CKSRCBLT =0x00010000,
  1811. /*
  1812. * dwMipMapCount is valid.
  1813. */
  1814. DDSD_MIPMAPCOUNT =0x00020000,
  1815. /*
  1816. * dwRefreshRate is valid
  1817. */
  1818. DDSD_REFRESHRATE =0x00040000,
  1819. /*
  1820. * dwLinearSize is valid
  1821. */
  1822. DDSD_LINEARSIZE =0x00080000,
  1823. /*
  1824. * All input fields are valid.
  1825. */
  1826. DDSD_ALL =0x000ff9ee,
  1827. } DDSURFACEDESCFLAGS;
  1828. typedef enum CONST_DDCOLORFLAGS {
  1829. /*
  1830. * lBrightness field is valid.
  1831. */
  1832. DDCOLOR_BRIGHTNESS =0x00000001,
  1833. /*
  1834. * lContrast field is valid.
  1835. */
  1836. DDCOLOR_CONTRAST =0x00000002,
  1837. /*
  1838. * lHue field is valid.
  1839. */
  1840. DDCOLOR_HUE =0x00000004,
  1841. /*
  1842. * lSaturation field is valid.
  1843. */
  1844. DDCOLOR_SATURATION =0x00000008,
  1845. /*
  1846. * lSharpness field is valid.
  1847. */
  1848. DDCOLOR_SHARPNESS =0x00000010,
  1849. /*
  1850. * lGamma field is valid.
  1851. */
  1852. DDCOLOR_GAMMA =0x00000020,
  1853. /*
  1854. * lColorEnable field is valid.
  1855. */
  1856. DDCOLOR_COLORENABLE =0x00000040
  1857. } DDCOLORFLAGS;
  1858. typedef enum CONST_DDSURFACECAPSFLAGS {
  1859. /*
  1860. * Indicates that this surface contains alpha-only information.
  1861. * (To determine if a surface is RGBA/YUVA, the pixel format must be
  1862. * interrogated.)
  1863. */
  1864. DDSCAPS_ALPHA =0x00000002,
  1865. /*
  1866. * Indicates that this surface is a backbuffer. It is generally
  1867. * set by CreateSurface when the DDSCAPS_FLIP capability bit is set.
  1868. * It indicates that this surface is THE back buffer of a surface
  1869. * flipping structure. DirectDraw supports N surfaces in a
  1870. * surface flipping structure. Only the surface that immediately
  1871. * precedeces the DDSCAPS_FRONTBUFFER has this capability bit set.
  1872. * The other surfaces are identified as back buffers by the presence
  1873. * of the DDSCAPS_FLIP capability, their attachment order, and the
  1874. * absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER
  1875. * capabilities. The bit is sent to CreateSurface when a standalone
  1876. * back buffer is being created. This surface could be attached to
  1877. * a front buffer and/or back buffers to form a flipping surface
  1878. * structure after the CreateSurface call. See AddAttachments for
  1879. * a detailed description of the behaviors in this case.
  1880. */
  1881. DDSCAPS_BACKBUFFER =0x00000004,
  1882. /*
  1883. * Indicates a complex surface structure is being described. A
  1884. * complex surface structure results in the creation of more than
  1885. * one surface. The additional surfaces are attached to the root
  1886. * surface. The complex structure can only be destroyed by
  1887. * destroying the root.
  1888. */
  1889. DDSCAPS_COMPLEX =0x00000008,
  1890. /*
  1891. * Indicates that this surface is a part of a surface flipping structure.
  1892. * When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and
  1893. * DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface
  1894. * on the resulting creations. The dwBackBufferCount field in the
  1895. * DDSURFACEDESC structure must be set to at least 1 in order for
  1896. * the CreateSurface call to succeed. The DDSCAPS_COMPLEX capability
  1897. * must always be set with creating multiple surfaces through CreateSurface.
  1898. */
  1899. DDSCAPS_FLIP =0x00000010,
  1900. /*
  1901. * Indicates that this surface is THE front buffer of a surface flipping
  1902. * structure. It is generally set by CreateSurface when the DDSCAPS_FLIP
  1903. * capability bit is set.
  1904. * If this capability is sent to CreateSurface then a standalonw front buffer
  1905. * is created. This surface will not have the DDSCAPS_FLIP capability.
  1906. * It can be attached to other back buffers to form a flipping structure.
  1907. * See AddAttachments for a detailed description of the behaviors in this
  1908. * case.
  1909. */
  1910. DDSCAPS_FRONTBUFFER =0x00000020,
  1911. /*
  1912. * Indicates that this surface is any offscreen surface that is not an overlay,
  1913. * texture, zbuffer, front buffer, back buffer, or alpha surface. It is used
  1914. * to identify plain vanilla surfaces.
  1915. */
  1916. DDSCAPS_OFFSCREENPLAIN =0x00000040,
  1917. /*
  1918. * Indicates that this surface is an overlay. It may or may not be directly visible
  1919. * depending on whether or not it is currently being overlayed onto the primary
  1920. * surface. DDSCAPS_VISIBLE can be used to determine whether or not it is being
  1921. * overlayed at the moment.
  1922. */
  1923. DDSCAPS_OVERLAY =0x00000080,
  1924. /*
  1925. * Indicates that unique DirectDrawPalette objects can be created and
  1926. * attached to this surface.
  1927. */
  1928. DDSCAPS_PALETTE =0x00000100,
  1929. /*
  1930. * Indicates that this surface is the primary surface. The primary
  1931. * surface represents what the user is seeing at the moment.
  1932. */
  1933. DDSCAPS_PRIMARYSURFACE =0x00000200,
  1934. /*
  1935. * Indicates that this surface is the primary surface for the left eye.
  1936. * The primary surface for the left eye represents what the user is seeing
  1937. * at the moment with the users left eye. When this surface is created the
  1938. * DDSCAPS_PRIMARYSURFACE represents what the user is seeing with the users
  1939. * right eye.
  1940. */
  1941. DDSCAPS_PRIMARYSURFACELEFT =0x00000400,
  1942. /*
  1943. * Indicates that this surface memory was allocated in system memory
  1944. */
  1945. DDSCAPS_SYSTEMMEMORY =0x00000800,
  1946. /*
  1947. * Indicates that this surface can be used as a 3D texture. It does not
  1948. * indicate whether or not the surface is being used for that purpose.
  1949. */
  1950. DDSCAPS_TEXTURE =0x00001000,
  1951. /*
  1952. * Indicates that a surface may be a destination for 3D rendering. This
  1953. * bit must be set in order to query for a Direct3D Device Interface
  1954. * from this surface.
  1955. */
  1956. DDSCAPS_3DDEVICE =0x00002000,
  1957. /*
  1958. * Indicates that this surface exists in video memory.
  1959. */
  1960. DDSCAPS_VIDEOMEMORY =0x00004000,
  1961. /*
  1962. * Indicates that changes made to this surface are immediately visible.
  1963. * It is always set for the primary surface and is set for overlays while
  1964. * they are being overlayed and texture maps while they are being textured.
  1965. */
  1966. DDSCAPS_VISIBLE =0x00008000,
  1967. /*
  1968. * Indicates that only writes are permitted to the surface. Read accesses
  1969. * from the surface may or may not generate a protection fault, but the
  1970. * results of a read from this surface will not be meaningful. READ ONLY.
  1971. */
  1972. DDSCAPS_WRITEONLY =0x00010000,
  1973. /*
  1974. * Indicates that this surface is a z buffer. A z buffer does not contain
  1975. * displayable information. Instead it contains bit depth information that is
  1976. * used to determine which pixels are visible and which are obscured.
  1977. */
  1978. DDSCAPS_ZBUFFER =0x00020000,
  1979. /*
  1980. * Indicates surface will have a DC associated long term
  1981. */
  1982. DDSCAPS_OWNDC =0x00040000,
  1983. /*
  1984. * Indicates surface should be able to receive live video
  1985. */
  1986. DDSCAPS_LIVEVIDEO =0x00080000,
  1987. /*
  1988. * Indicates surface should be able to have a stream decompressed
  1989. * to it by the hardware.
  1990. */
  1991. DDSCAPS_HWCODEC =0x00100000,
  1992. /*
  1993. * Surface is a ModeX surface.
  1994. *
  1995. */
  1996. DDSCAPS_MODEX =0x00200000,
  1997. /*
  1998. * Indicates surface is one level of a mip-map. This surface will
  1999. * be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map.
  2000. * This can be done explicitly, by creating a number of surfaces and
  2001. * attaching them with AddAttachedSurface or by implicitly by CreateSurface.
  2002. * If this bit is set then DDSCAPS_TEXTURE must also be set.
  2003. */
  2004. DDSCAPS_MIPMAP =0x00400000,
  2005. /*
  2006. * This bit is reserved. It should not be specified.
  2007. */
  2008. DDSCAPS_RESERVED2 =0x00800000,
  2009. /*
  2010. * Indicates that memory for the surface is not allocated until the surface
  2011. * is loaded (via the Direct3D texture Load() function).
  2012. */
  2013. DDSCAPS_ALLOCONLOAD =0x04000000,
  2014. /*
  2015. * Indicates that the surface will recieve data from a video port.
  2016. */
  2017. DDSCAPS_VIDEOPORT =0x08000000,
  2018. /*
  2019. * Indicates that a video memory surface is resident in true, local video
  2020. * memory rather than non-local video memory. If this flag is specified then
  2021. * so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
  2022. * DDSCAPS_NONLOCALVIDMEM.
  2023. */
  2024. DDSCAPS_LOCALVIDMEM =0x10000000,
  2025. /*
  2026. * Indicates that a video memory surface is resident in non-local video
  2027. * memory rather than true, local video memory. If this flag is specified
  2028. * then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
  2029. * DDSCAPS_LOCALVIDMEM.
  2030. */
  2031. DDSCAPS_NONLOCALVIDMEM =0x20000000,
  2032. /*
  2033. * Indicates that this surface is a standard VGA mode surface, and not a
  2034. * ModeX surface. (This flag will never be set in combination with the
  2035. * DDSCAPS_MODEX flag).
  2036. */
  2037. DDSCAPS_STANDARDVGAMODE =0x40000000,
  2038. /*
  2039. * Indicates that this surface will be an optimized surface. This flag is
  2040. * currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface
  2041. * will be created without any underlying video memory until loaded.
  2042. */
  2043. DDSCAPS_OPTIMIZED =0x80000000
  2044. } DDSURFACECAPSFLAGS;
  2045. typedef enum CONST_DDSURFACECAPS2FLAGS {
  2046. DDSCAPS2_HARDWAREDEINTERLACE =0x00000002,
  2047. DDSCAPS2_HINTDYNAMIC =0x00000004,
  2048. DDSCAPS2_HINTSTATIC =0x00000008,
  2049. DDSCAPS2_TEXTUREMANAGE =0x00000010,
  2050. DDSCAPS2_OPAQUE =0x00000080,
  2051. DDSCAPS2_HINTANTIALIASING =0x00000100,
  2052. //DX7 FLAGS
  2053. DDSCAPS2_CUBEMAP =0x00000200,
  2054. DDSCAPS2_CUBEMAP_POSITIVEX = 0x00000400,
  2055. DDSCAPS2_CUBEMAP_NEGATIVEX = 0x00000800,
  2056. DDSCAPS2_CUBEMAP_POSITIVEY = 0x00001000,
  2057. DDSCAPS2_CUBEMAP_NEGATIVEY = 0x00002000,
  2058. DDSCAPS2_CUBEMAP_POSITIVEZ = 0x00004000,
  2059. DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x00008000,
  2060. DDSCAPS2_CUBEMAP_ALLFACES = 0x0000FE00,
  2061. DDSCAPS2_MIPMAPSUBLEVEL = 0x00010000,
  2062. DDSCAPS2_D3DTEXTUREMANAGE = 0x00020000,
  2063. DDSCAPS2_STEREOSURFACELEFT = 0x00080000
  2064. } DDSURFACECAPS2FLAGS;
  2065. typedef enum CONST_DDCAPS1FLAGS {
  2066. /****************************************************************************
  2067. *
  2068. * DIRECTDRAW DRIVER CAPABILITY FLAGS
  2069. *
  2070. ****************************************************************************/
  2071. /*
  2072. * Display hardware has 3D acceleration.
  2073. */
  2074. DDCAPS_3D =0x00000001,
  2075. /*
  2076. * Indicates that DirectDraw will support only dest rectangles that are aligned
  2077. * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.
  2078. * READ ONLY.
  2079. */
  2080. DDCAPS_ALIGNBOUNDARYDEST =0x00000002,
  2081. /*
  2082. * Indicates that DirectDraw will support only source rectangles whose sizes in
  2083. * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively. READ ONLY.
  2084. */
  2085. DDCAPS_ALIGNSIZEDEST =0x00000004,
  2086. /*
  2087. * Indicates that DirectDraw will support only source rectangles that are aligned
  2088. * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.
  2089. * READ ONLY.
  2090. */
  2091. DDCAPS_ALIGNBOUNDARYSRC =0x00000008,
  2092. /*
  2093. * Indicates that DirectDraw will support only source rectangles whose sizes in
  2094. * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively. READ ONLY.
  2095. */
  2096. DDCAPS_ALIGNSIZESRC =0x00000010,
  2097. /*
  2098. * Indicates that DirectDraw will create video memory surfaces that have a stride
  2099. * alignment equal to DIRECTDRAWCAPS.dwAlignStride. READ ONLY.
  2100. */
  2101. DDCAPS_ALIGNSTRIDE =0x00000020,
  2102. /*
  2103. * Display hardware is capable of blt operations.
  2104. */
  2105. DDCAPS_BLT =0x00000040,
  2106. /*
  2107. * Display hardware is capable of asynchronous blt operations.
  2108. */
  2109. DDCAPS_BLTQUEUE =0x00000080,
  2110. /*
  2111. * Display hardware is capable of color space conversions during the blt operation.
  2112. */
  2113. DDCAPS_BLTFOURCC =0x00000100,
  2114. /*
  2115. * Display hardware is capable of stretching during blt operations.
  2116. */
  2117. DDCAPS_BLTSTRETCH =0x00000200,
  2118. /*
  2119. * Display hardware is shared with GDI.
  2120. */
  2121. DDCAPS_GDI =0x00000400,
  2122. /*
  2123. * Display hardware can overlay.
  2124. */
  2125. DDCAPS_OVERLAY =0x00000800,
  2126. /*
  2127. * Set if display hardware supports overlays but can not clip them.
  2128. */
  2129. DDCAPS_OVERLAYCANTCLIP =0x00001000,
  2130. /*
  2131. * Indicates that overlay hardware is capable of color space conversions during
  2132. * the overlay operation.
  2133. */
  2134. DDCAPS_OVERLAYFOURCC =0x00002000,
  2135. /*
  2136. * Indicates that stretching can be done by the overlay hardware.
  2137. */
  2138. DDCAPS_OVERLAYSTRETCH =0x00004000,
  2139. /*
  2140. * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces
  2141. * other than the primary surface.
  2142. */
  2143. DDCAPS_PALETTE =0x00008000,
  2144. /*
  2145. * Indicates that palette changes can be syncd with the veritcal refresh.
  2146. */
  2147. DDCAPS_PALETTEVSYNC =0x00010000,
  2148. /*
  2149. * Display hardware can return the current scan line.
  2150. */
  2151. DDCAPS_READSCANLINE =0x00020000,
  2152. /*
  2153. * Display hardware has stereo vision capabilities. DDSCAPS_PRIMARYSURFACELEFT
  2154. * can be created.
  2155. */
  2156. DDCAPS_STEREOVIEW =0x00040000,
  2157. /*
  2158. * Display hardware is capable of generating a vertical blank interrupt.
  2159. */
  2160. DDCAPS_VBI =0x00080000,
  2161. /*
  2162. * Supports the use of z buffers with blt operations.
  2163. */
  2164. DDCAPS_ZBLTS =0x00100000,
  2165. /*
  2166. * Supports Z Ordering of overlays.
  2167. */
  2168. DDCAPS_ZOVERLAYS =0x00200000,
  2169. /*
  2170. * Supports color key
  2171. */
  2172. DDCAPS_COLORKEY =0x00400000,
  2173. /*
  2174. * Supports alpha surfaces
  2175. */
  2176. DDCAPS_ALPHA =0x00800000,
  2177. /*
  2178. * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)
  2179. */
  2180. DDCAPS_COLORKEYHWASSIST =0x01000000,
  2181. /*
  2182. * no hardware support at all
  2183. */
  2184. DDCAPS_NOHARDWARE =0x02000000,
  2185. /*
  2186. * Display hardware is capable of color fill with bltter
  2187. */
  2188. DDCAPS_BLTCOLORFILL =0x04000000,
  2189. /*
  2190. * Display hardware is bank switched, and potentially very slow at
  2191. * random access to VRAM.
  2192. */
  2193. DDCAPS_BANKSWITCHED =0x08000000,
  2194. /*
  2195. * Display hardware is capable of depth filling Z-buffers with bltter
  2196. */
  2197. DDCAPS_BLTDEPTHFILL =0x10000000,
  2198. /*
  2199. * Display hardware is capable of clipping while bltting.
  2200. */
  2201. DDCAPS_CANCLIP =0x20000000,
  2202. /*
  2203. * Display hardware is capable of clipping while stretch bltting.
  2204. */
  2205. DDCAPS_CANCLIPSTRETCHED =0x40000000,
  2206. /*
  2207. * Display hardware is capable of bltting to or from system memory
  2208. */
  2209. DDCAPS_CANBLTSYSMEM =0x80000000
  2210. } DDCAPS1FLAGS;
  2211. typedef enum CONST_DDCAPS2FLAGS {
  2212. /****************************************************************************
  2213. *
  2214. * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
  2215. *
  2216. ****************************************************************************/
  2217. /*
  2218. * Display hardware is certified
  2219. */
  2220. DDCAPS2_CERTIFIED =0x00000001,
  2221. /*
  2222. * Driver cannot interleave 2D operations (lock and blt) to surfaces with
  2223. * Direct3D rendering operations between calls to BeginScene() and EndScene()
  2224. */
  2225. DDCAPS2_NO2DDURING3DSCENE =0x00000002,
  2226. /*
  2227. * Display hardware contains a video port
  2228. */
  2229. DDCAPS2_VIDEOPORT =0x00000004,
  2230. /*
  2231. * The overlay can be automatically flipped according to the video port
  2232. * VSYNCs, providing automatic doubled buffered display of video port
  2233. * data using an overlay
  2234. */
  2235. DDCAPS2_AUTOFLIPOVERLAY =0x00000008,
  2236. /*
  2237. * Overlay can display each field of interlaced data individually while
  2238. * it is interleaved in memory without causing jittery artifacts.
  2239. */
  2240. DDCAPS2_CANBOBINTERLEAVED =0x00000010,
  2241. /*
  2242. * Overlay can display each field of interlaced data individually while
  2243. * it is not interleaved in memory without causing jittery artifacts.
  2244. */
  2245. DDCAPS2_CANBOBNONINTERLEAVED =0x00000020,
  2246. /*
  2247. * The overlay surface contains color controls (brightness, sharpness, etc.)
  2248. */
  2249. DDCAPS2_COLORCONTROLOVERLAY =0x00000040,
  2250. /*
  2251. * The primary surface contains color controls (gamma, etc.)
  2252. */
  2253. DDCAPS2_COLORCONTROLPRIMARY =0x00000080,
  2254. /*
  2255. * RGBZ -> RGB supported for 16:16 RGB:Z
  2256. */
  2257. DDCAPS2_CANDROPZ16BIT =0x00000100,
  2258. /*
  2259. * Driver supports non-local video memory.
  2260. */
  2261. DDCAPS2_NONLOCALVIDMEM =0x00000200,
  2262. /*
  2263. * Dirver supports non-local video memory but has different capabilities for
  2264. * non-local video memory surfaces. If this bit is set then so must
  2265. * DDCAPS2_NONLOCALVIDMEM.
  2266. */
  2267. DDCAPS2_NONLOCALVIDMEMCAPS =0x00000400,
  2268. /*
  2269. * Driver neither requires nor prefers surfaces to be pagelocked when performing
  2270. * blts involving system memory surfaces
  2271. */
  2272. DDCAPS2_NOPAGELOCKREQUIRED =0x00000800,
  2273. /*
  2274. * Driver can create surfaces which are wider than the primary surface
  2275. */
  2276. DDCAPS2_WIDESURFACES =0x00001000,
  2277. /*
  2278. * Driver supports bob using software without using a video port
  2279. */
  2280. DDCAPS2_CANFLIPODDEVEN =0x00002000,
  2281. DDCAPS2_CANBOBHARDWARE =0x00004000,
  2282. DDCAPS2_COPYFOURCC =0x00008000,
  2283. DDCAPS2_PRIMARYGAMMA =0x00020000,
  2284. DDCAPS2_CANRENDERWINDOWED =0x00080000,
  2285. DDCAPS2_CANCALIBRATEGAMMA =0x00100000,
  2286. DDCAPS2_FLIPINTERVAL =0x00200000,
  2287. DDCAPS2_FLIPNOVSYNC =0x00400000,
  2288. //DX7
  2289. DDCAPS2_CANMANAGETEXTURE =0x00800000,
  2290. DDCAPS2_STEREO =0x02000000
  2291. } DDCAPS2FLAGS;
  2292. #if 0
  2293. typedef enum CONST_DDFXALPHACAPSFLAGS {
  2294. /****************************************************************************
  2295. *
  2296. * DIRECTDRAW FX ALPHA CAPABILITY FLAGS
  2297. *
  2298. ****************************************************************************/
  2299. /*
  2300. * Supports alpha blending around the edge of a source color keyed surface.
  2301. * For Blt.
  2302. */
  2303. DDFXALPHACAPS_BLTALPHAEDGEBLEND =0x00000001,
  2304. /*
  2305. * Supports alpha information in the pixel format. The bit depth of alpha
  2306. * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
  2307. * more opaque as the alpha value increases. (0 is transparent.)
  2308. * For Blt.
  2309. */
  2310. DDFXALPHACAPS_BLTALPHAPIXELS =0x00000002,
  2311. /*
  2312. * Supports alpha information in the pixel format. The bit depth of alpha
  2313. * information in the pixel format can be 1,2,4, or 8. The alpha value
  2314. * becomes more transparent as the alpha value increases. (0 is opaque.)
  2315. * This flag can only be set if DDCAPS_ALPHA is set.
  2316. * For Blt.
  2317. */
  2318. DDFXALPHACAPS_BLTALPHAPIXELSNEG =0x00000004,
  2319. /*
  2320. * Supports alpha only surfaces. The bit depth of an alpha only surface can be
  2321. * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases.
  2322. * (0 is transparent.)
  2323. * For Blt.
  2324. */
  2325. DDFXALPHACAPS_BLTALPHASURFACES =0x00000008,
  2326. /*
  2327. * The depth of the alpha channel data can range can be 1,2,4, or 8.
  2328. * The NEG suffix indicates that this alpha channel becomes more transparent
  2329. * as the alpha value increases. (0 is opaque.) This flag can only be set if
  2330. * DDCAPS_ALPHA is set.
  2331. * For Blt.
  2332. */
  2333. DDFXALPHACAPS_BLTALPHASURFACESNEG =0x00000010,
  2334. /*
  2335. * Supports alpha blending around the edge of a source color keyed surface.
  2336. * For Overlays.
  2337. */
  2338. DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND =0x00000020,
  2339. /*
  2340. * Supports alpha information in the pixel format. The bit depth of alpha
  2341. * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
  2342. * more opaque as the alpha value increases. (0 is transparent.)
  2343. * For Overlays.
  2344. */
  2345. DDFXALPHACAPS_OVERLAYALPHAPIXELS =0x00000040,
  2346. /*
  2347. * Supports alpha information in the pixel format. The bit depth of alpha
  2348. * information in the pixel format can be 1,2,4, or 8. The alpha value
  2349. * becomes more transparent as the alpha value increases. (0 is opaque.)
  2350. * This flag can only be set if DDCAPS_ALPHA is set.
  2351. * For Overlays.
  2352. */
  2353. DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG =0x00000080,
  2354. /*
  2355. * Supports alpha only surfaces. The bit depth of an alpha only surface can be
  2356. * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases.
  2357. * (0 is transparent.)
  2358. * For Overlays.
  2359. */
  2360. DDFXALPHACAPS_OVERLAYALPHASURFACES =0x00000100,
  2361. /*
  2362. * The depth of the alpha channel data can range can be 1,2,4, or 8.
  2363. * The NEG suffix indicates that this alpha channel becomes more transparent
  2364. * as the alpha value increases. (0 is opaque.) This flag can only be set if
  2365. * DDCAPS_ALPHA is set.
  2366. * For Overlays.
  2367. */
  2368. DDFXALPHACAPS_OVERLAYALPHASURFACESNEG =0x00000200
  2369. } DDFXALPHACAPSFLAGS;
  2370. #endif
  2371. typedef enum CONST_DDFXCAPSFLAGS {
  2372. /****************************************************************************
  2373. *
  2374. * DIRECTDRAW FX CAPABILITY FLAGS
  2375. *
  2376. ****************************************************************************/
  2377. /*
  2378. * Uses arithmetic operations to stretch and shrink surfaces during blt
  2379. * rather than pixel doubling techniques. Along the Y axis.
  2380. */
  2381. DDFXCAPS_BLTARITHSTRETCHY =0x00000020,
  2382. /*
  2383. * Uses arithmetic operations to stretch during blt
  2384. * rather than pixel doubling techniques. Along the Y axis. Only
  2385. * works for x1, x2, etc.
  2386. */
  2387. DDFXCAPS_BLTARITHSTRETCHYN =0x00000010,
  2388. /*
  2389. * Supports mirroring left to right in blt.
  2390. */
  2391. DDFXCAPS_BLTMIRRORLEFTRIGHT =0x00000040,
  2392. /*
  2393. * Supports mirroring top to bottom in blt.
  2394. */
  2395. DDFXCAPS_BLTMIRRORUPDOWN =0x00000080,
  2396. /*
  2397. * Supports arbitrary rotation for blts.
  2398. */
  2399. DDFXCAPS_BLTROTATION =0x00000100,
  2400. /*
  2401. * Supports 90 degree rotations for blts.
  2402. */
  2403. DDFXCAPS_BLTROTATION90 =0x00000200,
  2404. /*
  2405. * DirectDraw supports arbitrary shrinking of a surface along the
  2406. * x axis (horizontal direction) for blts.
  2407. */
  2408. DDFXCAPS_BLTSHRINKX =0x00000400,
  2409. /*
  2410. * DirectDraw supports integer shrinking (1x,2x,) of a surface
  2411. * along the x axis (horizontal direction) for blts.
  2412. */
  2413. DDFXCAPS_BLTSHRINKXN =0x00000800,
  2414. /*
  2415. * DirectDraw supports arbitrary shrinking of a surface along the
  2416. * y axis (horizontal direction) for blts.
  2417. */
  2418. DDFXCAPS_BLTSHRINKY =0x00001000,
  2419. /*
  2420. * DirectDraw supports integer shrinking (1x,2x,) of a surface
  2421. * along the y axis (vertical direction) for blts.
  2422. */
  2423. DDFXCAPS_BLTSHRINKYN =0x00002000,
  2424. /*
  2425. * DirectDraw supports arbitrary stretching of a surface along the
  2426. * x axis (horizontal direction) for blts.
  2427. */
  2428. DDFXCAPS_BLTSTRETCHX =0x00004000,
  2429. /*
  2430. * DirectDraw supports integer stretching (1x,2x,) of a surface
  2431. * along the x axis (horizontal direction) for blts.
  2432. */
  2433. DDFXCAPS_BLTSTRETCHXN =0x00008000,
  2434. /*
  2435. * DirectDraw supports arbitrary stretching of a surface along the
  2436. * y axis (horizontal direction) for blts.
  2437. */
  2438. DDFXCAPS_BLTSTRETCHY =0x00010000,
  2439. /*
  2440. * DirectDraw supports integer stretching (1x,2x,) of a surface
  2441. * along the y axis (vertical direction) for blts.
  2442. */
  2443. DDFXCAPS_BLTSTRETCHYN =0x00020000,
  2444. /*
  2445. * Uses arithmetic operations to stretch and shrink surfaces during
  2446. * overlay rather than pixel doubling techniques. Along the Y axis
  2447. * for overlays.
  2448. */
  2449. DDFXCAPS_OVERLAYARITHSTRETCHY =0x00040000,
  2450. /*
  2451. * Uses arithmetic operations to stretch surfaces during
  2452. * overlay rather than pixel doubling techniques. Along the Y axis
  2453. * for overlays. Only works for x1, x2, etc.
  2454. */
  2455. DDFXCAPS_OVERLAYARITHSTRETCHYN =0x00000008,
  2456. /*
  2457. * DirectDraw supports arbitrary shrinking of a surface along the
  2458. * x axis (horizontal direction) for overlays.
  2459. */
  2460. DDFXCAPS_OVERLAYSHRINKX =0x00080000,
  2461. /*
  2462. * DirectDraw supports integer shrinking (1x,2x,) of a surface
  2463. * along the x axis (horizontal direction) for overlays.
  2464. */
  2465. DDFXCAPS_OVERLAYSHRINKXN =0x00100000,
  2466. /*
  2467. * DirectDraw supports arbitrary shrinking of a surface along the
  2468. * y axis (horizontal direction) for overlays.
  2469. */
  2470. DDFXCAPS_OVERLAYSHRINKY =0x00200000,
  2471. /*
  2472. * DirectDraw supports integer shrinking (1x,2x,) of a surface
  2473. * along the y axis (vertical direction) for overlays.
  2474. */
  2475. DDFXCAPS_OVERLAYSHRINKYN =0x00400000,
  2476. /*
  2477. * DirectDraw supports arbitrary stretching of a surface along the
  2478. * x axis (horizontal direction) for overlays.
  2479. */
  2480. DDFXCAPS_OVERLAYSTRETCHX =0x00800000,
  2481. /*
  2482. * DirectDraw supports integer stretching (1x,2x,) of a surface
  2483. * along the x axis (horizontal direction) for overlays.
  2484. */
  2485. DDFXCAPS_OVERLAYSTRETCHXN =0x01000000,
  2486. /*
  2487. * DirectDraw supports arbitrary stretching of a surface along the
  2488. * y axis (horizontal direction) for overlays.
  2489. */
  2490. DDFXCAPS_OVERLAYSTRETCHY =0x02000000,
  2491. /*
  2492. * DirectDraw supports integer stretching (1x,2x,) of a surface
  2493. * along the y axis (vertical direction) for overlays.
  2494. */
  2495. DDFXCAPS_OVERLAYSTRETCHYN =0x04000000,
  2496. /*
  2497. * DirectDraw supports mirroring of overlays across the vertical axis
  2498. */
  2499. DDFXCAPS_OVERLAYMIRRORLEFTRIGHT =0x08000000,
  2500. /*
  2501. * DirectDraw supports mirroring of overlays across the horizontal axis
  2502. */
  2503. DDFXCAPS_OVERLAYMIRRORUPDOWN =0x10000000,
  2504. DDFXCAPS_BLTALPHA =0x00000001,
  2505. DDFXCAPS_BLTTRANSFORM =0x00000002,
  2506. DDFXCAPS_BLTFILTER =0x00000020,
  2507. DDFXCAPS_OVERLAYALPHA =0x00000004,
  2508. DDFXCAPS_OVERLAYTRANSFORM =0x20000000,
  2509. DDFXCAPS_OVERLAYFILTER =0x00040000
  2510. } DDFXCAPSFLAGS;
  2511. typedef enum CONST_DDSTEREOCAPSFLAGS {
  2512. /****************************************************************************
  2513. *
  2514. * DIRECTDRAW STEREO VIEW CAPABILITIES
  2515. *
  2516. ****************************************************************************/
  2517. /*
  2518. * The stereo view is accomplished via enigma encoding.
  2519. */
  2520. DDSVCAPS_ENIGMA =0x00000001,
  2521. /*
  2522. * The stereo view is accomplished via high frequency flickering.
  2523. */
  2524. DDSVCAPS_FLICKER =0x00000002,
  2525. /*
  2526. * The stereo view is accomplished via red and blue filters applied
  2527. * to the left and right eyes. All images must adapt their colorspaces
  2528. * for this process.
  2529. */
  2530. DDSVCAPS_REDBLUE =0x00000004,
  2531. /*
  2532. * The stereo view is accomplished with split screen technology.
  2533. */
  2534. DDSVCAPS_SPLIT =0x00000008,
  2535. DDSVCAPS_STEREOSEQUENTIAL = 0x00000010
  2536. } DDSTEREOCAPSFLAGS;
  2537. typedef enum CONST_DDCKEYCAPSFLAGS {
  2538. /****************************************************************************
  2539. *
  2540. * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
  2541. *
  2542. ****************************************************************************/
  2543. /*
  2544. * Supports transparent blting using a color key to identify the replaceable
  2545. * bits of the destination surface for RGB colors.
  2546. */
  2547. DDCKEYCAPS_DESTBLT =0x00000001,
  2548. /*
  2549. * Supports transparent blting using a color space to identify the replaceable
  2550. * bits of the destination surface for RGB colors.
  2551. */
  2552. DDCKEYCAPS_DESTBLTCLRSPACE =0x00000002,
  2553. /*
  2554. * Supports transparent blting using a color space to identify the replaceable
  2555. * bits of the destination surface for YUV colors.
  2556. */
  2557. DDCKEYCAPS_DESTBLTCLRSPACEYUV =0x00000004,
  2558. /*
  2559. * Supports transparent blting using a color key to identify the replaceable
  2560. * bits of the destination surface for YUV colors.
  2561. */
  2562. DDCKEYCAPS_DESTBLTYUV =0x00000008,
  2563. /*
  2564. * Supports overlaying using colorkeying of the replaceable bits of the surface
  2565. * being overlayed for RGB colors.
  2566. */
  2567. DDCKEYCAPS_DESTOVERLAY =0x00000010,
  2568. /*
  2569. * Supports a color space as the color key for the destination for RGB colors.
  2570. */
  2571. DDCKEYCAPS_DESTOVERLAYCLRSPACE =0x00000020,
  2572. /*
  2573. * Supports a color space as the color key for the destination for YUV colors.
  2574. */
  2575. DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV =0x00000040,
  2576. /*
  2577. * Supports only one active destination color key value for visible overlay
  2578. * surfaces.
  2579. */
  2580. DDCKEYCAPS_DESTOVERLAYONEACTIVE =0x00000080,
  2581. /*
  2582. * Supports overlaying using colorkeying of the replaceable bits of the
  2583. * surface being overlayed for YUV colors.
  2584. */
  2585. DDCKEYCAPS_DESTOVERLAYYUV =0x00000100,
  2586. /*
  2587. * Supports transparent blting using the color key for the source with
  2588. * this surface for RGB colors.
  2589. */
  2590. DDCKEYCAPS_SRCBLT =0x00000200,
  2591. /*
  2592. * Supports transparent blting using a color space for the source with
  2593. * this surface for RGB colors.
  2594. */
  2595. DDCKEYCAPS_SRCBLTCLRSPACE =0x00000400,
  2596. /*
  2597. * Supports transparent blting using a color space for the source with
  2598. * this surface for YUV colors.
  2599. */
  2600. DDCKEYCAPS_SRCBLTCLRSPACEYUV =0x00000800,
  2601. /*
  2602. * Supports transparent blting using the color key for the source with
  2603. * this surface for YUV colors.
  2604. */
  2605. DDCKEYCAPS_SRCBLTYUV =0x00001000,
  2606. /*
  2607. * Supports overlays using the color key for the source with this
  2608. * overlay surface for RGB colors.
  2609. */
  2610. DDCKEYCAPS_SRCOVERLAY =0x00002000,
  2611. /*
  2612. * Supports overlays using a color space as the source color key for
  2613. * the overlay surface for RGB colors.
  2614. */
  2615. DDCKEYCAPS_SRCOVERLAYCLRSPACE =0x00004000,
  2616. /*
  2617. * Supports overlays using a color space as the source color key for
  2618. * the overlay surface for YUV colors.
  2619. */
  2620. DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV =0x00008000,
  2621. /*
  2622. * Supports only one active source color key value for visible
  2623. * overlay surfaces.
  2624. */
  2625. DDCKEYCAPS_SRCOVERLAYONEACTIVE =0x00010000,
  2626. /*
  2627. * Supports overlays using the color key for the source with this
  2628. * overlay surface for YUV colors.
  2629. */
  2630. DDCKEYCAPS_SRCOVERLAYYUV =0x00020000,
  2631. /*
  2632. * there are no bandwidth trade-offs for using colorkey with an overlay
  2633. */
  2634. DDCKEYCAPS_NOCOSTOVERLAY =0x00040000
  2635. } DDCKEYCAPSFLAGS;
  2636. typedef enum CONST_DDPIXELFORMATFLAGS {
  2637. /****************************************************************************
  2638. *
  2639. * DIRECTDRAW PIXELFORMAT FLAGS
  2640. *
  2641. ****************************************************************************/
  2642. /*
  2643. * The surface has alpha channel information in the pixel format.
  2644. */
  2645. DDPF_ALPHAPIXELS =0x00000001,
  2646. /*
  2647. * The pixel format contains alpha only information
  2648. */
  2649. DDPF_ALPHA =0x00000002,
  2650. /*
  2651. * The FourCC code is valid.
  2652. */
  2653. DDPF_FOURCC =0x00000004,
  2654. /*
  2655. * The surface is 4-bit color indexed.
  2656. */
  2657. DDPF_PALETTEINDEXED4 =0x00000008,
  2658. /*
  2659. * The surface is indexed into a palette which stores indices
  2660. * into the destination surface's 8-bit palette.
  2661. */
  2662. DDPF_PALETTEINDEXEDTO8 =0x00000010,
  2663. /*
  2664. * The surface is 8-bit color indexed.
  2665. */
  2666. DDPF_PALETTEINDEXED8 =0x00000020,
  2667. /*
  2668. * The RGB data in the pixel format structure is valid.
  2669. */
  2670. DDPF_RGB =0x00000040,
  2671. /*
  2672. * The surface will accept pixel data in the format specified
  2673. * and compress it during the write.
  2674. */
  2675. DDPF_COMPRESSED =0x00000080,
  2676. /*
  2677. * The surface will accept RGB data and translate it during
  2678. * the write to YUV data. The format of the data to be written
  2679. * will be contained in the pixel format structure. The DDPF_RGB
  2680. * flag will be set.
  2681. */
  2682. DDPF_RGBTOYUV =0x00000100,
  2683. /*
  2684. * pixel format is YUV - YUV data in pixel format struct is valid
  2685. */
  2686. DDPF_YUV =0x00000200,
  2687. /*
  2688. * pixel format is a z buffer only surface
  2689. */
  2690. DDPF_ZBUFFER =0x00000400,
  2691. /*
  2692. * The surface is 1-bit color indexed.
  2693. */
  2694. DDPF_PALETTEINDEXED1 =0x00000800,
  2695. /*
  2696. * The surface is 2-bit color indexed.
  2697. */
  2698. DDPF_PALETTEINDEXED2 =0x00001000,
  2699. /*
  2700. * The surface contains Z information in the pixels
  2701. */
  2702. DDPF_ZPIXELS =0x00002000,
  2703. DDPF_STENCILBUFFER =0x00004000,
  2704. DDPF_ALPHAPREMULT =0x00008000,
  2705. DDPF_LUMINANCE =0x00020000,
  2706. DDPF_BUMPLUMINANCE =0x00040000,
  2707. DDPF_BUMPDUDV =0x00080000
  2708. } DDPIXELFORMATFLAGS;
  2709. typedef enum CONST_DDENUMSURFACESFLAGS {
  2710. /****************************************************************************
  2711. *
  2712. * DIRECTDRAW ENUMSURFACES FLAGS
  2713. *
  2714. ****************************************************************************/
  2715. /*
  2716. * Enumerate all of the surfaces that meet the search criterion.
  2717. */
  2718. DDENUMSURFACES_ALL =0x00000001,
  2719. /*
  2720. * A search hit is a surface that matches the surface description.
  2721. */
  2722. DDENUMSURFACES_MATCH =0x00000002,
  2723. /*
  2724. * A search hit is a surface that does not match the surface description.
  2725. */
  2726. DDENUMSURFACES_NOMATCH =0x00000004,
  2727. /*
  2728. * Enumerate the first surface that can be created which meets the search criterion.
  2729. */
  2730. DDENUMSURFACES_CANBECREATED =0x00000008,
  2731. /*
  2732. * Enumerate the surfaces that already exist that meet the search criterion.
  2733. */
  2734. DDENUMSURFACES_DOESEXIST =0x00000010
  2735. } DDENUMSURFACESFLAGS;
  2736. typedef enum CONST_DDRAW {
  2737. DD_ROP_SPACE =(256/32), // space required to store ROP array
  2738. } DDRAWFLAGS;
  2739. typedef enum CONST_DDBLTFXFLAGS {
  2740. /****************************************************************************
  2741. *
  2742. * DIRECTDRAWSURFACE BLT FX FLAGS
  2743. *
  2744. ****************************************************************************/
  2745. /*
  2746. * If stretching, use arithmetic stretching along the Y axis for this blt.
  2747. */
  2748. DDBLTFX_ARITHSTRETCHY =0x00000001,
  2749. /*
  2750. * Do this blt mirroring the surface left to right. Spin the
  2751. * surface around its y-axis.
  2752. */
  2753. DDBLTFX_MIRRORLEFTRIGHT =0x00000002,
  2754. /*
  2755. * Do this blt mirroring the surface up and down. Spin the surface
  2756. * around its x-axis.
  2757. */
  2758. DDBLTFX_MIRRORUPDOWN =0x00000004,
  2759. /*
  2760. * Schedule this blt to avoid tearing.
  2761. */
  2762. DDBLTFX_NOTEARING =0x00000008,
  2763. /*
  2764. * Do this blt rotating the surface one hundred and eighty degrees.
  2765. */
  2766. DDBLTFX_ROTATE180 =0x00000010,
  2767. /*
  2768. * Do this blt rotating the surface two hundred and seventy degrees.
  2769. */
  2770. DDBLTFX_ROTATE270 =0x00000020,
  2771. /*
  2772. * Do this blt rotating the surface ninety degrees.
  2773. */
  2774. DDBLTFX_ROTATE90 =0x00000040,
  2775. /*
  2776. * Do this z blt using dwZBufferLow and dwZBufferHigh as range values
  2777. * specified to limit the bits copied from the source surface.
  2778. */
  2779. DDBLTFX_ZBUFFERRANGE =0x00000080,
  2780. /*
  2781. * Do this z blt adding the dwZBufferBaseDest to each of the sources z values
  2782. * before comparing it with the desting z values.
  2783. */
  2784. DDBLTFX_ZBUFFERBASEDEST =0x00000100
  2785. } DDBLTFXFLAGS;
  2786. #if 0
  2787. typedef enum CONST_DDOVERLAYFXFLAGS {
  2788. /****************************************************************************
  2789. *
  2790. * DIRECTDRAWSURFACE OVERLAY FX FLAGS
  2791. *
  2792. ****************************************************************************/
  2793. /*
  2794. * If stretching, use arithmetic stretching along the Y axis for this overlay.
  2795. */
  2796. DDOVERFX_ARITHSTRETCHY =0x00000001,
  2797. /*
  2798. * Mirror the overlay across the vertical axis
  2799. */
  2800. DDOVERFX_MIRRORLEFTRIGHT =0x00000002,
  2801. /*
  2802. * Mirror the overlay across the horizontal axis
  2803. */
  2804. DDOVERFX_MIRRORUPDOWN =0x00000004
  2805. } DDOVERLAYFXFLAGS;
  2806. #endif
  2807. typedef enum CONST_DDWAITVBFLAGS {
  2808. /****************************************************************************
  2809. *
  2810. * DIRECTDRAW WAITFORVERTICALBLANK FLAGS
  2811. *
  2812. ****************************************************************************/
  2813. /*
  2814. * return when the vertical blank interval begins
  2815. */
  2816. DDWAITVB_BLOCKBEGIN =0x00000001,
  2817. /*
  2818. * set up an event to trigger when the vertical blank begins
  2819. */
  2820. DDWAITVB_BLOCKBEGINEVENT =0x00000002,
  2821. /*
  2822. * return when the vertical blank interval ends and display begins
  2823. */
  2824. DDWAITVB_BLOCKEND =0x00000004
  2825. } DDWAITVBFLAGS;
  2826. /************************************************/
  2827. // DINPUT
  2828. /************************************************/
  2829. typedef enum CONST_DIENUMDEVICESFLAGS {
  2830. DIEDFL_ALLDEVICES =0x00000000,
  2831. DIEDFL_ATTACHEDONLY =0x00000001,
  2832. DIEDFL_FORCEFEEDBACK =0x00000100,
  2833. DIEDFL_INCLUDEALIASES =0x00010000,
  2834. DIEDFL_INCLUDEPHANTOMS =0x00020000
  2835. } DIENUMDEVICESFLAGS;
  2836. typedef enum CONST_DIDEVICETYPE {
  2837. DIDEVTYPE_DEVICE =1,
  2838. DIDEVTYPE_MOUSE =2,
  2839. DIDEVTYPE_KEYBOARD =3,
  2840. DIDEVTYPE_JOYSTICK =4,
  2841. DIDEVTYPE_HID =0x00010000,
  2842. DIDEVTYPEMOUSE_UNKNOWN = 0x100,
  2843. DIDEVTYPEMOUSE_TRADITIONAL = 0x200,
  2844. DIDEVTYPEMOUSE_FINGERSTICK = 0x300,
  2845. DIDEVTYPEMOUSE_TOUCHPAD = 0x400,
  2846. DIDEVTYPEMOUSE_TRACKBALL = 0x500,
  2847. DIDEVTYPEKEYBOARD_UNKNOWN = 0x000,
  2848. DIDEVTYPEKEYBOARD_PCXT = 0x100,
  2849. DIDEVTYPEKEYBOARD_OLIVETTI = 0x200,
  2850. DIDEVTYPEKEYBOARD_PCAT = 0x300,
  2851. DIDEVTYPEKEYBOARD_PCENH = 0x400,
  2852. DIDEVTYPEKEYBOARD_NOKIA1050 = 0x500,
  2853. DIDEVTYPEKEYBOARD_NOKIA9140 = 0x600,
  2854. DIDEVTYPEKEYBOARD_NEC98 = 0x700,
  2855. DIDEVTYPEKEYBOARD_NEC98LAPTOP = 0x800,
  2856. DIDEVTYPEKEYBOARD_NEC98106 = 0x900,
  2857. DIDEVTYPEKEYBOARD_JAPAN106 = 0xA00,
  2858. DIDEVTYPEKEYBOARD_JAPANAX = 0xB00,
  2859. DIDEVTYPEKEYBOARD_J3100 = 0xC00,
  2860. DIDEVTYPEJOYSTICK_UNKNOWN = 0x100,
  2861. DIDEVTYPEJOYSTICK_TRADITIONAL = 0x200,
  2862. DIDEVTYPEJOYSTICK_FLIGHTSTICK = 0x300,
  2863. DIDEVTYPEJOYSTICK_GAMEPAD = 0x400,
  2864. DIDEVTYPEJOYSTICK_RUDDER = 0x500,
  2865. DIDEVTYPEJOYSTICK_WHEEL = 0x600,
  2866. DIDEVTYPEJOYSTICK_HEADTRACKER = 0x700
  2867. } DIDEVICETYPE;
  2868. typedef enum CONST_DIDFTFLAGS {
  2869. DIDFT_ALL =0x00000000,
  2870. DIDFT_RELAXIS =0x00000001,
  2871. DIDFT_ABSAXIS =0x00000002,
  2872. DIDFT_AXIS =0x00000003,
  2873. DIDFT_PSHBUTTON =0x00000004,
  2874. DIDFT_TGLBUTTON =0x00000008,
  2875. DIDFT_BUTTON =0x0000000C,
  2876. DIDFT_POV =0x00000010,
  2877. DIDFT_COLLECTION =0x00000040,
  2878. DIDFT_NODATA =0x00000080,
  2879. DIDFT_ANYINSTANCE =0x00FFFF00,
  2880. DIDFT_INSTANCEMASK =DIDFT_ANYINSTANCE,
  2881. DIDFT_FFACTUATOR =0x01000000,
  2882. DIDFT_FFEFFECTTRIGGER =0x02000000,
  2883. DIDFT_NOCOLLECTION =0x00FFFF00
  2884. } DIDFTFLAGS;
  2885. typedef enum CONST_DIDGDDFLAGS {
  2886. DIGDD_DEFAULT =0x00000000,
  2887. DIGDD_PEEK =0x00000001
  2888. } DIDGDDFLAGS;
  2889. typedef enum CONST_DIPHFLAGS {
  2890. DIPH_DEVICE =0,
  2891. DIPH_BYOFFSET =1,
  2892. DIPH_BYID =2
  2893. } DIPHFLAGS;
  2894. typedef enum CONST_DISCLFLAGS {
  2895. DISCL_EXCLUSIVE =0x00000001,
  2896. DISCL_NONEXCLUSIVE =0x00000002,
  2897. DISCL_FOREGROUND =0x00000004,
  2898. DISCL_BACKGROUND =0x00000008
  2899. } DISCLFLAGS;
  2900. typedef enum CONST_DIDEVCAPSFLAGS {
  2901. DIDC_ATTACHED =0x00000001,
  2902. DIDC_POLLEDDEVICE =0x00000002,
  2903. DIDC_EMULATED =0x00000004,
  2904. DIDC_POLLEDDATAFORMAT =0x00000008,
  2905. DIDC_FORCEFEEDBACK =0x00000100,
  2906. DIDC_FFATTACK =0x00000200,
  2907. DIDC_FFFADE =0x00000400,
  2908. DIDC_SATURATION =0x00000800,
  2909. DIDC_POSNEGCOEFFICIENTS =0x00001000,
  2910. DIDC_POSNEGSATURATION =0x00002000,
  2911. DIDC_DEADBAND =0x00004000,
  2912. DIDC_ALIAS =0x00010000,
  2913. DIDC_PHANTOM =0x00020000
  2914. } DIDEVCAPSFLAGS;
  2915. typedef enum CONST_DIDATAFORMATFLAGS {
  2916. DIDF_ABSAXIS =0x00000001,
  2917. DIDF_RELAXIS =0x00000002
  2918. } DIDATAFORMATFLAGS;
  2919. typedef enum CONST_DIDEVICEOBJINSTANCEFLAGS {
  2920. DIDOI_FFACTUATOR =0x00000001,
  2921. DIDOI_FFEFFECTTRIGGER =0x00000002,
  2922. DIDOI_POLLED =0x00008000,
  2923. DIDOI_ASPECTPOSITION =0x00000100,
  2924. DIDOI_ASPECTVELOCITY =0x00000200,
  2925. DIDOI_ASPECTACCEL =0x00000300,
  2926. DIDOI_ASPECTFORCE =0x00000400,
  2927. DIDOI_ASPECTMASK =0x00000F00
  2928. } DIDEVICEOBJINSTANCEFLAGS;
  2929. /*
  2930. typedef enum CONST_DIPROPERTYFLAGS {
  2931. DIPROP_BUFFERSIZE =1,
  2932. DIPROP_AXISMODE =2,
  2933. DIPROPAXISMODE_ABS =0,
  2934. DIPROPAXISMODE_REL =1,
  2935. DIPROP_GRANULARITY =3,
  2936. DIPROP_RANGE =4,
  2937. DIPROP_DEADZONE =5,
  2938. DIPROP_SATURATION =6,
  2939. DIPROP_FFGAIN =7,
  2940. DIPROP_FFLOAD =8,
  2941. DIPROP_AUTOCENTER =9,
  2942. DIPROPAUTOCENTER_OFF =0,
  2943. DIPROPAUTOCENTER_ON =1,
  2944. DIPROP_CALIBRATIONMODE =10,
  2945. DIPROPCALIBRATIONMODE_COOKED= 0,
  2946. DIPROPCALIBRATIONMODE_RAW = 1
  2947. } DIPROPERTYFLAGS;
  2948. */
  2949. typedef enum CONST_DIKEYFLAGS {
  2950. DIK_ESCAPE = 0x01,
  2951. DIK_1 = 0x02,
  2952. DIK_2 = 0x03,
  2953. DIK_3 = 0x04,
  2954. DIK_4 = 0x05,
  2955. DIK_5 = 0x06,
  2956. DIK_6 = 0x07,
  2957. DIK_7 = 0x08,
  2958. DIK_8 = 0x09,
  2959. DIK_9 = 0x0A,
  2960. DIK_0 = 0x0B,
  2961. DIK_MINUS = 0x0C , /* - on main keyboard */
  2962. DIK_EQUALS = 0x0D,
  2963. DIK_BACK = 0x0E , /* backspace */
  2964. DIK_TAB = 0x0F,
  2965. DIK_Q = 0x10,
  2966. DIK_W = 0x11,
  2967. DIK_E = 0x12,
  2968. DIK_R = 0x13,
  2969. DIK_T = 0x14,
  2970. DIK_Y = 0x15,
  2971. DIK_U = 0x16,
  2972. DIK_I = 0x17,
  2973. DIK_O = 0x18,
  2974. DIK_P = 0x19,
  2975. DIK_LBRACKET = 0x1A,
  2976. DIK_RBRACKET = 0x1B,
  2977. DIK_RETURN = 0x1C , /* Enter on main keyboard */
  2978. DIK_LCONTROL = 0x1D,
  2979. DIK_A = 0x1E,
  2980. DIK_S = 0x1F,
  2981. DIK_D = 0x20,
  2982. DIK_F = 0x21,
  2983. DIK_G = 0x22,
  2984. DIK_H = 0x23,
  2985. DIK_J = 0x24,
  2986. DIK_K = 0x25,
  2987. DIK_L = 0x26,
  2988. DIK_SEMICOLON = 0x27,
  2989. DIK_APOSTROPHE = 0x28,
  2990. DIK_GRAVE = 0x29 , /* accent grave */
  2991. DIK_LSHIFT = 0x2A,
  2992. DIK_BACKSLASH = 0x2B,
  2993. DIK_Z = 0x2C,
  2994. DIK_X = 0x2D,
  2995. DIK_C = 0x2E,
  2996. DIK_V = 0x2F,
  2997. DIK_B = 0x30,
  2998. DIK_N = 0x31,
  2999. DIK_M = 0x32,
  3000. DIK_COMMA = 0x33,
  3001. DIK_PERIOD = 0x34 , /* . on main keyboard */
  3002. DIK_SLASH = 0x35 , /* / on main keyboard */
  3003. DIK_RSHIFT = 0x36,
  3004. DIK_MULTIPLY = 0x37 , /* * on numeric keypad */
  3005. DIK_LMENU = 0x38 , /* left Alt */
  3006. DIK_SPACE = 0x39,
  3007. DIK_CAPITAL = 0x3A,
  3008. DIK_F1 = 0x3B,
  3009. DIK_F2 = 0x3C,
  3010. DIK_F3 = 0x3D,
  3011. DIK_F4 = 0x3E,
  3012. DIK_F5 = 0x3F,
  3013. DIK_F6 = 0x40,
  3014. DIK_F7 = 0x41,
  3015. DIK_F8 = 0x42,
  3016. DIK_F9 = 0x43,
  3017. DIK_F10 = 0x44,
  3018. DIK_NUMLOCK = 0x45,
  3019. DIK_SCROLL = 0x46 , /* Scroll Lock */
  3020. DIK_NUMPAD7 = 0x47,
  3021. DIK_NUMPAD8 = 0x48,
  3022. DIK_NUMPAD9 = 0x49,
  3023. DIK_SUBTRACT = 0x4A , /* - on numeric keypad */
  3024. DIK_NUMPAD4 = 0x4B,
  3025. DIK_NUMPAD5 = 0x4C,
  3026. DIK_NUMPAD6 = 0x4D,
  3027. DIK_ADD = 0x4E , /* + on numeric keypad */
  3028. DIK_NUMPAD1 = 0x4F,
  3029. DIK_NUMPAD2 = 0x50,
  3030. DIK_NUMPAD3 = 0x51,
  3031. DIK_NUMPAD0 = 0x52,
  3032. DIK_DECIMAL = 0x53, /* . on numeric keypad */
  3033. DIK_F11 = 0x57,
  3034. DIK_F12 = 0x58 ,
  3035. DIK_F13 = 0x64 , /* (NEC PC98) */
  3036. DIK_F14 = 0x65 , /* (NEC PC98) */
  3037. DIK_F15 = 0x66 , /* (NEC PC98) */
  3038. DIK_KANA = 0x70 , /* (Japanese keyboard) */
  3039. DIK_CONVERT = 0x79 , /* (Japanese keyboard) */
  3040. DIK_NOCONVERT = 0x7B , /* (Japanese keyboard) */
  3041. DIK_YEN = 0x7D , /* (Japanese keyboard) */
  3042. DIK_NUMPADEQUALS = 0x8D , /* = on numeric keypad (NEC PC98) */
  3043. DIK_CIRCUMFLEX = 0x90 , /* (Japanese keyboard) */
  3044. DIK_AT = 0x91 , /* (NEC PC98) */
  3045. DIK_COLON = 0x92 , /* (NEC PC98) */
  3046. DIK_UNDERLINE = 0x93 , /* (NEC PC98) */
  3047. DIK_KANJI = 0x94 , /* (Japanese keyboard) */
  3048. DIK_STOP = 0x95 , /* (NEC PC98) */
  3049. DIK_AX = 0x96 , /* (Japan AX) */
  3050. DIK_UNLABELED = 0x97 , /* (J3100) */
  3051. DIK_NUMPADENTER = 0x9C , /* Enter on numeric keypad */
  3052. DIK_RCONTROL = 0x9D ,
  3053. DIK_NUMPADCOMMA = 0xB3, /* , on numeric keypad (NEC PC98) */
  3054. DIK_DIVIDE = 0xB5, /* / on numeric keypad */
  3055. DIK_SYSRQ = 0xB7,
  3056. DIK_RMENU = 0xB8, /* right Al t */
  3057. DIK_PAUSE = 0xC5, /* Pause */
  3058. DIK_HOME = 0xC7, /* Home on arrow keypad */
  3059. DIK_UP = 0xC8, /* UpArrow on arrow keypad */
  3060. DIK_PRIOR = 0xC9, /* PgUp on arrow keypad */
  3061. DIK_LEFT = 0xCB, /* LeftArrow on arrow keypad */
  3062. DIK_RIGHT = 0xCD, /* RightArrow on arrow keypad */
  3063. DIK_END = 0xCF, /* End on arrow keypad */
  3064. DIK_DOWN = 0xD0, /* DownArrow on arrow keypad */
  3065. DIK_NEXT = 0xD1, /* PgDn on arrow keypad */
  3066. DIK_INSERT = 0xD2, /* Insert on arrow keypad */
  3067. DIK_DELETE = 0xD3, /* Delete on arrow keypad */
  3068. DIK_LWIN = 0xDB, /* Left Windows key */
  3069. DIK_RWIN = 0xDC, /* Right Windows key */
  3070. DIK_APPS = 0xDD, /* AppMenu key */
  3071. } DIKEYFLAGS;
  3072. typedef enum CONST_DINPUT {
  3073. DIPROPRANGE_NOMIN =0x80000000,
  3074. DIPROPRANGE_NOMAX =0x7FFFFFFF,
  3075. /*
  3076. DIEFT_ALL = 0x00000000,
  3077. DIEFT_CONSTANTFORCE = 0x00000001,
  3078. DIEFT_RAMPFORCE = 0x00000002,
  3079. DIEFT_PERIODIC = 0x00000003,
  3080. DIEFT_CONDITION = 0x00000004,
  3081. DIEFT_CUSTOMFORCE = 0x00000005,
  3082. DIEFT_HARDWARE = 0x000000FF,
  3083. DIEFT_FFATTACK = 0x00000200,
  3084. DIEFT_FFFADE = 0x00000400,
  3085. DIEFT_SATURATION = 0x00000800,
  3086. DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
  3087. DIEFT_POSNEGSATURATION = 0x00002000,
  3088. DIEFT_DEADBAND = 0x00004000,
  3089. DI_DEGREES = 100,
  3090. DI_FFNOMINALMAX = 10000,
  3091. DI_SECONDS = 1000000,
  3092. DIEFF_OBJECTIDS = 0x00000001,
  3093. DIEFF_OBJECTOFFSETS = 0x00000002,
  3094. DIEFF_CARTESIAN = 0x00000010,
  3095. DIEFF_POLAR = 0x00000020,
  3096. DIEFF_SPHERICAL = 0x00000040,
  3097. DIEP_DURATION = 0x00000001,
  3098. DIEP_SAMPLEPERIOD = 0x00000002,
  3099. DIEP_GAIN = 0x00000004,
  3100. DIEP_TRIGGERBUTTON = 0x00000008,
  3101. DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
  3102. DIEP_AXES = 0x00000020,
  3103. DIEP_DIRECTION = 0x00000040,
  3104. DIEP_ENVELOPE = 0x00000080,
  3105. DIEP_TYPESPECIFICPARAMS = 0x00000100,
  3106. DIEP_ALLPARAMS = 0x000001FF,
  3107. DIEP_START = 0x20000000,
  3108. DIEP_NORESTART = 0x40000000,
  3109. DIEP_NODOWNLOAD = 0x80000000,
  3110. DIEB_NOTRIGGER = 0xFFFFFFFF,
  3111. DIES_SOLO = 0x00000001,
  3112. DIES_NODOWNLOAD = 0x80000000,
  3113. DIEGES_PLAYING = 0x00000001,
  3114. DIEGES_EMULATED = 0x00000002,
  3115. DISFFC_RESET = 0x00000001,
  3116. DISFFC_STOPALL = 0x00000002,
  3117. DISFFC_PAUSE = 0x00000004,
  3118. DISFFC_CONTINUE = 0x00000008,
  3119. DISFFC_SETACTUATORSON = 0x00000010,
  3120. DISFFC_SETACTUATORSOFF = 0x00000020,
  3121. DIGFFS_EMPTY = 0x00000001,
  3122. DIGFFS_STOPPED = 0x00000002,
  3123. DIGFFS_PAUSED = 0x00000004,
  3124. DIGFFS_ACTUATORSON = 0x00000010,
  3125. DIGFFS_ACTUATORSOFF = 0x00000020,
  3126. DIGFFS_POWERON = 0x00000040,
  3127. DIGFFS_POWEROFF = 0x00000080,
  3128. DIGFFS_SAFETYSWITCHON = 0x00000100,
  3129. DIGFFS_SAFETYSWITCHOFF = 0x00000200,
  3130. DIGFFS_USERFFSWITCHON = 0x00000400,
  3131. DIGFFS_USERFFSWITCHOFF = 0x00000800,
  3132. DIGFFS_DEVICELOST = 0x80000000,
  3133. */
  3134. /*
  3135. Alternate names for keys, to facilitate transition from DOS.
  3136. DIK_BACKSPACE = DIK_BACK , // backspace
  3137. DIK_NUMPADSTAR = DIK_MULTIPLY, // * on numeric keypad
  3138. DIK_LALT = DIK_LMENU , // left Alt
  3139. DIK_CAPSLOCK = DIK_CAPITAL , // CapsLock
  3140. DIK_NUMPADMINUS = DIK_SUBTRACT, // - on numeric keypad
  3141. DIK_NUMPADPLUS = DIK_ADD , // + on numeric keypad
  3142. DIK_NUMPADPERIOD = DIK_DECIMAL, // . on numeric keypad
  3143. DIK_NUMPADSLASH = DIK_DIVIDE, // / on numeric keypad
  3144. DIK_RALT = DIK_RMENU , // right Alt
  3145. DIK_UPARROW = DIK_UP , // UpArrow on arrow keypad
  3146. DIK_PGUP = DIK_PRIOR , // PgUp on arrow keypad
  3147. DIK_LEFTARROW = DIK_LEFT , // LeftArrow on arrow keypad
  3148. DIK_RIGHTARROW = DIK_RIGHT , // RightArrow on arrow keypad
  3149. DIK_DOWNARROW = DIK_DOWN , // DownArrow on arrow keypad
  3150. DIK_PGDN = DIK_NEXT , // PgDn on arrow keypad
  3151. */
  3152. // DIENUM_STOP =0,
  3153. // DIENUM_CONTINUE =1,
  3154. /*
  3155. * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
  3156. * contains mini-driver specific data to be passed by VJoyD to the mini-
  3157. * driver instead of doing a poll.
  3158. */
  3159. // JOY_PASSDRIVERDATA =0x10000000,
  3160. /*
  3161. * Hardware Setting indicating that the device is a headtracker
  3162. */
  3163. // JOY_HWS_ISHEADTRACKER =0x02000000,
  3164. /*
  3165. * Hardware Setting indicating that the VxD is used to replace
  3166. * the standard analog polling
  3167. */
  3168. // JOY_HWS_ISGAMEPORTDRIVER =0x04000000,
  3169. /*
  3170. * Hardware Setting indicating that the driver needs a standard
  3171. * gameport in order to communicate with the device.
  3172. */
  3173. // JOY_HWS_ISANALOGPORTDRIVER =0x08000000,
  3174. /*
  3175. * Hardware Setting indicating that VJoyD should not load this
  3176. * driver, it will be loaded externally and will register with
  3177. * VJoyD of it's own accord.
  3178. */
  3179. // JOY_HWS_AUTOLOAD =0x10000000,
  3180. /*
  3181. * Hardware Setting indicating that the driver acquires any
  3182. * resources needed without needing a devnode through VJoyD.
  3183. */
  3184. // JOY_HWS_NODEVNODE =0x20000000,
  3185. /*
  3186. * Hardware Setting indicating that the VxD can be used as
  3187. * a port 201h emulator.
  3188. */
  3189. // JOY_HWS_ISGAMEPORTEMULATOR =0x40000000,
  3190. /*
  3191. * Usage Setting indicating that the settings are volatile and
  3192. * should be removed if still present on a reboot.
  3193. */
  3194. // JOY_US_VOLATILE =0x00000008,
  3195. DIPROPAXISMODE_ABS =0,
  3196. DIPROPAXISMODE_REL =1,
  3197. DIPROPCALIBRATIONMODE_COOKED=0,
  3198. DIPROPCALIBRATIONMODE_RAW=1,
  3199. DIPROPAUTOCENTER_OFF =0,
  3200. DIPROPAUTOCENTER_ON =1,
  3201. DIEB_NOTRIGGER = 0xFFFFFFFF
  3202. } DINPUTCONSTANTS;
  3203. /****************** DIRECT PLAY********************/
  3204. typedef enum CONST_DSSCLFLAGS {
  3205. DSSCL_NORMAL =0x00000001,
  3206. DSSCL_PRIORITY =0x00000002,
  3207. DSSCL_EXCLUSIVE =0x00000003,
  3208. DSSCL_WRITEPRIMARY =0x00000004
  3209. } DSSCLFLAGS;
  3210. typedef enum CONST_DSSPEAKERFLAGS {
  3211. DSSPEAKER_HEADPHONE =0x00000001,
  3212. DSSPEAKER_MONO =0x00000002,
  3213. DSSPEAKER_QUAD =0x00000003,
  3214. DSSPEAKER_STEREO =0x00000004,
  3215. DSSPEAKER_SURROUND =0x00000005,
  3216. DSSPEAKER_GEOMETRY_MIN =0x00000005, // 5 degrees
  3217. DSSPEAKER_GEOMETRY_NARROW =0x0000000A, // 10 degrees
  3218. DSSPEAKER_GEOMETRY_WIDE =0x00000014, // 20 degrees
  3219. DSSPEAKER_GEOMETRY_MAX =0x000000B4 // 180 degrees
  3220. } DSSPEAKERFLAGS;
  3221. typedef enum CONST_DSBPLAYFLAGS{
  3222. DSBPLAY_DEFAULT =0x00000000,
  3223. DSBPLAY_LOOPING =0x00000001
  3224. } DSBPLAYFLAGS;
  3225. typedef enum CONST_DSBLOCKFLAGS {
  3226. DSBLOCK_DEFAULT =0x00000000,
  3227. DSBLOCK_FROMWRITECURSOR =0x00000001,
  3228. DSBLOCK_ENTIREBUFFER =0x00000002
  3229. } DSBLOCKFLAGS;
  3230. typedef enum CONST_DSCBLOCKFLAGS {
  3231. DSCBLOCK_DEFAULT =0x00000000,
  3232. DSCBLOCK_ENTIREBUFFER =0x00000001
  3233. } DSCBLOCKFLAGS;
  3234. typedef enum CONST_DSBSTATUSFLAGS {
  3235. DSBSTATUS_PLAYING =0x00000001,
  3236. DSBSTATUS_BUFFERLOST =0x00000002,
  3237. DSBSTATUS_LOOPING =0x00000004,
  3238. } DSBSTATUSFLAGS;
  3239. typedef enum CONST_DS3DAPPLYFLAGS {
  3240. DS3D_IMMEDIATE =0x00000000,
  3241. DS3D_DEFERRED =0x00000001
  3242. } DS3DAPPLYFLAGS;
  3243. typedef enum CONST_DS3DMODEFLAGS {
  3244. DS3DMODE_NORMAL =0x00000000,
  3245. DS3DMODE_HEADRELATIVE =0x00000001,
  3246. DS3DMODE_DISABLE =0x00000002
  3247. } DS3DMODEFLAGS;
  3248. typedef enum CONST_DSCBSTATUSFLAGS {
  3249. DSCBSTATUS_CAPTURING =0x00000001,
  3250. DSCBSTATUS_LOOPING =0x00000002
  3251. } DSCBSTATUSFLAGS;
  3252. typedef enum CONST_DSCBSTARTFLAGS {
  3253. DSCBSTART_DEFAULT =0x00000000,
  3254. DSCBSTART_LOOPING =0x00000001
  3255. } DSCBSTARTFLAGS;
  3256. typedef enum CONST_DSCAPSFLAGS {
  3257. DSCAPS_PRIMARYMONO =0x00000001,
  3258. DSCAPS_PRIMARYSTEREO =0x00000002,
  3259. DSCAPS_PRIMARY8BIT =0x00000004,
  3260. DSCAPS_PRIMARY16BIT =0x00000008,
  3261. DSCAPS_CONTINUOUSRATE =0x00000010,
  3262. DSCAPS_EMULDRIVER =0x00000020,
  3263. DSCAPS_CERTIFIED =0x00000040,
  3264. DSCAPS_SECONDARYMONO =0x00000100,
  3265. DSCAPS_SECONDARYSTEREO =0x00000200,
  3266. DSCAPS_SECONDARY8BIT =0x00000400,
  3267. DSCAPS_SECONDARY16BIT =0x00000800
  3268. } DSCAPSFLAGS;
  3269. typedef enum CONST_DSBCAPSFLAGS {
  3270. DSBCAPS_PRIMARYBUFFER =0x00000001,
  3271. DSBCAPS_STATIC =0x00000002,
  3272. DSBCAPS_LOCHARDWARE =0x00000004,
  3273. DSBCAPS_LOCSOFTWARE =0x00000008,
  3274. DSBCAPS_CTRL3D =0x00000010,
  3275. DSBCAPS_CTRLFREQUENCY =0x00000020,
  3276. DSBCAPS_CTRLPAN =0x00000040,
  3277. DSBCAPS_CTRLVOLUME =0x00000080,
  3278. DSBCAPS_CTRLPOSITIONNOTIFY =0x00000100,
  3279. //DSBCAPS_CTRLDEFAULT =0x000000E0,
  3280. //DSBCAPS_CTRLALL =0x000001F0,
  3281. DSBCAPS_STICKYFOCUS =0x00004000,
  3282. DSBCAPS_GLOBALFOCUS =0x00008000,
  3283. DSBCAPS_GETCURRENTPOSITION2 =0x00010000,
  3284. DSBCAPS_MUTE3DATMAXDISTANCE =0x00020000
  3285. } DSBCAPSFLAGS;
  3286. typedef enum CONST_DSCBCAPSFLAGS {
  3287. DSCBCAPS_DEFAULT =0x00000000,
  3288. DSCBCAPS_WAVEMAPPED =0x80000000
  3289. } DSCBCAPSFLAGS;
  3290. typedef enum CONST_DSCCAPSFLAGS {
  3291. DSCCAPS_DEFAULT =0x00000000,
  3292. DSCCAPS_EMULDRIVER =0x00000020
  3293. } DSCCAPSFLAGS;
  3294. typedef enum CONST_DSOUND {
  3295. //KSPROPERTY_SUPPORT_GET =0x00000001,
  3296. //KSPROPERTY_SUPPORT_SET =0x00000002,
  3297. DS3D_MINDISTANCEFACTOR =0,
  3298. DS3D_MAXDISTANCEFACTOR =10,
  3299. DS3D_DEFAULTDISTANCEFACTOR =1,
  3300. DS3D_MINROLLOFFFACTOR =0,
  3301. DS3D_MAXROLLOFFFACTOR =10,
  3302. DS3D_DEFAULTROLLOFFFACTOR =1,
  3303. DS3D_MINDOPPLERFACTOR =0,
  3304. DS3D_MAXDOPPLERFACTOR =10,
  3305. DS3D_DEFAULTDOPPLERFACTOR =1,
  3306. DS3D_DEFAULTMINDISTANCE =1,
  3307. DS3D_DEFAULTMAXDISTANCE =1000000000,
  3308. DS3D_MINCONEANGLE =0,
  3309. DS3D_MAXCONEANGLE =360,
  3310. DS3D_DEFAULTCONEANGLE =360,
  3311. DS3D_DEFAULTCONEOUTSIDEVOLUME = 0,
  3312. DSBFREQUENCY_MIN =100,
  3313. DSBFREQUENCY_MAX =100000,
  3314. DSBFREQUENCY_ORIGINAL =0,
  3315. DSBPAN_LEFT =-10000,
  3316. DSBPAN_CENTER =0,
  3317. DSBPAN_RIGHT =10000,
  3318. DSBVOLUME_MIN =-10000,
  3319. DSBVOLUME_MAX =0,
  3320. DSBSIZE_MIN =4,
  3321. DSBSIZE_MAX =0x0FFFFFFF,
  3322. DSBPN_OFFSETSTOP =0xFFFFFFFF,
  3323. WAVE_FORMAT_PCM =1
  3324. } DSOUNDCONSTANTS;
  3325. /*
  3326. * State enumerants for per-stage texture processing.
  3327. */
  3328. typedef enum CONST_D3DTEXTURESTAGESTATETYPE
  3329. {
  3330. D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */
  3331. D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */
  3332. D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */
  3333. D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */
  3334. D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */
  3335. D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */
  3336. D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */
  3337. D3DTSS_ADDRESS = 12, /* D3DTEXTUREADDRESS for both coordinates */
  3338. D3DTSS_ADDRESSU = 13, /* D3DTEXTUREADDRESS for U coordinate */
  3339. D3DTSS_ADDRESSV = 14, /* D3DTEXTUREADDRESS for V coordinate */
  3340. D3DTSS_BORDERCOLOR = 15, /* D3DCOLOR */
  3341. D3DTSS_MAGFILTER = 16, /* D3DTEXTUREMAGFILTER filter to use for magnification */
  3342. D3DTSS_MINFILTER = 17, /* D3DTEXTUREMINFILTER filter to use for minification */
  3343. D3DTSS_MIPFILTER = 18, /* D3DTEXTUREMIPFILTER filter to use between mipmaps during minification */
  3344. D3DTSS_MAXMIPLEVEL = 20, /* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) */
  3345. D3DTSS_MAXANISOTROPY = 21, /* DWORD maximum anisotropy */
  3346. D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */
  3347. //should be in own enum
  3348. //D3DTSS_TCI_PASSTHRU = 0x00000000,
  3349. //D3DTSS_TCI_CAMERASPACENORMAL = 0x00010000,
  3350. //D3DTSS_TCI_CAMERASPACEPOSITION = 0x00020000,
  3351. //D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x00030000,
  3352. } D3DTEXTURESTAGESTATETYPE;
  3353. typedef enum CONST_D3DTEXCOORDINDEXFLAGS
  3354. {
  3355. D3DTSS_TCI_CAMERASPACENORMAL = 65536,
  3356. D3DTSS_TCI_CAMERASPACEPOSITION = 131072,
  3357. D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 196608,
  3358. D3DTSS_TCI_PASSTHRU = 0,
  3359. } D3DTEXCOORDINDEXFLAGS ;
  3360. typedef enum CONST_D3DTEXTURESTAGESINGLE
  3361. {
  3362. D3DTSS_BUMPENVMAT00 = 7, /* D3DVALUE (bump mapping matrix) */
  3363. D3DTSS_BUMPENVMAT01 = 8, /* D3DVALUE (bump mapping matrix) */
  3364. D3DTSS_BUMPENVMAT10 = 9, /* D3DVALUE (bump mapping matrix) */
  3365. D3DTSS_BUMPENVMAT11 = 10, /* D3DVALUE (bump mapping matrix) */
  3366. D3DTSS_MIPMAPLODBIAS = 19, /* D3DVALUE Mipmap LOD bias */
  3367. D3DTSS_BUMPENVLSCALE = 22, /* D3DVALUE scale for bump map luminance */
  3368. D3DTSS_BUMPENVLOFFSET = 23, /* D3DVALUE offset for bump map luminance */
  3369. } D3DTEXTURESTAGESINGLE ;
  3370. /*
  3371. * Enumerations for COLOROP and ALPHAOP texture blending operations set in
  3372. * texture processing stage controls in D3DRENDERSTATE.
  3373. */
  3374. typedef enum CONST_D3DTEXTUREOP
  3375. {
  3376. // Control
  3377. D3DTOP_DISABLE = 1, // disables stage
  3378. D3DTOP_SELECTARG1 = 2, // the default
  3379. D3DTOP_SELECTARG2 = 3,
  3380. // Modulate
  3381. D3DTOP_MODULATE = 4, // multiply args together
  3382. D3DTOP_MODULATE2X = 5, // multiply and 1 bit
  3383. D3DTOP_MODULATE4X = 6, // multiply and 2 bits
  3384. // Add
  3385. D3DTOP_ADD = 7, // add arguments together
  3386. D3DTOP_ADDSIGNED = 8, // add with -0.5 bias
  3387. D3DTOP_ADDSIGNED2X = 9, // as above but left 1 bit
  3388. D3DTOP_SUBTRACT = 10, // Arg1 - Arg2, with no saturation
  3389. D3DTOP_ADDSMOOTH = 11, // add 2 args, subtract product
  3390. // Arg1 + Arg2 - Arg1*Arg2
  3391. // = Arg1 + (1-Arg1)*Arg2
  3392. // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha)
  3393. D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha
  3394. D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha
  3395. D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRENDERSTATE_TEXTUREFACTOR
  3396. // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha)
  3397. D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha
  3398. D3DTOP_BLENDCURRENTALPHA = 16, // by alpha of current color
  3399. // Specular mapping
  3400. D3DTOP_PREMODULATE = 17, // modulate with next texture before use
  3401. D3DTOP_MODULATEALPHA_ADDCOLOR = 18, // Arg1.RGB + Arg1.A*Arg2.RGB
  3402. // COLOROP only
  3403. D3DTOP_MODULATECOLOR_ADDALPHA = 19, // Arg1.RGB*Arg2.RGB + Arg1.A
  3404. // COLOROP only
  3405. D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB
  3406. // COLOROP only
  3407. D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A
  3408. // COLOROP only
  3409. // Bump mapping
  3410. D3DTOP_BUMPENVMAP = 22, // per pixel env map perturbation
  3411. D3DTOP_BUMPENVMAPLUMINANCE = 23, // with luminance channel
  3412. // This can do either diffuse or specular bump mapping with correct input.
  3413. // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B)
  3414. // where each component has been scaled and offset to make it signed.
  3415. // The result is replicated into all four (including alpha) channels.
  3416. // This is a valid COLOROP only.
  3417. D3DTOP_DOTPRODUCT3 = 24
  3418. } D3DTEXTUREOP;
  3419. typedef enum CONST_D3DTEXTUREMAGFILTER
  3420. {
  3421. D3DTFG_POINT = 1, // nearest
  3422. D3DTFG_LINEAR = 2, // linear interpolation
  3423. D3DTFG_FLATCUBIC = 3, // cubic
  3424. D3DTFG_GAUSSIANCUBIC = 4, // different cubic kernel
  3425. D3DTFG_ANISOTROPIC = 5
  3426. } D3DTEXTUREMAGFILTER;
  3427. typedef enum CONST_D3DTEXTUREMINFILTER
  3428. {
  3429. D3DTFN_POINT = 1, // nearest
  3430. D3DTFN_LINEAR = 2, // linear interpolation
  3431. D3DTFN_ANISOTROPIC = 3,
  3432. } D3DTEXTUREMINFILTER;
  3433. typedef enum CONST_D3DTEXTUREMIPFILTER
  3434. {
  3435. D3DTFP_NONE = 1, // mipmapping disabled (use MAG filter)
  3436. D3DTFP_POINT = 2, // nearest
  3437. D3DTFP_LINEAR = 3 // linear interpolation
  3438. } D3DTEXTUREMIPFILTER;
  3439. typedef enum CONST_DSETUPFLAGS {
  3440. // DSETUP flags. DirectX 5.0 apps should use these flags only.
  3441. DSETUP_DDRAWDRV = 0x00000008,
  3442. DSETUP_DSOUNDDRV = 0x00000010,
  3443. DSETUP_DXCORE = 0x00010000,
  3444. DSETUP_DIRECTX =0x00010018,
  3445. DSETUP_TESTINSTALL =0x00020000
  3446. } DSETUPFLAGS;
  3447. typedef enum CONST_DSETUPCALLBACKFLAGS {
  3448. // DSETUP Message Info Codes, passed to callback as Reason parameter.
  3449. DSETUP_CB_MSG_NOMESSAGE = 0,
  3450. DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS = 1,
  3451. DSETUP_CB_MSG_CANTINSTALL_NT = 2,
  3452. DSETUP_CB_MSG_CANTINSTALL_BETA = 3,
  3453. DSETUP_CB_MSG_CANTINSTALL_NOTWIN32 = 4,
  3454. DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE = 5,
  3455. DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM = 6,
  3456. DSETUP_CB_MSG_PREINSTALL_NT = 7,
  3457. DSETUP_CB_MSG_NOTPREINSTALLEDONNT = 8,
  3458. DSETUP_CB_MSG_SETUP_INIT_FAILED = 9,
  3459. DSETUP_CB_MSG_INTERNAL_ERROR = 10,
  3460. DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE = 11,
  3461. DSETUP_CB_MSG_OUTOFDISKSPACE = 12,
  3462. DSETUP_CB_MSG_BEGIN_INSTALL = 13,
  3463. DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME = 14,
  3464. DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS = 15,
  3465. DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS = 16,
  3466. DSETUP_CB_MSG_FILECOPYERROR = 17,
  3467. DSETUP_CB_UPGRADE_TYPE_MASK =0x000F,
  3468. DSETUP_CB_UPGRADE_KEEP =0x0001,
  3469. DSETUP_CB_UPGRADE_SAFE =0x0002,
  3470. DSETUP_CB_UPGRADE_FORCE =0x0004,
  3471. DSETUP_CB_UPGRADE_UNKNOWN =0x0008,
  3472. DSETUP_CB_UPGRADE_HASWARNINGS =0x0100,
  3473. DSETUP_CB_UPGRADE_CANTBACKUP =0x0200,
  3474. DSETUP_CB_UPGRADE_DEVICE_ACTIVE =0x0800,
  3475. DSETUP_CB_UPGRADE_DEVICE_DISPLAY =0x1000,
  3476. DSETUP_CB_UPGRADE_DEVICE_MEDIA =0x2000
  3477. } DSETUPCALLBACKFLAGS;
  3478. typedef enum CONST_D3DRMANIMATIONFLAGS {
  3479. D3DRMANIMATION_OPEN =0x01,
  3480. D3DRMANIMATION_CLOSED= 0x02,
  3481. D3DRMANIMATION_LINEARPOSITION= 0x04,
  3482. D3DRMANIMATION_SPLINEPOSITION= 0x08,
  3483. D3DRMANIMATION_SCALEANDROTATION= 0x00000010,
  3484. D3DRMANIMATION_POSITION= 0x00000020
  3485. } D3DRMANIMATIONOPTIONS ;
  3486. typedef enum CONST_D3DRMANIMATIONKEYFLAGS {
  3487. D3DRMANIMATION_ROTATEKEY = 0x01,
  3488. D3DRMANIMATION_SCALEKEY = 0x02,
  3489. D3DRMANIMATION_POSITIONKEY = 0x03
  3490. } D3DRMANIMATIONKEYFLAGS;
  3491. typedef enum CONST_DPGROUPFLAGS {
  3492. DPGROUP_DEFAULT=0x0,
  3493. DPGROUP_LOCAL=0x08,
  3494. DPGROUP_STAGINGAREA=0x0800,
  3495. DPGROUP_HIDDEN=0x1000
  3496. } DPGROUPFLAGS;
  3497. typedef enum CONST_DPPLAYERFLAGS {
  3498. DPPLAYER_DEFAULT=0x0,
  3499. DPPLAYER_SERVERPLAYER=0x100,
  3500. DPPLAYER_SPECTATOR=0x200,
  3501. DPPLAYER_LOCAL=0x08,
  3502. //DPPLAYER_OWNER=0x2000 this is an internal dplay flag..
  3503. } DPPLAYERFLAGS;
  3504. typedef enum CONST_DPENUMCONNECTIONFLAGS {
  3505. DPCONNECTION_DIRECTPLAY=1,
  3506. DPCONNECTION_DIRECTPLAYLOBBY=2
  3507. } DPENUMCONNECTIONFLAGS;
  3508. typedef enum CONST_DPCONNECTFLAGS {
  3509. DPCONNECTION_DEFAULT=0,
  3510. DPCONNECTION_RETURNSTATUS=0x80
  3511. } DPCONNECTFLAGS;
  3512. typedef enum CONST_DPENUMPLAYERFLAGS {
  3513. DPENUMPLAYERS_ALL =0x00000000,
  3514. DPENUMPLAYERS_LOCAL =0x00000008,
  3515. DPENUMPLAYERS_REMOTE =0x00000010,
  3516. DPENUMPLAYERS_GROUP =0x00000020,
  3517. DPENUMPLAYERS_SESSION =0x00000080,
  3518. DPENUMPLAYERS_SERVERPLAYER =0x00000100,
  3519. DPENUMPLAYERS_SPECTATOR =0x00000200,
  3520. DPENUMPLAYERS_OWNER=0x2000,
  3521. } DPENUMPLAYERFLAGS;
  3522. typedef enum CONST_DPENUMGROUPFLAGS {
  3523. DPENUMGROUPS_ALL=0x00,
  3524. DPENUMGROUPS_HIDDEN=0x1000,
  3525. DPENUMGROUPS_LOCAL=0x8,
  3526. DPENUMGROUPS_REMOTE=0x10,
  3527. DPENUMGROUPS_SESSION=0x80,
  3528. DPENUMGROUPS_STAGINGAREA=0x0800,
  3529. DPENUMGROUPS_SHORTCUT =0x00000400
  3530. } DPENUMGROUPFLAGS;
  3531. typedef enum CONST_DPENUMSESSIONFLAGS {
  3532. DPENUMSESSIONS_ALL=2,
  3533. DPENUMSESSIONS_ASYNC=0x10,
  3534. DPENUMSESSIONS_AVAILABLE=1,
  3535. DPENUMSESSIONS_PASSWORDREQUIRED=0x40,
  3536. DPENUMSESSIONS_RETURNSTATUS=0x80,
  3537. DPENUMSESSIONS_STOPASYNC=0x10
  3538. } DPENUMSESSIONFLAGS;
  3539. typedef enum CONST_DPGETCAPSFLAGS {
  3540. DPGETCAPS_DEFAULT =0,
  3541. DPGETCAPS_GUARANTEED =1
  3542. } DPGETCAPSFLAGS;
  3543. typedef enum CONST_DPGETFLAGS {
  3544. DPGET_REMOTE =0,
  3545. DPGET_LOCAL = 1
  3546. } DPGETFLAGS;
  3547. typedef enum CONST_DPSETFLAGS {
  3548. DPSET_REMOTE =0,
  3549. DPSET_LOCAL = 1,
  3550. DPSET_GUARANTEED = 2
  3551. } DPSETFLAGS;
  3552. typedef enum CONST_DPMESSAGEQUEUEFLAGS {
  3553. DPMESSAGEQUEUE_SEND = 1,
  3554. DPMESSAGEQUEUE_RECEIVE= 2
  3555. } DPMESSAGEQUEUEFLAGS;
  3556. typedef enum CONST_DPOPENFLAGS {
  3557. DPOPEN_JOIN=0x01,
  3558. DPOPEN_CREATE=0x02,
  3559. DPOPEN_RETURNSTATUS=0x80
  3560. } DPOPENFLAGS;
  3561. typedef enum CONST_DPRECEIVEFLAGS {
  3562. DPRECEIVE_ALL=1,
  3563. DPRECEIVE_PEEK=8,
  3564. DPRECEIVE_TOPLAYER=2,
  3565. DPRECEIVE_FROMPLAYER=4
  3566. } DPRECEIVEFLAGS;
  3567. typedef enum CONST_DPSENDFLAGS {
  3568. DPSEND_DEFAULT =0x00000000,
  3569. DPSEND_GUARANTEED =0x00000001,
  3570. DPSEND_SIGNED =0x00000020,
  3571. DPSEND_ENCRYPTED =0x00000040,
  3572. DPSEND_NOSENDCOMPLETEMSG =0x00000400,
  3573. DPSEND_ASYNC =0x00000200
  3574. } DPSENDFLAGS;
  3575. typedef enum CONST_DPLMSG
  3576. {
  3577. /*
  3578. * This is a message flag used by ReceiveLobbyMessage. It can be
  3579. * returned in the dwMessageFlags parameter to indicate a message from
  3580. * the system.
  3581. */
  3582. DPLMSG_SYSTEM =0x00000001,
  3583. /*
  3584. * This is a message flag used by ReceiveLobbyMessage and SendLobbyMessage.
  3585. * It is used to indicate that the message is a standard lobby message.
  3586. * DPLMSG_SETPROPERTY, DPLMSG_SETPROPERTYRESPONSE, DPLMSG_GETPROPERTY,
  3587. * DPLMSG_GETPROPERTYRESPONSE
  3588. */
  3589. DPLMSG_STANDARD =0x00000002,
  3590. DPLMSG_USERDEFINED =0x00000000
  3591. } DPLMSG;
  3592. typedef enum CONST_DPLWAIT {
  3593. DPLWAIT_DEFAULT =0,
  3594. DPLWAIT_CANCEL =1
  3595. } DPLWAIT;
  3596. typedef enum CONST_DPIDFLAGS {
  3597. DPID_SYSMSG =0,
  3598. DPID_ALLPLAYERS =0,
  3599. DPID_SERVERPLAYER =1,
  3600. DPID_UNKNOWN =0xFFFFFFFF
  3601. } DPIDFLAGS;
  3602. typedef enum CONST_DPSESSIONFLAGS {
  3603. DPSESSION_NEWPLAYERSDISABLED =0x00000001 ,
  3604. DPSESSION_MIGRATEHOST =0x00000004,
  3605. DPSESSION_NOMESSAGEID =0x00000008,
  3606. DPSESSION_JOINDISABLED =0x00000020,
  3607. DPSESSION_KEEPALIVE =0x00000040,
  3608. DPSESSION_NODATAMESSAGES =0x00000080,
  3609. DPSESSION_SECURESERVER =0x00000100,
  3610. DPSESSION_PRIVATE =0x00000200,
  3611. DPSESSION_PASSWORDREQUIRED =0x00000400,
  3612. DPSESSION_MULTICASTSERVER =0x00000800,
  3613. DPSESSION_CLIENTSERVER =0x00001000,
  3614. DPSESSION_DIRECTPLAYPROTOCOL =0x00002000,
  3615. DPSESSION_NOPRESERVEORDER =0x00004000,
  3616. DPSESSION_OPTIMIZELATENCY =0x00008000
  3617. } DPSESSIONFLAGS;
  3618. typedef enum CONST_DPLCONNECTIONFLAGS {
  3619. DPLCONNECTION_CREATESESSION = DPOPEN_CREATE,
  3620. DPLCONNECTION_JOINSESSION = DPOPEN_JOIN,
  3621. } DPLCONNECTIONFLAGS;
  3622. typedef enum CONST_DPSYSMSGTYPES {
  3623. /****************************************************************************
  3624. *
  3625. * DirectPlay system messages and message data structures
  3626. *
  3627. * All system message come 'From' player DPID_SYSMSG. To determine what type
  3628. * of message it is, cast the lpData from Receive to DPMSG_GENERIC and check
  3629. * the dwType member against one of the following DPSYS_xxx constants. Once
  3630. * a match is found, cast the lpData to the corresponding of the DPMSG_xxx
  3631. * structures to access the data of the message.
  3632. *
  3633. ****************************************************************************/
  3634. /*
  3635. * A new player or group has been created in the session
  3636. * Use DPMSG_CREATEPLAYERORGROUP. Check dwPlayerType to see if it
  3637. * is a player or a group.
  3638. */
  3639. DPSYS_CREATEPLAYERORGROUP =0x0003 ,
  3640. /*
  3641. * A player has been deleted from the session
  3642. * Use DPMSG_DESTROYPLAYERORGROUP
  3643. */
  3644. DPSYS_DESTROYPLAYERORGROUP =0x0005 ,
  3645. /*
  3646. * A player has been added to a group
  3647. * Use DPMSG_ADDPLAYERTOGROUP
  3648. */
  3649. DPSYS_ADDPLAYERTOGROUP =0x0007 ,
  3650. /*
  3651. * A player has been removed from a group
  3652. * Use DPMSG_DELETEPLAYERFROMGROUP
  3653. */
  3654. DPSYS_DELETEPLAYERFROMGROUP =0x0021 ,
  3655. /*
  3656. * This DirectPlay object lost its connection with all the
  3657. * other players in the session.
  3658. * Use DPMSG_SESSIONLOST.
  3659. */
  3660. DPSYS_SESSIONLOST =0x0031,
  3661. /*
  3662. * The current host has left the session.
  3663. * This DirectPlay object is now the host.
  3664. * Use DPMSG_HOST.
  3665. */
  3666. DPSYS_HOST =0x0101,
  3667. /*
  3668. * The remote data associated with a player or
  3669. * group has changed. Check dwPlayerType to see
  3670. * if it is a player or a group
  3671. * Use DPMSG_SETPLAYERORGROUPDATA
  3672. */
  3673. DPSYS_SETPLAYERORGROUPDATA =0x0102,
  3674. /*
  3675. * The name of a player or group has changed.
  3676. * Check dwPlayerType to see if it is a player
  3677. * or a group.
  3678. * Use DPMSG_SETPLAYERORGROUPNAME
  3679. */
  3680. DPSYS_SETPLAYERORGROUPNAME =0x0103,
  3681. /*
  3682. * The session description has changed.
  3683. * Use DPMSG_SETSESSIONDESC
  3684. */
  3685. DPSYS_SETSESSIONDESC =0x0104,
  3686. /*
  3687. * A group has been added to a group
  3688. * Use DPMSG_ADDGROUPTOGROUP
  3689. */
  3690. DPSYS_ADDGROUPTOGROUP =0x0105 ,
  3691. /*
  3692. * A group has been removed from a group
  3693. * Use DPMSG_DELETEGROUPFROMGROUP
  3694. */
  3695. DPSYS_DELETEGROUPFROMGROUP =0x0106,
  3696. /*
  3697. * A secure player-player message has arrived.
  3698. * Use DPMSG_SECUREMESSAGE
  3699. */
  3700. DPSYS_SECUREMESSAGE =0x0107,
  3701. /*
  3702. * Start a new session.
  3703. * Use DPMSG_STARTSESSION
  3704. */
  3705. DPSYS_STARTSESSION =0x0108,
  3706. /*
  3707. * A chat message has arrived
  3708. * Use DPMSG_CHAT
  3709. */
  3710. DPSYS_CHAT =0x0109,
  3711. /*
  3712. * The owner of a group has changed
  3713. * Use DPMSG_SETGROUPOWNER
  3714. */
  3715. DPSYS_SETGROUPOWNER =0x010A,
  3716. /*
  3717. * An async send has finished, failed or been cancelled
  3718. * Use DPMSG_SENDCOMPLETE
  3719. */
  3720. DPSYS_SENDCOMPLETE =0x010d,
  3721. /*
  3722. * The application has read the connection settings.
  3723. * It is now O.K. for the lobby client to release
  3724. * its IDirectPlayLobby interface.
  3725. */
  3726. DPLSYS_CONNECTIONSETTINGSREAD =0x00000001,
  3727. /*
  3728. * The application's call to DirectPlayConnect failed
  3729. */
  3730. DPLSYS_DPLAYCONNECTFAILED =0x00000002,
  3731. /*
  3732. * The application has created a DirectPlay session.
  3733. */
  3734. DPLSYS_DPLAYCONNECTSUCCEEDED =0x00000003,
  3735. /*
  3736. * The application has terminated.
  3737. */
  3738. DPLSYS_APPTERMINATED =0x00000004,
  3739. /*
  3740. * The message is a DPLMSG_SETPROPERTY message.
  3741. */
  3742. DPLSYS_SETPROPERTY =0x00000005,
  3743. /*
  3744. * The message is a DPLMSG_SETPROPERTYRESPONSE message.
  3745. */
  3746. DPLSYS_SETPROPERTYRESPONSE =0x00000006,
  3747. /*
  3748. * The message is a DPLMSG_GETPROPERTY message.
  3749. */
  3750. DPLSYS_GETPROPERTY =0x00000007,
  3751. /*
  3752. * The message is a DPLMSG_GETPROPERTYRESPONSE message.
  3753. */
  3754. DPLSYS_GETPROPERTYRESPONSE =0x00000008,
  3755. DPLSYS_NEWCONNECTIONSETTINGS =0x0000000A,
  3756. DPLSYS_NEWSESSIONHOST =0x00000009
  3757. } DPSYSMSGTYPES;
  3758. typedef enum CONST_DPPLAYERTYPEFLAGS{
  3759. DPPLAYERTYPE_GROUP =0x00000000,
  3760. DPPLAYERTYPE_PLAYER =0x00000001
  3761. } DPPLAYERTYPEFLAGS;
  3762. #if 0
  3763. DPESC_TIMEDOUT =0x00000001,
  3764. DPCPA_NOFLOW = 0 ,// no flow control
  3765. DPCPA_XONXOFFFLOW = 1 ,// software flow control
  3766. DPCPA_RTSFLOW = 2 ,// hardware flow control with RTS
  3767. DPCPA_DTRFLOW = 3 ,// hardware flow control with DTR
  3768. DPCPA_RTSDTRFLOW = 4 ,// hardware flow control with RTS and DTR
  3769. DPLAD_SYSTEM = DPLMSG_SYSTEM
  3770. #endif
  3771. typedef enum CONST_D3DSTENCILCAPSFLAGS {
  3772. D3DSTENCILCAPS_KEEP =0x00000001,
  3773. D3DSTENCILCAPS_ZERO =0x00000002,
  3774. D3DSTENCILCAPS_REPLACE =0x00000004,
  3775. D3DSTENCILCAPS_INCRSAT =0x00000008,
  3776. D3DSTENCILCAPS_DECRSAT =0x00000010,
  3777. D3DSTENCILCAPS_INVERT =0x00000020,
  3778. D3DSTENCILCAPS_INCR =0x00000040,
  3779. D3DSTENCILCAPS_DECR =0x00000080
  3780. } D3DSTENCILCAPSFLAGS;
  3781. typedef enum CONST_WAVEFORMATFLAGS {
  3782. WAVE_FORMAT_1M08 =0x00000001, /* 11.025 kHz, Mono, 8-bit */
  3783. WAVE_FORMAT_1S08 =0x00000002, /* 11.025 kHz, Stereo, 8-bit */
  3784. WAVE_FORMAT_1M16 =0x00000004, /* 11.025 kHz, Mono, 16-bit */
  3785. WAVE_FORMAT_1S16 =0x00000008, /* 11.025 kHz, Stereo, 16-bit */
  3786. WAVE_FORMAT_2M08 =0x00000010, /* 22.05 kHz, Mono, 8-bit */
  3787. WAVE_FORMAT_2S08 =0x00000020, /* 22.05 kHz, Stereo, 8-bit */
  3788. WAVE_FORMAT_2M16 =0x00000040, /* 22.05 kHz, Mono, 16-bit */
  3789. WAVE_FORMAT_2S16 =0x00000080, /* 22.05 kHz, Stereo, 16-bit */
  3790. WAVE_FORMAT_4M08 =0x00000100, /* 44.1 kHz, Mono, 8-bit */
  3791. WAVE_FORMAT_4S08 =0x00000200, /* 44.1 kHz, Stereo, 8-bit */
  3792. WAVE_FORMAT_4M16 =0x00000400, /* 44.1 kHz, Mono, 16-bit */
  3793. WAVE_FORMAT_4S16 = 0x00000800 /* 44.1 kHz, Stereo, 16-bit */
  3794. } WAVEFORMATFLAGS;
  3795. typedef enum CONST_DPCAPSFLAGS {
  3796. /*
  3797. * Current Open settings supports all forms of Cancel
  3798. */
  3799. DPCAPS_ASYNCCANCELSUPPORTED =0x00001000,
  3800. /*
  3801. * Current Open settings supports CancelAll, but not Cancel
  3802. */
  3803. DPCAPS_ASYNCCANCELALLSUPPORTED =0x00002000,
  3804. /*
  3805. * Current Open settings supports Send Timeouts for sends
  3806. */
  3807. DPCAPS_SENDTIMEOUTSUPPORTED =0x00004000,
  3808. /*
  3809. * Current Open settings supports send priority
  3810. */
  3811. DPCAPS_SENDPRIORITYSUPPORTED =0x00008000,
  3812. /*
  3813. * Current Open settings supports DPSEND_ASYNC flag
  3814. */
  3815. DPCAPS_ASYNCSUPPORTED =0x00010000,
  3816. DPCAPS_ISHOST =0x00000002,
  3817. DPCAPS_GROUPOPTIMIZED =0x00000008,
  3818. DPCAPS_KEEPALIVEOPTIMIZED =0x00000010,
  3819. DPCAPS_GUARANTEEDOPTIMIZED =0x00000020,
  3820. DPCAPS_GUARANTEEDSUPPORTED =0x00000040,
  3821. DPCAPS_SIGNINGSUPPORTED =0x00000080,
  3822. DPCAPS_ENCRYPTIONSUPPORTED =0x00000100
  3823. } DPCAPSFLAGS;
  3824. typedef enum CONST_DSETUPERR {
  3825. DSETUPERR_SUCCESS_RESTART = 1,
  3826. DSETUPERR_SUCCESS = 0,
  3827. DSETUPERR_BADWINDOWSVERSION = -1,
  3828. DSETUPERR_SOURCEFILENOTFOUND = -2,
  3829. DSETUPERR_BADSOURCESIZE = -3,
  3830. DSETUPERR_BADSOURCETIME = -4,
  3831. DSETUPERR_NOCOPY = -5,
  3832. DSETUPERR_OUTOFDISKSPACE = -6,
  3833. DSETUPERR_CANTFINDINF = -7,
  3834. DSETUPERR_CANTFINDDIR = -8,
  3835. DSETUPERR_INTERNAL = -9,
  3836. DSETUPERR_NTWITHNO3D = -10,
  3837. DSETUPERR_UNKNOWNOS = -11,
  3838. DSETUPERR_USERHITCANCEL = -12,
  3839. DSETUPERR_NOTPREINSTALLEDONNT = -13
  3840. } DSETUPERR;
  3841. typedef enum CONST_DSOUNDERR {
  3842. DS_OK = 0,
  3843. DSERR_ALLOCATED = -2005401590,
  3844. DSERR_CONTROLUNAVAIL = -2005401570,
  3845. DSERR_INVALIDPARAM = -2147024809,
  3846. DSERR_INVALIDCALL = -2005401550,
  3847. DSERR_GENERIC = -2147467259,
  3848. DSERR_PRIOLEVELNEEDED = -2005401530,
  3849. DSERR_OUTOFMEMORY = 7, // -2147024882,
  3850. DSERR_BADFORMAT = -2005401500,
  3851. DSERR_UNSUPPORTED = -2147467263,
  3852. DSERR_NODRIVER = -2005401480,
  3853. DSERR_ALREADYINITIALIZED = -2005401470,
  3854. //DSERR_NOAGGREGATION = -2147467262,
  3855. DSERR_BUFFERLOST = -2005401450,
  3856. DSERR_OTHERAPPHASPRIO = -2005401440,
  3857. DSERR_UNINITIALIZED = -2005401430,
  3858. DSERR_NOINTERFACE = 430 //-2147467262
  3859. } DSOUNDERR;
  3860. typedef enum CONST_DDRAWERR {
  3861. DD_OK = 0,
  3862. //DD_FALSE = 1,
  3863. DDENUMRET_CANCEL = 0,
  3864. DDENUMRET_OK = 1,
  3865. DDERR_ALREADYINITIALIZED = -2005532667,
  3866. DDERR_CANNOTATTACHSURFACE = -2005532662,
  3867. DDERR_CANNOTDETACHSURFACE = -2005532652,
  3868. DDERR_CURRENTLYNOTAVAIL = -2005532632,
  3869. DDERR_EXCEPTION = -2005532617,
  3870. DDERR_GENERIC = -2147467259, //E_FAIL
  3871. DDERR_HEIGHTALIGN = -2005532582,
  3872. DDERR_INCOMPATIBLEPRIMARY = -2005532577,
  3873. DDERR_INVALIDCAPS = -2005532572,
  3874. DDERR_INVALIDCLIPLIST = -2005532562,
  3875. DDERR_INVALIDMODE = -2005532552,
  3876. DDERR_INVALIDOBJECT = -2005532542,
  3877. DDERR_INVALIDPARAMS = 5, //-2147024809, E_INVALIDARG
  3878. DDERR_INVALIDPIXELFORMAT = -2005532527,
  3879. DDERR_INVALIDRECT = -2005532522,
  3880. DDERR_LOCKEDSURFACES = -2005532512,
  3881. DDERR_NO3D = -2005532502,
  3882. DDERR_NOALPHAHW = -2005532492,
  3883. DDERR_NOCLIPLIST = -2005532467,
  3884. DDERR_NOCOLORCONVHW = -2005532462,
  3885. DDERR_NOCOOPERATIVELEVELSET = -2005532460,
  3886. DDERR_NOCOLORKEY = -2005532457,
  3887. DDERR_NOCOLORKEYHW = -2005532452,
  3888. DDERR_NODIRECTDRAWSUPPORT = -2005532450,
  3889. DDERR_NOEXCLUSIVEMODE = -2005532447,
  3890. DDERR_NOFLIPHW = -2005532442,
  3891. DDERR_NOGDI = -2005532432,
  3892. DDERR_NOMIRRORHW = -2005532422,
  3893. DDERR_NOTFOUND = -2005532417,
  3894. DDERR_NOOVERLAYHW = -2005532412,
  3895. DDERR_OVERLAPPINGRECTS = -2005532402,
  3896. DDERR_NORASTEROPHW = -2005532392,
  3897. DDERR_NOROTATIONHW = -2005532382,
  3898. DDERR_NOSTRETCHHW = -2005532362,
  3899. DDERR_NOT4BITCOLOR = -2005532356,
  3900. DDERR_NOT4BITCOLORINDEX = -2005532355,
  3901. DDERR_NOT8BITCOLOR = -2005532352,
  3902. DDERR_NOTEXTUREHW = -2005532342,
  3903. DDERR_NOVSYNCHW = -2005532337,
  3904. DDERR_NOZBUFFERHW = -2005532332,
  3905. DDERR_NOZOVERLAYHW = -2005532322,
  3906. DDERR_OUTOFCAPS = -2005532312,
  3907. DDERR_OUTOFMEMORY = 7, //-2147024882, E_OUTOFMEMORY
  3908. DDERR_OUTOFVIDEOMEMORY = -2005532292,
  3909. DDERR_OVERLAYCANTCLIP = -2005532290,
  3910. DDERR_OVERLAYCOLORKEYONLYONEACTIVE = -2005532288,
  3911. DDERR_PALETTEBUSY = -2005532285,
  3912. DDERR_COLORKEYNOTSET = -2005532272,
  3913. DDERR_SURFACEALREADYATTACHED = -2005532262,
  3914. DDERR_SURFACEALREADYDEPENDENT = -2005532252,
  3915. DDERR_SURFACEBUSY = -2005532242,
  3916. DDERR_CANTLOCKSURFACE = -2005532237,
  3917. DDERR_SURFACEISOBSCURED = -2005532232,
  3918. DDERR_SURFACELOST = -2005532222,
  3919. DDERR_SURFACENOTATTACHED = -2005532212,
  3920. DDERR_TOOBIGHEIGHT = -2005532202,
  3921. DDERR_TOOBIGSIZE = -2005532192,
  3922. DDERR_TOOBIGWIDTH = -2005532182,
  3923. DDERR_UNSUPPORTED = -2147467263,
  3924. DDERR_UNSUPPORTEDFORMAT = -2005532162,
  3925. DDERR_UNSUPPORTEDMASK = -2005532152,
  3926. DDERR_INVALIDSTREAM = -2005532151,
  3927. DDERR_VERTICALBLANKINPROGRESS = -2005532135,
  3928. DDERR_WASSTILLDRAWING = -2005532132,
  3929. DDERR_XALIGN = -2005532112,
  3930. DDERR_INVALIDDIRECTDRAWGUID = -2005532111,
  3931. DDERR_DIRECTDRAWALREADYCREATED = -2005532110,
  3932. DDERR_NODIRECTDRAWHW = -2005532109,
  3933. DDERR_PRIMARYSURFACEALREADYEXISTS = -2005532108,
  3934. DDERR_NOEMULATION = -2005532107,
  3935. DDERR_REGIONTOOSMALL = -2005532106,
  3936. DDERR_CLIPPERISUSINGHWND = -2005532105,
  3937. DDERR_NOCLIPPERATTACHED = -2005532104,
  3938. DDERR_NOHWND = -2005532103,
  3939. DDERR_HWNDSUBCLASSED = -2005532102,
  3940. DDERR_HWNDALREADYSET = -2005532101,
  3941. DDERR_NOPALETTEATTACHED = -2005532100,
  3942. DDERR_NOPALETTEHW = -2005532099,
  3943. DDERR_BLTFASTCANTCLIP = -2005532098,
  3944. DDERR_NOBLTHW = -2005532097,
  3945. DDERR_NODDROPSHW = -2005532096,
  3946. DDERR_OVERLAYNOTVISIBLE = -2005532095,
  3947. DDERR_NOOVERLAYDEST = -2005532094,
  3948. DDERR_INVALIDPOSITION = -2005532093,
  3949. DDERR_NOTAOVERLAYSURFACE = -2005532092,
  3950. DDERR_EXCLUSIVEMODEALREADYSET = -2005532091,
  3951. DDERR_NOTFLIPPABLE = -2005532090,
  3952. DDERR_CANTDUPLICATE = -2005532089,
  3953. DDERR_NOTLOCKED = -2005532088,
  3954. DDERR_CANTCREATEDC = -2005532087,
  3955. DDERR_NODC = -2005532086,
  3956. DDERR_WRONGMODE = -2005532085,
  3957. DDERR_IMPLICITLYCREATED = -2005532084,
  3958. DDERR_NOTPALETTIZED = -2005532083,
  3959. DDERR_UNSUPPORTEDMODE = -2005532082,
  3960. DDERR_NOMIPMAPHW = -2005532081,
  3961. DDERR_INVALIDSURFACETYPE = -2005532080,
  3962. DDERR_NOOPTIMIZEHW = -2005532072,
  3963. DDERR_NOTLOADED = -2005532071,
  3964. DDERR_NOFOCUSWINDOW = -2005532070,
  3965. DDERR_DCALREADYCREATED = -2005532052,
  3966. DDERR_NONONLOCALVIDMEM = -2005532042,
  3967. DDERR_CANTPAGELOCK = -2005532032,
  3968. DDERR_CANTPAGEUNLOCK = -2005532012,
  3969. DDERR_NOTPAGELOCKED = -2005531992,
  3970. DDERR_MOREDATA = -2005531982,
  3971. DDERR_EXPIRED = -2005531981,
  3972. DDERR_VIDEONOTACTIVE = -2005531977,
  3973. DDERR_DEVICEDOESNTOWNSURFACE = -2005531973,
  3974. DDERR_NOTINITIALIZED = -2147221008,
  3975. DDERR_NOSTEREOHARDWARE = 0x887600B5,
  3976. DDERR_NOSURFACELEFT =0x887600B6
  3977. } DDRAWERR;
  3978. typedef enum CONST_D3DIMERR {
  3979. D3D_OK = 0,
  3980. D3DERR_BADMAJORVERSION = -2005531972,
  3981. D3DERR_BADMINORVERSION = -2005531971,
  3982. D3DERR_INVALID_DEVICE = -2005531967,
  3983. D3DERR_INITFAILED = -2005531966,
  3984. D3DERR_DEVICEAGGREGATED = -2005531965,
  3985. //D3DERR_EXECUTE_CREATE_FAILED = -2005531962,
  3986. //D3DERR_EXECUTE_DESTROY_FAILED = -2005531961,
  3987. //D3DERR_EXECUTE_LOCK_FAILED = -2005531960,
  3988. //D3DERR_EXECUTE_UNLOCK_FAILED = -2005531959,
  3989. //D3DERR_EXECUTE_LOCKED = -2005531958,
  3990. //D3DERR_EXECUTE_NOT_LOCKED = -2005531957,
  3991. //D3DERR_EXECUTE_FAILED = -2005531956,
  3992. //D3DERR_EXECUTE_CLIPPED_FAILED = -2005531955,
  3993. D3DERR_TEXTURE_NO_SUPPORT = -2005531952,
  3994. D3DERR_TEXTURE_CREATE_FAILED = -2005531951,
  3995. D3DERR_TEXTURE_DESTROY_FAILED = -2005531950,
  3996. D3DERR_TEXTURE_LOCK_FAILED = -2005531949,
  3997. D3DERR_TEXTURE_UNLOCK_FAILED = -2005531948,
  3998. D3DERR_TEXTURE_LOAD_FAILED = -2005531947,
  3999. D3DERR_TEXTURE_SWAP_FAILED = -2005531946,
  4000. D3DERR_TEXTURE_LOCKED = -2005531945,
  4001. D3DERR_TEXTURE_NOT_LOCKED = -2005531944,
  4002. D3DERR_TEXTURE_GETSURF_FAILED = -2005531943,
  4003. D3DERR_MATRIX_CREATE_FAILED = -2005531942,
  4004. D3DERR_MATRIX_DESTROY_FAILED = -2005531941,
  4005. D3DERR_MATRIX_SETDATA_FAILED = -2005531940,
  4006. D3DERR_MATRIX_GETDATA_FAILED = -2005531939,
  4007. D3DERR_SETVIEWPORTDATA_FAILED = -2005531938,
  4008. D3DERR_INVALIDCURRENTVIEWPORT = -2005531937,
  4009. D3DERR_INVALIDPRIMITIVETYPE = -2005531936,
  4010. D3DERR_INVALIDVERTEXTYPE = -2005531935,
  4011. D3DERR_TEXTURE_BADSIZE = -2005531934,
  4012. D3DERR_INVALIDRAMPTEXTURE = -2005531933,
  4013. D3DERR_MATERIAL_CREATE_FAILED = -2005531932,
  4014. D3DERR_MATERIAL_DESTROY_FAILED = -2005531931,
  4015. D3DERR_MATERIAL_SETDATA_FAILED = -2005531930,
  4016. D3DERR_MATERIAL_GETDATA_FAILED = -2005531929,
  4017. D3DERR_INVALIDPALETTE = -2005531928,
  4018. D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY = -2005531927,
  4019. D3DERR_ZBUFF_NEEDS_VIDEOMEMORY = -2005531926,
  4020. D3DERR_SURFACENOTINVIDMEM = -2005531925,
  4021. D3DERR_LIGHT_SET_FAILED = -2005531922,
  4022. D3DERR_LIGHTHASVIEWPORT = -2005531921,
  4023. D3DERR_LIGHTNOTINTHISVIEWPORT = -2005531920,
  4024. D3DERR_SCENE_IN_SCENE = -2005531912,
  4025. D3DERR_SCENE_NOT_IN_SCENE = -2005531911,
  4026. D3DERR_SCENE_BEGIN_FAILED = -2005531910,
  4027. D3DERR_SCENE_END_FAILED = -2005531909,
  4028. D3DERR_INBEGIN = -2005531902,
  4029. D3DERR_NOTINBEGIN = -2005531901,
  4030. D3DERR_NOVIEWPORTS = -2005531900,
  4031. D3DERR_VIEWPORTDATANOTSET = -2005531899,
  4032. D3DERR_VIEWPORTHASNODEVICE = -2005531898,
  4033. D3DERR_NOCURRENTVIEWPORT = -2005531897,
  4034. D3DERR_INVALIDVERTEXFORMAT = -2005530624,
  4035. D3DERR_COLORKEYATTACHED = -2005530622,
  4036. D3DERR_VERTEXBUFFEROPTIMIZED = -2005530612,
  4037. D3DERR_VBUF_CREATE_FAILED = -2005530611,
  4038. D3DERR_VERTEXBUFFERLOCKED = -2005530610,
  4039. D3DERR_ZBUFFER_NOTPRESENT = -2005530602,
  4040. D3DERR_STENCILBUFFER_NOTPRESENT = -2005530601,
  4041. D3DERR_WRONGTEXTUREFORMAT = -2005530600,
  4042. D3DERR_UNSUPPORTEDCOLOROPERATION = -2005530599,
  4043. D3DERR_UNSUPPORTEDCOLORARG = -2005530598,
  4044. D3DERR_UNSUPPORTEDALPHAOPERATION = -2005530597,
  4045. D3DERR_UNSUPPORTEDALPHAARG = -2005530596,
  4046. D3DERR_TOOMANYOPERATIONS = -2005530595,
  4047. D3DERR_CONFLICTINGTEXTUREFILTER = -2005530594,
  4048. D3DERR_UNSUPPORTEDFACTORVALUE = -2005530593,
  4049. D3DERR_CONFLICTINGRENDERSTATE = -2005530591,
  4050. D3DERR_UNSUPPORTEDTEXTUREFILTER = -2005530590,
  4051. D3DERR_TOOMANYPRIMITIVES = -2005530589,
  4052. D3DERR_INVALIDMATRIX = -2005530588,
  4053. D3DERR_TOOMANYVERTICES = -2005530587,
  4054. D3DERR_CONFLICTINGTEXTUREPALETTE = -2005530586,
  4055. D3DERR_INVALIDSTATEBLOCK =0x88760834,
  4056. D3DERR_INBEGINSTATEBLOCK =0x88760835,
  4057. D3DERR_NOTINBEGINSTATEBLOCK =0x88760836,
  4058. D3DERR_VERTEXBUFFERUNLOCKFAILED =0x8876080F,
  4059. } D3DIMERR;
  4060. typedef enum CONST_DPLAYERR {
  4061. DP_OK = 0,
  4062. DPERR_ALREADYINITIALIZED = -2005467131,
  4063. DPERR_ACCESSDENIED = -2005467126,
  4064. DPERR_ACTIVEPLAYERS = -2005467116,
  4065. DPERR_BUFFERTOOSMALL = -2005467106,
  4066. DPERR_CANTADDPLAYER = -2005467096,
  4067. DPERR_CANTCREATEGROUP = -2005467086,
  4068. DPERR_CANTCREATEPLAYER = -2005467076,
  4069. DPERR_CANTCREATESESSION = -2005467066,
  4070. DPERR_CAPSNOTAVAILABLEYET = -2005467056,
  4071. DPERR_EXCEPTION = -2005467046,
  4072. DPERR_GENERIC = -2147467259, //E_FAIL
  4073. DPERR_INVALIDFLAGS = -2005467016,
  4074. DPERR_INVALIDOBJECT = -2005467006,
  4075. DPERR_INVALIDPARAM = -2147024809,
  4076. DPERR_INVALIDPARAMS = -2147024809,
  4077. DPERR_INVALIDPLAYER = -2005466986,
  4078. DPERR_INVALIDGROUP = -2005466981,
  4079. DPERR_NOCAPS = -2005466976,
  4080. DPERR_NOCONNECTION = -2005466966,
  4081. //DPERR_NOMEMORY = 7, //2147024882, E_OUTOFMEMORY
  4082. DPERR_OUTOFMEMORY =7, // -2147024882,
  4083. DPERR_NOMESSAGES = -2005466946,
  4084. DPERR_NONAMESERVERFOUND = -2005466936,
  4085. DPERR_NOPLAYERS = -2005466926,
  4086. DPERR_NOSESSIONS = -2005466916,
  4087. DPERR_PENDING = -2147024889, //0x8007007
  4088. DPERR_SENDTOOBIG = -2005466906,
  4089. DPERR_TIMEOUT = -2005466896,
  4090. DPERR_UNAVAILABLE = -2005466886,
  4091. DPERR_UNSUPPORTED = 445, //-2147467263, E_NOTIMPL
  4092. DPERR_BUSY = -2005466866,
  4093. DPERR_USERCANCEL = -2005466856,
  4094. DPERR_NOINTERFACE = 430,//-2147467262,
  4095. DPERR_CANNOTCREATESERVER = -2005466846,
  4096. DPERR_PLAYERLOST = -2005466836,
  4097. DPERR_SESSIONLOST = -2005466826,
  4098. DPERR_UNINITIALIZED = -2005466816,
  4099. DPERR_NONEWPLAYERS = -2005466806,
  4100. DPERR_INVALIDPASSWORD = -2005466796,
  4101. DPERR_CONNECTING = -2005466786,
  4102. DPERR_CONNECTIONLOST = -2005466776,
  4103. DPERR_UNKNOWNMESSAGE = -2005466766,
  4104. DPERR_CANCELFAILED = -2005466756,
  4105. DPERR_INVALIDPRIORITY = -2005466746,
  4106. //DPERR_NOTHANDLED = -2005466736,
  4107. DPERR_CANCELLED = -2005466726,
  4108. DPERR_ABORTED = -2005466716,
  4109. DPERR_BUFFERTOOLARGE = -2005466136,
  4110. DPERR_CANTCREATEPROCESS = -2005466126,
  4111. DPERR_APPNOTSTARTED = -2005466116,
  4112. DPERR_INVALIDINTERFACE = -2005466106,
  4113. //DPERR_NOSERVICEPROVIDER = -2005466096,
  4114. DPERR_UNKNOWNAPPLICATION = -2005466086,
  4115. DPERR_NOTLOBBIED = -2005466066,
  4116. //DPERR_SERVICEPROVIDERLOADED = -2005466056,
  4117. //DPERR_ALREADYREGISTERED = -2005466046,
  4118. //DPERR_NOTREGISTERED = -2005466036,
  4119. DPERR_AUTHENTICATIONFAILED = -2005465136,
  4120. DPERR_CANTLOADSSPI = -2005465126,
  4121. DPERR_ENCRYPTIONFAILED = -2005465116,
  4122. DPERR_SIGNFAILED = -2005465106,
  4123. DPERR_CANTLOADSECURITYPACKAGE = -2005465096,
  4124. DPERR_ENCRYPTIONNOTSUPPORTED = -2005465086,
  4125. DPERR_CANTLOADCAPI = -2005465076,
  4126. DPERR_NOTLOGGEDIN = -2005465066,
  4127. DPERR_LOGONDENIED = -2005465056,
  4128. //E_NO_AUTHENTICATING_AUTHORITY=0x80090311,
  4129. } DPLAYERR;
  4130. typedef enum CONST_DINPUTERR{
  4131. DI_OK = 0,
  4132. DI_BUFFEROVERFLOW = 0x80040260,
  4133. //DI_NOTATTACHED = 1,
  4134. //DI_BUFFEROVERFLOW = 1,
  4135. //DI_PROPNOEFFECT = 1,
  4136. //DI_NOEFFECT = 1,
  4137. //DI_POLLEDDEVICE = 2,
  4138. //DI_DOWNLOADSKIPPED = 3,
  4139. //DI_EFFECTRESTARTED = 4,
  4140. //DI_TRUNCATED = 8,
  4141. //DI_TRUNCATEDANDRESTARTED = 12,
  4142. DIERR_INVALIDHANDLE = 0x80070006,
  4143. DIERR_OLDDIRECTINPUTVERSION = 0x8007047E,
  4144. DIERR_BETADIRECTINPUTVERSION = 0x80070481,
  4145. DIERR_BADDRIVERVER = 0x80070077,
  4146. DIERR_DEVICENOTREG = 0x80040154,
  4147. DIERR_NOTFOUND = 0x80070002,
  4148. DIERR_OBJECTNOTFOUND = 0x80070002,
  4149. DIERR_INVALIDPARAM = 5, //0x80070057,
  4150. DIERR_NOINTERFACE =430,// 0x80004002,
  4151. DIERR_GENERIC = 0x80004005,
  4152. DIERR_OUTOFMEMORY = 7, //0x8007000E,
  4153. DIERR_UNSUPPORTED = 445 ,//0x80004001,
  4154. DIERR_NOTINITIALIZED = 0x80070015,
  4155. DIERR_ALREADYINITIALIZED = 0x800704DF,
  4156. DIERR_INPUTLOST = 0x8007001E,
  4157. DIERR_ACQUIRED = 0x800700AA,
  4158. DIERR_NOTACQUIRED = 0x8007000C,
  4159. DIERR_NOAGGREGATION = 0x80004002,
  4160. DIERR_OTHERAPPHASPRIO = 0x80070005,
  4161. DIERR_READONLY = 0x80070005,
  4162. DIERR_HANDLEEXISTS = 0x80070005,
  4163. E_PENDING = 0x80070007,
  4164. DIERR_INSUFFICIENTPRIVS = 0x80040200,
  4165. DIERR_DEVICEFULL = 0x80040201,
  4166. DIERR_MOREDATA = 0x80040202,
  4167. DIERR_NOTDOWNLOADED = 0x80040203,
  4168. DIERR_HASEFFECTS = 0x80040204,
  4169. DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205,
  4170. DIERR_INCOMPLETEEFFECT = 0x80040206,
  4171. DIERR_NOTBUFFERED = 0x80040207,
  4172. DIERR_EFFECTPLAYING = 0x80040208
  4173. } DINPUTERR;
  4174. typedef enum CONST_D3DRMERR {
  4175. D3DRM_OK = 0,
  4176. D3DRMERR_BADOBJECT = -2005531891,
  4177. D3DRMERR_BADTYPE = -2005531890,
  4178. D3DRMERR_BADALLOC = -2005531889,
  4179. D3DRMERR_FACEUSED = -2005531888,
  4180. D3DRMERR_NOTFOUND = -2005531887,
  4181. D3DRMERR_NOTDONEYET = -2005531886,
  4182. D3DRMERR_FILENOTFOUND = -2005531885,
  4183. D3DRMERR_BADFILE = -2005531884,
  4184. D3DRMERR_BADDEVICE = -2005531883,
  4185. D3DRMERR_BADVALUE = -2005531882,
  4186. D3DRMERR_BADMAJORVERSION = -2005531881,
  4187. D3DRMERR_BADMINORVERSION = -2005531880,
  4188. D3DRMERR_UNABLETOEXECUTE = -2005531879,
  4189. D3DRMERR_LIBRARYNOTFOUND = -2005531878,
  4190. D3DRMERR_INVALIDLIBRARY = -2005531877,
  4191. D3DRMERR_PENDING = -2005531876,
  4192. D3DRMERR_NOTENOUGHDATA = -2005531875,
  4193. D3DRMERR_REQUESTTOOLARGE = -2005531874,
  4194. D3DRMERR_REQUESTTOOSMALL = -2005531873,
  4195. D3DRMERR_CONNECTIONLOST = -2005531872,
  4196. D3DRMERR_LOADABORTED = -2005531871,
  4197. D3DRMERR_NOINTERNET = -2005531870,
  4198. D3DRMERR_BADCACHEFILE = -2005531869,
  4199. D3DRMERR_BOXNOTSET = -2005531868,
  4200. D3DRMERR_BADPMDATA = -2005531867,
  4201. D3DRMERR_CLIENTNOTREGISTERED = -2005531866,
  4202. D3DRMERR_NOTCREATEDFROMDDS = -2005531865,
  4203. D3DRMERR_NOSUCHKEY = -2005531864,
  4204. D3DRMERR_INCOMPATABLEKEY = -2005531863,
  4205. D3DRMERR_ELEMENTINUSE = -2005531862,
  4206. D3DRMERR_TEXTUREFORMATNOTFOUND = -2005531861,
  4207. D3DRMERR_NOTAGGREGATED = -2005531860
  4208. } D3DRMERR;
  4209. typedef enum CONST_DICOMMONDATAFORMATS
  4210. {
  4211. DIFORMAT_KEYBOARD=1,
  4212. DIFORMAT_MOUSE=2,
  4213. DIFORMAT_JOYSTICK=3,
  4214. DIFORMAT_JOYSTICK2=4
  4215. } DICOMMONDATAFORMATS;
  4216. typedef enum CONST_D3DVERTEXCOMPONENT {
  4217. D3DVERTCOMP_POSITION =1,
  4218. D3DVERTCOMP_NORMAL =2,
  4219. D3DVERTCOMP_DIFFUSE =3,
  4220. D3DVERTCOMP_SPECULAR =4,
  4221. D3DVERTCOMP_TEXTURE1 =5,
  4222. D3DVERTCOMP_TEXTURE2 =6,
  4223. D3DVERTCOMP_TEXTURE3 =7,
  4224. D3DVERTCOMP_TEXTURE4 =8,
  4225. D3DVERTCOMP_TEXTURE5 =9,
  4226. D3DVERTCOMP_TEXTURE6 =10,
  4227. D3DVERTCOMP_TEXTURE7 =11,
  4228. D3DVERTCOMP_TEXTURE8 =12
  4229. } D3DVERTEXCOMPONENT;
  4230. typedef enum CONST_D3DMATERIALCOLORSOURCE
  4231. {
  4232. D3DMCS_MATERIAL=0,
  4233. D3DMCS_COLOR1=1,
  4234. D3DMCS_COLOR2=2
  4235. } CONST_D3DMATERIALCOLORSOURCE;
  4236. #if 0
  4237. typedef enum CONST_DDALPHACAPSFLAGS
  4238. {
  4239. DDALPHACAPS_BLTALPHAPIXELS = 0x00000001,
  4240. DDALPHACAPS_BLTSATURATE = 0x00000002,
  4241. DDALPHACAPS_BLTPREMULT = 0x00000004,
  4242. DDALPHACAPS_BLTNONPREMULT = 0x00000008,
  4243. DDALPHACAPS_BLTARGBSCALE1F = 0x00000010,
  4244. DDALPHACAPS_BLTARGBSCALE2F = 0x00000020,
  4245. DDALPHACAPS_BLTARGBSCALE4F = 0x00000040,
  4246. DDALPHACAPS_BLTALPHAFILL = 0x00000080,
  4247. DDALPHACAPS_BLTALPHAANDARGBSCALING= 0x00000100,
  4248. DDALPHACAPS_OVERLAYALPHAPIXELS = 0x00010000,
  4249. DDALPHACAPS_OVERLAYSATURATE = 0x00020000,
  4250. DDALPHACAPS_OVERLAYPREMULT = 0x00040000,
  4251. DDALPHACAPS_OVERLAYNONPREMULT = 0x00080000,
  4252. DDALPHACAPS_OVERLAYARGBSCALE1F = 0x00100000,
  4253. DDALPHACAPS_OVERLAYARGBSCALE2F = 0x00200000,
  4254. DDALPHACAPS_OVERLAYARGBSCALE4F = 0x00400000,
  4255. DDALPHACAPS_OVERLAYALPHAANDKEYDEST = 0x00800000,
  4256. DDALPHACAPS_OVERLAYALPHAANDARGBSCALING = 0x01000000
  4257. } CONST_DDALPHACAPSFLAGS;
  4258. #endif
  4259. #if 0
  4260. typedef enum CONST_DDFILTCAPSFLAGS
  4261. {
  4262. DDFILTCAPS_BLTQUALITYFILTER =0x00000001,
  4263. DDFILTCAPS_BLTCANDISABLEFILTER =0x00000002,
  4264. DDFILTCAPS_BLTTRANSPBORDER =0x00000004
  4265. } CONST_DDFILTCAPSFLAGS;
  4266. #endif
  4267. typedef enum CONST_DMUS
  4268. {
  4269. DMUS_MAXSUBCHORD=8,
  4270. DMUS_TEMPO_MAX =350,
  4271. DMUS_TEMPO_MIN = 10
  4272. // DMUSB_LOADED =0, not needed according to a-perterd
  4273. // DMUSB_DEFAULT =2,
  4274. } CONST_DMUS;
  4275. typedef enum CONST_DMUS_CURVES
  4276. {
  4277. DMUS_CURVES_LINEAR = 0,
  4278. DMUS_CURVES_INSTANT = 1,
  4279. DMUS_CURVES_EXP = 2,
  4280. DMUS_CURVES_LOG = 3,
  4281. DMUS_CURVES_SINE = 4
  4282. } CONST_DMUS_CURVES;
  4283. typedef enum CONST_DMUS_CURVET
  4284. {
  4285. DMUS_CURVET_PBCURVE = 0x03,
  4286. DMUS_CURVET_CCCURVE = 0x04,
  4287. DMUS_CURVET_MATCURVE = 0x05,
  4288. DMUS_CURVET_PATCURVE = 0x06
  4289. } CONST_DMUS_CURVET;
  4290. /* The following correspond to GUID_NOTIFICATION_SEGMENT */
  4291. typedef enum CONST_DMUS_NOTIFICATION_SUBTYPE
  4292. {
  4293. DMUS_NOTIFICATION_MUSICSTARTED =0,
  4294. DMUS_NOTIFICATION_MUSICSTOPPED =1,
  4295. DMUS_NOTIFICATION_MEASUREBEAT =0,
  4296. DMUS_NOTIFICATION_CHORD =0,
  4297. DMUS_NOTIFICATION_GROOVE =0,
  4298. DMUS_NOTIFICATION_EMBELLISHMENT =1,
  4299. DMUS_NOTIFICATION_SEGSTART =0,
  4300. DMUS_NOTIFICATION_SEGEND =1,
  4301. DMUS_NOTIFICATION_SEGALMOSTEND =2,
  4302. DMUS_NOTIFICATION_SEGLOOP =3,
  4303. DMUS_NOTIFICATION_SEGABORT =4
  4304. } CONST_DMUS_NOTIFICATION_SUBTYPE;
  4305. typedef enum CONST_DMUS_COMMANDT_TYPES
  4306. {
  4307. DMUS_COMMANDT_GROOVE = 0,
  4308. DMUS_COMMANDT_FILL = 1,
  4309. DMUS_COMMANDT_INTRO = 2,
  4310. DMUS_COMMANDT_BREAK = 3,
  4311. DMUS_COMMANDT_END = 4,
  4312. DMUS_COMMANDT_ENDANDINTRO = 5
  4313. } CONST_DMUS_COMMANDT_TYPES;
  4314. typedef enum CONST_DMUS_SHAPET_TYPES
  4315. {
  4316. DMUS_SHAPET_FALLING = 0,
  4317. DMUS_SHAPET_LEVEL = 1,
  4318. DMUS_SHAPET_LOOPABLE = 2,
  4319. DMUS_SHAPET_LOUD = 3,
  4320. DMUS_SHAPET_QUIET = 4,
  4321. DMUS_SHAPET_PEAKING = 5,
  4322. DMUS_SHAPET_RANDOM = 6,
  4323. DMUS_SHAPET_RISING = 7,
  4324. DMUS_SHAPET_SONG = 8
  4325. } CONST_DMUS_SHAPET_TYPES;
  4326. typedef enum CONST_DMUS_COMPOSEF_FLAGS
  4327. {
  4328. DMUS_COMPOSEF_NONE = 0,
  4329. DMUS_COMPOSEF_ALIGN = 0x1,
  4330. DMUS_COMPOSEF_OVERLAP = 0x2,
  4331. DMUS_COMPOSEF_IMMEDIATE = 0x4,
  4332. DMUS_COMPOSEF_GRID = 0x8,
  4333. DMUS_COMPOSEF_BEAT = 0x10,
  4334. DMUS_COMPOSEF_MEASURE = 0x20,
  4335. DMUS_COMPOSEF_AFTERPREPARETIME = 0x40,
  4336. DMUS_COMPOSEF_MODULATE = 0x1000,
  4337. DMUS_COMPOSEF_LONG = 0x2000
  4338. } CONST_DMUS_COMPOSEF_FLAGS;
  4339. typedef enum CONST_DMUS_PMSGF_FLAGS
  4340. {
  4341. DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid */
  4342. DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid */
  4343. DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately */
  4344. DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time */
  4345. DMUS_PMSGF_TOOL_ATTIME = 16, /* if PMSG should be processed at the time stamp */
  4346. DMUS_PMSGF_TOOL_FLUSH = 32 /* if PMSG is being flushed */
  4347. /* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the */
  4348. /* DMUS_PMSG's dwFlags member. */
  4349. } CONST_DMUS_PMSGF_FLAGS;
  4350. #if 0
  4351. // NOT NEEDED
  4352. typedef enum enumDMUS_PMSGT_TYPES
  4353. {
  4354. DMUS_PMSGT_MIDI = 0, /* MIDI short message */
  4355. DMUS_PMSGT_NOTE = 1, /* Interactive Music Note */
  4356. DMUS_PMSGT_SYSEX = 2, /* MIDI long message (system exclusive message) */
  4357. DMUS_PMSGT_NOTIFICATION = 3, /* Notification message */
  4358. DMUS_PMSGT_TEMPO = 4, /* Tempo message */
  4359. DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve */
  4360. DMUS_PMSGT_TIMESIG = 6, /* Time signature */
  4361. DMUS_PMSGT_PATCH = 7, /* Patch changes */
  4362. DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages */
  4363. DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority */
  4364. DMUS_PMSGT_STOP = 10, /* Stop message */
  4365. DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh */
  4366. DMUS_PMSGT_USER = 255 /* User message */
  4367. } CONST_DMUS_PMSGT_TYPES;
  4368. #endif
  4369. typedef enum CONST_DMUS_SEGF_FLAGS
  4370. {
  4371. DMUS_SEGF_REFTIME = 64, /* time parameter is in reference time */
  4372. DMUS_SEGF_SECONDARY = 128, /* secondary segment */
  4373. DMUS_SEGF_QUEUE = 256, /* queue at the end of the primary segment queue (primary only) */
  4374. DMUS_SEGF_CONTROL = 512, /* play as a control track (secondary segments only) */
  4375. DMUS_SEGF_AFTERPREPARETIME = 0x400, /* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) */
  4376. DMUS_SEGF_GRID = 0x800, /* play on grid boundary */
  4377. DMUS_SEGF_BEAT = 0x1000, /* play on beat boundary */
  4378. DMUS_SEGF_MEASURE = 0x2000, /* play on measure boundary */
  4379. DMUS_SEGF_DEFAULT = 0x4000, /* use segment's default boundary */
  4380. DMUS_SEGF_NOINVALIDATE = 0x8000 /* play without invalidating the currently playing segment(s) */
  4381. } CONST_DMUS_SEGF_FLAGS;
  4382. #if 0
  4383. //NOT NEEDED
  4384. typedef enum enumDMUS_TRACKF_FLAGS
  4385. {
  4386. DMUS_TRACKF_SEEK = 1, /* set on a seek */
  4387. DMUS_TRACKF_LOOP = 2, /* set on a loop (repeat) */
  4388. DMUS_TRACKF_START = 4, /* set on first call to Play */
  4389. DMUS_TRACKF_FLUSH = 8, /* set when this call is in response to a flush on the perfomance */
  4390. DMUS_TRACKF_DIRTY = 16, /* set when the track should consider any cached values from a previous call to GetParam to be invalidated */
  4391. } CONST_DMUS_TRACKF_FLAGS;
  4392. #endif
  4393. typedef enum CONST_DMUS_NOTEF_FLAGS
  4394. {
  4395. DMUS_NOTEF_NOTEON = 1, /* Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off */
  4396. } CONST_DMUS_NOTEF_FLAGS;
  4397. typedef enum CONST_DMUS_PLAYMODE_FLAGS
  4398. {
  4399. DMUS_PLAYMODE_KEY_ROOT = 1, /* Transpose on top of the key root. */
  4400. DMUS_PLAYMODE_CHORD_ROOT = 2, /* Transpose on top of the chord root. */
  4401. DMUS_PLAYMODE_SCALE_INTERVALS = 4, /* Use scale intervals from scale pattern. */
  4402. DMUS_PLAYMODE_CHORD_INTERVALS = 8, /* Use chord intervals from chord pattern. */
  4403. DMUS_PLAYMODE_NONE = 16, /* No mode. Indicates the parent part's mode should be used. */
  4404. //derived flags
  4405. DMUS_PLAYMODE_FIXED =0,
  4406. DMUS_PLAYMODE_FIXEDTOKEY =1,
  4407. DMUS_PLAYMODE_FIXEDTOCHORD =2,
  4408. DMUS_PLAYMODE_PEDALPOINT =5,
  4409. DMUS_PLAYMODE_MELODIC =6,
  4410. DMUS_PLAYMODE_NORMALCHORD =10,
  4411. DMUS_PLAYMODE_ALWAYSPLAY =14 ,
  4412. //DMUS_PLAYMODE_PURPLEIZED =14,
  4413. //DMUS_PLAYMODE_SCALE_ROOT =1,
  4414. //DMUS_PLAYMODE_FIXEDTOSCALE =1,
  4415. } CONST_DMUS_PLAYMODE_FLAGS;
  4416. typedef enum CONST_DMUS_CURVE_FLAGS
  4417. {
  4418. DMUS_CURVE_RESET = 1, /* Set if the curve needs to be reset. */
  4419. } CONST_DMUS_CURVE_FLAGS;
  4420. typedef enum CONST_DMUSERR {
  4421. //DMUS_S_PARTIALLOAD =0x08781091,
  4422. //DMUS_S_REQUEUE =0x08781200,
  4423. //DMUS_S_FREE= 0x08781201,
  4424. //DMUS_S_END =0x08781202,
  4425. //DMUS_S_STRING_TRUNCATED =0x08781210,
  4426. //DMUS_S_LAST_TOOL =0x08781211,
  4427. //DMUS_S_OVER_CHORD =0x08781212,
  4428. //DMUS_S_UP_OCTAVE =0x08781213,
  4429. //DMUS_S_DOWN_OCTAVE =0x08781214,
  4430. DMUS_E_DRIVER_FAILED =0x88781101,
  4431. DMUS_E_PORTS_OPEN =0x88781102,
  4432. DMUS_E_DEVICE_IN_USE =0x88781103,
  4433. DMUS_E_INSUFFICIENTBUFFER =0x88781104,
  4434. DMUS_E_BUFFERNOTSET =0x88781105,
  4435. DMUS_E_BUFFERNOTAVAILABLE =0x88781106,
  4436. DMUS_E_NOTADLSCOL =0x88781108,
  4437. DMUS_E_INVALIDOFFSET =0x88781109,
  4438. DMUS_E_ALREADY_LOADED =0x88781111,
  4439. DMUS_E_INVALIDPOS =0x88781113,
  4440. DMUS_E_INVALIDPATCH =0x88781114,
  4441. DMUS_E_CANNOTSEEK =0x88781115,
  4442. DMUS_E_CANNOTWRITE =0x88781116,
  4443. DMUS_E_CHUNKNOTFOUND =0x88781117,
  4444. DMUS_E_INVALID_DOWNLOADID =0x88781119,
  4445. DMUS_E_NOT_DOWNLOADED_TO_PORT =0x88781120,
  4446. DMUS_E_ALREADY_DOWNLOADED =0x88781121,
  4447. DMUS_E_UNKNOWN_PROPERTY =0x88781122,
  4448. DMUS_E_SET_UNSUPPORTED =0x88781123,
  4449. DMUS_E_GET_UNSUPPORTED =0x88781124,
  4450. DMUS_E_NOTMONO =0x88781125,
  4451. DMUS_E_BADARTICULATION =0x88781126,
  4452. DMUS_E_BADINSTRUMENT =0x88781127,
  4453. DMUS_E_BADWAVELINK =0x88781128,
  4454. DMUS_E_NOARTICULATION =0x88781129,
  4455. DMUS_E_NOTPCM =0x8878112A,
  4456. DMUS_E_BADWAVE =0x8878112B,
  4457. DMUS_E_BADOFFSETTABLE =0x8878112C,
  4458. DMUS_E_UNKNOWNDOWNLOAD =0x8878112D,
  4459. DMUS_E_NOSYNTHSINK =0x8878112E,
  4460. DMUS_E_ALREADYOPEN =0x8878112F,
  4461. DMUS_E_ALREADYCLOSED =0x88781130,
  4462. DMUS_E_SYNTHNOTCONFIGURED =0x88781131,
  4463. DMUS_E_SYNTHACTIVE =0x88781132,
  4464. DMUS_E_CANNOTREAD =0x88781133,
  4465. DMUS_E_DMUSIC_RELEASED =0x88781134,
  4466. DMUS_E_BUFFER_EMPTY =0x88781135,
  4467. DMUS_E_BUFFER_FULL =0x88781136,
  4468. DMUS_E_PORT_NOT_CAPTURE =0x88781137,
  4469. DMUS_E_PORT_NOT_RENDER =0x88781138,
  4470. DMUS_E_DSOUND_NOT_SET =0x88781139,
  4471. DMUS_E_ALREADY_ACTIVATED =0x8878113A,
  4472. DMUS_E_INVALIDBUFFER =0x8878113B,
  4473. DMUS_E_WAVEFORMATNOTSUPPORTED =0x8878113C,
  4474. DMUS_E_SYNTHINACTIVE =0x8878113D,
  4475. DMUS_E_DSOUND_ALREADY_SET =0x8878113E,
  4476. DMUS_E_INVALID_EVENT =0x8878113F,
  4477. DMUS_E_UNSUPPORTED_STREAM =0x88781150,
  4478. DMUS_E_ALREADY_INITED =0x88781151,
  4479. DMUS_E_INVALID_BAND =0x88781152,
  4480. DMUS_E_TRACK_HDR_NOT_FIRST_CK =0x88781155,
  4481. DMUS_E_TOOL_HDR_NOT_FIRST_CK =0x88781156,
  4482. DMUS_E_INVALID_TRACK_HDR =0x88781157,
  4483. DMUS_E_INVALID_TOOL_HDR =0x88781158,
  4484. DMUS_E_ALL_TOOLS_FAILED =0x88781159,
  4485. DMUS_E_ALL_TRACKS_FAILED =0x88781160,
  4486. DMUS_E_NOT_FOUND =0x88781161,
  4487. DMUS_E_NOT_INIT =0x88781162,
  4488. DMUS_E_TYPE_DISABLED =0x88781163,
  4489. DMUS_E_TYPE_UNSUPPORTED =0x88781164,
  4490. DMUS_E_TIME_PAST =0x88781165,
  4491. DMUS_E_TRACK_NOT_FOUND =0x88781166,
  4492. DMUS_E_NO_MASTER_CLOCK =0x88781170,
  4493. DMUS_E_LOADER_NOCLASSID =0x88781180,
  4494. DMUS_E_LOADER_BADPATH =0x88781181,
  4495. DMUS_E_LOADER_FAILEDOPEN =0x88781182,
  4496. DMUS_E_LOADER_FORMATNOTSUPPORTED =0x88781183,
  4497. DMUS_E_LOADER_FAILEDCREATE =0x88781184,
  4498. DMUS_E_LOADER_OBJECTNOTFOUND =0x88781185,
  4499. DMUS_E_LOADER_NOFILENAME =0x88781186,
  4500. DMUS_E_INVALIDFILE =0x88781200,
  4501. DMUS_E_ALREADY_EXISTS =0x88781201,
  4502. DMUS_E_OUT_OF_RANGE =0x88781202,
  4503. DMUS_E_SEGMENT_INIT_FAILED =0x88781203,
  4504. DMUS_E_ALREADY_SENT =0x88781204,
  4505. DMUS_E_CANNOT_FREE =0x88781205,
  4506. DMUS_E_CANNOT_OPEN_PORT =0x88781206,
  4507. DMUS_E_CONNOT_CONVERT =0x88781207,
  4508. DMUS_E_DESCEND_CHUNK_FAIL =0x88781210,
  4509. DMUS_E_FAIL =0x80070057,
  4510. DMUS_E_INVALIDARG =5,
  4511. DMUS_E_NOINTERFACE =430,
  4512. DMUS_E_OUTOFMEMORY =7,
  4513. DMUS_E_NOTIMPL =445
  4514. } DMUSERR;
  4515. /* For DMUS_PORTCAPS dwClass
  4516. */
  4517. typedef enum CONST_DMUS_PC_CLASS{
  4518. DMUS_PC_INPUTCLASS =0,
  4519. DMUS_PC_OUTPUTCLASS =1,
  4520. } CONST_DMUS_PC_CLASS;
  4521. /* For DMUS_PORTCAPS dwFlags
  4522. */
  4523. typedef enum CONST_DMUS_PC_FLAGS{
  4524. DMUS_PC_DLS =0x00000001,
  4525. DMUS_PC_EXTERNAL =0x00000002,
  4526. DMUS_PC_SOFTWARESYNTH =0x00000004,
  4527. DMUS_PC_MEMORYSIZEFIXED =0x00000008,
  4528. DMUS_PC_GMINHARDWARE =0x00000010,
  4529. DMUS_PC_GSINHARDWARE =0x00000020,
  4530. DMUS_PC_XGINHARDWARE =0x00000040,
  4531. DMUS_PC_DIRECTSOUND =0x00000080,
  4532. DMUS_PC_SHAREABLE =0x00000100,
  4533. DMUS_PC_SYSTEMMEMORY =0x7FFFFFFF
  4534. } CONST_DMUS_PC_FLAGS;
  4535. typedef enum CONST_DMUS_PORT_TYPE {
  4536. DMUS_PORT_WINMM_DRIVER =0,
  4537. DMUS_PORT_USER_MODE_SYNTH =1,
  4538. DMUS_PORT_KERNEL_MODE =2
  4539. } CONST_DMUS_PORT_TYPE;
  4540. typedef enum CONST_DMUS_PORTPARAMS_FLAGS {
  4541. DMUS_PORTPARAMS_VOICES =0x00000001,
  4542. DMUS_PORTPARAMS_CHANNELGROUPS =0x00000002,
  4543. DMUS_PORTPARAMS_AUDIOCHANNELS =0x00000004,
  4544. DMUS_PORTPARAMS_SAMPLERATE =0x00000008,
  4545. DMUS_PORTPARAMS_EFFECTS =0x00000020,
  4546. DMUS_PORTPARAMS_SHARE =0x00000040
  4547. } CONST_DMUS_PORTPARAMS_FLAGS;
  4548. typedef enum CONST_DIMOUSEOFS {
  4549. DIMOFS_X =0,
  4550. DIMOFS_Y =4,
  4551. DIMOFS_Z =8,
  4552. DIMOFS_BUTTON0 =12,
  4553. DIMOFS_BUTTON1 =13,
  4554. DIMOFS_BUTTON2 =14,
  4555. DIMOFS_BUTTON3 =15
  4556. } CONST_DIMOUSEOFS;
  4557. typedef enum CONST_DIJOYSTICKOFS {
  4558. DIJOFS_X =0,
  4559. DIJOFS_Y =4,
  4560. DIJOFS_Z =8,
  4561. DIJOFS_RX =12,
  4562. DIJOFS_RY =16,
  4563. DIJOFS_RZ =20,
  4564. DIJOFS_SLIDER0 =24,
  4565. DIJOFS_SLIDER1 =28,
  4566. DIJOFS_POV0 =32,
  4567. DIJOFS_POV1 =36,
  4568. DIJOFS_POV2 =40,
  4569. DIJOFS_POV3 =44,
  4570. DIJOFS_BUTTON0 =48,
  4571. DIJOFS_BUTTON1 =49,
  4572. DIJOFS_BUTTON2 =50,
  4573. DIJOFS_BUTTON3 =51,
  4574. DIJOFS_BUTTON4 =52,
  4575. DIJOFS_BUTTON5 =53,
  4576. DIJOFS_BUTTON6 =54,
  4577. DIJOFS_BUTTON7 =55,
  4578. DIJOFS_BUTTON8 =56,
  4579. DIJOFS_BUTTON9 =57,
  4580. DIJOFS_BUTTON10 =58,
  4581. DIJOFS_BUTTON11 =59,
  4582. DIJOFS_BUTTON12 =60,
  4583. DIJOFS_BUTTON13 =61,
  4584. DIJOFS_BUTTON14 =62,
  4585. DIJOFS_BUTTON15 =63,
  4586. DIJOFS_BUTTON16 =64,
  4587. DIJOFS_BUTTON17 =65,
  4588. DIJOFS_BUTTON18 =66,
  4589. DIJOFS_BUTTON19 =67,
  4590. DIJOFS_BUTTON20 =68,
  4591. DIJOFS_BUTTON21 =69,
  4592. DIJOFS_BUTTON22 =70,
  4593. DIJOFS_BUTTON23 =71,
  4594. DIJOFS_BUTTON24 =72,
  4595. DIJOFS_BUTTON25 =73,
  4596. DIJOFS_BUTTON26 =74,
  4597. DIJOFS_BUTTON27 =75,
  4598. DIJOFS_BUTTON28 =76,
  4599. DIJOFS_BUTTON29 =77,
  4600. DIJOFS_BUTTON30 =78,
  4601. DIJOFS_BUTTON31 =79
  4602. } CONST_DIJOYSTICKOFS;
  4603. typedef enum CONST_DIEFTFLAGS {
  4604. DIEFT_ALL = 0x00000000,
  4605. DIEFT_CONSTANTFORCE = 0x00000001,
  4606. DIEFT_RAMPFORCE = 0x00000002,
  4607. DIEFT_PERIODIC = 0x00000003,
  4608. DIEFT_CONDITION = 0x00000004,
  4609. DIEFT_CUSTOMFORCE = 0x00000005,
  4610. DIEFT_HARDWARE = 0x000000FF,
  4611. DIEFT_FFATTACK = 0x00000200,
  4612. DIEFT_FFFADE = 0x00000400,
  4613. DIEFT_SATURATION = 0x00000800,
  4614. DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
  4615. DIEFT_POSNEGSATURATION = 0x00002000,
  4616. DIEFT_DEADBAND = 0x00004000
  4617. } DIEFTFLAGS;
  4618. // DI_DEGREES = 100,
  4619. // DI_FFNOMINALMAX = 10000,
  4620. // DI_SECONDS = 1000000,
  4621. typedef enum CONST_DIEFFFLAGS {
  4622. //DIEFF_OBJECTIDS = 0x00000001,
  4623. DIEFF_OBJECTOFFSETS = 0x00000002,
  4624. DIEFF_CARTESIAN = 0x00000010,
  4625. DIEFF_POLAR = 0x00000020
  4626. //DIEFF_SPHERICAL = 0x00000040,
  4627. } DIEFFFLAGS;
  4628. typedef enum CONST_DIEPFLAGS {
  4629. DIEP_DURATION = 0x00000001,
  4630. DIEP_SAMPLEPERIOD = 0x00000002,
  4631. DIEP_GAIN = 0x00000004,
  4632. DIEP_TRIGGERBUTTON = 0x00000008,
  4633. DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
  4634. DIEP_AXES = 0x00000020,
  4635. DIEP_DIRECTION = 0x00000040,
  4636. DIEP_ENVELOPE = 0x00000080,
  4637. DIEP_TYPESPECIFICPARAMS = 0x00000100,
  4638. DIEP_ALLPARAMS = 0x000001FF,
  4639. DIEP_START = 0x20000000,
  4640. DIEP_NORESTART = 0x40000000,
  4641. DIEP_NODOWNLOAD = 0x80000000,
  4642. } DIEPFLAGS;
  4643. typedef enum CONST_DIEGESFLAGS {
  4644. DIEGES_PLAYING = 0x00000001,
  4645. DIEGES_EMULATED = 0x00000002
  4646. } DIEGESFLAGS;
  4647. typedef enum CONST_DIESFLAGS {
  4648. DIES_SOLO = 0x00000001,
  4649. DIES_NODOWNLOAD = 0x80000000
  4650. } DIESFLAGS;
  4651. typedef enum CONST_DISFFCFLAGS {
  4652. DISFFC_RESET = 0x00000001,
  4653. DISFFC_STOPALL = 0x00000002,
  4654. DISFFC_PAUSE = 0x00000004,
  4655. DISFFC_CONTINUE = 0x00000008,
  4656. DISFFC_SETACTUATORSON = 0x00000010,
  4657. DISFFC_SETACTUATORSOFF = 0x00000020,
  4658. } DISFFCFLAGS;
  4659. typedef enum CONST_DIGFFSFLAGS {
  4660. DIGFFS_EMPTY = 0x00000001,
  4661. DIGFFS_STOPPED = 0x00000002,
  4662. DIGFFS_PAUSED = 0x00000004,
  4663. DIGFFS_ACTUATORSON = 0x00000010,
  4664. DIGFFS_ACTUATORSOFF = 0x00000020,
  4665. DIGFFS_POWERON = 0x00000040,
  4666. DIGFFS_POWEROFF = 0x00000080,
  4667. DIGFFS_SAFETYSWITCHON = 0x00000100,
  4668. DIGFFS_SAFETYSWITCHOFF = 0x00000200,
  4669. DIGFFS_USERFFSWITCHON = 0x00000400,
  4670. DIGFFS_USERFFSWITCHOFF = 0x00000800,
  4671. DIGFFS_DEVICELOST = 0x80000000
  4672. } DIGFFSFLAGS;
  4673. typedef enum CONST_DISDDFLAGS {
  4674. DISDD_DEFAULT =0,
  4675. DISDD_CONTINUE = 1
  4676. } DISDDFLAGS;
  4677. typedef enum CONST_DMUS_EFFECT_FLAGS {
  4678. DMUS_EFFECT_NONE=0,
  4679. DMUS_EFFECT_REVERB=1,
  4680. DMUS_EFFECT_CHORUS=2
  4681. } CONST_DMUS_EFFECT_FLAGS;
  4682. typedef enum CONST_D3DDEVINFOID {
  4683. D3DDEVINFOID_D3DTEXTUREMANAGER = 2,
  4684. D3DDEVINFOID_TEXTUREMANAGER = 1,
  4685. D3DDEVINFOID_TEXTURING = 3
  4686. } D3DDEVINFOID;
  4687. typedef enum CONST_DDOVERFXFLAGS {
  4688. DDOVERFX_ARITHSTRETCHY = 1,
  4689. DDOVERFX_MIRRORLEFTRIGHT =2,
  4690. DDOVERFX_MIRRORUPDOWN =4
  4691. } DDOVERFXFLAGS;
  4692. typedef enum CONST_D3DRMSHADOWFLAGS {
  4693. D3DRMSHADOW_TRUEALPHA=1
  4694. } D3DRMSHADOWFLAGS;
  4695. typedef enum CONST_DICONDITIONFLAGS {
  4696. DICONDITION_USE_BOTH_AXES=1,
  4697. DICONDITION_USE_DIRECTION =2
  4698. } DICONDITIONFLAGS;
  4699. typedef enum CONST_D3DSTATEBLOCKTYPE{
  4700. D3DSBT_ALL = 1,
  4701. D3DSBT_PIXELSTATE = 2,
  4702. D3DSBT_VERTEXSTATE = 3,
  4703. } D3DSTATEBLOCKTYPE;
  4704. typedef enum CONST_D3DCLIPPLANEFLAGS {
  4705. D3DCPF_DISABLEALL = 0,
  4706. D3DCPF_ENABLEPLANE0 = 1,
  4707. D3DCPF_ENABLEPLANE1 = 2,
  4708. D3DCPF_ENABLEPLANE2 = 4,
  4709. D3DCPF_ENABLEPLANE3 = 8,
  4710. D3DCPF_ENABLEPLANE4 = 16,
  4711. D3DCPF_ENABLEPLANE5 = 32,
  4712. D3DCPF_ENABLEPLANE6 = 64,
  4713. D3DCPF_ENABLEPLANE7 = 128,
  4714. D3DCPF_ENABLEPLANE8 = 256,
  4715. D3DCPF_ENABLEPLANE9 = 512,
  4716. D3DCPF_ENABLEPLANE10 = 1024,
  4717. D3DCPF_ENABLEPLANE11 = 2048,
  4718. D3DCPF_ENABLEPLANE12 = 4096,
  4719. D3DCPF_ENABLEPLANE13 = 8192,
  4720. D3DCPF_ENABLEPLANE14 = 16384,
  4721. D3DCPF_ENABLEPLANE15 = 32768,
  4722. D3DCPF_ENABLEPLANE16 = 0x10000,
  4723. D3DCPF_ENABLEPLANE17 = 0x20000,
  4724. D3DCPF_ENABLEPLANE18 = 0x40000,
  4725. D3DCPF_ENABLEPLANE19 = 0x80000,
  4726. D3DCPF_ENABLEPLANE20 = 0x100000,
  4727. D3DCPF_ENABLEPLANE21 = 0x200000,
  4728. D3DCPF_ENABLEPLANE22 = 0x400000,
  4729. D3DCPF_ENABLEPLANE23 = 0x800000,
  4730. D3DCPF_ENABLEPLANE24 = 0x1000000,
  4731. D3DCPF_ENABLEPLANE25 = 0x2000000,
  4732. D3DCPF_ENABLEPLANE26 = 0x4000000,
  4733. D3DCPF_ENABLEPLANE27 = 0x8000000,
  4734. D3DCPF_ENABLEPLANE28 = 0x10000000,
  4735. D3DCPF_ENABLEPLANE29 = 0x20000000,
  4736. D3DCPF_ENABLEPLANE30 = 0x40000000,
  4737. D3DCPF_ENABLEPLANE31 = 0x80000000,
  4738. } D3DCLIPPLANEFLAGS;