Compartilhar via


Função D3DXCreateTextureFromFileEx

Cria uma textura de um arquivo. Essa é uma função mais avançada do que D3DXCreateTextureFromFile.

Sintaxe

HRESULT D3DXCreateTextureFromFileEx(
  _In_    LPDIRECT3DDEVICE9  pDevice,
  _In_    LPCTSTR            pSrcFile,
  _In_    UINT               Width,
  _In_    UINT               Height,
  _In_    UINT               MipLevels,
  _In_    DWORD              Usage,
  _In_    D3DFORMAT          Format,
  _In_    D3DPOOL            Pool,
  _In_    DWORD              Filter,
  _In_    DWORD              MipFilter,
  _In_    D3DCOLOR           ColorKey,
  _Inout_ D3DXIMAGE_INFO     *pSrcInfo,
  _Out_   PALETTEENTRY       *pPalette,
  _Out_   LPDIRECT3DTEXTURE9 *ppTexture
);

Parâmetros

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Ponteiro para uma interface IDirect3DDevice9 , representando o dispositivo a ser associado à textura.

pSrcFile [in]

Tipo: LPCTSTR

Ponteiro para uma cadeia de caracteres que especifica o nome do arquivo. Se as configurações do compilador exigirem Unicode, o tipo de dados LPCTSTR será resolvido para LPCWSTR. Caso contrário, o tipo de dados de cadeia de caracteres será resolvido para LPCSTR. Consulte Observações.

Largura [in]

Tipo: UINT

Largura em pixels. Se esse valor for zero ou D3DX_DEFAULT, as dimensões serão retiradas do arquivo e arredondadas para uma potência de dois. Se o dispositivo der suporte à não potência de duas texturas e D3DX_DEFAULT_NONPOW2 for especificado, o tamanho não será arredondado.

Altura [in]

Tipo: UINT

Altura, em pixels. Se esse valor for zero ou D3DX_DEFAULT, as dimensões serão retiradas do arquivo e arredondadas para uma potência de dois. Se o dispositivo der suporte à não potência de 2 texturas e D3DX_DEFAULT_NONPOW2 for sepcificado, o tamanho não será arredondado.

MipLevels [in]

Tipo: UINT

Número de níveis de mip solicitados. Se esse valor for zero ou D3DX_DEFAULT, uma cadeia de mipmap completa será criada. Se D3DX_FROM_FILE, o tamanho será obtido exatamente como está no arquivo e a chamada falhará se isso violar os recursos do dispositivo.

Uso [in]

Tipo: DWORD

0, D3DUSAGE_RENDERTARGET ou D3DUSAGE_DYNAMIC. Definir esse sinalizador como D3DUSAGE_RENDERTARGET indica que a superfície deve ser usada como um destino de renderização. Em seguida, o recurso pode ser passado para o parâmetro pNewRenderTarget do método SetRenderTarget . Se D3DUSAGE_RENDERTARGET ou D3DUSAGE_DYNAMIC for especificado, o Pool deverá ser definido como D3DPOOL_DEFAULT e o aplicativo deverá marcar que o dispositivo dê suporte a essa operação chamando CheckDeviceFormat. D3DUSAGE_DYNAMIC indica que a superfície deve ser tratada dinamicamente. Consulte Usando texturas dinâmicas.

Formatar [in]

Tipo: D3DFORMAT

Membro do tipo enumerado D3DFORMAT , descrevendo o formato de pixel solicitado para a textura. A textura retornada pode ter um formato diferente daquele especificado por Format. Os aplicativos devem marcar o formato da textura retornada. Se D3DFMT_UNKNOWN, o formato será retirado do arquivo. Se D3DFMT_FROM_FILE, o formato será usado exatamente como está no arquivo e a chamada falhará se isso violar os recursos do dispositivo.

Pool [in]

Tipo: D3DPOOL

Membro do tipo enumerado D3DPOOL , descrevendo a classe de memória na qual a textura deve ser colocada.

Filtrar [in]

Tipo: DWORD

Uma combinação de uma ou mais constantes D3DX_FILTER controlando como a imagem é filtrada. Especificar D3DX_DEFAULT para esse parâmetro é o equivalente a especificar D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER.

MipFilter [in]

Tipo: DWORD

Uma combinação de uma ou mais constantes D3DX_FILTER controlando como a imagem é filtrada. Especificar D3DX_DEFAULT para esse parâmetro é o equivalente a especificar D3DX_FILTER_BOX. Além disso, use os bits 27-31 para especificar o número de níveis de mip a serem ignorados (da parte superior da cadeia de mipmap) quando uma textura .dds for carregada na memória; isso permite que você pule até 32 níveis.

ColorKey [in]

Tipo: D3DCOLOR

Valor D3DCOLOR a ser substituído por preto transparente ou 0 para desabilitar a chave de cor. Essa é sempre uma cor ARGB de 32 bits, independente do formato de imagem de origem. Alfa é significativo e geralmente deve ser definido como FF para chaves de cor opacas. Assim, para preto opaco, o valor seria igual a 0xFF000000.

pSrcInfo [in, out]

Tipo: D3DXIMAGE_INFO*

Ponteiro para uma estrutura D3DXIMAGE_INFO a ser preenchida com uma descrição dos dados no arquivo de imagem de origem ou NULL.

pPalette [out]

Tipo: PALETTEENTRY*

Ponteiro para uma estrutura PALETTEENTRY , representando uma paleta de 256 cores a ser preenchida ou NULL.

ppTexture [out]

Tipo: LPDIRECT3DTEXTURE9*

Endereço de um ponteiro para uma interface IDirect3DTexture9 , representando o objeto de textura criado.

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, D3DERR_NOTAVAILABLE, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA E_OUTOFMEMORY.

Comentários

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 D3DXCreateTextureFromFileExW. Caso contrário, a chamada de função será resolvida para D3DXCreateTextureFromFileExA porque cadeias de caracteres ANSI estão sendo usadas.

Use D3DXCheckTextureRequirements para determinar se o dispositivo pode dar suporte à textura dado o estado atual.

Essa função dá suporte aos seguintes formatos de arquivo: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm e .tga. Confira D3DXIMAGE_FILEFORMAT.

Texturas mipmapped automaticamente têm cada nível preenchido com a textura carregada. Ao carregar imagens em texturas mipmapped, alguns dispositivos não conseguem acessar uma imagem 1x1 e essa função falhará. Se isso acontecer, as imagens precisarão ser carregadas manualmente.

Para obter o melhor desempenho ao usar D3DXCreateTextureFromFileEx:

  1. A conversão de dimensionamento e formato de imagem no tempo de carregamento pode ser lenta. Armazene imagens no formato e resolução que serão usadas. Se o hardware de destino exigir potência de duas dimensões, crie e armazene imagens usando a potência de duas dimensões.
  2. Para a criação de imagem mipmap no tempo de carregamento, filtre usando D3DX_FILTER_BOX. Um filtro de caixa é muito mais rápido do que outros tipos de filtro, como D3DX_FILTER_TRIANGLE.
  3. Considere usar arquivos DDS. Como os arquivos DDS podem ser usados para representar qualquer formato de textura Direct3D 9, eles são muito fáceis de ler para D3DX. Além disso, eles podem armazenar mipmaps, para que qualquer algoritmo de geração de mipmap possa ser usado para criar as imagens.

Ao ignorar os níveis de mipmap ao carregar um arquivo .dds, use a macro D3DX_SKIP_DDS_MIP_LEVELS para gerar o valor MipFilter. Essa macro usa o número de níveis para ignorar e o tipo de filtro e retorna o valor do filtro, que então seria passado para o parâmetro MipFilter.

Requisitos

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

Confira também

D3DXCreateTextureFromFile

Funções de textura no D3DX 9