D3DCompileFromFile-Funktion (d3dcompiler.h)
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 |