D3DHAL_DP2VERTEXSHADER structure (d3dhal.h)

DirectX 8.0 et versions ultérieures uniquement.

La structure D3DHAL_DP2VERTEXSHADER définit le nuanceur de vertex actuel ou supprime un nuanceur de vertex, en fonction de l’opcode reçu (D3DDP2OP_SETVERTEXSHADER ou D3DDP2OP_DELETEVERTEXSHADER) par D3dDrawPrimitives2.

Syntaxe

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

Membres

dwHandle

Handle de l’affichage.

Remarques

Tous les pilotes de niveau DirectX 8.0 doivent prendre en charge le jeton D3DDP2OP_SETVERTEXSHADER, car il est envoyé même si le pilote ne prend pas en charge le traitement programmable du vertex. Dans ce cas, toutefois, le handle du nuanceur est toujours un code FVF indiquant le traitement par fonction fixe des données de vertex. Le pilote doit utiliser le code FVF stocké dans le membre dwHandle comme format des données de vertex dans le flux zéro. Un pilote qui prend en charge le traitement programmable du vertex doit examiner le handle pour déterminer s’il fait référence à un nuanceur créé précédemment avec D3DDP2OP_CREATEVERTEXSHADER ou un code FVF et prendre l’action appropriée.

Les nuanceurs de pixels et de vertex sont orthogonaux. Par conséquent, si un code FVF hérité est sélectionné comme nuanceur de vertex actuel, cela n’implique pas le traitement des pixels hérités. Pour rétablir le traitement des pixels en mode sous-programme, le nuanceur de pixels actuel doit également être défini sur zéro. Veillez à ce que le pilote réinitialise uniquement l’état de traitement des vertex en mode fonction fixe et non à l’état de traitement des pixels lorsque le nuanceur de vertex est défini sur un code FVF.

Lors du passage d’un traitement de vertex de fonction fixe au traitement de vertex programmable, les valeurs de matrices et d’état de rendu hérités doivent être conservées. Si et lorsqu’un basculement du traitement de vertex de fonction programmable vers fonction fixe se produit (le pilote reçoit un D3DDP2OP_SETVERTEXSHADER avec un FVF comme handle du nuanceur), cet état conservé doit être restauré.

Lors du basculement entre des nuanceurs programmables, tout registre de constante dont la valeur est spécifiée dans la définition de ce nuanceur doit être défini sur cette valeur. Les valeurs de tous les autres registres de constantes doivent rester inchangées.

Pour les opérations de D3DDP2OP_SETVERTEXSHADERDECL, le runtime spécifie un code FVF hérité ou un handle de déclaration DirectX 9.0 dans le membre dwHandle . Le runtime indique un handle de déclaration DirectX 9.0 en définissant le bit 0 du handle. Pour les opérations D3DDP2OP_SETVERTEXSHADERFUNC, le runtime définit dwHandle sur zéro pour indiquer un pipeline de fonction fixe.

Configuration requise

Condition requise Valeur
En-tête d3dhal.h (inclure D3dhal.h)

Voir aussi

D3DDP2OP_CREATEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADERDECL

D3DDP2OP_DELETEVERTEXSHADERFUNC

D3DDP2OP_SETSTREAMSOURCE

D3DDP2OP_SETSTREAMSOURCEUM

D3DDP2OP_SETVERTEXSHADER

D3DDP2OP_SETVERTEXSHADERDECL

D3DDP2OP_SETVERTEXSHADERFUNC

D3DHAL_DP2CREATEVERTEXSHADER

D3DHAL_DP2SETVERTEXSHADERCONST

D3dDrawPrimitives2