home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / d3d9caps.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  12KB  |  339 lines

  1. /*
  2.  
  3.     d3d9caps.h - Header file for the Direct3D9 API
  4.  
  5.     Written by Filip Navara <xnavara@volny.cz>
  6.  
  7.     This library is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10.  
  11. */
  12.  
  13. #ifndef _D3D9_CAPS_H
  14. #define _D3D9_CAPS_H
  15. #if __GNUC__ >=3
  16. #pragma GCC system_header
  17. #endif
  18.  
  19. #ifndef DIRECT3D_VERSION
  20. #define DIRECT3D_VERSION  0x0900
  21. #endif
  22.  
  23. #if (DIRECT3D_VERSION >= 0x0900)
  24.  
  25. #define D3DCURSORCAPS_COLOR    1
  26. #define D3DCURSORCAPS_LOWRES    2
  27. #define D3DDEVCAPS_EXECUTESYSTEMMEMORY    0x10
  28. #define D3DDEVCAPS_EXECUTEVIDEOMEMORY    0x20
  29. #define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x40
  30. #define D3DDEVCAPS_TLVERTEXVIDEOMEMORY    0x80
  31. #define D3DDEVCAPS_TEXTURESYSTEMMEMORY    0x100
  32. #define D3DDEVCAPS_TEXTUREVIDEOMEMORY    0x200
  33. #define D3DDEVCAPS_DRAWPRIMTLVERTEX    0x400
  34. #define D3DDEVCAPS_CANRENDERAFTERFLIP    0x800
  35. #define D3DDEVCAPS_TEXTURENONLOCALVIDMEM    0x1000
  36. #define D3DDEVCAPS_DRAWPRIMITIVES2    0x2000
  37. #define D3DDEVCAPS_SEPARATETEXTUREMEMORIES    0x4000
  38. #define D3DDEVCAPS_DRAWPRIMITIVES2EX    0x8000
  39. #define D3DDEVCAPS_HWTRANSFORMANDLIGHT    0x10000
  40. #define D3DDEVCAPS_CANBLTSYSTONONLOCAL    0x20000
  41. #define D3DDEVCAPS_HWRASTERIZATION    0x80000
  42. #define D3DDEVCAPS_PUREDEVICE    0x100000
  43. #define D3DDEVCAPS_QUINTICRTPATCHES    0x200000
  44. #define D3DDEVCAPS_RTPATCHES    0x400000
  45. #define D3DDEVCAPS_RTPATCHHANDLEZERO    0x800000
  46. #define D3DDEVCAPS_NPATCHES    0x1000000
  47. #define D3DDEVCAPS2_STREAMOFFSET    0x01
  48. #define D3DDEVCAPS2_DMAPNPATCH    0x02
  49. #define D3DDEVCAPS2_ADAPTIVETESSRTPATCH    0x04
  50. #define D3DDEVCAPS2_ADAPTIVETESSNPATCH    0x08
  51. #define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES    0x10
  52. #define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH    0x20
  53. #define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET    0x40
  54. #define D3DFVFCAPS_TEXCOORDCOUNTMASK    0xFFFF
  55. #define D3DFVFCAPS_DONOTSTRIPELEMENTS    0x80000
  56. #define D3DFVFCAPS_PSIZE    0x100000
  57. #define D3DLINECAPS_TEXTURE    0x01
  58. #define D3DLINECAPS_ZTEST    0x02
  59. #define D3DLINECAPS_BLEND    0x04
  60. #define D3DLINECAPS_ALPHACMP    0x08
  61. #define D3DLINECAPS_FOG    0x10
  62. #define D3DLINECAPS_ANTIALIAS    0x20
  63. #define D3DPBLENDCAPS_ZERO    0x01
  64. #define D3DPBLENDCAPS_ONE    0x02
  65. #define D3DPBLENDCAPS_SRCCOLOR    0x04
  66. #define D3DPBLENDCAPS_INVSRCCOLOR    0x08
  67. #define D3DPBLENDCAPS_SRCALPHA    0x10
  68. #define D3DPBLENDCAPS_INVSRCALPHA    0x20
  69. #define D3DPBLENDCAPS_DESTALPHA    0x40
  70. #define D3DPBLENDCAPS_INVDESTALPHA    0x80
  71. #define D3DPBLENDCAPS_DESTCOLOR    0x100
  72. #define D3DPBLENDCAPS_INVDESTCOLOR    0x200
  73. #define D3DPBLENDCAPS_SRCALPHASAT    0x400
  74. #define D3DPBLENDCAPS_BOTHSRCALPHA    0x800
  75. #define D3DPBLENDCAPS_BOTHINVSRCALPHA    0x1000
  76. #define D3DPBLENDCAPS_BLENDFACTOR    0x2000
  77. #define D3DPCMPCAPS_NEVER    0x01
  78. #define D3DPCMPCAPS_LESS    0x02
  79. #define D3DPCMPCAPS_EQUAL    0x04
  80. #define D3DPCMPCAPS_LESSEQUAL    0x08
  81. #define D3DPCMPCAPS_GREATER    0x10
  82. #define D3DPCMPCAPS_NOTEQUAL    0x20
  83. #define D3DPCMPCAPS_GREATEREQUAL    0x40
  84. #define D3DPCMPCAPS_ALWAYS    0x80
  85. #define D3DPMISCCAPS_MASKZ    0x02
  86. #define D3DPMISCCAPS_CULLNONE    0x10
  87. #define D3DPMISCCAPS_CULLCW    0x20
  88. #define D3DPMISCCAPS_CULLCCW    0x40
  89. #define D3DPMISCCAPS_COLORWRITEENABLE    0x80
  90. #define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS    0x100
  91. #define D3DPMISCCAPS_CLIPTLVERTS    0x200
  92. #define D3DPMISCCAPS_TSSARGTEMP    0x400
  93. #define D3DPMISCCAPS_BLENDOP    0x800
  94. #define D3DPMISCCAPS_NULLREFERENCE    0x1000
  95. #define D3DPMISCCAPS_INDEPENDENTWRITEMASKS    0x4000
  96. #define D3DPMISCCAPS_PERSTAGECONSTANT    0x8000
  97. #define D3DPMISCCAPS_FOGANDSPECULARALPHA    0x10000
  98. #define D3DPMISCCAPS_SEPARATEALPHABLEND    0x20000
  99. #define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x40000
  100. #define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING    0x80000
  101. #define D3DPMISCCAPS_FOGVERTEXCLAMPED    0x100000
  102. #define D3DPRASTERCAPS_DITHER    0x01
  103. #define D3DPRASTERCAPS_ZTEST    0x10
  104. #define D3DPRASTERCAPS_FOGVERTEX    0x80
  105. #define D3DPRASTERCAPS_FOGTABLE    0x100
  106. #define D3DPRASTERCAPS_MIPMAPLODBIAS    0x2000
  107. #define D3DPRASTERCAPS_ZBUFFERLESSHSR    0x8000
  108. #define D3DPRASTERCAPS_FOGRANGE    0x10000
  109. #define D3DPRASTERCAPS_ANISOTROPY    0x20000
  110. #define D3DPRASTERCAPS_WBUFFER    0x40000
  111. #define D3DPRASTERCAPS_WFOG    0x100000
  112. #define D3DPRASTERCAPS_ZFOG    0x200000
  113. #define D3DPRASTERCAPS_COLORPERSPECTIVE    0x400000
  114. #define D3DPRASTERCAPS_SCISSORTEST    0x1000000
  115. #define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS    0x2000000
  116. #define D3DPRASTERCAPS_DEPTHBIAS    0x4000000 
  117. #define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE    0x8000000
  118. #define D3DPRESENT_INTERVAL_DEFAULT    0x00
  119. #define D3DPRESENT_INTERVAL_ONE    0x01
  120. #define D3DPRESENT_INTERVAL_TWO    0x02
  121. #define D3DPRESENT_INTERVAL_THREE    0x04
  122. #define D3DPRESENT_INTERVAL_FOUR    0x08
  123. #define D3DPRESENT_INTERVAL_IMMEDIATE    0x80000000L
  124. #define D3DPSHADECAPS_COLORGOURAUDRGB    0x08
  125. #define D3DPSHADECAPS_SPECULARGOURAUDRGB    0x200
  126. #define D3DPSHADECAPS_ALPHAGOURAUDBLEND    0x4000
  127. #define D3DPSHADECAPS_FOGGOURAUD    0x80000
  128. #define D3DPTADDRESSCAPS_WRAP    0x01
  129. #define D3DPTADDRESSCAPS_MIRROR    0x02
  130. #define D3DPTADDRESSCAPS_CLAMP    0x04
  131. #define D3DPTADDRESSCAPS_BORDER    0x08
  132. #define D3DPTADDRESSCAPS_INDEPENDENTUV    0x10
  133. #define D3DPTADDRESSCAPS_MIRRORONCE    0x20
  134. #define D3DPTEXTURECAPS_PERSPECTIVE    0x01
  135. #define D3DPTEXTURECAPS_POW2    0x02
  136. #define D3DPTEXTURECAPS_ALPHA    0x04
  137. #define D3DPTEXTURECAPS_SQUAREONLY    0x20
  138. #define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE    0x40
  139. #define D3DPTEXTURECAPS_ALPHAPALETTE    0x80
  140. #define D3DPTEXTURECAPS_NONPOW2CONDITIONAL    0x100
  141. #define D3DPTEXTURECAPS_PROJECTED    0x400
  142. #define D3DPTEXTURECAPS_CUBEMAP    0x800
  143. #define D3DPTEXTURECAPS_VOLUMEMAP    0x2000
  144. #define D3DPTEXTURECAPS_MIPMAP    0x4000
  145. #define D3DPTEXTURECAPS_MIPVOLUMEMAP    0x8000
  146. #define D3DPTEXTURECAPS_MIPCUBEMAP    0x10000
  147. #define D3DPTEXTURECAPS_CUBEMAP_POW2    0x20000
  148. #define D3DPTEXTURECAPS_VOLUMEMAP_POW2    0x40000
  149. #define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV    0x200000
  150. #define D3DPTFILTERCAPS_MINFPOINT    0x100
  151. #define D3DPTFILTERCAPS_MINFLINEAR    0x200
  152. #define D3DPTFILTERCAPS_MINFANISOTROPIC    0x400
  153. #define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD    0x800
  154. #define D3DPTFILTERCAPS_MINFGAUSSIANQUAD    0x1000
  155. #define D3DPTFILTERCAPS_MIPFPOINT    0x10000
  156. #define D3DPTFILTERCAPS_MIPFLINEAR    0x20000
  157. #define D3DPTFILTERCAPS_MAGFPOINT    0x1000000
  158. #define D3DPTFILTERCAPS_MAGFLINEAR    0x2000000
  159. #define D3DPTFILTERCAPS_MAGFANISOTROPIC    0x4000000
  160. #define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD    0x8000000
  161. #define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD    0x10000000
  162. #define D3DSTENCILCAPS_KEEP    0x01
  163. #define D3DSTENCILCAPS_ZERO    0x02
  164. #define D3DSTENCILCAPS_REPLACE    0x04
  165. #define D3DSTENCILCAPS_INCRSAT    0x08
  166. #define D3DSTENCILCAPS_DECRSAT    0x10
  167. #define D3DSTENCILCAPS_INVERT    0x20
  168. #define D3DSTENCILCAPS_INCR    0x40
  169. #define D3DSTENCILCAPS_DECR    0x80
  170. #define D3DSTENCILCAPS_TWOSIDED    0x100
  171. #define D3DTEXOPCAPS_DISABLE    0x01
  172. #define D3DTEXOPCAPS_SELECTARG1    0x02
  173. #define D3DTEXOPCAPS_SELECTARG2    0x04
  174. #define D3DTEXOPCAPS_MODULATE    0x08
  175. #define D3DTEXOPCAPS_MODULATE2X    0x10
  176. #define D3DTEXOPCAPS_MODULATE4X    0x20
  177. #define D3DTEXOPCAPS_ADD    0x40
  178. #define D3DTEXOPCAPS_ADDSIGNED    0x80
  179. #define D3DTEXOPCAPS_ADDSIGNED2X    0x100
  180. #define D3DTEXOPCAPS_SUBTRACT    0x200
  181. #define D3DTEXOPCAPS_ADDSMOOTH    0x400
  182. #define D3DTEXOPCAPS_BLENDDIFFUSEALPHA    0x800
  183. #define D3DTEXOPCAPS_BLENDTEXTUREALPHA    0x1000
  184. #define D3DTEXOPCAPS_BLENDFACTORALPHA    0x2000
  185. #define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM    0x4000
  186. #define D3DTEXOPCAPS_BLENDCURRENTALPHA    0x8000
  187. #define D3DTEXOPCAPS_PREMODULATE    0x10000
  188. #define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR    0x20000
  189. #define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA    0x40000
  190. #define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR    0x80000
  191. #define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA    0x100000
  192. #define D3DTEXOPCAPS_BUMPENVMAP    0x200000
  193. #define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE    0x400000
  194. #define D3DTEXOPCAPS_DOTPRODUCT3    0x800000
  195. #define D3DTEXOPCAPS_MULTIPLYADD    0x1000000
  196. #define D3DTEXOPCAPS_LERP    0x2000000
  197. #define D3DVTXPCAPS_TEXGEN    0x01
  198. #define D3DVTXPCAPS_MATERIALSOURCE7    0x02
  199. #define D3DVTXPCAPS_DIRECTIONALLIGHTS    0x08
  200. #define D3DVTXPCAPS_POSITIONALLIGHTS    0x10
  201. #define D3DVTXPCAPS_LOCALVIEWER    0x20
  202. #define D3DVTXPCAPS_TWEENING    0x40
  203. #define D3DVTXPCAPS_TEXGEN_SPHEREMAP    0x100
  204. #define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER    0x200
  205. #define D3DCAPS_READ_SCANLINE    0x20000
  206. #define D3DCAPS2_FULLSCREENGAMMA    0x20000L
  207. #define D3DCAPS2_CANCALIBRATEGAMMA    0x100000L
  208. #define D3DCAPS2_RESERVED    0x2000000L
  209. #define D3DCAPS2_CANMANAGERESOURCE    0x10000000L
  210. #define D3DCAPS2_DYNAMICTEXTURES    0x20000000L
  211. #define D3DCAPS2_CANAUTOGENMIPMAP    0x40000000L
  212. #define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD    0x20
  213. #define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION    0x80
  214. #define D3DCAPS3_COPY_TO_VIDMEM    0x100
  215. #define D3DCAPS3_COPY_TO_SYSTEMMEM    0x200
  216. #define D3DCAPS3_RESERVED    0x8000001fL
  217. #define D3DDTCAPS_UBYTE4    0x01
  218. #define D3DDTCAPS_UBYTE4N    0x02
  219. #define D3DDTCAPS_SHORT2N    0x04
  220. #define D3DDTCAPS_SHORT4N    0x08
  221. #define D3DDTCAPS_USHORT2N    0x10
  222. #define D3DDTCAPS_USHORT4N    0x20
  223. #define D3DDTCAPS_UDEC3    0x40
  224. #define D3DDTCAPS_DEC3N    0x80
  225. #define D3DDTCAPS_FLOAT16_2    0x100
  226. #define D3DDTCAPS_FLOAT16_4    0x200
  227. #define D3DMIN30SHADERINSTRUCTIONS    512
  228. #define D3DMAX30SHADERINSTRUCTIONS    32768
  229. #define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH    24
  230. #define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH    0
  231. #define D3DPS20_MAX_NUMTEMPS    32
  232. #define D3DPS20_MIN_NUMTEMPS    12
  233. #define D3DPS20_MAX_STATICFLOWCONTROLDEPTH    4
  234. #define D3DPS20_MIN_STATICFLOWCONTROLDEPTH    0
  235. #define D3DPS20_MAX_NUMINSTRUCTIONSLOTS    512
  236. #define D3DPS20_MIN_NUMINSTRUCTIONSLOTS    96
  237. #define D3DPS20CAPS_ARBITRARYSWIZZLE    0x1
  238. #define D3DPS20CAPS_GRADIENTINSTRUCTIONS    0x2
  239. #define D3DPS20CAPS_PREDICATION    0x4
  240. #define D3DPS20CAPS_NODEPENDENTREADLIMIT    0x8
  241. #define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    0x10
  242. #define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH    24
  243. #define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH    0
  244. #define D3DVS20_MAX_NUMTEMPS    32
  245. #define D3DVS20_MIN_NUMTEMPS    12
  246. #define D3DVS20_MAX_STATICFLOWCONTROLDEPTH    4
  247. #define D3DVS20_MIN_STATICFLOWCONTROLDEPTH    1
  248. #define D3DVS20CAPS_PREDICATION    1
  249.  
  250. typedef struct _D3DVSHADERCAPS2_0 {
  251.     DWORD Caps;
  252.     INT DynamicFlowControlDepth;
  253.     INT NumTemps;
  254.     INT StaticFlowControlDepth;
  255. } D3DVSHADERCAPS2_0;
  256.  
  257. typedef struct _D3DPSHADERCAPS2_0 {
  258.     DWORD Caps;
  259.     INT DynamicFlowControlDepth;
  260.     INT NumTemps;
  261.     INT StaticFlowControlDepth;
  262.     INT NumInstructionSlots;
  263. } D3DPSHADERCAPS2_0;
  264.  
  265. typedef struct _D3DCAPS9 {
  266.     D3DDEVTYPE DeviceType;
  267.     UINT AdapterOrdinal;
  268.     DWORD Caps;
  269.     DWORD Caps2;
  270.     DWORD Caps3;
  271.     DWORD PresentationIntervals;
  272.     DWORD CursorCaps;
  273.     DWORD DevCaps;
  274.     DWORD PrimitiveMiscCaps;
  275.     DWORD RasterCaps;
  276.     DWORD ZCmpCaps;
  277.     DWORD SrcBlendCaps;
  278.     DWORD DestBlendCaps;
  279.     DWORD AlphaCmpCaps;
  280.     DWORD ShadeCaps;
  281.     DWORD TextureCaps;
  282.     DWORD TextureFilterCaps;
  283.     DWORD CubeTextureFilterCaps;
  284.     DWORD VolumeTextureFilterCaps;
  285.     DWORD TextureAddressCaps;
  286.     DWORD VolumeTextureAddressCaps;
  287.     DWORD LineCaps;
  288.     DWORD MaxTextureWidth;
  289.     DWORD MaxTextureHeight;
  290.     DWORD MaxVolumeExtent;
  291.     DWORD MaxTextureRepeat;
  292.     DWORD MaxTextureAspectRatio;
  293.     DWORD MaxAnisotropy;
  294.     float MaxVertexW;
  295.     float GuardBandLeft;
  296.     float GuardBandTop;
  297.     float GuardBandRight;
  298.     float GuardBandBottom;
  299.     float ExtentsAdjust;
  300.     DWORD StencilCaps;
  301.     DWORD FVFCaps;
  302.     DWORD TextureOpCaps;
  303.     DWORD MaxTextureBlendStages;
  304.     DWORD MaxSimultaneousTextures;
  305.     DWORD VertexProcessingCaps;
  306.     DWORD MaxActiveLights;
  307.     DWORD MaxUserClipPlanes;
  308.     DWORD MaxVertexBlendMatrices;
  309.     DWORD MaxVertexBlendMatrixIndex;
  310.     float MaxPointSize;
  311.     DWORD MaxPrimitiveCount;
  312.     DWORD MaxVertexIndex;
  313.     DWORD MaxStreams;
  314.     DWORD MaxStreamStride;
  315.     DWORD VertexShaderVersion;
  316.     DWORD MaxVertexShaderConst;
  317.     DWORD PixelShaderVersion;
  318.     float PixelShader1xMaxValue;
  319.     DWORD DevCaps2;
  320.     float MaxNpatchTessellationLevel;
  321.     DWORD Reserved5;
  322.     UINT MasterAdapterOrdinal;   
  323.     UINT AdapterOrdinalInGroup;  
  324.     UINT NumberOfAdaptersInGroup;
  325.     DWORD DeclTypes;              
  326.     DWORD NumSimultaneousRTs;     
  327.     DWORD StretchRectFilterCaps;  
  328.     D3DVSHADERCAPS2_0 VS20Caps;
  329.     D3DPSHADERCAPS2_0 PS20Caps;
  330.     DWORD VertexTextureFilterCaps;
  331.     DWORD MaxVShaderInstructionsExecuted;
  332.     DWORD MaxPShaderInstructionsExecuted;
  333.     DWORD MaxVertexShader30InstructionSlots; 
  334.     DWORD MaxPixelShader30InstructionSlots;
  335. } D3DCAPS9;
  336.  
  337. #endif
  338. #endif
  339.