Método IDirect3DDevice9::CreateTexture (d3d9.h)
Crea un recurso de textura.
Sintaxis
HRESULT CreateTexture(
[in] UINT Width,
[in] UINT Height,
[in] UINT Levels,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DTexture9 **ppTexture,
[in] HANDLE *pSharedHandle
);
Parámetros
[in] Width
Tipo: UINT
Ancho del nivel superior de la textura, en píxeles. Las dimensiones de píxeles de los niveles posteriores serán el valor truncado de la mitad de la dimensión de píxel del nivel anterior (independientemente). Cada dimensión se fija en un tamaño de 1 píxel. Por lo tanto, si la división en 2 da como resultado 0, se tomará 1 en su lugar.
[in] Height
Tipo: UINT
Alto del nivel superior de la textura, en píxeles. Las dimensiones de píxeles de los niveles posteriores serán el valor truncado de la mitad de la dimensión de píxel del nivel anterior (independientemente). Cada dimensión se fija en un tamaño de 1 píxel. Por lo tanto, si la división en 2 da como resultado 0, se tomará 1 en su lugar.
[in] Levels
Tipo: UINT
Número de niveles en la textura. Si es cero, Direct3D generará todos los subniveles de textura de hasta 1 en 1 píxeles para hardware que admita texturas mipmapped. Llame a IDirect3DBaseTexture9::GetLevelCount para ver el número de niveles generados.
[in] Usage
Tipo: DWORD
El uso puede ser 0, lo que indica que no hay ningún valor de uso. Sin embargo, si se desea el uso, use una combinación de una o varias constantes D3DUSAGE . Se recomienda hacer coincidir el parámetro de uso con las marcas de comportamiento en IDirect3D9::CreateDevice.
[in] Format
Tipo: D3DFORMAT
Miembro del tipo enumerado D3DFORMAT , que describe el formato de todos los niveles de la textura.
[in] Pool
Tipo: D3DPOOL
Miembro del tipo enumerado D3DPOOL , que describe la clase de memoria en la que se debe colocar la textura.
[out, retval] ppTexture
Tipo: IDirect3DTexture9**
Puntero a una interfaz IDirect3DTexture9 , que representa el recurso de textura creado.
[in] pSharedHandle
Tipo: HANDLE*
Reservado. Establezca este parámetro en NULL. Este parámetro se puede usar en Direct3D 9 para Windows Vista para compartir recursos.
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.
Comentarios
Una aplicación puede detectar compatibilidad con la generación automática de mapas Mip (Direct3D 9) en un formato determinado llamando a IDirect3D9::CheckDeviceFormat con D3DUSAGE_AUTOGENMIPMAP. Si IDirect3D9::CheckDeviceFormat devuelve D3DOK_NOAUTOGEN, IDirect3DDevice9::CreateTexture se realizará correctamente, pero devolverá una textura de un nivel.
En CreateTexture de Windows Vista puede crear una textura a partir de un puntero de memoria del sistema, lo que permite a la aplicación una mayor flexibilidad sobre el uso, la asignación y la eliminación de la memoria del sistema. Por ejemplo, una aplicación podría pasar un puntero de mapa de bits de memoria del sistema GDI y obtener una interfaz de textura direct3D alrededor de ella. El uso de un puntero de memoria del sistema con CreateTexture tiene las siguientes restricciones.
- El tono de la textura debe ser igual al ancho multiplicado por el número de bytes por píxel.
- Solo se admiten texturas con un solo nivel de mapa mip. El argumento Levels debe ser 1.
- El argumento Pool debe ser D3DPOOL_SYSTEMMEM.
- El argumento pSharedHandle debe ser un puntero válido a un búfer que pueda contener el punto de memoria del sistema; *pSharedHandle debe ser un puntero válido a la memoria del sistema con un tamaño en bytes de ancho de textura * alto de textura * bytes por píxel del formato de textura.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d9.h (incluya D3D9.h) |
Library | D3D9.lib |
Consulte también
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx