方法:プログラムによるテクスチャーの初期化
オブジェクトの作成時にテクスチャーを初期化できるほか、オブジェクトの作成後にプログラムによってデータを設定することもできます。ここでは、各種の使用法を指定して作成したテクスチャーを初期化する方法の例をいくつか示します。これらの例では、テクスチャーの作成方法を既に理解していることを前提としています。
- 既定の使用法
- 動的な使用法
- ステージングでの使用法
既定の使用法
最も一般的な使用法は既定の使用法です。既定のテクスチャー (D3D11_USAGE_DEFAULT で作成したもの) にデータを設定するには、次のいずれかの方法を使用します。
ID3D11Device::CreateTexture2D を呼び出し、アプリケーションが提供するデータを指すように pInitialData を初期化します。
または
ID3D11Device::CreateTexture2D を呼び出した後、ID3D11DeviceContext::UpdateSubresource を使用して、アプリケーションが指定するポインターのデータで既定のテクスチャーを設定します。
動的な使用法
動的テクスチャー (D3D11_USAGE_DYNAMIC で作成したもの) にデータを設定するには
- ID3D11DeviceContext::Map の呼び出し時に D3D11_MAP_WRITE_DISCARD を渡して、テクスチャー メモリーへのポインターを取得します。
- そのメモリーにデータを書き込みます。
- データの書き込みが完了したら、ID3D11DeviceContext::Unmap を呼び出します。
ステージングでの使用法
ステージング テクスチャー (D3D11_USAGE_STAGING で作成したもの) にデータを設定するには
- ID3D11DeviceContext::Map の呼び出し時に D3D11_MAP_WRITE を渡して、テクスチャー メモリーへのポインターを取得します。
- そのメモリーにデータを書き込みます。
- データの書き込みが完了したら、ID3D11DeviceContext::Unmap を呼び出します。
その後、ステージング テクスチャーを ID3D11DeviceContext::CopyResource または ID3D11DeviceContext::CopySubresourceRegion のソース パラメーターとして使用して、既定のリソースや動的リソースにデータを設定できます。