Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*==========================================================================;
  2.  *
  3.  *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
  4.  *
  5.  *  File:       d3d9caps.h
  6.  *  Content:    Direct3D capabilities include file
  7.  *
  8.  ***************************************************************************/
  9.  
  10. #ifndef _d3d9CAPS_H
  11. #define _d3d9CAPS_H
  12.  
  13. #ifndef DIRECT3D_VERSION
  14. #define DIRECT3D_VERSION         0x0900
  15. #endif  //DIRECT3D_VERSION
  16.  
  17. // include this file content only if compiling for DX9 interfaces
  18. #if(DIRECT3D_VERSION >= 0x0900)
  19.  
  20. #if defined(_X86_) || defined(_IA64_)
  21. #pragma pack(4)
  22. #endif
  23.  
  24. typedef struct _D3DVSHADERCAPS2_0
  25. {
  26.         DWORD Caps;
  27.         INT DynamicFlowControlDepth;
  28.         INT NumTemps;
  29.         INT StaticFlowControlDepth;
  30. } D3DVSHADERCAPS2_0;
  31.  
  32. #define D3DVS20CAPS_PREDICATION             (1<<0)
  33.  
  34. #define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
  35. #define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
  36. #define D3DVS20_MAX_NUMTEMPS    32
  37. #define D3DVS20_MIN_NUMTEMPS    12
  38. #define D3DVS20_MAX_STATICFLOWCONTROLDEPTH    4
  39. #define D3DVS20_MIN_STATICFLOWCONTROLDEPTH    1
  40.  
  41. typedef struct _D3DPSHADERCAPS2_0
  42. {
  43.     DWORD Caps;
  44.     INT DynamicFlowControlDepth;
  45.     INT NumTemps;
  46.     INT StaticFlowControlDepth;
  47.     INT NumInstructionSlots;
  48. } D3DPSHADERCAPS2_0;
  49.  
  50. #define D3DPS20CAPS_ARBITRARYSWIZZLE        (1<<0)
  51. #define D3DPS20CAPS_GRADIENTINSTRUCTIONS    (1<<1)
  52. #define D3DPS20CAPS_PREDICATION             (1<<2)
  53. #define D3DPS20CAPS_NODEPENDENTREADLIMIT    (1<<3)
  54. #define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT   (1<<4)
  55.  
  56. #define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH    24
  57. #define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH    0
  58. #define D3DPS20_MAX_NUMTEMPS    32
  59. #define D3DPS20_MIN_NUMTEMPS    12
  60. #define D3DPS20_MAX_STATICFLOWCONTROLDEPTH    4
  61. #define D3DPS20_MIN_STATICFLOWCONTROLDEPTH    0
  62. #define D3DPS20_MAX_NUMINSTRUCTIONSLOTS    512
  63. #define D3DPS20_MIN_NUMINSTRUCTIONSLOTS    96
  64.  
  65. #define D3DMIN30SHADERINSTRUCTIONS 512
  66. #define D3DMAX30SHADERINSTRUCTIONS 32768
  67.  
  68.  
  69. typedef struct _D3DOVERLAYCAPS
  70. {
  71.     UINT   Caps;
  72.     UINT   MaxOverlayDisplayWidth;
  73.     UINT   MaxOverlayDisplayHeight;
  74. } D3DOVERLAYCAPS;
  75.  
  76. #define D3DOVERLAYCAPS_FULLRANGERGB          0x00000001
  77. #define D3DOVERLAYCAPS_LIMITEDRANGERGB       0x00000002
  78. #define D3DOVERLAYCAPS_YCbCr_BT601           0x00000004
  79. #define D3DOVERLAYCAPS_YCbCr_BT709           0x00000008
  80. #define D3DOVERLAYCAPS_YCbCr_BT601_xvYCC     0x00000010
  81. #define D3DOVERLAYCAPS_YCbCr_BT709_xvYCC     0x00000020
  82. #define D3DOVERLAYCAPS_STRETCHX              0x00000040
  83. #define D3DOVERLAYCAPS_STRETCHY              0x00000080
  84.  
  85.  
  86. typedef struct _D3DCONTENTPROTECTIONCAPS
  87. {
  88.     DWORD     Caps;
  89.     GUID      KeyExchangeType;
  90.     UINT      BufferAlignmentStart;
  91.     UINT      BlockAlignmentSize;
  92.     ULONGLONG ProtectedMemorySize;
  93. } D3DCONTENTPROTECTIONCAPS;
  94.  
  95. #define D3DCPCAPS_SOFTWARE              0x00000001
  96. #define D3DCPCAPS_HARDWARE              0x00000002
  97. #define D3DCPCAPS_PROTECTIONALWAYSON    0x00000004
  98. #define D3DCPCAPS_PARTIALDECRYPTION     0x00000008
  99. #define D3DCPCAPS_CONTENTKEY            0x00000010
  100. #define D3DCPCAPS_FRESHENSESSIONKEY     0x00000020
  101. #define D3DCPCAPS_ENCRYPTEDREADBACK     0x00000040
  102. #define D3DCPCAPS_ENCRYPTEDREADBACKKEY  0x00000080
  103. #define D3DCPCAPS_SEQUENTIAL_CTR_IV     0x00000100
  104. #define D3DCPCAPS_ENCRYPTSLICEDATAONLY  0x00000200
  105.  
  106. DEFINE_GUID(D3DCRYPTOTYPE_AES128_CTR,
  107. 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f);
  108. DEFINE_GUID(D3DCRYPTOTYPE_PROPRIETARY,
  109. 0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x8, 0x69, 0x91, 0x7b, 0xd, 0xe8);
  110.  
  111. DEFINE_GUID(D3DKEYEXCHANGE_RSAES_OAEP,
  112. 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20);
  113. DEFINE_GUID(D3DKEYEXCHANGE_DXVA,
  114. 0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b);
  115.  
  116.  
  117. typedef struct _D3DCAPS9
  118. {
  119.     /* Device Info */
  120.     D3DDEVTYPE  DeviceType;
  121.     UINT        AdapterOrdinal;
  122.  
  123.     /* Caps from DX7 Draw */
  124.     DWORD   Caps;
  125.     DWORD   Caps2;
  126.     DWORD   Caps3;
  127.     DWORD   PresentationIntervals;
  128.  
  129.     /* Cursor Caps */
  130.     DWORD   CursorCaps;
  131.  
  132.     /* 3D Device Caps */
  133.     DWORD   DevCaps;
  134.  
  135.     DWORD   PrimitiveMiscCaps;
  136.     DWORD   RasterCaps;
  137.     DWORD   ZCmpCaps;
  138.     DWORD   SrcBlendCaps;
  139.     DWORD   DestBlendCaps;
  140.     DWORD   AlphaCmpCaps;
  141.     DWORD   ShadeCaps;
  142.     DWORD   TextureCaps;
  143.     DWORD   TextureFilterCaps;          // D3DPTFILTERCAPS for IDirect3DTexture9's
  144.     DWORD   CubeTextureFilterCaps;      // D3DPTFILTERCAPS for IDirect3DCubeTexture9's
  145.     DWORD   VolumeTextureFilterCaps;    // D3DPTFILTERCAPS for IDirect3DVolumeTexture9's
  146.     DWORD   TextureAddressCaps;         // D3DPTADDRESSCAPS for IDirect3DTexture9's
  147.     DWORD   VolumeTextureAddressCaps;   // D3DPTADDRESSCAPS for IDirect3DVolumeTexture9's
  148.  
  149.     DWORD   LineCaps;                   // D3DLINECAPS
  150.  
  151.     DWORD   MaxTextureWidth, MaxTextureHeight;
  152.     DWORD   MaxVolumeExtent;
  153.  
  154.     DWORD   MaxTextureRepeat;
  155.     DWORD   MaxTextureAspectRatio;
  156.     DWORD   MaxAnisotropy;
  157.     float   MaxVertexW;
  158.  
  159.     float   GuardBandLeft;
  160.     float   GuardBandTop;
  161.     float   GuardBandRight;
  162.     float   GuardBandBottom;
  163.  
  164.     float   ExtentsAdjust;
  165.     DWORD   StencilCaps;
  166.  
  167.     DWORD   FVFCaps;
  168.     DWORD   TextureOpCaps;
  169.     DWORD   MaxTextureBlendStages;
  170.     DWORD   MaxSimultaneousTextures;
  171.  
  172.     DWORD   VertexProcessingCaps;
  173.     DWORD   MaxActiveLights;
  174.     DWORD   MaxUserClipPlanes;
  175.     DWORD   MaxVertexBlendMatrices;
  176.     DWORD   MaxVertexBlendMatrixIndex;
  177.  
  178.     float   MaxPointSize;
  179.  
  180.     DWORD   MaxPrimitiveCount;          // max number of primitives per DrawPrimitive call
  181.     DWORD   MaxVertexIndex;
  182.     DWORD   MaxStreams;
  183.     DWORD   MaxStreamStride;            // max stride for SetStreamSource
  184.  
  185.     DWORD   VertexShaderVersion;
  186.     DWORD   MaxVertexShaderConst;       // number of vertex shader constant registers
  187.  
  188.     DWORD   PixelShaderVersion;
  189.     float   PixelShader1xMaxValue;      // max value storable in registers of ps.1.x shaders
  190.  
  191.     // Here are the DX9 specific ones
  192.     DWORD   DevCaps2;
  193.  
  194.     float   MaxNpatchTessellationLevel;
  195.     DWORD   Reserved5;
  196.  
  197.     UINT    MasterAdapterOrdinal;       // ordinal of master adaptor for adapter group
  198.     UINT    AdapterOrdinalInGroup;      // ordinal inside the adapter group
  199.     UINT    NumberOfAdaptersInGroup;    // number of adapters in this adapter group (only if master)
  200.     DWORD   DeclTypes;                  // Data types, supported in vertex declarations
  201.     DWORD   NumSimultaneousRTs;         // Will be at least 1
  202.     DWORD   StretchRectFilterCaps;      // Filter caps supported by StretchRect
  203.     D3DVSHADERCAPS2_0 VS20Caps;
  204.     D3DPSHADERCAPS2_0 PS20Caps;
  205.     DWORD   VertexTextureFilterCaps;    // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders
  206.     DWORD   MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed
  207.     DWORD   MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed
  208.     DWORD   MaxVertexShader30InstructionSlots;
  209.     DWORD   MaxPixelShader30InstructionSlots;
  210. } D3DCAPS9;
  211.  
  212. //
  213. // BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS
  214. //
  215.  
  216. //
  217. // Caps
  218. //
  219. #define D3DCAPS_OVERLAY                 0x00000800L
  220. #define D3DCAPS_READ_SCANLINE           0x00020000L
  221.  
  222. //
  223. // Caps2
  224. //
  225. #define D3DCAPS2_FULLSCREENGAMMA        0x00020000L
  226. #define D3DCAPS2_CANCALIBRATEGAMMA      0x00100000L
  227. #define D3DCAPS2_RESERVED               0x02000000L
  228. #define D3DCAPS2_CANMANAGERESOURCE      0x10000000L
  229. #define D3DCAPS2_DYNAMICTEXTURES        0x20000000L
  230. #define D3DCAPS2_CANAUTOGENMIPMAP       0x40000000L
  231.  
  232. /* D3D9Ex only -- */
  233. #if !defined(D3D_DISABLE_9EX)
  234.  
  235. #define D3DCAPS2_CANSHARERESOURCE       0x80000000L
  236.  
  237. #endif // !D3D_DISABLE_9EX
  238. /* -- D3D9Ex only */
  239.  
  240. //
  241. // Caps3
  242. //
  243. #define D3DCAPS3_RESERVED               0x8000001fL
  244.  
  245. // Indicates that the device can respect the ALPHABLENDENABLE render state
  246. // when fullscreen while using the FLIP or DISCARD swap effect.
  247. // COPY and COPYVSYNC swap effects work whether or not this flag is set.
  248. #define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD   0x00000020L
  249.  
  250. // Indicates that the device can perform a gamma correction from
  251. // a windowed back buffer containing linear content to the sRGB desktop.
  252. #define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080L
  253.  
  254. #define D3DCAPS3_COPY_TO_VIDMEM         0x00000100L /* Device can acclerate copies from sysmem to local vidmem */
  255. #define D3DCAPS3_COPY_TO_SYSTEMMEM      0x00000200L /* Device can acclerate copies from local vidmem to sysmem */
  256. #define D3DCAPS3_DXVAHD                 0x00000400L
  257.  
  258.  
  259. //
  260. // PresentationIntervals
  261. //
  262. #define D3DPRESENT_INTERVAL_DEFAULT     0x00000000L
  263. #define D3DPRESENT_INTERVAL_ONE         0x00000001L
  264. #define D3DPRESENT_INTERVAL_TWO         0x00000002L
  265. #define D3DPRESENT_INTERVAL_THREE       0x00000004L
  266. #define D3DPRESENT_INTERVAL_FOUR        0x00000008L
  267. #define D3DPRESENT_INTERVAL_IMMEDIATE   0x80000000L
  268.  
  269. //
  270. // CursorCaps
  271. //
  272. // Driver supports HW color cursor in at least hi-res modes(height >=400)
  273. #define D3DCURSORCAPS_COLOR             0x00000001L
  274. // Driver supports HW cursor also in low-res modes(height < 400)
  275. #define D3DCURSORCAPS_LOWRES            0x00000002L
  276.  
  277. //
  278. // DevCaps
  279. //
  280. #define D3DDEVCAPS_EXECUTESYSTEMMEMORY  0x00000010L /* Device can use execute buffers from system memory */
  281. #define D3DDEVCAPS_EXECUTEVIDEOMEMORY   0x00000020L /* Device can use execute buffers from video memory */
  282. #define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
  283. #define D3DDEVCAPS_TLVERTEXVIDEOMEMORY  0x00000080L /* Device can use TL buffers from video memory */
  284. #define D3DDEVCAPS_TEXTURESYSTEMMEMORY  0x00000100L /* Device can texture from system memory */
  285. #define D3DDEVCAPS_TEXTUREVIDEOMEMORY   0x00000200L /* Device can texture from device memory */
  286. #define D3DDEVCAPS_DRAWPRIMTLVERTEX     0x00000400L /* Device can draw TLVERTEX primitives */
  287. #define D3DDEVCAPS_CANRENDERAFTERFLIP   0x00000800L /* Device can render without waiting for flip to complete */
  288. #define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000L /* Device can texture from nonlocal video memory */
  289. #define D3DDEVCAPS_DRAWPRIMITIVES2      0x00002000L /* Device can support DrawPrimitives2 */
  290. #define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000L /* Device is texturing from separate memory pools */
  291. #define D3DDEVCAPS_DRAWPRIMITIVES2EX    0x00008000L /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
  292. #define D3DDEVCAPS_HWTRANSFORMANDLIGHT  0x00010000L /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
  293. #define D3DDEVCAPS_CANBLTSYSTONONLOCAL  0x00020000L /* Device supports a Tex Blt from system memory to non-local vidmem */
  294. #define D3DDEVCAPS_HWRASTERIZATION      0x00080000L /* Device has HW acceleration for rasterization */
  295. #define D3DDEVCAPS_PUREDEVICE           0x00100000L /* Device supports D3DCREATE_PUREDEVICE */
  296. #define D3DDEVCAPS_QUINTICRTPATCHES     0x00200000L /* Device supports quintic Beziers and BSplines */
  297. #define D3DDEVCAPS_RTPATCHES            0x00400000L /* Device supports Rect and Tri patches */
  298. #define D3DDEVCAPS_RTPATCHHANDLEZERO    0x00800000L /* Indicates that RT Patches may be drawn efficiently using handle 0 */
  299. #define D3DDEVCAPS_NPATCHES             0x01000000L /* Device supports N-Patches */
  300.  
  301. //
  302. // PrimitiveMiscCaps
  303. //
  304. #define D3DPMISCCAPS_MASKZ              0x00000002L
  305. #define D3DPMISCCAPS_CULLNONE           0x00000010L
  306. #define D3DPMISCCAPS_CULLCW             0x00000020L
  307. #define D3DPMISCCAPS_CULLCCW            0x00000040L
  308. #define D3DPMISCCAPS_COLORWRITEENABLE   0x00000080L
  309. #define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100L /* Device correctly clips scaled points to clip planes */
  310. #define D3DPMISCCAPS_CLIPTLVERTS        0x00000200L /* device will clip post-transformed vertex primitives */
  311. #define D3DPMISCCAPS_TSSARGTEMP         0x00000400L /* device supports D3DTA_TEMP for temporary register */
  312. #define D3DPMISCCAPS_BLENDOP            0x00000800L /* device supports D3DRS_BLENDOP */
  313. #define D3DPMISCCAPS_NULLREFERENCE      0x00001000L /* Reference Device that doesnt render */
  314. #define D3DPMISCCAPS_INDEPENDENTWRITEMASKS     0x00004000L /* Device supports independent write masks for MET or MRT */
  315. #define D3DPMISCCAPS_PERSTAGECONSTANT   0x00008000L /* Device supports per-stage constants */
  316. #define D3DPMISCCAPS_FOGANDSPECULARALPHA   0x00010000L /* Device supports separate fog and specular alpha (many devices
  317.                                                           use the specular alpha channel to store fog factor) */
  318. #define D3DPMISCCAPS_SEPARATEALPHABLEND         0x00020000L /* Device supports separate blend settings for the alpha channel */
  319. #define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x00040000L /* Device supports different bit depths for MRT */
  320. #define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000L /* Device supports post-pixel shader operations for MRT */
  321. #define D3DPMISCCAPS_FOGVERTEXCLAMPED           0x00100000L /* Device clamps fog blend factor per vertex */
  322.  
  323. /* D3D9Ex only -- */
  324. #if !defined(D3D_DISABLE_9EX)
  325.  
  326. #define D3DPMISCCAPS_POSTBLENDSRGBCONVERT       0x00200000L /* Indicates device can perform conversion to sRGB after blending. */
  327.  
  328. #endif // !D3D_DISABLE_9EX
  329. /* -- D3D9Ex only */
  330.  
  331.  
  332. //
  333. // LineCaps
  334. //
  335. #define D3DLINECAPS_TEXTURE             0x00000001L
  336. #define D3DLINECAPS_ZTEST               0x00000002L
  337. #define D3DLINECAPS_BLEND               0x00000004L
  338. #define D3DLINECAPS_ALPHACMP            0x00000008L
  339. #define D3DLINECAPS_FOG                 0x00000010L
  340. #define D3DLINECAPS_ANTIALIAS           0x00000020L
  341.  
  342. //
  343. // RasterCaps
  344. //
  345. #define D3DPRASTERCAPS_DITHER                 0x00000001L
  346. #define D3DPRASTERCAPS_ZTEST                  0x00000010L
  347. #define D3DPRASTERCAPS_FOGVERTEX              0x00000080L
  348. #define D3DPRASTERCAPS_FOGTABLE               0x00000100L
  349. #define D3DPRASTERCAPS_MIPMAPLODBIAS          0x00002000L
  350. #define D3DPRASTERCAPS_ZBUFFERLESSHSR         0x00008000L
  351. #define D3DPRASTERCAPS_FOGRANGE               0x00010000L
  352. #define D3DPRASTERCAPS_ANISOTROPY             0x00020000L
  353. #define D3DPRASTERCAPS_WBUFFER                0x00040000L
  354. #define D3DPRASTERCAPS_WFOG                   0x00100000L
  355. #define D3DPRASTERCAPS_ZFOG                   0x00200000L
  356. #define D3DPRASTERCAPS_COLORPERSPECTIVE       0x00400000L /* Device iterates colors perspective correct */
  357. #define D3DPRASTERCAPS_SCISSORTEST            0x01000000L
  358. #define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS    0x02000000L
  359. #define D3DPRASTERCAPS_DEPTHBIAS              0x04000000L
  360. #define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE     0x08000000L
  361.  
  362. //
  363. // ZCmpCaps, AlphaCmpCaps
  364. //
  365. #define D3DPCMPCAPS_NEVER               0x00000001L
  366. #define D3DPCMPCAPS_LESS                0x00000002L
  367. #define D3DPCMPCAPS_EQUAL               0x00000004L
  368. #define D3DPCMPCAPS_LESSEQUAL           0x00000008L
  369. #define D3DPCMPCAPS_GREATER             0x00000010L
  370. #define D3DPCMPCAPS_NOTEQUAL            0x00000020L
  371. #define D3DPCMPCAPS_GREATEREQUAL        0x00000040L
  372. #define D3DPCMPCAPS_ALWAYS              0x00000080L
  373.  
  374. //
  375. // SourceBlendCaps, DestBlendCaps
  376. //
  377. #define D3DPBLENDCAPS_ZERO              0x00000001L
  378. #define D3DPBLENDCAPS_ONE               0x00000002L
  379. #define D3DPBLENDCAPS_SRCCOLOR          0x00000004L
  380. #define D3DPBLENDCAPS_INVSRCCOLOR       0x00000008L
  381. #define D3DPBLENDCAPS_SRCALPHA          0x00000010L
  382. #define D3DPBLENDCAPS_INVSRCALPHA       0x00000020L
  383. #define D3DPBLENDCAPS_DESTALPHA         0x00000040L
  384. #define D3DPBLENDCAPS_INVDESTALPHA      0x00000080L
  385. #define D3DPBLENDCAPS_DESTCOLOR         0x00000100L
  386. #define D3DPBLENDCAPS_INVDESTCOLOR      0x00000200L
  387. #define D3DPBLENDCAPS_SRCALPHASAT       0x00000400L
  388. #define D3DPBLENDCAPS_BOTHSRCALPHA      0x00000800L
  389. #define D3DPBLENDCAPS_BOTHINVSRCALPHA   0x00001000L
  390. #define D3DPBLENDCAPS_BLENDFACTOR       0x00002000L /* Supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR */
  391.  
  392. /* D3D9Ex only -- */
  393. #if !defined(D3D_DISABLE_9EX)
  394.  
  395. #define D3DPBLENDCAPS_SRCCOLOR2         0x00004000L
  396. #define D3DPBLENDCAPS_INVSRCCOLOR2      0x00008000L
  397.  
  398. #endif // !D3D_DISABLE_9EX
  399. /* -- D3D9Ex only */
  400.  
  401.  
  402. //
  403. // ShadeCaps
  404. //
  405. #define D3DPSHADECAPS_COLORGOURAUDRGB       0x00000008L
  406. #define D3DPSHADECAPS_SPECULARGOURAUDRGB    0x00000200L
  407. #define D3DPSHADECAPS_ALPHAGOURAUDBLEND     0x00004000L
  408. #define D3DPSHADECAPS_FOGGOURAUD            0x00080000L
  409.  
  410. //
  411. // TextureCaps
  412. //
  413. #define D3DPTEXTURECAPS_PERSPECTIVE         0x00000001L /* Perspective-correct texturing is supported */
  414. #define D3DPTEXTURECAPS_POW2                0x00000002L /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */
  415. #define D3DPTEXTURECAPS_ALPHA               0x00000004L /* Alpha in texture pixels is supported */
  416. #define D3DPTEXTURECAPS_SQUAREONLY          0x00000020L /* Only square textures are supported */
  417. #define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L /* Texture indices are not scaled by the texture size prior to interpolation */
  418. #define D3DPTEXTURECAPS_ALPHAPALETTE        0x00000080L /* Device can draw alpha from texture palettes */
  419. // Device can use non-POW2 textures if:
  420. //  1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
  421. //  2) D3DRS_WRAP(N) is zero for this texture's coordinates
  422. //  3) mip mapping is not enabled (use magnification filter only)
  423. #define D3DPTEXTURECAPS_NONPOW2CONDITIONAL  0x00000100L
  424. #define D3DPTEXTURECAPS_PROJECTED           0x00000400L /* Device can do D3DTTFF_PROJECTED */
  425. #define D3DPTEXTURECAPS_CUBEMAP             0x00000800L /* Device can do cubemap textures */
  426. #define D3DPTEXTURECAPS_VOLUMEMAP           0x00002000L /* Device can do volume textures */
  427. #define D3DPTEXTURECAPS_MIPMAP              0x00004000L /* Device can do mipmapped textures */
  428. #define D3DPTEXTURECAPS_MIPVOLUMEMAP        0x00008000L /* Device can do mipmapped volume textures */
  429. #define D3DPTEXTURECAPS_MIPCUBEMAP          0x00010000L /* Device can do mipmapped cube maps */
  430. #define D3DPTEXTURECAPS_CUBEMAP_POW2        0x00020000L /* Device requires that cubemaps be power-of-2 dimension */
  431. #define D3DPTEXTURECAPS_VOLUMEMAP_POW2      0x00040000L /* Device requires that volume maps be power-of-2 dimension */
  432. #define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV  0x00200000L /* Device does not support projected bump env lookup operation
  433.                                                            in programmable and fixed function pixel shaders */
  434.  
  435. //
  436. // TextureFilterCaps, StretchRectFilterCaps
  437. //
  438. #define D3DPTFILTERCAPS_MINFPOINT           0x00000100L /* Min Filter */
  439. #define D3DPTFILTERCAPS_MINFLINEAR          0x00000200L
  440. #define D3DPTFILTERCAPS_MINFANISOTROPIC     0x00000400L
  441. #define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD   0x00000800L
  442. #define D3DPTFILTERCAPS_MINFGAUSSIANQUAD    0x00001000L
  443. #define D3DPTFILTERCAPS_MIPFPOINT           0x00010000L /* Mip Filter */
  444. #define D3DPTFILTERCAPS_MIPFLINEAR          0x00020000L
  445.  
  446. /* D3D9Ex only -- */
  447. #if !defined(D3D_DISABLE_9EX)
  448.  
  449. #define D3DPTFILTERCAPS_CONVOLUTIONMONO     0x00040000L /* Min and Mag for the convolution mono filter */
  450.  
  451. #endif // !D3D_DISABLE_9EX
  452. /* -- D3D9Ex only */
  453.  
  454. #define D3DPTFILTERCAPS_MAGFPOINT           0x01000000L /* Mag Filter */
  455. #define D3DPTFILTERCAPS_MAGFLINEAR          0x02000000L
  456. #define D3DPTFILTERCAPS_MAGFANISOTROPIC     0x04000000L
  457. #define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD   0x08000000L
  458. #define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD    0x10000000L
  459.  
  460. //
  461. // TextureAddressCaps
  462. //
  463. #define D3DPTADDRESSCAPS_WRAP           0x00000001L
  464. #define D3DPTADDRESSCAPS_MIRROR         0x00000002L
  465. #define D3DPTADDRESSCAPS_CLAMP          0x00000004L
  466. #define D3DPTADDRESSCAPS_BORDER         0x00000008L
  467. #define D3DPTADDRESSCAPS_INDEPENDENTUV  0x00000010L
  468. #define D3DPTADDRESSCAPS_MIRRORONCE     0x00000020L
  469.  
  470. //
  471. // StencilCaps
  472. //
  473. #define D3DSTENCILCAPS_KEEP             0x00000001L
  474. #define D3DSTENCILCAPS_ZERO             0x00000002L
  475. #define D3DSTENCILCAPS_REPLACE          0x00000004L
  476. #define D3DSTENCILCAPS_INCRSAT          0x00000008L
  477. #define D3DSTENCILCAPS_DECRSAT          0x00000010L
  478. #define D3DSTENCILCAPS_INVERT           0x00000020L
  479. #define D3DSTENCILCAPS_INCR             0x00000040L
  480. #define D3DSTENCILCAPS_DECR             0x00000080L
  481. #define D3DSTENCILCAPS_TWOSIDED         0x00000100L
  482.  
  483. //
  484. // TextureOpCaps
  485. //
  486. #define D3DTEXOPCAPS_DISABLE                    0x00000001L
  487. #define D3DTEXOPCAPS_SELECTARG1                 0x00000002L
  488. #define D3DTEXOPCAPS_SELECTARG2                 0x00000004L
  489. #define D3DTEXOPCAPS_MODULATE                   0x00000008L
  490. #define D3DTEXOPCAPS_MODULATE2X                 0x00000010L
  491. #define D3DTEXOPCAPS_MODULATE4X                 0x00000020L
  492. #define D3DTEXOPCAPS_ADD                        0x00000040L
  493. #define D3DTEXOPCAPS_ADDSIGNED                  0x00000080L
  494. #define D3DTEXOPCAPS_ADDSIGNED2X                0x00000100L
  495. #define D3DTEXOPCAPS_SUBTRACT                   0x00000200L
  496. #define D3DTEXOPCAPS_ADDSMOOTH                  0x00000400L
  497. #define D3DTEXOPCAPS_BLENDDIFFUSEALPHA          0x00000800L
  498. #define D3DTEXOPCAPS_BLENDTEXTUREALPHA          0x00001000L
  499. #define D3DTEXOPCAPS_BLENDFACTORALPHA           0x00002000L
  500. #define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM        0x00004000L
  501. #define D3DTEXOPCAPS_BLENDCURRENTALPHA          0x00008000L
  502. #define D3DTEXOPCAPS_PREMODULATE                0x00010000L
  503. #define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR     0x00020000L
  504. #define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA     0x00040000L
  505. #define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR  0x00080000L
  506. #define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA  0x00100000L
  507. #define D3DTEXOPCAPS_BUMPENVMAP                 0x00200000L
  508. #define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE        0x00400000L
  509. #define D3DTEXOPCAPS_DOTPRODUCT3                0x00800000L
  510. #define D3DTEXOPCAPS_MULTIPLYADD                0x01000000L
  511. #define D3DTEXOPCAPS_LERP                       0x02000000L
  512.  
  513. //
  514. // FVFCaps
  515. //
  516. #define D3DFVFCAPS_TEXCOORDCOUNTMASK    0x0000ffffL /* mask for texture coordinate count field */
  517. #define D3DFVFCAPS_DONOTSTRIPELEMENTS   0x00080000L /* Device prefers that vertex elements not be stripped */
  518. #define D3DFVFCAPS_PSIZE                0x00100000L /* Device can receive point size */
  519.  
  520. //
  521. // VertexProcessingCaps
  522. //
  523. #define D3DVTXPCAPS_TEXGEN              0x00000001L /* device can do texgen */
  524. #define D3DVTXPCAPS_MATERIALSOURCE7     0x00000002L /* device can do DX7-level colormaterialsource ops */
  525. #define D3DVTXPCAPS_DIRECTIONALLIGHTS   0x00000008L /* device can do directional lights */
  526. #define D3DVTXPCAPS_POSITIONALLIGHTS    0x00000010L /* device can do positional lights (includes point and spot) */
  527. #define D3DVTXPCAPS_LOCALVIEWER         0x00000020L /* device can do local viewer */
  528. #define D3DVTXPCAPS_TWEENING            0x00000040L /* device can do vertex tweening */
  529. #define D3DVTXPCAPS_TEXGEN_SPHEREMAP    0x00000100L /* device supports D3DTSS_TCI_SPHEREMAP */
  530. #define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER   0x00000200L /* device does not support TexGen in non-local
  531.                                                             viewer mode */
  532.  
  533. //
  534. // DevCaps2
  535. //
  536. #define D3DDEVCAPS2_STREAMOFFSET                        0x00000001L /* Device supports offsets in streams. Must be set by DX9 drivers */
  537. #define D3DDEVCAPS2_DMAPNPATCH                          0x00000002L /* Device supports displacement maps for N-Patches*/
  538. #define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                 0x00000004L /* Device supports adaptive tesselation of RT-patches*/
  539. #define D3DDEVCAPS2_ADAPTIVETESSNPATCH                  0x00000008L /* Device supports adaptive tesselation of N-patches*/
  540. #define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       0x00000010L /* Device supports StretchRect calls with a texture as the source*/
  541. #define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                0x00000020L /* Device supports presampled displacement maps for N-Patches */
  542. #define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  0x00000040L /* Vertex elements in a vertex declaration can share the same stream offset */
  543.  
  544. //
  545. // DeclTypes
  546. //
  547. #define D3DDTCAPS_UBYTE4     0x00000001L
  548. #define D3DDTCAPS_UBYTE4N    0x00000002L
  549. #define D3DDTCAPS_SHORT2N    0x00000004L
  550. #define D3DDTCAPS_SHORT4N    0x00000008L
  551. #define D3DDTCAPS_USHORT2N   0x00000010L
  552. #define D3DDTCAPS_USHORT4N   0x00000020L
  553. #define D3DDTCAPS_UDEC3      0x00000040L
  554. #define D3DDTCAPS_DEC3N      0x00000080L
  555. #define D3DDTCAPS_FLOAT16_2  0x00000100L
  556. #define D3DDTCAPS_FLOAT16_4  0x00000200L
  557.  
  558.  
  559. #pragma pack()
  560.  
  561. #endif /* (DIRECT3D_VERSION >= 0x0900) */
  562. #endif /* _d3d9CAPS_H_ */
  563.  
  564.