Condividi tramite


Funzione D3DXCreateEffectEx

Crea un effetto da una descrizione dell'effetto ASCII o binario. Questa funzione è una versione estesa di D3DXCreateEffect che consente a un'applicazione di controllare quali parametri vengono ignorati dal sistema degli effetti.

Sintassi

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
);

Parametri

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Puntatore al dispositivo che creerà l'effetto. Vedi IDirect3DDevice9.

pSrcData [in]

Tipo: LPCVOID

Puntatore a un buffer contenente una descrizione dell'effetto.

SrcDataLen [in]

Tipo: UINT

Lunghezza dei dati dell'effetto, in byte.

pDefines [in]

Tipo: const D3DXMACRO*

Matrice facoltativa con terminazione NULL di strutture D3DXMACRO che descrivono le definizioni del preprocessore. Questo valore può essere NULL.

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntatore di interfaccia facoltativo, ID3DXInclude, da usare per la gestione delle direttive #include. Se questo valore è NULL, #includes verrà rispettato durante la compilazione da un file o genererà un errore durante la compilazione da una risorsa o da una memoria.

pSkipConstants [in]

Tipo: LPCSTR

Stringa di parametri di effetto che verranno ignorati dal sistema di effetti. La stringa deve essere null terminata e deve contenere il nome di ogni costante gestita dall'applicazione separata da un punto e virgola.

Flag [in]

Tipo: DWORD

Se pSrcData contiene un effetto di testo, i flag possono essere una combinazione di flag D3DXSHADER e flag D3DXFX ; in caso contrario, pSrcData contiene un effetto binario e gli unici flag onorati sono flag D3DXFX. Il compilatore Direct3D 10 HLSL è ora l'impostazione predefinita. Per informazioni dettagliate, vedere Strumento del compilatore di effetti .

pPool [in]

Tipo: LPD3DXEFFECTPOOL

Puntatore a un oggetto ID3DXEffectPool da utilizzare per i parametri condivisi. Se questo valore è NULL, non verranno condivisi parametri.

ppEffect [out]

Tipo: LPD3DXEFFECT*

Restituisce un puntatore a un'interfaccia ID3DXEffect .

ppCompilationErrors [out]

Tipo: LPD3DXBUFFER*

Restituisce un buffer contenente un elenco di errori di compilazione.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito viene D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Commenti

Questa funzione è una versione estesa di D3DXCreateEffect che consente a un'applicazione di specificare le costanti degli effetti che verranno gestite dall'applicazione. Una costante gestita dall'applicazione viene ignorata dal sistema degli effetti. Ovvero, l'applicazione è responsabile dell'inizializzazione della costante, nonché del salvataggio e del ripristino dello stato quando appropriato.

Questa funzione controlla ogni costante in pSkipConstants per verificare che:

  • È associato a un registro costante.
  • Viene usato solo nel codice dello shader HLSL.

Se una costante viene denominata nella stringa che non è presente nell'effetto, viene ignorata.

Requisiti

Requisito Valore
Intestazione
D3DX9Effect.h
Libreria
D3dx9.lib

Vedi anche

Funzioni effetto

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx