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:
Anropa ID3D11Device::CreateTexture2D och initiera pInitialData för att peka på data som tillhandahålls av ett program.
eller
När du har anropat ID3D11Enhet::CreateTexture2Danvänder du ID3D11EnhetContext::UpdateSubresource för att fylla standardstrukturen med data från en pekare som tillhandahålls av programmet.
Dynamisk användning
Så här fyller du en dynamisk struktur (en som skapats med D3D11_USAGE_DYNAMIC):
- Hämta en pekare till texturminnet genom att skicka in D3D11_MAP_WRITE_DISCARD när du anropar ID3D11DeviceContext::Map.
- Skriv data till minnet.
- 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)
- Hämta en pekare till texturminnet genom att skicka in D3D11_MAP_WRITE när du anropar ID3D11DeviceContext::Map.
- Skriv data till minnet.
- 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.
Relaterade ämnen