Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Syntax
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
);
Parameter
[in] pFileName
Ein Zeiger auf eine konstante NULL-endende Zeichenfolge, die den Namen der Datei enthält, die den Shadercode enthält.
[in, optional] pDefines
Ein optionales Array von D3D_SHADER_MACRO Strukturen, die Shadermakros definieren. Jede Makrodefinition enthält einen Namen und eine Definition mit NULL-Beendigung. Wenn sie nicht verwendet wird, legen Sie auf NULL fest. Die letzte Struktur im Array dient als Abschlusszeichen, und alle Member müssen auf NULL festgelegt sein.
[in, optional] pInclude
Ein optionaler Zeiger auf eine ID3DInclude-Schnittstelle , die der Compiler zum Verarbeiten von Includedateien verwendet. Wenn Sie diesen Parameter auf NULL festlegen und der Shader eine #include enthält, tritt ein Kompilierfehler auf. Sie können das D3D_COMPILE_STANDARD_FILE_INCLUDE Makro übergeben, bei dem es sich um einen Zeiger auf einen standardmäßigen Includehandler handelt. Dieser standardmäßige Includehandler enthält Dateien, die relativ zum aktuellen Verzeichnis sind.
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
[in] pEntrypoint
Ein Zeiger auf eine konstante NULL-endende Zeichenfolge, die den Namen der Shadereinstiegspunktfunktion enthält, in der die Shaderausführung beginnt. Wenn Sie einen Effekt kompilieren, ignoriert D3DCompileFromFilepEntrypoint; Es wird empfohlen, pEntrypoint auf NULL festzulegen, da es eine gute Programmierpraxis ist, einen Zeigerparameter auf NULL festzulegen, wenn die aufgerufene Funktion ihn nicht verwendet.
[in] pTarget
Ein Zeiger auf eine konstante NULL-endende Zeichenfolge, die das Shaderziel oder die Gruppe von Shaderfeatures angibt, für die kompiliert werden soll. Das Shaderziel kann ein Shadermodell sein (z. B. Shadermodell 2, Shadermodell 3, Shadermodell 4 oder Shadermodell 5 und höher). Das Ziel kann auch ein Effekttyp sein (z. B. fx_4_1). Informationen zu den Zielen, die von verschiedenen Profilen unterstützt werden, finden Sie unter Angeben von Compilerzielen.
[in] Flags1
Eine Kombination aus Shaderkompilierungsoptionen , die mithilfe eines bitweisen OR-Vorgangs kombiniert werden. Der resultierende Wert gibt an, wie der Compiler den HLSL-Code kompiliert.
[in] Flags2
Eine Kombination von Effektkompilierungsoptionen , die mithilfe einer bitweisen OR-Operation kombiniert werden. Der resultierende Wert gibt an, wie der Compiler den Effekt kompiliert. Wenn Sie einen Shader und keine Effektdatei kompilieren, ignoriert D3DCompileFromFileFlags2; Es wird empfohlen, Flags2 auf 0 festzulegen, da es eine gute Programmierpraxis ist, einen Nicht-Zeigerparameter auf 0 festzulegen, wenn die aufgerufene Funktion ihn nicht verwendet.
[out] ppCode
Ein Zeiger auf eine Variable, die einen Zeiger auf die ID3DBlob-Schnittstelle empfängt, mit der Sie auf den kompilierten Code zugreifen können.
[out, optional] ppErrorMsgs
Ein optionaler Zeiger auf eine Variable, die einen Zeiger auf die ID3DBlob-Schnittstelle empfängt, mit dem Sie auf Compilerfehlermeldungen zugreifen können, oder NULL , wenn keine Fehler vorliegen.
Rückgabewert
Gibt einen der Direct3D 11-Rückgabecodes zurück.
Hinweise
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Windows |
| Kopfzeile | d3dcompiler.h |
| Bibliothek | D3DCompiler.lib |
| DLL | D3DCompiler_47.dll |