必需的 Direct3D 9 功能
若要让应用程序完全访问 Microsoft Direct3D 版本 9_1、9_2 和 9_3 的功能,用户模式驱动程序必须公开某些硬件功能。 这些功能以用户模式驱动程序的 GetCaps 函数返回的D3DCAPS9结构表示。 若要指示支持这些功能,驱动程序必须将 D3DCAPS9 的这些成员设置为所有相应标志值的按位或:
Direct3D 级别 9_1 的最低功能
D3DCAPS9 成员 | 标志值 |
---|---|
Caps2 | D3DCAPS2_DYNAMICTEXTURES D3DCAPS2_FULLSCREENGAMMA |
PresentationIntervals | D3DPRESENT_INTERVAL_IMMEDIATE D3DPRESENT_INTERVAL_ONE |
PrimitiveMiscCaps | D3DPMISCCAPS_COLORWRITEENABLE |
ShadeCaps | D3DPSHADECAPS_ALPHAGOURAUDBLEND D3DPSHADECAPS_COLORGOURAUDRGB D3DPSHADECAPS_FOGGOURAUD D3DPSHADECAPS_SPECULARGOURAUDRGB |
TextureFilterCaps | D3DPTFILTERCAPS_MINFLINEAR D3DPTFILTERCAPS_MINFPOINT D3DPTFILTERCAPS_MAGFLINEAR D3DPTFILTERCAPS_MAGFPOINT |
TextureCaps
(请参阅 Note.) |
D3DPTEXTURECAPS_ALPHA D3DPTEXTURECAPS_CUBEMAP D3DPTEXTURECAPS_MIPMAP D3DPTEXTURECAPS_PERSPECTIVE |
TextureAddressCaps | D3DPTADDRESSCAPS_CLAMP D3DPTADDRESSCAPS_INDEPENDENTUV D3DPTADDRESSCAPS_MIRROR D3DPTADDRESSCAPS_WRAP |
TextureOpCaps | D3DTEXOPCAPS_DISABLE D3DTEXOPCAPS_MODULATE D3DTEXOPCAPS_SELECTARG1 D3DTEXOPCAPS_SELECTARG2 |
SrcBlendCaps | D3DPBLENDCAPS_INVDESTALPHA D3DPBLENDCAPS_INVDESTCOLOR D3DPBLENDCAPS_INVSRCALPHA D3DPBLENDCAPS_ONE D3DPBLENDCAPS_SRCALPHA D3DPBLENDCAPS_ZERO |
DestBlendCaps | D3DPBLENDCAPS_ONE D3DPBLENDCAPS_INVSRCALPHA D3DPBLENDCAPS_INVSRCCOLOR D3DPBLENDCAPS_SRCALPHA D3DPBLENDCAPS_ZERO |
StretchRectFilterCaps | D3DPTFILTERCAPS_MAGFLINEAR D3DPTFILTERCAPS_MAGFPOINT D3DPTFILTERCAPS_MINFLINEAR D3DPTFILTERCAPS_MINFPOINT |
ZCmpCaps | D3DPCMPCAPS_ALWAYS D3DPCMPCAPS_LESSEQUAL |
RasterCaps | D3DPRASTERCAPS_DEPTHBIAS D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS |
模具Caps | D3DSTENCILCAPS_TWOSIDED |
MaxTextureWidth | 2048 |
MaxTextureHeight | 2048 |
NumSimultaneousRTs | 1 |
MaxSimultaneousTextures | 8 |
MaxTextureBlendStages | 8 |
PixelShaderVersion | D3DPS_VERSION (2,0) |
MaxPrimitiveCount | 65535 |
MaxVertexIndex | 65534 |
MaxVolumeExtent | 256 |
MaxTextureRepeat | 必须为零或 128 或更大。 |
MaxAnisotropy | 2 |
MaxVertexW | 0.f |
注意 这些要求也适用于:
- 驱动程序还必须将 TextureCaps 成员设置为值 D3DPTEXTURECAPS_NONPOW2CONDITIONAL 和 D3DPTEXTURECAPS_POW2,或者两者都不设置为 。
- 当驱动程序响应事件时, 其中D3DDDIARG_CREATEQUERY。QueryType D3DDDIQUERYTYPE_EVENT,响应时必须始终将事件的 BOOL 值设置为 TRUE 。 请参阅 CreateQuery 和 D3DDDIARG_CREATEQUERY。
Direct3D 级别 9_2 的最低功能
除了为 Direct3D 级别 9_1 列出的功能之外,还必须设置这些功能。
D3DCAPS9 成员 | 标志值 |
---|---|
PrimitiveMiscCaps | D3DPMISCCAPS_SEPARATEALPHABLEND |
DevCaps2 | D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET |
TextureAddressCaps | D3DPTADDRESSCAPS_MIRRORONCE |
VolumeTextureAddressCaps | D3DPTADDRESSCAPS_MIRRORONCE |
MaxTextureWidth | 2048 |
MaxTextureHeight | 2048 |
MaxTextureRepeat | 必须为零或 2048 或更大。 |
VertexShaderVersion | D3DVS_VERSION (2,0) |
MaxAnisotropy | 16 |
MaxPrimitiveCount | 1048575 |
MaxVertexIndex | 1048575 |
MaxVertexW | 10000000000.f |
注意 此要求也适用于:
- 当驱动程序响应 z 测试查询时, 其中D3DDDIARG_CREATEQUERY。QueryType D3DDDIQUERYTYPE_OCCLUSION,它在响应时必须始终将查询的 UINT 值设置为非零值。 请参阅 CreateQuery 和 D3DDDIARG_CREATEQUERY。
Direct3D 级别 9_3 的最低功能
除了为 Direct3D 级别 9_1 和 9_2 列出的功能之外,还必须设置这些功能。
D3DCAPS9 成员 | 标志值 |
---|---|
PS20Caps-Caps> | D3DPS20CAPS_GRADIENTINSTRUCTIONS |
PrimitiveMiscCaps | D3DPMISCCAPS_INDEPENDENTWRITEMASKS D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
TextureAddressCaps | D3DPTADDRESSCAPS_BORDER |
MaxTextureWidth | 4096 |
MaxTextureHeight | 4096 |
MaxTextureRepeat | 必须为零或 8192 或更大。 |
NumSimultaneousRTs | 4 |
PS20Caps-NumInstructionSlots> | 512 (像素着色器版本 2b) |
PS20Caps-NumTemps> | 32 (像素着色器版本 2b) |
VS20Caps-NumTemps> | 32 (顶点着色器版本 2a) |
MaxVertexShaderConst | 256 (顶点着色器版本 2a) |
VertexShaderVersion | D3DVS_VERSION (3,0) (请参阅 Note.) |
注意VertexShaderVersion 值D3DVS_VERSION (3,0) 保证实例化支持。 Direct3D 10Level 9 不公开着色器模型 3.0。