テクスチャ リソース (Direct3D 9)

テクスチャ リソースは 、IDirect3DTexture9 インターフェイスに実装されます。 テクスチャ インターフェイスへのポインターを取得するには、 IDirect3DDevice9::CreateTexture メソッドまたは次のいずれかの D3DX 関数を呼び出します。

次のコード例では、 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 は、現在のすべてのテクスチャをレンダリングするプリミティブにブレンドします。

Note

IDirect3DDevice9::SetTexture メソッドは、割り当てられているテクスチャ サーフェスの参照カウントをインクリメントします。 テクスチャが不要になったら、適切な段階でテクスチャを NULL に設定する必要があります。 これを行わないと、サーフェスは解放されず、メモリ リークが発生します。

 

アプリケーションでは、 IDirect3DDevice9::SetRenderState メソッドを呼び出すことで、現在のテクスチャのテクスチャ ラッピング状態を設定できます。 最初のパラメーターの値として D3DRS_WRAP0 から D3DRS_WRAP7 に値を渡し、D3DWRAPCOORD_0、D3DWRAPCOORD_1、D3DWRAPCOORD_2、および D3DWRAPCOORD_3 フラグの組み合わせを使用して、u、v、または w 方向の折り返しを有効にします。

また、アプリケーションは、テクスチャの視点とテクスチャ フィルタリングの状態を設定することもできます。 「テクスチャ フィルタリング (Direct3D 9)」を参照してください。

Direct3D テクスチャ