Como: Inicializar uma textura programaticamente
Você pode inicializar uma textura durante a criação do objeto ou pode preencher o objeto programaticamente depois que ele é criado. Este tópico tem vários exemplos mostrando como inicializar texturas que são criadas com diferentes tipos de usos. Este exemplo pressupõe que você já saiba como Criar uma textura.
Uso padrão
O tipo mais comum de uso é o uso padrão. Para preencher uma textura padrão (criada com D3D11_USAGE_DEFAULT), você pode:
Chame ID3D11Device::CreateTexture2D e inicialize pInitialData para apontar para os dados fornecidos por um aplicativo.
ou
Depois de chamar ID3D11Device::CreateTexture2D, utilize ID3D11DeviceContext::UpdateSubresource para preencher a textura padrão com dados obtidos de um ponteiro fornecido pela aplicação.
Uso dinâmico
Para preencher uma textura dinâmica (criada com D3D11_USAGE_DYNAMIC):
- Obtenha um ponteiro para a memória de textura passando D3D11_MAP_WRITE_DISCARD ao chamar ID3D11DeviceContext::Map.
- Grave dados na memória.
- Chame ID3D11DeviceContext::Unmap quando terminar de gravar dados.
Uso de Ensaio
Para preencher uma textura de estadiamento (criada com D3D11_USAGE_STAGING):
- Obtenha um ponteiro para a memória de textura passando D3D11_MAP_WRITE ao chamar ID3D11DeviceContext::Map.
- Grave dados na memória.
- Chame ID3D11DeviceContext::Unmap quando terminar de gravar dados.
Uma textura de encenação pode ser usada como parâmetro de origem para ID3D11DeviceContext::CopyResource ou ID3D11DeviceContext::CopySubresourceRegion para preencher um recurso padrão ou dinâmico.
Tópicos relacionados