Partager via


D3DX11CompileFromFile, fonction

Notes

La bibliothèque d’utilitaires D3DX (D3DX 9, D3DX 10 et D3DX 11) est déconseillée pour Windows 8 et n’est pas prise en charge pour les applications du Windows Store.

Notes

Au lieu d’utiliser cette fonction, nous vous recommandons de compiler hors connexion à l’aide du compilateur de ligne de commande Fxc.exe ou d’utiliser l’une des API de compilation HLSL, comme l’API D3DCompileFromFile .

Compilez un nuanceur ou un effet à partir d’un fichier.

Syntaxe

HRESULT D3DX11CompileFromFile(
  _In_        LPCTSTR            pSrcFile,
  _In_  const D3D10_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX11ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

Paramètres

pSrcFile [in]

Type : LPCTSTR

Nom du fichier qui contient le code du nuanceur. Si les paramètres du compilateur nécessitent Unicode, le type de données LPCTSTR est résolu en LPCWSTR. Sinon, le type de données est résolu en LPCSTR.

pDefines [in]

Type : const D3D10_SHADER_MACRO*

Optionnel. Pointeur vers un tableau de définitions de macros (voir D3D10_SHADER_MACRO). La dernière structure du tableau sert de terminateur et doit avoir tous les membres définis sur 0. S’il n’est pas utilisé, définissez pDefines sur NULL.

pInclude [in]

Type : LPD3D10INCLUDE

Optionnel. Pointeur vers une interface pour la gestion des fichiers Include. L’attribution de la valeur NULL entraîne une erreur de compilation si un nuanceur contient un #include.

pFunctionName [in]

Type : LPCSTR

Nom de la fonction de point d’entrée du nuanceur où commence l’exécution du nuanceur. Lorsque vous compilez un effet, D3DX11CompileFromFile ignore pFunctionName ; nous vous recommandons de définir pFunctionName sur NULL , car il est recommandé de définir un paramètre de pointeur sur NULL si la fonction appelée ne l’utilise pas.

pProfile [in]

Type : LPCSTR

Chaîne qui spécifie le modèle de nuanceur ; peut être n’importe quel profil dans le modèle de nuanceur 2, le modèle de nuanceur 3, le modèle de nuanceur 4 ou le modèle de nuanceur 5. Le profil peut également être pour le type d’effet (par exemple, fx_4_1).

Indicateurs1 [in]

Type : UINT

Indicateurs de compilation du nuanceur.

Flags2 [in]

Type : UINT

Indicateurs de compilation d’effet. Lorsque vous compilez un nuanceur et non un fichier d’effet, D3DX11CompileFromFile ignore Flags2 ; nous vous recommandons de définir Flags2 sur zéro, car il est recommandé de définir un paramètre non-pointeur sur zéro si la fonction appelée ne l’utilise pas.

pPump [in]

Type : ID3DX11ThreadPump*

Pointeur vers une interface de pompe de thread (voir INTERFACE ID3DX11ThreadPump). Utilisez NULL pour spécifier que cette fonction ne doit pas être retournée tant qu’elle n’est pas terminée.

ppShader [out]

Type : ID3D10Blob**

Pointeur vers la mémoire qui contient le nuanceur compilé, ainsi que les informations de débogage et de table de symboles incorporées.

ppErrorMsgs [out]

Type : ID3D10Blob**

Pointeur vers la mémoire qui contient une liste des erreurs et des avertissements qui se sont produits pendant la compilation. Ces erreurs et avertissements sont identiques à la sortie de débogage d’un débogueur.

pHResult [out]

Type : HRESULT*

Pointeur vers la valeur de retour. Peut être NULL. Si pPump n’est pas NULL, pHResult doit être un emplacement de mémoire valide jusqu’à ce que l’exécution asynchrone se termine.

Valeur retournée

Type : HRESULT

La valeur de retour est l’une des valeurs répertoriées dans Codes de retour Direct3D 11.

D3DX11CompileFromFile retourne E_INVALIDARG si vous fournissez une valeur non NULL au paramètre pHResult lorsque vous fournissez null au paramètre pPump . Pour plus d’informations sur cette situation, consultez Remarques.

Notes

Pour plus d’informations sur D3DX11CompileFromFile, consultez D3DCompile.

Vous devez fournir NULL au paramètre pHResult si vous fournissez également NULL au paramètre pPump . Sinon, vous ne pouvez pas créer un nuanceur à l’aide du code de nuanceur compilé que D3DX11CompileFromFile retourne dans la mémoire vers laquelle pointe le paramètre ppShader . Pour créer un nuanceur à partir du code de nuanceur conforme, vous appelez l’une des méthodes d’interface ID3D11Device suivantes :

En outre, si vous fournissez une valeur non NULL à pHResult lorsque vous fournissez NULL à pPump, D3DX11CompileFromFile retourne le code d’erreur E_INVALIDARG.

Spécifications

Condition requise Valeur
En-tête
D3DX11async.h
Bibliothèque
D3DX11.lib

Voir aussi

Fonctions D3DX