D3D10CompileShader-Funktion (d3d10shader.h)
Kompilieren Sie einen HLSL-Shader .
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 |