D3DXFilterTexture

テクスチャーのミップマップ レベルにフィルターを適用します。

HRESULT 
D3DXFilterTexture(
  LPDIRECT3DBASETEXTURE9 pBaseTexture,
  CONST PALETTEENTRY * pPalette,
  UINT SrcLevel,
  DWORD MipFilter
);

パラメータ

  • pBaseTexture
    IDirect3DBaseTexture9 インターフェイスへのポインターです。フィルタリングするテクスチャー オブジェクトを示します。
  • pPalette
    PALETTEENTRY 構造体へのポインターです。カラー値を格納する 256 色パレットを示します。また、非パレット化フォーマットの場合は NULL になります。パレットが指定されない場合、Direct3D 既定のパレット (パレットのすべてのカラーが不透明な白) が使用されます。「解説」を参照してください。
  • SrcLevel
    後続のレベルを生成するために使用するイメージのレベルです。このパラメーターに D3DX_DEFAULT を指定すると、0 を指定したのと同じ結果になります。
  • MipFilter
    ミップマップのフィルタリング方法を指定する、1 つ以上の D3DX_FILTER の組み合わせです。このパラメーターに D3DX_DEFAULT を指定することは、テクスチャー サイズが 2 の累乗の場合は D3DX_FILTER_BOX を指定することと同じです。それ以外の場合は D3DX_FILTER_BOX | D3DX_FILTER_DITHER を指定することと同じです。

戻り値

成功すると、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL と D3DXERR_INVALIDDATA のいずれかです。

解説 

各テクスチャー レベルで再帰的にフィルターを適用して次のテクスチャー レベルを生成します。

テクスチャーのレベル ゼロ以外のサーフェイスに書き込んでも、ダーティー矩形は更新されません。D3DXFilterTexture が呼び出されサーフェスがまだダーティでない場合 (通常の使用方法では起こり得ません)、アプリケーションはテクスチャー上で明示的に IDirect3DTexture9::AddDirtyRect を呼び出す必要があります。

デフォルトのプール (D3DPOOL_DEFAULT) に作成されたテクスチャーは、オブジェクトに対するロック処理が必要なため、D3DUSAGE_DYNAMIC によって作成されない限り D3DXFilterTexture と共に使用することはできません。デフォルト プールのテクスチャーに対するロックは、テクスチャーが動的でない限り、禁止されています。

PALETTEENTRY の詳細については、Platform SDK を参照してください。Microsoft DirectX 8.0 の PALETTEENTRY 構造体の peFlags メンバーは Platform SDK の記述とは異なることに注意してください。peFlags メンバーは、現在、8 ビット パレット化フォーマットのアルファ チャンネルです。

テクスチャー フィルタリング関数は 1 つだけだが、このメソッドを呼び出すマクロは 2 つあります。

 #define D3DXFilterCubeTexture D3DXFilterTexture #define D3DXFilterVolumeTexture D3DXFilterTexture 

要件

ヘッダー: D3dx9tex.h 宣言

ライブラリ: D3dx9.lib 内容