D3DX11CompileFromResource 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 Windows store.
Notes
Au lieu d’utiliser cette fonction, nous vous recommandons d’utiliser des fonctions de ressource, puis 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 D3DCompile .
Compilez un nuanceur ou un effet à partir d’une ressource.
Syntaxe
HRESULT D3DX11CompileFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCTSTR pSrcResource,
_In_ LPCTSTR pSrcFileName,
_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
-
hSrcModule [ dans]
-
Type : HMODULE
Handle du module de ressource contenant le nuanceur. HMODULE peut être obtenu avec la fonction GetModuleHandle.
-
pSrcResource [ dans]
-
Type : LPCTSTR
Nom de la ressource contenant le nuanceur. Si les paramètres du compilateur requièrent Unicode, le type de données LPCTSTR est résolu en LPCWSTR. Dans le cas contraire, le type de données est résolu en LPCSTR.
-
pSrcFileName [ dans]
-
Type : LPCTSTR
Facultatif. Nom du fichier d’effet, qui est utilisé pour les messages d’erreur uniquement. Peut avoir la valeur null.
-
pDefines [ dans]
-
Type : const D3D10 _ Shader _ macro *
Facultatif. Pointeur vers un tableau de définitions de macros (consultez la _ _ macro de nuanceur D3D10). 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é, affectez la valeur null à pDefines .
-
pInclude [ dans]
-
Type : LPD3D10INCLUDE
Facultatif. Pointeur vers une interface pour la gestion des fichiers include. Si vous affectez la valeur null , une erreur de compilation se produira si un nuanceur contient un # include.
-
pFunctionName [ dans]
-
Type : LPCSTR
Nom de la fonction de point d’entrée du nuanceur où commence l’exécution du nuanceur. Quand vous compilez un effet, D3DX11CompileFromResource ignore pFunctionName; Nous vous recommandons de définir pFunctionName sur null , car il s’agit d’une bonne pratique de programmation qui consiste à définir un paramètre de pointeur sur la valeur null si la fonction appelée ne l’utilise pas.
-
pProfile [ dans]
-
Type : LPCSTR
Chaîne qui spécifie le modèle de nuanceur ; peut être n’importe quel profil dans le nuancier Model 2, Shader Model 3, Shader Model 4 ou Shader Model 5. Le profil peut également être pour le type d’effet (par exemple, FX _ 4 _ 1).
-
Flags1 [ dans]
-
Type : uint
Indicateurs de compilationdu nuanceur.
-
Flags2 [ dans]
-
Type : uint
Indicateurs de compilationEffect. Quand vous compilez un nuanceur et non un fichier Effect, D3DX11CompileFromResource ignore flags2; Nous vous recommandons de définir flags2 sur zéro, car il s’agit d’une bonne pratique de programmation qui consiste à définir un paramètre de non-pointeur sur zéro si la fonction appelée ne l’utilise pas.
-
pPump [ dans]
-
Type : ID3DX11ThreadPump*
Pointeur vers une interface de pompage 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 [ à]
-
Type : ID3D10Blob**
Pointeur vers la mémoire qui contient le nuanceur compilé, ainsi que toutes les informations de débogage et de table de symboles incorporées.
-
ppErrorMsgs [ à]
-
Type : ID3D10Blob**
Pointeur vers la mémoire qui contient une liste d’erreurs et d’avertissements qui se sont produits pendant la compilation. Ces erreurs et avertissements sont identiques à la sortie de débogage d’un débogueur.
-
pHResult [ à]
-
Type : HRESULT*
Pointeur vers la valeur de retour. Peut avoir la valeur null. Si pPump n’a pas la valeur 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 indiquées dans les codes de retour Direct3D 11.
D3DX11CompileFromResource retourne E _ INVALIDARG si vous fournissez une valeur non null au paramètre PHResult lorsque vous fournissez la valeur null au paramètre pPump . Pour plus d’informations sur cette situation, consultez la section Notes.
Remarques
Pour plus d’informations sur D3DX11CompileFromResource, consultez D3DCompile.
Vous devez fournir la valeur null au paramètre pHResult si vous fournissez également la valeur null au paramètre pPump . Dans le cas contraire, vous ne pourrez pas créer par la suite un nuanceur à l’aide du code de nuanceur compilé que D3DX11CompileFromResource retourne dans la mémoire vers laquelle pointe le paramètre ppShader . Pour créer un nuanceur à partir d’un code de nuanceur conforme, vous appelez l’une des méthodes d’interface ID3D11Device suivantes :
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
En outre, si vous fournissez une valeur non null à pHResult lorsque vous fournissez la valeur null à pPump, D3DX11CompileFromResource retourne le code d’erreur de l’E _ INVALIDARG.
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|