Funzionalità Direct3D 9 necessarie
Per consentire alle applicazioni di accedere completamente alle funzionalità di Microsoft Direct3D versioni 9_1, 9_2 e 9_3, il driver in modalità utente deve esporre determinate funzionalità hardware. Queste funzionalità sono espresse in termini della struttura D3DCAPS9 restituita dalla funzione GetCaps del driver in modalità utente. Per indicare il supporto delle funzionalità, il driver deve impostare questi membri di D3DCAPS9 su un or bit per bit di tutti i rispettivi valori di flag:
Funzionalità minime per il livello Direct3D 9_1
D3DCAPS9 membro | Valore del flag |
---|---|
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
(vedere la nota). |
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 | Deve essere zero o 128 o maggiore. |
MaxAnisotropy | 2 |
MaxVertexW | 0.f |
Nota Questi requisiti si applicano anche:
- Il driver deve anche impostare il membro TextureCaps su un valore di D3DPTEXTURECAPS_NONPOW2CONDITIONAL e D3DPTEXTURECAPS_POW2 o su nessuno dei due.
- Quando il driver risponde a un evento, in cui D3DDDIARG_CREATEQUERY. QueryType è D3DDDIQUERYTYPE_EVENT, deve sempre impostare il valore BOOL dell'evento su TRUE quando risponde. Vedere CreateQuery e D3DDDIARG_CREATEQUERY.
Funzionalità minime per il livello Direct3D 9_2
Queste funzionalità devono essere impostate oltre a quelle elencate per il livello Direct3D 9_1.
D3DCAPS9 membro | Valore del flag |
---|---|
PrimitiveMiscCaps | D3DPMISCCAPS_SEPARATEALPHABLEND |
DevCaps2 | D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET |
TextureAddressCaps | D3DPTADDRESSCAPS_MIRRORONCE |
VolumeTextureAddressCaps | D3DPTADDRESSCAPS_MIRRORONCE |
MaxTextureWidth | 2048 |
MaxTextureHeight | 2048 |
MaxTextureRepeat | Deve essere zero o 2048 o superiore. |
VertexShaderVersion | D3DVS_VERSION(2,0) |
MaxAnisotropy | 16 |
MaxPrimitiveCount | 1048575 |
MaxVertexIndex | 1048575 |
MaxVertexW | 1000000000.f |
Nota Questo requisito si applica anche:
- Quando il driver risponde a una query z-testing, in cui D3DDDIARG_CREATEQUERY. QueryType è D3DDDIQUERYTYPE_OCCLUSION, deve sempre impostare il valore UINT della query su un valore diverso da zero quando risponde. Vedere CreateQuery e D3DDDIARG_CREATEQUERY.
Funzionalità minime per il livello Direct3D 9_3
Queste funzionalità devono essere impostate oltre a quelle elencate per i livelli Direct3D 9_1 e 9_2.
membro D3DCAPS9 | Valore del flag |
---|---|
PS20Caps-Caps> | D3DPS20CAPS_GRADIENTINSTRUCTIONS |
PrimitiveMiscCaps | D3DPMISCCAPS_INDEPENDENTWRITEMASKS D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
TextureAddressCaps | D3DPTADDRESSCAPS_BORDER |
MaxTextureWidth | 4096 |
MaxTextureHeight | 4096 |
MaxTextureRepeat | Deve essere zero o 8192 o maggiore. |
NumSimultaneousRTs | 4 |
PS20Caps-NumInstructionSlots> | 512 (Pixel Shader versione 2b) |
PS20Caps-NumTemps> | 32 (Pixel Shader versione 2b) |
VS20Caps-NumTemps> | 32 (Vertex Shader versione 2a) |
MaxVertexShaderConst | 256 (vertex shader versione 2a) |
VertexShaderVersion | D3DVS_VERSION(3,0) (vedere la nota). |
Nota Il valore VertexShaderVersion di D3DVS_VERSION(3,0) garantisce il supporto per la creazione di istanze. Direct3D 10Level 9 non espone il modello shader 3.0.