Postupy: Jak inicializovat texturu programově
Texturu můžete inicializovat během vytváření objektu nebo můžete objekt vyplnit programově po jeho vytvoření. Toto téma obsahuje několik příkladů, které ukazují, jak inicializovat textury vytvořené s různými typy použití. Tento příklad předpokládá, že již víte, jak vytvořit texturu.
Výchozí využití
Nejběžnějším typem použití je výchozí využití. Pokud chcete vyplnit výchozí texturu (vytvořenou pomocí D3D11_USAGE_DEFAULT), můžete:
Zavolejte ID3D11Device::CreateTexture2D a inicializujte pInitialData tak, aby ukazovala na data poskytnutá z aplikace.
nebo
Po volání ID3D11Device::CreateTexture2Dpoužijte ID3D11DeviceContext::UpdateSubresource k vyplnění výchozí textury daty z ukazatele poskytnutého aplikací.
Dynamické využití
Vyplnění dynamické textury (vytvořené pomocí D3D11_USAGE_DYNAMIC):
- Získejte ukazatel na texturovou paměť předáním D3D11_MAP_WRITE_DISCARD při volání ID3D11DeviceContext::Map.
- Zapisujte data do paměti.
- Zavolejte ID3D11DeviceContext::Unmap, až dokončíte zapisování dat.
Předváděcí využití
Pokud chcete vyplnit přípravnou texturu (vytvořenou pomocí D3D11_USAGE_STAGING):
- Získejte ukazatel na paměť textury předáním D3D11_MAP_WRITE při volání ID3D11DeviceContext::Map.
- Zapisujte data do paměti.
- Zavolejte ID3D11DeviceContext::Unmap, až dokončíte zápis dat.
Přípravnou texturu lze následně použít jako parametr zdroje pro ID3D11DeviceContext::CopyResource nebo ID3D11DeviceContext::CopySubresourceRegion pro vyplnění výchozího nebo dynamického prostředku.
Související témata