Procedura: Inizializzare una trama a livello di codice
È possibile inizializzare una trama durante la creazione dell'oggetto oppure riempire l'oggetto a livello di codice dopo la creazione. In questo argomento sono disponibili diversi esempi che illustrano come inizializzare le trame create con diversi tipi di utilizzo. Questo esempio presuppone che tu sappia già come creare una trama.
Utilizzo predefinito
Il tipo di utilizzo più comune è l'utilizzo predefinito. Per riempire una trama predefinita (creata con D3D11_USAGE_DEFAULT) è possibile:
Chiamare ID3D11Device::CreateTexture2D e inizializzare pInitialData per puntare ai dati forniti da un'applicazione.
oppure
Dopo aver chiamato ID3D11Device::CreateTexture2D, usare ID3D11DeviceContext::UpdateSubresource per riempire la trama predefinita con i dati di un puntatore fornito dall'applicazione.
Utilizzo dinamico
Per riempire una trama dinamica (una creata con D3D11_USAGE_DYNAMIC):
- Ottenere un puntatore alla memoria della trama passando D3D11_MAP_WRITE_DISCARD quando si chiama ID3D11DeviceContext::Map.
- Scrivere dati nella memoria.
- Chiamare ID3D11DeviceContext::Unmap al termine della scrittura dei dati.
Utilizzo gestione temporanea
Per riempire una trama di staging (una creata con D3D11_USAGE_STAGING):
- Ottenere un puntatore alla memoria della trama passando D3D11_MAP_WRITE quando si chiama ID3D11DeviceContext::Map.
- Scrivere dati nella memoria.
- Chiamare ID3D11DeviceContext::Unmap al termine della scrittura dei dati.
Una trama di staging può quindi essere usata come parametro di origine per ID3D11DeviceContext::CopyResource o ID3D11DeviceContext::CopySubresourceRegion per riempire una risorsa predefinita o dinamica.
Argomenti correlati