Procédure : initialiser une texture par programmation

Vous pouvez initialiser une texture lors de la création d’un objet ou remplir l’objet par programmation après sa création. Cette rubrique contient plusieurs exemples montrant comment initialiser des textures créées avec différents types d’utilisations. Cet exemple suppose que vous savez déjà comment créer une texture.

Utilisation par défaut

Le type d’utilisation le plus courant est l’utilisation par défaut. Pour remplir une texture par défaut (une texture créée avec D3D11_USAGE_DEFAULT), vous pouvez :

Utilisation dynamique

Pour remplir une texture dynamique (une texture créée avec D3D11_USAGE_DYNAMIC) :

  1. Obtenez un pointeur vers la mémoire de texture en transmettant D3D11_MAP_WRITE_DISCARD lors de l’appel d’ID3D11DeviceContext::Map.
  2. Écrire des données dans la mémoire.
  3. Appelez ID3D11DeviceContext::Unmap lorsque vous avez terminé d’écrire des données.

Utilisation intermédiaire

Pour remplir une texture intermédiaire (une texture créée avec D3D11_USAGE_STAGING) :

  1. Obtenez un pointeur vers la mémoire de texture en transmettant D3D11_MAP_WRITE lors de l’appel de ID3D11DeviceContext::Map.
  2. Écrire des données dans la mémoire.
  3. Appelez ID3D11DeviceContext::Unmap lorsque vous avez terminé d’écrire des données.

Une texture intermédiaire peut ensuite être utilisée comme paramètre source pour ID3D11DeviceContext::CopyResource ou ID3D11DeviceContext::CopySubresourceRegion pour remplir une ressource par défaut ou dynamique.

Comment utiliser Direct3D 11

Textures