Fonction D3DXCompileShaderFromFile
Compilez un fichier de nuanceur.
Notes
Au lieu d’utiliser cette fonction héritée, nous vous recommandons de compiler hors connexion à l’aide du compilateur de ligne de commande Fxc.exe ou d’utiliser l’API D3DCompile .
Syntaxe
HRESULT D3DXCompileShaderFromFile(
_In_ LPCTSTR pSrcFile,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ DWORD Flags,
_Out_ LPD3DXBUFFER *ppShader,
_Out_ LPD3DXBUFFER *ppErrorMsgs,
_Out_ LPD3DXCONSTANTTABLE *ppConstantTable
);
Paramètres
-
pSrcFile [in]
-
Type : LPCTSTR
Pointeur vers une chaîne qui spécifie le nom de fichier.
-
pDefines [in]
-
Type : const D3DXMACRO*
Tableau null facultatif de structures D3DXMACRO . Cette valeur peut être NULL.
-
pInclude [in]
-
Type : LPD3DXINCLUDE
Pointeur d’interface facultatif, ID3DXInclude, à utiliser pour gérer les directives #include. Si cette valeur a la valeur NULL, #includes sera respecté lors de la compilation à partir d’un fichier ou provoquera une erreur lors de la compilation à partir d’une ressource ou d’une mémoire.
-
pFunctionName [in]
-
Type : LPCSTR
Pointeur vers la fonction de point d’entrée du nuanceur où l’exécution commence.
-
pProfile [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]
-
Type : LPD3DXBUFFER*
Retourne une mémoire tampon contenant le nuanceur créé. Cette mémoire tampon contient le code de nuanceur compilé, ainsi que toutes les informations de débogage et de table de symboles incorporées.
-
ppErrorMsgs [out]
-
Type : LPD3DXBUFFER*
Retourne une mémoire tampon contenant une liste des erreurs et des avertissements rencontrés lors de la compilation. Il s’agit des mêmes messages affichés par le débogueur lors de l’exécution en mode débogage. Cette valeur peut être NULL.
-
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 volumineuse (c’est-à-dire que vous utilisez l’option é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 à l’intérieur du nuanceur. Dans cet appel D3DXGetShaderConstantTableEx , vous devez passer l’indicateur D3DXCONSTTABLE_LARGEADDRESSAWARE au paramètre Flags pour spécifier pour accéder à jusqu’à 4 Go d’espace d’adressage virtuel.
Valeur retournée
Type : HRESULT
Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_NOTIMPL, E_OUTOFMEMORY.
E_NOTIMPL est retourné si vous utilisez des nuanceurs 1.1 (vs_1_1 et ps_1_1).
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi