Partager via


structure D3DHAL_DP2VERTEXSHADER (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, selon le code opcode reçu (D3DDP2OP_SETVERTEXSHADER ou D3DDP2OP_DELETEVERTEXSHADER) par D3dDrawPrimitives2.

Syntaxe

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

Membres

dwHandle

Handle à 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 de vertex programmable. Dans ce cas, toutefois, le handle du nuanceur est toujours un code FVF indiquant le traitement de 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 de vertex programmable 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éinitialiser le traitement des pixels en mode sous-grammable, 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 du vertex à un mode de fonction fixe et non l’état de traitement des pixels lorsque le nuanceur de vertex est défini sur un code FVF.

Lorsque vous passez du traitement de vertex de fonction fixe au traitement de vertex programmable, les valeurs de l’état de rendu hérité et des matrices doivent être conservées. Si et lorsqu’un commutateur de traitement de vertex de fonction fixe se produit (le pilote reçoit un D3DDP2OP_SETVERTEXSHADER avec une FVF comme handle de nuanceur), cet état conservé doit être restauré.

Lors du basculement entre les nuanceurs programmables, tout registre constant qui a une valeur 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 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.

Exigences

Exigence Valeur
d’en-tête d3dhal.h (include 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