Conversione dello stato di funzione fissa Direct3D
Il runtime di Microsoft Direct3D converte lo stato a funzione fissa Direct3D in vertex o pixel shader versione 2.0 se il driver di visualizzazione in modalità utente supporta la versione 2.0 o successiva per ogni tipo di shader. Tuttavia, il runtime non converte le versioni dello shader. Ad esempio, se un'applicazione usa vertex o pixel shader versione 1.1, la versione 1.1 viene passata al driver di visualizzazione in modalità utente indipendentemente dal fatto che il driver supporti shader versione 2.0 o successiva. I codici FVF (Flexible Vertex Format) vengono usati con l'elaborazione a funzione fissa.
Funzionalità del convertitore per le versioni DirectX
Il funzionamento dei convertitori di vertex e pixel shader a funzione fissa dipende dalla versione di Microsoft DirectX usata:
DirectX 9.0
I convertitori di vertex e pixel shader a funzionalità fissa possono funzionare con il modello di driver di visualizzazione di Windows Vista.
I convertitori sono abilitati per impostazione predefinita.
Quando viene usato il convertitore di vertex o pixel shader a funzione fissa, il dispositivo puro è disabilitato. Quando un'applicazione richiede il dispositivo puro, il runtime Direct3D crea un dispositivo HAL.
Il runtime supporta l'elaborazione dei vertici misti.
L'elaborazione dei vertici software usa sempre il convertitore di vertex shader a funzione fissa.
L'elaborazione dei vertici hardware usa il convertitore vertex shader a funzione fissa quando il driver supporta vertex shader versione 2.0 o successiva.
L'elaborazione dei vertici hardware usa il convertitore pixel shader a funzione fissa quando il driver supporta pixel shader versione 2.0 o successiva.
Nella modalità di elaborazione dei vertici misti quando il convertitore di vertex shader a funzione fissa è abilitato per l'hardware, il numero di costanti float viene impostato su ciò che l'hardware può supportare.
DirectX 8.0 e versioni precedenti
I convertitori di vertex e pixel shader a funzione fissa possono funzionare solo con il modello di driver di visualizzazione di Windows Vista.
I convertitori sono abilitati per impostazione predefinita.
Il convertitore di vertex shader a funzione fissa non è supportato con l'elaborazione dei vertici software.
L'elaborazione hardware dei vertici utilizza il convertitore a funzione fissa del vertex shader se il driver supporta la versione 2.0 o successiva del vertex shader.
L'elaborazione dei vertici hardware usa il convertitore pixel shader a funzione fissa quando il driver supporta pixel shader versione 2.0 o successiva.
Nota Per le versioni di DirectX precedenti a DirectX 8.0, la funzione fissa al codice di mapping dello shader viene implementata in Ddraw.dll.
Funzioni inutilizzate del driver video User-Mode
Le funzioni del driver di visualizzazione in modalità utente seguenti non vengono chiamate dal runtime Direct3D quando il convertitore vertex shader a funzione fissa è abilitato:
stati di rendering inutilizzati
Gli stati di rendering seguenti non vengono passati dal runtime Direct3D (o, se passati per errore, possono essere ignorati dal driver) quando il convertitore vertex shader a funzione fissa è abilitato:
D3DRS_VERTEXBLEND
D3DRS_INDEXEDVERTEXBLENDENABLE
D3DRS_TWEENFACTOR
D3DRS_FOGVERTEXMODE
D3DRS_LIGHTING
D3DRS_AMBIENT
D3DRS_COLORVERTEX
D3DRS_LOCALVIEWER
D3DRS_DIFFUSEMATERIALSOURCE
D3DRS_SPECULARMATERIALSOURCE
D3DRS_AMBIENTMATERIALSOURCE
D3DRS_EMISSIVEMATERIALSOURCE
D3DRS_POINTSCALEENABLE
D3DRS_POINTSCALE_A
D3DRS_POINTSCALE_B
D3DRS_POINTSCALE_C
D3DRS_NORMALIZENORMALS
Stati delle fasi di texture ignorati
Il runtime Direct3D passa tutti gli stati della fase della trama al driver. Il driver deve ignorare gli stati della fase di trama seguenti quando il convertitore pixel shader a funzione fissa è abilitato:
D3DTSS_COLOROP
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DTSS_ALPHAOP
D3DTSS_ALPHAARG1
D3DTSS_ALPHAARG2
D3DTSS_BUMPENVMAT00
D3DTSS_BUMPENVMAT01
D3DTSS_BUMPENVMAT10
D3DTSS_BUMPENVMAT11
D3DTSS_BUMPENVLSCALE
D3DTSS_BUMPENVLOFFSET
D3DTSS_COLORARG0
D3DTSS_ALPHAARG0
D3DTSS_RESULTARG
D3DTSS_CONSTANT