Condividi tramite


Funzione D3DXCreateEffectFromFileEx

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

Sintassi

HRESULT D3DXCreateEffectFromFileEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCTSTR           pSrcFile,
  _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. Vedere IDirect3DDevice9.

pSrcFile [in]

Tipo: LPCTSTR

Puntatore al nome del file. Questo parametro supporta sia stringhe Unicode che ANSI. Vedere la sezione Osservazioni.

pDefines [in]

Tipo: const D3DXMACRO*

Matrice con terminazione NULL facoltativa delle definizioni di macro del preprocessore. Vedere D3DXMACRO.

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntatore di interfaccia facoltativo, ID3DXInclude, da usare per gestire le direttive di #include. Se questo valore è NULL, #includes verrà rispettato quando si compila da un file o si verificherà un errore quando viene compilato da una risorsa o da una memoria.

pSkipConstants [in]

Tipo: LPCSTR

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

Flag [in]

Tipo: DWORD

Se pSrcFile contiene un effetto di testo, i flag possono essere una combinazione di flag D3DXSHADER e flag D3DXFX ; in caso contrario, pSrcFile contiene un effetto binario e gli unici flag onorati sono flag D3DXFX. Il compilatore Direct3D 10 HLSL è ora il valore predefinito. Per informazioni dettagliate, vedere Strumento del compilatore effetto .

pPool [in]

Tipo: LPD3DXEFFECTPOOL

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

ppEffect [out]

Tipo: LPD3DXEFFECT*

Restituisce un puntatore a un buffer contenente l'effetto compilato. Vedere ID3DXEffect.

ppCompilationErrors [out]

Tipo: LPD3DXBUFFER*

Restituisce un puntatore a un buffer contenente un elenco di errori di compilazione. Vedere ID3DXBuffer.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito è 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 D3DXCreateEffectFromFile che consente a un'applicazione di specificare le costanti di effetto 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 ogni volta che è appropriato.

Questa funzione controlla ogni costante in pSkipConstants per verificare che:

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

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

Se le impostazioni del compilatore richiedono Unicode, il tipo di dati LPCTSTR viene risolto in LPCWSTR. In caso contrario, il tipo di dati LPCTSTR viene risolto in LPCSTR.

L'impostazione del compilatore determina anche la versione della funzione. Se Unicode è definito, la chiamata alla funzione viene risolta in D3DXCreateEffectFromFileW. In caso contrario, la chiamata di funzione viene risolta in D3DXCreateEffectFromFileA perché vengono usate stringhe ANSI.

Requisiti

Requisito Valore
Intestazione
D3DX9Effect.h
Libreria
D3dx9.lib

Vedi anche

Funzioni effetto

D3DXCreateEffectEx

D3DXCreateEffectFromResourceEx