Share via


Recursos de textura (Direct3D 9)

Los recursos de textura se implementan en la interfaz IDirect3DTexture9 . Para obtener un puntero a una interfaz de textura, llame al método IDirect3DDevice9::CreateTexture o a cualquiera de las siguientes funciones D3DX.

En el ejemplo de código siguiente se usa D3DXCreateTextureFromFile para cargar una textura de Tiger.bmp.

// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.

LPDIRECT3DTEXTURE9 pTexture;

D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);

El primer parámetro que acepta D3DXCreateTextureFromFile es un puntero a una interfaz IDirect3DDevice9 . El segundo parámetro indica a Direct3D el nombre del archivo desde el que se va a cargar la textura. El tercer parámetro toma la dirección de un puntero a una interfaz IDirect3DTexture9 , que representa el objeto de textura creado.

Representación con recursos de textura

Direct3D admite la mezcla de varias texturas mediante el concepto de fases de textura. Cada fase de textura contiene una textura y operaciones que se pueden realizar en la textura. Las texturas de las fases de textura forman el conjunto de texturas actuales. Para obtener más información, consulta Texture Blending (Direct3D 9) (Mezcla de texturas [Direct3D 9]). El estado de cada textura se encapsula en su fase de textura.

En una aplicación de C++, el estado de cada textura debe establecerse con el método IDirect3DDevice9::SetTextureStageState . Pase el número de fase (0-7) como valor del primer parámetro. Establezca el valor del segundo parámetro en un miembro del tipo enumerado D3DTEXTURESTAGESTATETYPE . El parámetro final es el valor de estado del estado de textura determinado.

Con punteros de interfaz de textura, la aplicación puede representar una combinación de hasta ocho texturas. Establezca las texturas actuales invocando el método IDirect3DDevice9::SetTexture . Direct3D combina todas las texturas actuales en los primitivos que representa.

Nota

El método IDirect3DDevice9::SetTexture incrementa el recuento de referencias de la superficie de textura que se asigna. Cuando la textura ya no sea necesaria, debe establecer la textura en la fase adecuada en NULL. Si no lo hace, la superficie no se liberará, lo que provocará una pérdida de memoria.

 

La aplicación puede establecer el estado de ajuste de textura para las texturas actuales llamando al método IDirect3DDevice9::SetRenderState . Pase un valor de D3DRS_WRAP0 a D3DRS_WRAP7 como valor del primer parámetro y use una combinación de las marcas de D3DWRAPCOORD_0, D3DWRAPCOORD_1, D3DWRAPCOORD_2 y D3DWRAPCOORD_3 para habilitar el ajuste en las direcciones u, v o w.

La aplicación también puede establecer los estados de perspectiva de textura y filtrado de texturas. Consulta Filtrado de texturas (Direct3D 9).

Texturas de Direct3D