Función D3DXCreateTextureFromFileEx

Crea una textura a partir de un archivo. Se trata de una función más avanzada que D3DXCreateTextureFromFile.

Sintaxis

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

Puntero a una interfaz IDirect3DDevice9 , que representa el dispositivo que se va a asociar a la textura.

pSrcFile [in]

Tipo: LPCTSTR

Puntero a una cadena que especifica el nombre de archivo. Si la configuración del compilador requiere Unicode, el tipo de datos LPCTSTR se resuelve en LPCWSTR. De lo contrario, el tipo de datos de cadena se resuelve en LPCSTR. Vea la sección Comentarios.

Ancho [in]

Tipo: UINT

Ancho en píxeles. Si este valor es cero o D3DX_DEFAULT, las dimensiones se toman del archivo y se redondean a una potencia de dos. Si el dispositivo admite una no potencia de 2 texturas y se especifica D3DX_DEFAULT_NONPOW2 , el tamaño no se redondeará.

Alto [in]

Tipo: UINT

Alto, en píxeles. Si este valor es cero o D3DX_DEFAULT, las dimensiones se toman del archivo y se redondean a una potencia de dos. Si el dispositivo admite la no potencia de 2 texturas y D3DX_DEFAULT_NONPOW2 sepcifica, el tamaño no se redondea.

MipLevels [in]

Tipo: UINT

Número de niveles mip solicitados. Si este valor es cero o D3DX_DEFAULT, se crea una cadena de mapas MIP completa. Si D3DX_FROM_FILE, el tamaño se tomará exactamente como está en el archivo y se producirá un error en la llamada si esto infringe las funcionalidades del dispositivo.

Uso [in]

Tipo: DWORD

0, D3DUSAGE_RENDERTARGET o D3DUSAGE_DYNAMIC. Establecer esta marca en D3DUSAGE_RENDERTARGET indica que la superficie se va a usar como destino de representación. A continuación, el recurso se puede pasar al parámetro pNewRenderTarget del método SetRenderTarget . Si se especifica D3DUSAGE_RENDERTARGET o D3DUSAGE_DYNAMIC , Pool debe establecerse en D3DPOOL_DEFAULT y la aplicación debe comprobar que el dispositivo admite esta operación mediante una llamada a CheckDeviceFormat. D3DUSAGE_DYNAMIC indica que la superficie debe controlarse dinámicamente. Consulte Uso de texturas dinámicas.

Formato [in]

Tipo: D3DFORMAT

Miembro del tipo enumerado D3DFORMAT , que describe el formato de píxel solicitado para la textura. La textura devuelta puede tener un formato diferente del especificado por Format. Las aplicaciones deben comprobar el formato de la textura devuelta. Si D3DFMT_UNKNOWN, el formato se toma del archivo. Si D3DFMT_FROM_FILE, el formato se toma exactamente como está en el archivo y se producirá un error en la llamada si esto infringe las funcionalidades del dispositivo.

Piscina [in]

Tipo: D3DPOOL

Miembro del tipo enumerado D3DPOOL , que describe la clase de memoria en la que se debe colocar la textura.

Filtro [in]

Tipo: DWORD

Combinación de una o varias constantes D3DX_FILTER que controlan cómo se filtra la imagen. Especificar D3DX_DEFAULT para este parámetro es equivalente a especificar D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER.

MipFilter [in]

Tipo: DWORD

Combinación de una o varias constantes D3DX_FILTER que controlan cómo se filtra la imagen. Especificar D3DX_DEFAULT para este parámetro es equivalente a especificar D3DX_FILTER_BOX. Además, use bits 27-31 para especificar el número de niveles mip que se omitirán (desde la parte superior de la cadena de mapas MIP) cuando se carga una textura .dds en la memoria; esto le permite omitir hasta 32 niveles.

ColorKey [in]

Tipo: D3DCOLOR

Valor D3DCOLOR que se va a reemplazar por negro transparente o 0 para deshabilitar la clave de color. Siempre es un color ARGB de 32 bits, independientemente del formato de imagen de origen. Alfa es significativo y normalmente debe establecerse en FF para las teclas de color opaco. Por lo tanto, para negro opaco, el valor sería igual a 0xFF000000.

pSrcInfo [in, out]

Tipo: D3DXIMAGE_INFO*

Puntero a una estructura de D3DXIMAGE_INFO que se va a rellenar con una descripción de los datos del archivo de imagen de origen o NULL.

pPalette [out]

Tipo: PALETTEENTRY*

Puntero a una estructura PALETTEENTRY , que representa una paleta de 256 colores para rellenar o NULL.

ppTexture [out]

Tipo: LPDIRECT3DTEXTURE9*

Dirección de un puntero a una interfaz IDirect3DTexture9 , que representa el objeto de textura creado.

Valor devuelto

Tipo: HRESULT

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

Comentarios

La configuración del compilador también determina la versión de la función. Si se define Unicode, la llamada de función se resuelve en D3DXCreateTextureFromFileExW. De lo contrario, la llamada de función se resuelve en D3DXCreateTextureFromFileExA porque se usan cadenas ANSI.

Use D3DXCheckTextureRequirements para determinar si el dispositivo puede admitir la textura según el estado actual.

Esta función admite los siguientes formatos de archivo: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm y .tga. Consulte D3DXIMAGE_FILEFORMAT.

Las texturas mipmapped se rellenan automáticamente con la textura cargada. Al cargar imágenes en texturas mipmapped, algunos dispositivos no pueden ir a una imagen de 1x1 y se producirá un error en esta función. Si esto sucede, las imágenes deben cargarse manualmente.

Para obtener el mejor rendimiento al usar D3DXCreateTextureFromFileEx:

  1. El escalado de imágenes y la conversión de formato en tiempo de carga pueden ser lentos. Almacene imágenes en el formato y la resolución que se usarán. Si el hardware de destino requiere potencia de 2 dimensiones, cree y almacene imágenes con potencia de 2 dimensiones.
  2. Para la creación de imágenes mipmap en tiempo de carga, filtre mediante D3DX_FILTER_BOX. Un filtro de cuadro es mucho más rápido que otros tipos de filtro, como D3DX_FILTER_TRIANGLE.
  3. Considere la posibilidad de usar archivos DDS. Dado que los archivos DDS se pueden usar para representar cualquier formato de textura de Direct3D 9, son muy fáciles de leer D3DX. Además, pueden almacenar mapas MIP, por lo que se pueden usar algoritmos de generación de mapas MIP para crear las imágenes.

Al omitir los niveles de mapa mip al cargar un archivo .dds, use la macro D3DX_SKIP_DDS_MIP_LEVELS para generar el valor de MipFilter. Esta macro toma el número de niveles que se omitirán y el tipo de filtro y devuelve el valor de filtro, que luego se pasará al parámetro MipFilter.

Requisitos

Requisito Value
Encabezado
D3dx9tex.h
Biblioteca
D3dx9.lib

Consulte también

D3DXCreateTextureFromFile

Funciones de textura en D3DX 9