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:
- 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.
- 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.
- 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 |
|
Biblioteca |
|
Confira também