Partager via


MÉTHODE ID3DXEffectCompiler::CompileShader

Compile un nuanceur à partir d’un effet qui contient une ou plusieurs fonctions.

Syntaxe

HRESULT CompileShader(
  [in]          D3DXHANDLE          hFunction,
  [in]          LPCSTR              pTarget,
  [in]          DWORD               Flags,
  [out, retval] LPD3DXBUFFER        *ppShader,
  [out, retval] LPD3DXBUFFER        *ppErrorMsgs,
  [out]         LPD3DXCONSTANTTABLE *ppConstantTable
);

Paramètres

hFunction [in]

Type : D3DXHANDLE

Identificateur unique de la fonction à compiler. Cette valeur ne doit pas être NULL. Consultez Handles (Direct3D 9).

pTarget [in]

Type : LPCSTR

Pointeur vers un profil de nuanceur qui détermine le jeu d’instructions du nuanceur. Pour obtenir la liste des profils disponibles, consultez D3DXGetVertexShaderProfile ou D3DXGetPixelShaderProfile .

Indicateurs [in]

Type : DWORD

Options de compilation identifiées par différents indicateurs. Le compilateur HLSL Direct3D 10 est désormais la valeur par défaut. Pour plus d’informations, consultez Indicateurs D3DXSHADER .

ppShader [out, retval]

Type : LPD3DXBUFFER*

Mémoire tampon contenant le nuanceur compilé. Le nuanceur du compilateur est un tableau de DWORD. Pour plus d’informations sur l’accès à la mémoire tampon, consultez ID3DXBuffer.

ppErrorMsgs [out, retval]

Type : LPD3DXBUFFER*

Mémoire tampon contenant au moins le premier message d’erreur de compilation qui s’est produit. Cela inclut les erreurs du compilateur d’effet et les erreurs de compilation de langage de haut niveau. Pour plus d’informations sur l’accès à la mémoire tampon, consultez ID3DXBuffer.

ppConstantTable [out]

Type : LPD3DXCONSTANTTABLE*

Retourne une interface ID3DXConstantTable , qui peut être utilisée pour accéder aux constantes du nuanceur. Cette valeur peut être NULL. Si vous compilez votre application en tant qu’adresse de grande taille (c’est-à-dire que vous utilisez l’option de l’éditeur de liens /LARGEADDRESSAWARE pour gérer les adresses supérieures à 2 Go), vous ne pouvez pas utiliser ce paramètre et devez le définir sur NULL. Au lieu de cela, vous devez utiliser la fonction D3DXGetShaderConstantTableEx pour récupérer la table de constante de nuanceur incorporée dans le nuanceur. Dans cet appel D3DXGetShaderConstantTableEx , vous devez passer l’indicateur D3DXCONSTTABLE_LARGEADDRESSAWARE au paramètre Flags pour spécifier d’accéder à jusqu’à 4 Go d’espace d’adressage virtuel.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est S_OK.

Si les arguments ne sont pas valides, la méthode retourne D3DERR_INVALIDCALL.

Si la méthode échoue, la valeur de retour est E_FAIL.

Notes

Des cibles peuvent être spécifiées pour les nuanceurs de vertex, les nuanceurs de pixels et les fonctions de remplissage de texture.

Cibles Fonctions
Cibles du nuanceur de vertex vs_1_1, vs_2_0, vs_2_sw, vs_3_0
Cibles du nuanceur de pixels ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw, ps_3_0
Cibles de remplissage de texture tx_0, tx_1

 

Cette méthode compile un nuanceur à partir d’une fonction écrite dans un langage de type C. Pour plus d’informations, consultez HLSL.

Spécifications

Condition requise Valeur
En-tête
D3DX9Effect.h
Bibliothèque
D3dx9.lib

Voir aussi

ID3DXEffectCompiler

D3DXGetShaderConstantTable