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 erstellt. 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.

pDefine [ In]

Typ: const D3DXMACRO *

Ein optionales NULL-terminiertes Array von D3DXMACRO-Strukturen, die Präprozessordefinitionen beschreiben. Dieser Wert kann NULL sein.

pInclude [ In]

Typ: LPD3DXINCLUDE

Optionaler Schnittstellenzeiger ID3DXInclude, der für die Behandlung von # Includedirektiven verwendet werden soll. Wenn dieser Wert NULL ist, # wird includes entweder beim Kompilieren aus einer Datei berücksichtigt oder verursacht bei der Kompilierung aus einer Ressource oder aus dem Arbeitsspeicher einen Fehler.

pSkipConstants [ In]

Typ: LPCSTR

Eine Zeichenfolge von Effektparametern, die vom Effektsystem ignoriert werden. Die Zeichenfolge muss NULL-terminiert sein und den Namen jeder von der Anwendung verwalteten Konstante enthalten, die durch ein Semikolon getrennt ist.

Flags [ 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 Effektcompilertool.

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 ausgeführt wird, lautet der Rückgabewert D3D _ OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR _ INVALIDCALL, D3DXERR _ INVALIDDATA, E _ OUTOFMEMORY.

Hinweise

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, sofern dies angemessen ist.

Diese Funktion überprüft jede Konstante in pSkipConstants, um Dies zu überprüfen:

  • Sie ist an ein Konstantenregister gebunden.
  • Sie wird nur im HLSL-Shadercode verwendet.

Wenn eine Konstante in der Zeichenfolge benannt wird, die im Effekt nicht vorhanden ist, wird sie ignoriert.

Anforderungen

Anforderung Wert
Header
D3DX9Effect.h
Bibliothek
D3dx9.lib

Siehe auch

Effect-Funktionen

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx