D3DXCompileShaderFromResource-Funktion
Kompilieren sie eine Shaderdatei.
Hinweis
Anstatt diese Legacyfunktion zu verwenden, empfiehlt es sich, offline mit dem Fxc.exe-Befehlszeilencompiler oder der D3DCompile-API zu kompilieren.
Syntax
HRESULT D3DXCompileShaderFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCSTR pSrcResource,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ DWORD Flags,
_Out_ LPD3DXBUFFER *ppShader,
_Out_ LPD3DXBUFFER *ppErrorMsgs,
_Out_ LPD3DXCONSTANTTABLE *ppConstantTable
);
Parameter
-
hSrcModule [in]
-
Typ: HMODULE
Handle mit einem Modul, das die Effektbeschreibung enthält. Wenn dieser Parameter NULL ist, wird das aktuelle Modul verwendet.
-
pSrcResource [in]
-
Typ: LPCSTR
Zeiger auf eine Zeichenfolge, die den Ressourcennamen angibt.
-
pDefines [in]
-
Typ: const D3DXMACRO*
Ein optionales NULL-beendetes Array von D3DXMACRO-Strukturen . Dieser Wert kann NULL sein.
-
pInclude [in]
-
Typ: LPD3DXINCLUDE
Optionaler Schnittstellenzeiger ID3DXInclude, der für die Verarbeitung #include-Direktiven verwendet werden soll. Wenn dieser Wert NULL ist, wird #includes entweder berücksichtigt, wenn aus einer Datei kompiliert wird, oder beim Kompilieren aus einer Ressource oder einem Arbeitsspeicher tritt ein Fehler auf.
-
pFunctionName [in]
-
Typ: LPCSTR
Zeiger auf die Shadereinstiegspunktfunktion, an der die Ausführung beginnt.
-
pProfile [in]
-
Typ: LPCSTR
Zeiger auf ein Shaderprofil, das den Shaderbefehlssatz bestimmt. Eine Liste der verfügbaren Profile finden Sie unter D3DXGetVertexShaderProfile oder D3DXGetPixelShaderProfile .
-
Flaggen [in]
-
Typ: DWORD
Kompilierungsoptionen, die durch verschiedene Flags identifiziert werden. Der Direct3D 10 HLSL-Compiler ist jetzt die Standardeinstellung. Weitere Informationen finden Sie unter D3DXSHADER-Flags .
-
ppShader [out]
-
Typ: LPD3DXBUFFER*
Gibt einen Puffer zurück, der den erstellten Shader enthält. Dieser Puffer enthält den kompilierten Shadercode sowie alle eingebetteten Debug- und Symboltabelleninformationen.
-
ppErrorMsgs [out]
-
Typ: LPD3DXBUFFER*
Gibt einen Puffer zurück, der eine Liste von Fehlern und Warnungen enthält, die während der Kompilierung aufgetreten sind. Dies sind die gleichen Meldungen, die der Debugger anzeigt, wenn er im Debugmodus ausgeführt wird. Dieser Wert kann NULL sein.
-
ppConstantTable [out]
-
Typ: LPD3DXCONSTANTTABLE*
Gibt eine ID3DXConstantTable-Schnittstelle zurück, die für den Zugriff auf Shaderkonstanten verwendet werden kann. Dieser Wert kann NULL sein. Wenn Sie Ihre Anwendung als große Adresse kompilieren (d. h., Sie verwenden die Linkeroption /LARGEADDRESSAWARE, um Adressen zu verarbeiten, die größer als 2 GB sind), können Sie diesen Parameter nicht verwenden und müssen ihn auf NULL festlegen. Stattdessen müssen Sie die Funktion D3DXGetShaderConstantTableEx verwenden, um die Shaderkonstantentabelle abzurufen, die im Shader eingebettet ist. In diesem D3DXGetShaderConstantTableEx-Aufruf müssen Sie das flag D3DXCONSTTABLE_LARGEADDRESSAWARE an den Flags-Parameter übergeben, um anzugeben, dass auf bis zu 4 GB virtueller Adressraum zugegriffen werden soll.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch