D3D10CompileShader, fonction (d3d10shader.h)
Compilez un nuanceur HLSL .
Syntaxe
HRESULT D3D10CompileShader(
[in] LPCSTR pSrcData,
[in] SIZE_T SrcDataSize,
[in] LPCSTR pFileName,
[in] const D3D10_SHADER_MACRO *pDefines,
[in] LPD3D10INCLUDE pInclude,
[in] LPCSTR pFunctionName,
[in] LPCSTR pProfile,
[in] UINT Flags,
[out] ID3D10Blob **ppShader,
[out] ID3D10Blob **ppErrorMsgs
);
Paramètres
[in] pSrcData
Type : LPCSTR
Pointeur vers une chaîne contenant le code source du nuanceur.
[in] SrcDataSize
Type : SIZE_T
Taille de pSrcData, en octets.
[in] pFileName
Type : LPCSTR
Nom du fichier qui contient le code du nuanceur.
[in] pDefines
Type : const D3D10_SHADER_MACRO*
facultatif. 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.
[in] pInclude
Type : LPD3D10INCLUDE*
facultatif. Pointeur vers une interface d’interface ID3D10Include pour la gestion des fichiers Include. L’attribution de la valeur NULL entraîne une erreur de compilation si un nuanceur contient un #include.
[in] pFunctionName
Type : LPCSTR
Nom de la fonction de point d’entrée du nuanceur où commence l’exécution du nuanceur.
[in] pProfile
Type : LPCSTR
Chaîne qui spécifie le profil de nuanceur ou le modèle de nuanceur.
[in] Flags
Type : UINT
Options de compilation du nuanceur.
[out] ppShader
Type : ID3D10Blob**
Pointeur vers une interface ID3D10Blob qui contient le nuanceur compilé, ainsi que toutes les informations de débogage et de table de symboles incorporées.
[out] ppErrorMsgs
Type : ID3D10Blob**
Pointeur vers une interface ID3D10Blob qui contient une liste des erreurs et avertissements qui se sont produits pendant la compilation. Ces erreurs et avertissements sont identiques à la sortie de débogage d’un débogueur.
Valeur retournée
Type : HRESULT
Retourne l’un des codes de retour Direct3D 10 suivants.
Remarques
Cette fonction utilise la version du compilateur HLSL publiée dans le Kit de développement logiciel (SDK) DirectX de novembre 2006.
Cette fonction implémente deux façons de fournir les informations du nuanceur d’entrée. Utilisez pSrcData et SrcDataLen pour spécifier une chaîne qui contient le code HLSL du nuanceur (et définissez pFileName sur NULL) ou utilisez pFileName pour spécifier le nom d’un nuanceur ou d’un fichier d’effet (et affectez à pSrcData la valeur NULL).
Pour configurer une étape de pipeline programmable, compilez un nuanceur, puis liez le nuanceur à l’étape de pipeline appropriée. Pour instance, voici un exemple de compilation d’un nuanceur de géométrie (voir Compiler un nuanceur geometry).
Cette fonction, D3D10CompileShader, appelle la version du compilateur de nuanceur qui est fournie chaque fois que le système d’exploitation est publié. Une version plus à jour du compilateur de nuanceur est fournie lorsque le Kit de développement logiciel (SDK) DirectX est fourni, qui est accessible à partir de D3DX en appelant une version de la fonction de point d’entrée du compilateur du nuanceur, telle que D3DX10CompileFromFile. Il est préférable d’utiliser les fonctions de point d’entrée D3DX pour vous assurer que la dernière version du compilateur de nuanceur sera utilisée si vous allez redistribuer les bibliothèques redistribuables DirectX.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d10shader.h |
Bibliothèque | D3D10.lib |
DLL | D3D10.dll |