Freigeben über


D3DPreprocess-Funktion (d3dcompiler.h)

Verarbeitet nicht kompilierten HLSL-Code.

Syntax

HRESULT D3DPreprocess(
  [in]            LPCVOID                pSrcData,
  [in]            SIZE_T                 SrcDataSize,
  [in, optional]  LPCSTR                 pSourceName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [out]           ID3DBlob               **ppCodeText,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

Parameter

[in] pSrcData

Typ: LPCVOID-

Ein Zeiger auf nicht kompilierte Shaderdaten; ENTWEDER ASCII-HLSL-Code oder kompilierter Effekt.

[in] SrcDataSize

Typ: SIZE_T

Länge der pSrcData.

[in, optional] pSourceName

Typ: LPCSTR-

Der Name der Datei, die den nicht kompilierten HLSL-Code enthält.

[in, optional] pDefines

Typ: const D3D_SHADER_MACRO*

Ein Array von NULL-beendeten Makrodefinitionen (siehe D3D_SHADER_MACRO).

[in, optional] pInclude

Typ: ID3DInclude*

Ein Zeiger auf eine ID3DInclude- zum Behandeln von Dateien. Wenn Sie diesen Wert auf NULL- festlegen, tritt ein Kompilierungsfehler auf, wenn ein Shader eine #include enthält. Sie können das D3D_COMPILE_STANDARD_FILE_INCLUDE Makro übergeben, bei dem es sich um einen Zeiger auf einen Standardmäßigen include-Handler handelt. Dieser Standardhandler enthält Dateien, die relativ zum aktuellen Verzeichnis und dateien relativ zum Verzeichnis der ursprünglichen Quelldatei sind. Wenn Sie D3D_COMPILE_STANDARD_FILE_INCLUDEverwenden, müssen Sie den Namen der Quelldatei im pSourceName Parameter angeben; der Compiler leitet das ursprüngliche relative Verzeichnis von pSourceNameab.

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[out] ppCodeText

Typ: ID3DBlob**

Ein Zeiger auf eine Variable, die einen Zeiger auf die ID3DBlob Schnittstelle empfängt, die Sie für den Zugriff auf den vorverarbeiteten Code verwenden können.

[out, optional] ppErrorMsgs

Typ: ID3DBlob**

Ein Zeiger auf eine ID3DBlob-, die Compilerfehlermeldungen enthält, oder NULL-, wenn keine Fehler aufgetreten sind.

Rückgabewert

Typ: HRESULT-

Gibt einen der Direct3D 11-Rückgabecodeszurück.

Bemerkungen

D3DPreprocess#line Direktiven aus und behält die Zeilennummerierung der Quelleingabe bei, sodass die Zeilennummerierung ordnungsgemäß mit der Eingabequelle verknüpft werden kann.

Anforderungen

Anforderung Wert
Zielplattform- Fenster
Header- d3dcompiler.h
Library D3dcompiler_47.lib
DLL- D3dcompiler_47.dll

Siehe auch

Funktionen