D3DXCreateEffectEx-Funktion
Erstellt einen Effekt aus einer ASCII- oder binären Effektbeschreibung. Diese Funktion ist eine erweiterte Version von D3DXCreateEffect , mit der eine Anwendung steuern kann, welche Parameter vom Effektsystem ignoriert werden.
Syntax
HRESULT D3DXCreateEffectEx(
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPCVOID pSrcData,
_In_ UINT SrcDataLen,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pSkipConstants,
_In_ DWORD Flags,
_In_ LPD3DXEFFECTPOOL pPool,
_Out_ LPD3DXEFFECT *ppEffect,
_Out_ LPD3DXBUFFER *ppCompilationErrors
);
Parameter
-
pDevice [in]
-
Typ: LPDIRECT3DDEVICE9
Zeiger auf das Gerät, das den Effekt erzeugt. Siehe IDirect3DDevice9.
-
pSrcData [in]
-
Typ: LPCVOID
Zeiger auf einen Puffer, der eine Effektbeschreibung enthält.
-
SrcDataLen [in]
-
Typ: UINT
Länge der Effektdaten in Bytes.
-
pDefines [in]
-
Typ: const D3DXMACRO*
Ein optionales NULL-beendetes Array von D3DXMACRO-Strukturen , die Präprozessordefinitionen beschreiben. 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 beim Kompilieren aus einer Datei berücksichtigt oder verursacht einen Fehler, wenn er aus einer Ressource oder einem Arbeitsspeicher kompiliert wird.
-
pSkipConstants [in]
-
Typ: LPCSTR
Eine Zeichenfolge von Effektparametern, die vom Effektsystem ignoriert werden. Die Zeichenfolge muss NULL beendet sein und muss den Namen jeder von der Anwendung verwalteten Konstanten enthalten, die durch ein Semikolon getrennt sind.
-
Flaggen [in]
-
Typ: DWORD
Wenn pSrcData einen Texteffekt enthält, können Flags eine Kombination aus D3DXSHADER-Flags und D3DXFX-Flags sein. Andernfalls enthält pSrcData einen binären Effekt, und die einzigen berücksichtigten Flags sind D3DXFX-Flags. Der Direct3D 10 HLSL-Compiler ist jetzt die Standardeinstellung. Weitere Informationen finden Sie unter Effect-Compiler Tool .
-
pPool [in]
-
Typ: LPD3DXEFFECTPOOL
Zeiger auf ein ID3DXEffectPool-Objekt , das für freigegebene Parameter verwendet werden soll. Wenn dieser Wert NULL ist, werden keine Parameter freigegeben.
-
ppEffect [out]
-
Typ: LPD3DXEFFECT*
Gibt einen Zeiger auf eine ID3DXEffect-Schnittstelle zurück.
-
ppCompilationErrors [out]
-
Typ: LPD3DXBUFFER*
Gibt einen Puffer zurück, der eine Liste von Kompilierungsfehlern enthält.
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.
Bemerkungen
Diese Funktion ist eine erweiterte Version von D3DXCreateEffect , mit der eine Anwendung angeben kann, welche Effektkonstanten von der Anwendung verwaltet werden. Eine Konstante, die von der Anwendung verwaltet wird, wird vom Effektsystem ignoriert. Das heißt, die Anwendung ist für die Initialisierung der Konstante sowie für das Speichern und Wiederherstellen ihres Zustands verantwortlich, wenn dies angebracht ist.
Diese Funktion überprüft jede Konstante in pSkipConstants auf Folgendes:
- Sie ist an ein konstantes Register gebunden.
- Es wird nur im HLSL-Shadercode verwendet.
Wenn eine Konstante in der Zeichenfolge benannt ist, die im Effekt nicht vorhanden ist, wird sie ignoriert.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch