Partager via


D3DCompileFromFile, fonction (d3dcompiler.h)

Note Vous pouvez utiliser cette API pour développer vos applications du Windows Store, mais vous ne pouvez pas l’utiliser dans les applications que vous envoyez au Windows Store. Reportez-vous à la section « Compilation des nuanceurs pour UWP » dans les remarques relatives à D3DCompile2.
 
Compile le code HLSL (High Level Shader Language) microsoft en bytecode pour une cible donnée.

Syntaxe

HRESULT D3DCompileFromFile(
  [in]            LPCWSTR                pFileName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [in]            LPCSTR                 pEntrypoint,
  [in]            LPCSTR                 pTarget,
  [in]            UINT                   Flags1,
  [in]            UINT                   Flags2,
  [out]           ID3DBlob               **ppCode,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

Paramètres

[in] pFileName

Pointeur vers une chaîne constante terminée par un caractère Null qui contient le nom du fichier qui contient le code du nuanceur.

[in, optional] pDefines

Tableau facultatif de structures D3D_SHADER_MACRO qui définissent des macros de nuanceur. Chaque définition de macro contient un nom et une définition terminée par null. S’il n’est pas utilisé, définissez sur NULL. La dernière structure du tableau sert de terminateur et doit avoir tous les membres définis sur NULL.

[in, optional] pInclude

Pointeur facultatif vers une interface ID3DInclude que le compilateur utilise pour gérer les fichiers Include. Si vous définissez ce paramètre sur NULL et que le nuanceur contient un #include, une erreur de compilation se produit. Vous pouvez passer la macro D3D_COMPILE_STANDARD_FILE_INCLUDE , qui est un pointeur vers un gestionnaire include par défaut. Ce gestionnaire include par défaut inclut des fichiers relatifs au répertoire actif.

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[in] pEntrypoint

Pointeur vers une chaîne constante terminée par un caractère Null qui contient le nom de la fonction de point d’entrée du nuanceur où commence l’exécution du nuanceur. Lorsque vous compilez un effet, D3DCompileFromFile ignore pEntrypoint ; nous vous recommandons de définir pEntrypoint 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.

[in] pTarget

Pointeur vers une chaîne constante terminée par un caractère Null qui spécifie la cible du nuanceur ou l’ensemble de fonctionnalités de nuanceur à compiler. La cible du nuanceur peut être un modèle de nuanceur (par exemple, 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 et ultérieur). La cible peut également être un type d’effet (par exemple, fx_4_1). Pour plus d’informations sur les cibles prises en charge par différents profils, consultez Spécification des cibles du compilateur.

[in] Flags1

Combinaison d’options de compilation du nuanceur qui sont combinées à l’aide d’une opération OR au niveau du bit. La valeur résultante spécifie comment le compilateur compile le code HLSL.

[in] Flags2

Combinaison d’options de compilation d’effets qui sont combinées à l’aide d’une opération OR au niveau du bit. La valeur résultante spécifie comment le compilateur compile l’effet. Lorsque vous compilez un nuanceur et non un fichier d’effet, D3DCompileFromFile 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.

[out] ppCode

Pointeur vers une variable qui reçoit un pointeur vers l’interface ID3DBlob que vous pouvez utiliser pour accéder au code compilé.

[out, optional] ppErrorMsgs

Pointeur facultatif vers une variable qui reçoit un pointeur vers l’interface ID3DBlob que vous pouvez utiliser pour accéder aux messages d’erreur du compilateur, ou NULL s’il n’y a aucune erreur.

Valeur retournée

Retourne l’un des codes de retour Direct3D 11.

Remarques

Note La D3dcompiler_44.dll ou version ultérieure du fichier contient la fonction de compilateur D3DCompileFromFile .
 

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3dcompiler.h
Bibliothèque D3DCompiler.lib
DLL D3DCompiler_47.dll

Voir aussi

Fonctions