Share via


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

Shaderkompilierungsflags.

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
D3DX10Async.h

Siehe auch

Universell-Funktionen