Compartilhar via


Função D3DXCreateEffectFromFileEx

Crie um efeito de uma descrição de efeito ASCII ou binário. Essa função é uma versão estendida de D3DXCreateEffectFromFile que permite que um aplicativo controle quais parâmetros são ignorados pelo sistema de efeitos.

Sintaxe

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

Parâmetros

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Ponteiro para o dispositivo que criará o efeito. Consulte IDirect3DDevice9.

pSrcFile [in]

Tipo: LPCTSTR

Ponteiro para o nome do arquivo. Esse parâmetro dá suporte a cadeias de caracteres Unicode e ANSI. Consulte Observações.

pDefines [in]

Tipo: const D3DXMACRO*

Matriz opcional terminada em NULL de definições de macro de pré-processador. Consulte D3DXMACRO.

pInclude [in]

Tipo: LPD3DXINCLUDE

Ponteiro de interface opcional, ID3DXInclude, a ser usado para lidar com diretivas de #include. Se esse valor for NULL, #includes será respeitado ao compilar de um arquivo ou causará um erro quando compilado de um recurso ou memória.

pSkipConstants [in]

Tipo: LPCSTR

Uma cadeia de caracteres de parâmetros de efeito que será ignorada pelo sistema de efeito. A cadeia de caracteres deve ser terminada em NULL e precisa conter o nome de cada constante gerenciada pelo aplicativo separada por ponto e vírgula.

Sinalizadores [in]

Tipo: DWORD

Se pSrcFile contiver um efeito de texto, os sinalizadores poderão ser uma combinação de sinalizadores D3DXSHADER e sinalizadores D3DXFX ; caso contrário, pSrcFile contém um efeito binário e os únicos sinalizadores respeitados são sinalizadores D3DXFX. O compilador HLSL do Direct3D 10 agora é o padrão. Consulte Effect-Compiler Tool para obter detalhes.

pPool [in]

Tipo: LPD3DXEFFECTPOOL

Ponteiro para um objeto ID3DXEffectPool a ser usado para parâmetros compartilhados. Se esse valor for NULL, nenhum parâmetro será compartilhado.

ppEffect [out]

Tipo: LPD3DXEFFECT*

Retorna um ponteiro para um buffer que contém o efeito compilado. Consulte ID3DXEffect.

ppCompilationErrors [out]

Tipo: LPD3DXBUFFER*

Retorna um ponteiro para um buffer que contém uma listagem de erros de compilação. Consulte ID3DXBuffer.

Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.

Comentários

Essa função é uma versão estendida de D3DXCreateEffectFromFile que permite que um aplicativo especifique quais constantes de efeito serão gerenciadas pelo aplicativo. Uma constante gerenciada pelo aplicativo é ignorada pelo sistema de efeitos. Ou seja, o aplicativo é responsável por inicializar a constante, bem como salvar e restaurar seu estado sempre que apropriado.

Essa função verifica cada constante em pSkipConstants para ver que:

  • Ele está associado a um registro constante.
  • Ele só é usado no código do sombreador HLSL.

Se uma constante for nomeada na cadeia de caracteres que não está presente no efeito, ela será ignorada.

Se as configurações do compilador exigirem Unicode, o tipo de dados LPCTSTR será resolvido para LPCWSTR. Caso contrário, o tipo de dados LPCTSTR será resolvido para LPCSTR.

A configuração do compilador também determina a versão da função. Se Unicode for definido, a chamada de função será resolvida para D3DXCreateEffectFromFileW. Caso contrário, a chamada de função será resolvida para D3DXCreateEffectFromFileA porque as cadeias de caracteres ANSI estão sendo usadas.

Requisitos

Requisito Valor
parâmetro
D3DX9Effect.h
Biblioteca
D3dx9.lib

Confira também

Funções de efeito

D3DXCreateEffectEx

D3DXCreateEffectFromResourceEx