Cómo: Inicializar una textura mediante programación
Puede inicializar una textura durante la creación del objeto o rellenar el objeto mediante programación después de crearlo. En este tema se muestran varios ejemplos que muestran cómo inicializar texturas creadas con distintos tipos de usos. En este ejemplo se supone que ya sabe cómo crear una textura.
Uso predeterminado
El tipo de uso más común es el uso predeterminado. Para rellenar una textura predeterminada (una creada con D3D11_USAGE_DEFAULT), puede hacer lo siguiente:
Llame a ID3D11Device::CreateTexture2D e inicialice pInitialData para que apunte a los datos proporcionados desde una aplicación.
or
Después de llamar a ID3D11Device::CreateTexture2D, use ID3D11DeviceContext::UpdateSubresource para rellenar la textura predeterminada con datos de un puntero proporcionado por la aplicación.
Uso dinámico
Para rellenar una textura dinámica (una creada con D3D11_USAGE_DYNAMIC):
- Obtenga un puntero a la memoria de textura pasando D3D11_MAP_WRITE_DISCARD al llamar a ID3D11DeviceContext::Map.
- Escribir datos en la memoria.
- Llame a ID3D11DeviceContext::Unmap cuando haya terminado de escribir datos.
Uso de almacenamiento provisional
Para rellenar una textura de ensayo (una creada con D3D11_USAGE_STAGING):
- Obtenga un puntero a la memoria de textura pasando D3D11_MAP_WRITE al llamar a ID3D11DeviceContext::Map.
- Escribir datos en la memoria.
- Llame a ID3D11DeviceContext::Unmap cuando haya terminado de escribir datos.
A continuación, se puede usar una textura de almacenamiento provisional como parámetro de origen para ID3D11DeviceContext::CopyResource o ID3D11DeviceContext::CopySubresourceRegion para rellenar un recurso predeterminado o dinámico.
Temas relacionados