D3DX10CompileFromMemory-Funktion
Hinweis
Anstatt diese Legacyfunktion zu verwenden, sollten Sie offline kompilieren, indem Sie den Befehlszeilencompiler Fxc.exe verwenden oder die D3DCompile-API verwenden.
Kompilieren Sie einen Shader oder einen Effekt, der in den Arbeitsspeicher geladen wird.
Syntax
HRESULT D3DX10CompileFromMemory(
_In_ LPCSTR pSrcData,
_In_ SIZE_T SrcDataLen,
_In_ LPCSTR pFileName,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX10ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
Parameter
-
pSrcData [in]
-
Typ: LPCSTR
Zeiger auf den Shader im Arbeitsspeicher.
-
SrcDataLen [in]
-
Typ: SIZE_T
Größe des Shaders im Arbeitsspeicher.
-
pFileName [in]
-
Typ: LPCSTR
Der Name der Datei, die den Shadercode enthält.
-
pDefines [in]
-
Typ: const D3D_SHADER_MACRO*
Optional. Zeiger auf ein Array von Makrodefinitionen (siehe D3D_SHADER_MACRO). Die letzte Struktur im Array dient als Abschlusszeichen, und alle Member müssen auf 0 festgelegt sein. Wenn nicht verwendet, legen Sie pDefines auf NULL fest.
-
pInclude [in]
-
Typ: LPD3D10INCLUDE
Optional. Zeiger auf eine ID3D10Einschließschnittstelle für die Verarbeitung von Includedateien. Wenn Sie diesen Wert auf NULL festlegen, wird ein Kompilierfehler verursacht, wenn ein Shader eine #include enthält.
-
pFunctionName [in]
-
Typ: LPCSTR
Name der Shader-Einstiegspunktfunktion, in der die Shaderausführung beginnt. Wenn Sie einen Effekt kompilieren, ignoriert D3DX10CompileFromMemorypFunctionName; Es wird empfohlen, pFunctionName auf NULL festzulegen, da es eine gute Programmierpraxis ist, einen Zeigerparameter auf NULL festzulegen, wenn die aufgerufene Funktion ihn nicht verwendet.
-
pProfile [in]
-
Typ: LPCSTR
Eine Zeichenfolge, die das Shadermodell angibt; kann ein beliebiges Profil in Shadermodell 2, Shadermodell 3 oder Shadermodell 4 sein.
-
Flags1 [in]
-
Typ: UINT
-
Flags2 [in]
-
Typ: UINT
Effektkompilierungsflags. Wenn Sie einen Shader und keine Effektdatei kompilieren, ignoriert D3DX10CompileFromMemoryFlags2; Es wird empfohlen, Flags2 auf 0 festzulegen, da es eine gute Programmierpraxis ist, einen Nichtpointerparameter auf 0 festzulegen, wenn die aufgerufene Funktion ihn nicht verwendet.
-
pPump [in]
-
Typ: ID3DX10ThreadPump*
Ein Zeiger auf eine Threadpumpenschnittstelle (siehe ID3DX10ThreadPump-Schnittstelle). Verwenden Sie NULL , um anzugeben, dass diese Funktion erst zurückgegeben werden soll, wenn sie abgeschlossen ist.
-
ppShader [out]
-
Typ: ID3D10Blob**
Ein Zeiger auf eine ID3D10Blob-Schnittstelle , die den kompilierten Shader sowie alle eingebetteten Debug- und Symboltabelleninformationen enthält.
-
ppErrorMsgs [out]
-
Typ: ID3D10Blob**
Ein Zeiger auf eine ID3D10Blob-Schnittstelle , die eine Liste von Fehlern und Warnungen enthält, die während der Kompilierung aufgetreten sind. Diese Fehler und Warnungen sind mit der Debugausgabe eines Debuggers identisch.
-
pHResult [out]
-
Typ: HRESULT*
Ein Zeiger auf den Rückgabewert. Kann NULL sein. Wenn pPump nicht NULL ist, muss pHResult ein gültiger Speicherort sein, bis die asynchrone Ausführung abgeschlossen ist.
Rückgabewert
Typ: HRESULT
Der Rückgabewert ist einer der In Direct3D 10-Rückgabecodes aufgeführten Werte.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Siehe auch