方法: プログラムによってテクスチャを初期化する
オブジェクトの作成時にテクスチャを初期化することも、作成後にプログラムでオブジェクトを塗りつぶすこともできます。 このトピックでは、さまざまな種類の使用法で作成されたテクスチャを初期化する方法を示すいくつかの例を示します。 この例では、 テクスチャを作成する方法を既に把握していることを前提としています。
既定の使用法
最も一般的な使用の種類は、既定の使用です。 既定のテクスチャ ( 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 のソース パラメーターとして使用して、既定または動的リソースを埋めることができます。
関連トピック