リソースの操作 (Direct3D 9)
アプリケーションでは、シーンのレンダリングのためにリソースを操作します。アプリケーションは、最初に次のいずれかのメソッドを使用してテクスチャー リソースを作成する必要があります。
- IDirect3DDevice9::CreateCubeTexture
- IDirect3DDevice9::CreateTexture
- IDirect3DDevice9::CreateVolumeTexture
テクスチャー リソースは、代わりに D3DXCreatexxx テクスチャー作成関数のいずれかを使用しても作成できます。
テクスチャー作成メソッドによって返されるテクスチャー オブジェクトは、サーフェスまたはボリュームのコンテナーです。これらのコンテナーは一般にバッファーとして知られています。リソースが所有するバッファーは、そのリソースの使用法、フォーマットおよびプールを継承しますが、独自のタイプを持ちます。詳細については、「リソースのプロパティ (Direct3D 9)」を参照してください。
アプリケーションは、アートワークをロードするために、次のメソッドを呼び出すことによって格納されたサーフェスにアクセスできます。詳細については、「リソースのロック (Direct3D 9)」を参照してください。
ロック メソッドは、格納されたサーフェスを示す引数を取り (テクスチャーのミップマップ サブレベルやキューブ面など)、ピクセルへのポインターを返します。一般的なアプリケーションでは、サーフェス オブジェクトを直接使用することはありません。
IDirect3DDevice9::CreateIndexBuffer または IDirect3DDevice9::CreateVertexBuffer を呼び出して、ジオメトリ指向のリソースを作成します。
リソースに応じて IDirect3DIndexBuffer9::Lock と IDirect3DVertexBuffer9::Lock のいずれかを呼び出して、バッファー リソースをロックし、データを格納します。
マネージ テクスチャー リソースの場合、リソース作成プロセスはこれで終了です。非マネージ テクスチャー リソースの場合、アプリケーションは IDirect3DDevice9::UpdateTexture を呼び出して、システム メモリー リソースをデバイスからアクセス可能なリソースに移行します (ハードウェア アクセラレーションのため)。
リソースからレンダリングされたイメージを表示するために、アプリケーションにはカラー バッファーや深度ステンシル バッファーも必要です。一般的なアプリケーションでは、カラー バッファーはデバイスのスワップ チェーン (バック バッファー サーフェスの集合) によって所有され、デバイスで暗黙的に作成されます。深度ステンシル サーフェスは、暗黙的に作成することも、IDirect3DDevice9::CreateDepthStencilSurface メソッドを使用して明示的に作成することもできます。アプリケーションは、IDirect3DDevice9::SetRenderTarget または IDirect3DDevice9::SetDepthStencilSurface を呼び出して、デバイスと、デバイスの深度およびカラー バッファーを関連付けます。
最終的なイメージ表示の詳細については、「シーンのプレゼンテーション (Direct3D 9)」を参照してください。