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 内容