Dela via


Anvisningar: Initiera en struktur programmatiskt

Du kan initiera en struktur när objektet skapas, eller så kan du fylla objektet programmatiskt när det har skapats. Det här avsnittet innehåller flera exempel som visar hur du initierar texturer som skapas med olika typer av användningar. Det här exemplet förutsätter att du redan vet hur du Skapa en struktur.

Standardanvändning

Den vanligaste typen av användning är standardanvändning. Om du vill fylla en standardstruktur (en som skapats med D3D11_USAGE_DEFAULT) kan du antingen:

Dynamisk användning

Så här fyller du en dynamisk struktur (en som skapats med D3D11_USAGE_DYNAMIC):

  1. Hämta en pekare till texturminnet genom att skicka in D3D11_MAP_WRITE_DISCARD när du anropar ID3D11DeviceContext::Map.
  2. Skriv data till minnet.
  3. Anropa ID3D11DeviceContext::Unmap när du är klar med skrivandet av data.

Mellanlagringsanvändning

Så här fyller du en staging-textur (en som skapats med D3D11_USAGE_STAGING)

  1. Hämta en pekare till texturminnet genom att skicka in D3D11_MAP_WRITE när du anropar ID3D11DeviceContext::Map.
  2. Skriv data till minnet.
  3. Anropa ID3D11DeviceContext::Unmap när du är klar med att skriva data.

En mellanlagringsstruktur kan sedan användas som källparameter i ID3D11DeviceContext::CopyResource eller ID3D11DeviceContext::CopySubresourceRegion för att fylla en standardresurs eller dynamisk resurs.

Använda Direct3D 11

Texturer