Partager via


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