D3DPreprocess-Funktion (d3dcompiler.h)

Verarbeitet nicht kompilierten HLSL-Code vor.

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 ein kompilierter Effekt.

[in] SrcDataSize

Typ: SIZE_T

Länge von 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 für die Verarbeitung von Includedateien. Wenn Sie diesen Wert auf NULL festlegen, wird ein Kompilierfehler ausgelöst, wenn ein Shader einen #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 Includehandler handelt. Dieser standardmäßige Includehandler umfasst Dateien, die relativ zum aktuellen Verzeichnis sind, und Dateien, die relativ zum Verzeichnis der ursprünglichen Quelldatei sind. Wenn Sie D3D_COMPILE_STANDARD_FILE_INCLUDE verwenden, müssen Sie den Namen der Quelldatei im pSourceName-Parameter angeben. Der Compiler leitet das anfängliche relative Verzeichnis von pSourceName ab.

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

[out] ppCodeText

Typ: ID3DBlob**

Die Adresse eines ID3DBlobs , das den kompilierten Code enthält.

[out, optional] ppErrorMsgs

Typ: ID3DBlob**

Ein Zeiger auf ein ID3DBlob , das Compilerfehlermeldungen enthält, oder NULL , wenn keine Fehler aufgetreten sind.

Rückgabewert

Typ: HRESULT

Gibt einen der Direct3D 11-Rückgabecodes zurück.

Hinweise

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

Anforderungen

   
Zielplattform Windows
Kopfzeile d3dcompiler.h
Bibliothek D3dcompiler_47.lib
DLL D3dcompiler_47.dll

Siehe auch

Funktionen