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:

Uso dinâmico

Para preencher uma textura dinâmica (criada com D3D11_USAGE_DYNAMIC):

  1. Obtenha um ponteiro para a memória de textura passando D3D11_MAP_WRITE_DISCARD ao chamar ID3D11DeviceContext::Map.
  2. Gravar dados na memória.
  3. Chame ID3D11DeviceContext::Unmap quando terminar de gravar dados.

Uso de preparo

Para preencher uma textura de preparo (criada com D3D11_USAGE_STAGING):

  1. Obtenha um ponteiro para a memória de textura passando D3D11_MAP_WRITE ao chamar ID3D11DeviceContext::Map.
  2. Gravar dados na memória.
  3. 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.

Como usar o Direct3D 11

Texturas