IDirect3DDevice9::SetTexture

テクスチャーをデバイスのステージに割り当てます。

HRESULT 
SetTexture(
  DWORD Sampler,
  IDirect3DBaseTexture9 * pTexture
);

パラメータ

Sampler

  • 0 から始まるサンプラー番号。テクスチャーはサンプラーにバインドされます。サンプラーによって、フィルタリング モードやアドレス ラップ モードなどのサンプリング ステートが定義されます。テクスチャーは、固定機能パイプラインとプログラム可能なパイプラインにより次のように異なって参照されます。 ステージとサンプラー番号については、2 つの特殊な場合があります。
  • プログラム可能なシェーダーでは、サンプラ番号を使用してテクスチャーを参照します。プログラム可能なシェーダーで利用できるサンプラの数は、シェーダーのバージョンにより異なります。頂点シェーダーについては、「サンプラー (Direct3D 9 asm-vs)」を参照してください。ピクセル シェーダーについては、「サンプラー (Direct3D 9 asm-ps)」を参照してください。
  • これに対して、固定機能パイプラインはテクスチャーをテクスチャー ステージ番号により参照します。サンプラーの最大数は、2 つのキャップで決まります。その 1 つは D3DCAPS9 構造体の MaxSimultaneousTextures で、もう 1 つは同じ構造体の MaxTextureBlendStages です。
    ステージとサンプラー番号については、2 つの特殊な場合があります。
  • D3DDMAPSAMPLER と呼ばれる特殊な番号は、ディスプレイスメント マッピング (Direct3D 9) で使用されます。
  • プログラム可能な頂点シェーダーは、vs_3_0 の頂点テクスチャー (DirectX HLSL) にアクセスするときに、D3DVERTEXTEXTURESAMPLER で定義される特殊な番号を使用します。

pTexture
設定するテクスチャーを表す IDirect3DBaseTexture9 インターフェイスへのポインター

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、D3DERR_INVALIDCALL を返します。

解説 

D3DPOOL_SCRATCH プール タイプを使用してテクスチャーを作成している場合、IDirect3DDevice9::SetTexture は使用できません。D3DDEVCAPS_TEXTURESYSTEMMEMORY を指定して DevCaps を設定していない限り、D3DPOOL_SYSTEMMEM プール タイプのテクスチャーでは IDirect3DDevice9::SetTexture を使用できません。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9::GetTexture, IDirect3DDevice9::GetTextureStageState, IDirect3DDevice9::SetTextureStageState