Compartir a través de


Función D3DXCreateEffectEx

Crea un efecto a partir de una descripción de efecto ASCII o binario. Esta función es una versión extendida de D3DXCreateEffect que permite a una aplicación controlar qué parámetros ignora el sistema de efectos.

Sintaxis

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

Parámetros

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Puntero al dispositivo que creará el efecto. Vea IDirect3DDevice9.

pSrcData [in]

Tipo: LPCVOID

Puntero a un búfer que contiene una descripción del efecto.

SrcDataLen [in]

Tipo: UINT

Longitud de los datos del efecto, en bytes.

pDefines [in]

Tipo: const D3DXMACRO*

Matriz opcional terminada en NULL de estructuras D3DXMACRO que describen definiciones de preprocesador. Este valor puede ser NULL.

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntero de interfaz opcional, ID3DXInclude, que se usará para controlar directivas #include. Si este valor es NULL, se respetará #includes al compilar desde un archivo o provocará un error cuando se compile desde un recurso o memoria.

pSkipConstants [in]

Tipo: LPCSTR

Cadena de parámetros de efecto que el sistema de efectos omitirá. La cadena debe terminar en NULL y debe contener el nombre de cada constante administrada por la aplicación separada por un punto y coma.

Marcas [in]

Tipo: DWORD

Si pSrcData contiene un efecto de texto, las marcas pueden ser una combinación de marcas D3DXSHADER y marcas D3DXFX ; De lo contrario, pSrcData contiene un efecto binario y las únicas marcas que se respetan son marcas D3DXFX. El compilador HLSL de Direct3D 10 ahora es el predeterminado. Consulte Effect-Compiler Tool (Herramienta del compilador de efectos ) para obtener más información.

pPool [in]

Tipo: LPD3DXEFFECTPOOL

Puntero a un objeto ID3DXEffectPool que se va a usar para parámetros compartidos. Si este valor es NULL, no se compartirá ningún parámetro.

ppEffect [out]

Tipo: LPD3DXEFFECT*

Devuelve un puntero a una interfaz ID3DXEffect .

ppCompilationErrors [out]

Tipo: LPD3DXBUFFER*

Devuelve un búfer que contiene una lista de errores de compilación.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Comentarios

Esta función es una versión extendida de D3DXCreateEffect que permite a una aplicación especificar qué constantes de efecto administrará la aplicación. El sistema de efectos omite una constante administrada por la aplicación. Es decir, la aplicación es responsable de inicializar la constante, así como de guardar y restaurar su estado siempre que corresponda.

Esta función comprueba cada constante en pSkipConstants para ver lo siguiente:

  • Está enlazado a un registro constante.
  • Solo se usa en el código del sombreador HLSL.

Si una constante se denomina en la cadena que no está presente en el efecto, se omite.

Requisitos

Requisito Value
Encabezado
D3DX9Effect.h
Biblioteca
D3dx9.lib

Consulte también

Funciones de efecto

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx