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 |
|
Bibliothèque |
|
Voir aussi