필수 Direct3D 9 기능
애플리케이션이 Microsoft Direct3D 버전 9_1, 9_2 및 9_3의 기능에 완전히 액세스하려면 사용자 모드 드라이버가 특정 하드웨어 기능을 노출해야 합니다. 이러한 기능은 사용자 모드 드라이버의 GetCaps 함수에서 반환되는 D3DCAPS9 구조의 관점에서 표현됩니다. 기능을 지원함을 나타내려면 드라이버는 이러한 D3DCAPS9 멤버를 각 플래그 값의 비트 OR로 설정해야 합니다.
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
(참고 참조) |
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 |
StencilCaps | D3DSTENCILCAPS_TWOSIDED |
MaxTextureWidth | 2048 |
MaxTextureHeight | 2048 |
NumSimultaneousRTs | 1 |
MaxSimultaneousTextures | 8 |
MaxTextureBlendStages | 8 |
PixelShaderVersion | D3DPS_VERSION(2,0) |
MaxPrimitiveCount | 65535 |
MaxVertexIndex | 65534 |
MaxVolumeExtent | 256 |
MaxTextureRepeat | 0 또는 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 | 0 또는 2048 이상이어야 합니다. |
VertexShaderVersion | D3DVS_VERSION(2,0) |
MaxAnisotropy | 16 |
MaxPrimitiveCount | 1048575 |
MaxVertexIndex | 1048575 |
MaxVertexW | 100000000000.f |
참고 이 요구 사항도 적용됩니다.
- 드라이버가 z-testing 쿼리에 응답하면 여기서 D3DDDIARG_CREATEQUERY. QueryType 은 D3DDDIQUERYTYPE_OCCLUSION 응답할 때 항상 쿼리의 UINT 값을 0이 아닌 값으로 설정해야 합니다. 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 | 0 또는 8192 이상이어야 합니다. |
NumSimultaneousRTs | 4 |
PS20Caps-NumInstructionSlots> | 512(픽셀 셰이더 버전 2b) |
PS20Caps-NumTemps> | 32(픽셀 셰이더 버전 2b) |
VS20Caps-NumTemps> | 32(꼭짓점 셰이더 버전 2a) |
MaxVertexShaderConst | 256(꼭짓점 셰이더 버전 2a) |
VertexShaderVersion | D3DVS_VERSION(3,0)(참고 참조) |
참고 D3DVS_VERSION(3,0)의 VertexShaderVersion 값은 인스턴스화 지원을 보장합니다. Direct3D 10Level 9는 셰이더 모델 3.0을 노출하지 않습니다.