Freigeben über


D3D10CompileShader-Funktion (d3d10shader.h)

Kompilieren Sie einen HLSL-Shader .

Hinweis Verwenden Sie D3DX10CompileFromMemory anstelle dieser Funktion.
 

Syntax

HRESULT D3D10CompileShader(
  [in]  LPCSTR                   pSrcData,
  [in]  SIZE_T                   SrcDataSize,
  [in]  LPCSTR                   pFileName,
  [in]  const D3D10_SHADER_MACRO *pDefines,
  [in]  LPD3D10INCLUDE           pInclude,
  [in]  LPCSTR                   pFunctionName,
  [in]  LPCSTR                   pProfile,
  [in]  UINT                     Flags,
  [out] ID3D10Blob               **ppShader,
  [out] ID3D10Blob               **ppErrorMsgs
);

Parameter

[in] pSrcData

Typ: LPCSTR

Zeiger auf eine Zeichenfolge, die den Shaderquellcode enthält.

[in] SrcDataSize

Typ: SIZE_T

Größe von pSrcData in Bytes.

[in] pFileName

Typ: LPCSTR

Der Name der Datei, die den Shadercode enthält.

[in] pDefines

Typ: const D3D10_SHADER_MACRO*

Optional. Zeiger auf ein Array von Makrodefinitionen (siehe D3D10_SHADER_MACRO). Die letzte Struktur im Array dient als Abschlusszeichen und muss alle Member auf 0 festgelegt haben.
Wenn sie nicht verwendet wird, legen Sie pDefines auf NULL fest.

[in] pInclude

Typ: LPD3D10INCLUDE*

Optional. Zeiger auf eine ID3D10Einschließschnittstelle für die Behandlung von Includedateien. Wenn Sie diesen Wert auf NULL festlegen, wird ein Kompilierfehler ausgelöst, wenn ein Shader einen #include enthält.

[in] pFunctionName

Typ: LPCSTR

Name der Shadereinstiegspunktfunktion, in der die Shaderausführung beginnt.

[in] pProfile

Typ: LPCSTR

Eine Zeichenfolge, die das Shaderprofil oder shadermodell angibt.

[in] Flags

Typ: UINT

Optionen für die Shaderkompilierung.

[out] ppShader

Typ: ID3D10Blob**

Ein Zeiger auf eine ID3D10Blob-Schnittstelle , die den kompilierten Shader sowie alle eingebetteten Debug- und Symboltabelleninformationen enthält.

[out] ppErrorMsgs

Typ: ID3D10Blob**

Ein Zeiger auf eine ID3D10Blob-Schnittstelle , die eine Liste der Fehler und Warnungen enthält, die während der Kompilierung aufgetreten sind. Diese Fehler und Warnungen sind identisch mit der Debugausgabe eines Debuggers.

Rückgabewert

Typ: HRESULT

Gibt einen der folgenden Direct3D 10-Rückgabecodes zurück.

Hinweise

Diese Funktion verwendet die Version des HLSL-Compilers, der im DirectX SDK vom November 2006 veröffentlicht wurde.

Diese Funktion implementiert zwei Möglichkeiten zum Bereitstellen der Eingabe-Shaderinformationen. Verwenden Sie entweder pSrcData und SrcDataLen , um eine Zeichenfolge anzugeben, die den HLSL-Code des Shaders enthält (und pFileName auf NULL festlegen), oder verwenden Sie pFileName , um den Namen einer Shader- oder Effektdatei anzugeben (und pSrcData auf NULL festzulegen).

Um eine programmierbare Pipelinephase einzurichten, kompilieren Sie einen Shader, und binden Sie den Shader dann an die entsprechende Pipelinephase. Für instance finden Sie hier ein Beispiel zum Kompilieren eines Geometrie-Shaders (siehe Kompilieren eines Geometrie-Shaders).

Diese Funktion, D3D10CompileShader, ruft die Version des Shadercompilers auf, die bei jeder Veröffentlichung des Betriebssystems ausgeliefert wird. Eine aktuellere Version des Shadercompilers wird bereitgestellt, wenn das DirectX SDK ausgeliefert wird, auf die über D3DX zugegriffen werden kann, indem eine Version der Einstiegspunktfunktion des Shadercompilers wie D3DX10CompileFromFile aufgerufen wird. Es ist besser, die D3DX-Einstiegspunktfunktionen zu verwenden, um sicherzustellen, dass die neueste Version des Shadercompilers verwendet wird, wenn Sie die verteilbaren DirectX-Bibliotheken verteilen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d10shader.h
Bibliothek D3D10.lib
DLL D3D10.dll

Weitere Informationen

Shaderfunktionen