Conversion de l’état de Fixed-Function Direct3D
Le runtime Microsoft Direct3D convertit l’état de fonction fixe Direct3D en vertex ou en nuanceur de pixels version 2.0 si le pilote d’affichage en mode utilisateur prend en charge la version 2.0 ou ultérieure pour chaque type de nuanceur. Toutefois, le runtime ne convertit pas les versions du nuanceur. Par exemple, si une application utilise vertex ou nuanceur de pixels version 1.1, la version 1.1 est passée sans conversion au pilote d’affichage en mode utilisateur, que le pilote prenne en charge le nuanceur version 2.0 ou ultérieure. Les codes de format de vertex flexible (FVF) sont utilisés avec le traitement à fonction fixe.
Fonctionnalités de convertisseur pour les versions DirectX
Le fonctionnement des convertisseurs de vertex et de nuanceur de pixels à fonction fixe dépend de la version de Microsoft DirectX utilisée :
DirectX 9.0
Les convertisseurs de vertex et de nuanceurs de pixels à fonction fixe peuvent fonctionner avec le modèle de pilote d’affichage Windows Vista.
Les convertisseurs sont activés par défaut.
Lorsque le convertisseur de vertex ou de nuanceur de pixels à fonction fixe est utilisé, l’appareil pur est désactivé. Lorsqu’une application demande l’appareil pur, le runtime Direct3D crée un appareil HAL.
Le runtime prend en charge le traitement des vertex mixtes.
Le traitement des vertex logiciels utilise toujours le convertisseur de nuanceur de vertex à fonction fixe.
Le traitement du vertex matériel utilise le convertisseur de nuanceur de vertex à fonction fixe lorsque le pilote prend en charge le nuanceur de vertex version 2.0 ou ultérieure.
Le traitement du vertex matériel utilise le convertisseur de nuanceur de pixels à fonction fixe lorsque le pilote prend en charge le nuanceur de pixels version 2.0 ou ultérieure.
En mode de traitement de vertex mixte lorsque le convertisseur de nuanceur de vertex à fonction fixe est activé pour le matériel, le nombre de constantes float est défini sur ce que le matériel peut prendre en charge.
DirectX 8.0 et versions antérieures
Les convertisseurs de vertex et de nuanceurs de pixels à fonction fixe peuvent fonctionner uniquement avec le modèle de pilote d’affichage Windows Vista.
Les convertisseurs sont activés par défaut.
Le convertisseur de nuanceur de vertex à fonction fixe n’est pas pris en charge avec le traitement de vertex logiciel.
Le traitement du vertex matériel utilise le convertisseur de nuanceur de vertex à fonction fixe lorsque le pilote prend en charge le nuanceur de vertex version 2.0 ou ultérieure.
Le traitement du vertex matériel utilise le convertisseur de nuanceur de pixels à fonction fixe lorsque le pilote prend en charge le nuanceur de pixels version 2.0 ou ultérieure.
Note Pour les versions de DirectX antérieures à DirectX 8.0, le code de mappage de fonction fixe à nuanceur est implémenté dans Ddraw.dll.
Fonctions du pilote d’affichage User-Mode inutilisées
Les fonctions de pilote d’affichage en mode utilisateur suivantes ne sont pas appelées par le runtime Direct3D lorsque le convertisseur de nuanceur de vertex à fonction fixe est activé :
États de rendu inutilisés
Les états de rendu suivants ne sont pas passés par le runtime Direct3D (ou, s’ils sont transmis par erreur, peuvent être ignorés par le pilote) lorsque le convertisseur de nuanceur de vertex à fonction fixe est activé :
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
États d’étape de texture ignorés
Le runtime Direct3D transmet tous les états de phase de texture au pilote. Le pilote doit ignorer les états d’étape de texture suivants lorsque le convertisseur de nuanceur de pixels à fonction fixe est activé :
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