Como inicializar uma textura programaticamente
Você pode inicializar uma textura durante a criação do objeto ou preencher o objeto programaticamente depois que ele for criado. Este tópico tem vários exemplos mostrando como inicializar texturas criadas com diferentes tipos de uso. 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 de um aplicativo.
ou
Depois de chamar ID3D11Device::CreateTexture2D, use ID3D11DeviceContext::UpdateSubresource para preencher a textura padrão com dados de um ponteiro fornecido pelo aplicativo.
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.
- Gravar dados na memória.
- Chame ID3D11DeviceContext::Unmap quando terminar de gravar dados.
Uso de preparo
Para preencher uma textura de preparo (criada com D3D11_USAGE_STAGING):
- Obtenha um ponteiro para a memória de textura passando D3D11_MAP_WRITE ao chamar ID3D11DeviceContext::Map.
- Gravar dados na memória.
- Chame ID3D11DeviceContext::Unmap quando terminar de gravar dados.
Em seguida, uma textura de preparo pode ser usada como o parâmetro de origem para ID3D11DeviceContext::CopyResource ou ID3D11DeviceContext::CopySubresourceRegion para preencher um recurso padrão ou dinâmico.
Tópicos relacionados