テクスチャ リソース (Direct3D 9)
テクスチャ リソースは、IDirect3DTexture9 インターフェイスに実装されます。 テクスチャ インターフェイスへのポインターを取得するには、IDirect3DDevice9::CreateTexture メソッドまたは次のいずれかの D3DX 関数を呼び出します。
- D3DXCreateTexture
- D3DXCreateTextureFromFileの
- D3DXCreateTextureFromFileExの
- D3DXCreateTextureFromFileInMemory
- D3DXCreateTextureFromFileInMemoryEx
- D3DXCreateTextureFromResourceの
- D3DXCreateTextureFromResourceExの
次のコード例では、D3DXCreateTextureFromFile を使用して、Tiger.bmpからテクスチャを読み込みます。
// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.
LPDIRECT3DTEXTURE9 pTexture;
D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);
D3DXCreateTextureFromFile が受け入れる最初のパラメーターは、IDirect3DDevice9 インターフェイスへのポインターです。 2 番目のパラメーターは、テクスチャの読み込み元となるファイルの名前を Direct3D に伝えます。 3 番目のパラメーターは、作成されたテクスチャ オブジェクトを表す IDirect3DTexture9 インターフェイスへのポインターのアドレスを受け取ります。
テクスチャ リソースを使用したレンダリング
Direct3D では、テクスチャ ステージの概念を通じて複数のテクスチャ ブレンドがサポートされます。 各テクスチャ ステージには、テクスチャに対して実行できるテクスチャと操作が含まれています。 テクスチャ ステージのテクスチャは、現在のテクスチャのセットを形成します。 詳細については、「テクスチャ ブレンド (Direct3D 9)を参照してください。 各テクスチャの状態は、そのテクスチャ ステージにカプセル化されます。
C++ アプリケーションでは、各テクスチャの状態を IDirect3DDevice9::SetTextureStageState メソッドで設定する必要があります。 ステージ番号 (0 から 7) を最初のパラメーターの値として渡します。 2 番目のパラメーターの値を、D3DTEXTURESTAGESTATETYPE 列挙型のメンバーに設定します。 最後のパラメーターは、特定のテクスチャ状態の状態値です。
テクスチャ インターフェイス ポインターを使用すると、アプリケーションは最大 8 個のテクスチャのブレンドをレンダリングできます。 IDirect3DDevice9::SetTexture メソッドを呼び出して、現在のテクスチャを設定します。 Direct3D は、現在のすべてのテクスチャをレンダリングするプリミティブにブレンドします。
手記
IDirect3DDevice9::SetTexture メソッドは、割り当てられているテクスチャ サーフェスの参照カウントをインクリメントします。 テクスチャが不要になったら、適切な段階でテクスチャを設定して NULL をする必要があります。 これを行わないと、サーフェスは解放されず、メモリ リークが発生します。
アプリケーションは、IDirect3DDevice9::SetRenderState メソッドを呼び出すことによって、現在のテクスチャのテクスチャ ラッピング状態を設定できます。 最初のパラメーターの値として D3DRS_WRAP0 から D3DRS_WRAP7 までの値を渡し、D3DWRAPCOORD_0、D3DWRAPCOORD_1、D3DWRAPCOORD_2、およびD3DWRAPCOORD_3フラグの組み合わせを使用して、u、v、または w 方向の折り返しを有効にします。
アプリケーションでは、テクスチャのパースペクティブとテクスチャフィルタリングの状態を設定することもできます。 テクスチャ フィルタリング (Direct3D 9)を参照してください。
関連トピック
-
Direct3D テクスチャ の