Freigeben über


D3DCompileFromFile-Funktion (d3dcompiler.h)

Hinweis Sie können diese API verwenden, um Ihre Windows Store-Apps zu entwickeln, aber Sie können sie nicht in Apps verwenden, die Sie an den Windows Store übermitteln. Weitere Informationen finden Sie im Abschnitt "Kompilieren von Shadern für UWP" in den Hinweisen zu D3DCompile2.
 
Kompiliert Microsoft High Level Shader Language (HLSL)-Code in Bytecode für ein bestimmtes Ziel.

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

Hinweis Die D3dcompiler_44.dll oder höher der Datei enthält die Compilerfunktion D3DCompileFromFile .
 

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3dcompiler.h
Bibliothek D3DCompiler.lib
DLL D3DCompiler_47.dll

Siehe auch

Funktionen