Microsoft DirectX 8.0 (C++)

D3DXFilterCubeTexture

キューブ テクスチャ マップのミップマップ レベルをフィルタリングする。

HRESULT D3DXFilterCubeTexture(
  LPDIRECT3DCUBETEXTURE8 pCubeTexture,
  CONST PALETTEENTRY* pPalette,
  UINT SrcLevel,
  DWORD MipFilter
);

パラメータ

pCubeTexture
[in] フィルタリングするキューブ テクスチャ オブジェクトを表す、IDirect3DCubeTexture8 インターフェイスへのポインタ。
pPalette
[out] 格納する 256 色パレットを表す PALETTEENTRY 構造体へのポインタ、または NULL。パレットが指定されていない場合、デフォルトの Microsoft® Direct3D® パレット (完全に不透明な白のパレット) が提供される。「注意」を参照すること。
SrcLevel
[in] 下のレベルを生成するためにイメージを使用するレベル。このパラメータに D3DX_DEFAULT を指定することは、0 を指定することと等しい。
MipFilter
[in] ミップマップをフィルタリングする方法を制御する 1 つ以上のフラグの組み合わせ。このパラメータに D3DX_DEFAULT を指定することは、D3DX_FILTER_BOX | D3DX_FILTER_DITHER を指定することと等しい。

有効なそれぞれのフィルタに、次のフラグの 1 つが含まれていなければならない。

D3DX_FILTER_BOX
各ピクセルは、ソース イメージ内の 2 × 2 (× 2) のサイズのボックスに含まれるピクセルの平均を算出することにより計算される。このフィルタは、ミップマップを使用する場合のように、転送先のディメンジョンがソースの半分の場合のみ機能する。
D3DX_FILTER_LINEAR
各転送先ピクセルは、最も近い 4 つのピクセルをソース イメージからサンプリングすることにより計算される。このフィルタは、両軸のスケールが 2 未満の場合に最も効率よく機能する。
D3DX_FILTER_NONE
スケーリングまたはフィルタリングを行わない。ソース イメージの境界の外側にあるピクセルは透明な黒であると見なされる。
D3DX_FILTER_POINT
各転送先ピクセルは、最も近いピクセルをソース イメージからサンプリングすることにより計算される。
D3DX_FILTER_TRIANGLE
ソース イメージ内の各ピクセルが、転送先イメージに等しく反映される。これは、最も処理に時間のかかるフィルタである。

さらに、OR 演算子を使用して、有効なフィルタと共に次に示すオプションのフラグを 0 個以上指定できる。

D3DX_FILTER_MIRROR
このフラグを指定すると、D3DX_FILTER_MIRROR_U、D3DX_FILTER_MIRROR_V、および D3DX_FILTER_MIRROR_W フラグを指定したことになる。
D3DX_FILTER_MIRROR_U
u 軸のテクスチャのエッジから離れたピクセルを、ラッピングせずにミラーリングするよう指定する。
D3DX_FILTER_MIRROR_V
v 軸のテクスチャのエッジから離れたピクセルを、ラッピングせずにミラーリングするよう指定する。
D3DX_FILTER_MIRROR_W
w 軸のテクスチャのエッジから離れているピクセルを、ラッピングせずにミラーリングするよう指定する。
D3DX_FILTER_DITHER
結果として作成されたイメージを、4x4 の順序付きディザ アルゴリズムを使ってディザリングする必要がある。

戻り値

成功した場合は D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL
D3DXERR_INVALIDDATA

注意

キューブ テクスチャの各面について、各レベルで再帰的にボックスフィルタを適用して次のレベルを生成する。

デフォルトのプール (D3DPOOL_DEFAULT) に作成されたキューブ テクスチャを D3DXFilterCubeTexture と共に使用することはできない。オブジェクトに対するロック処理が必要なためである。デフォルト プール内のテクスチャに対するロックは禁止されている。

PALETTEENTRY の詳細については、Microsoft® Platform Software Development Kit (SDK) を参照すること。Microsoft DirectX® 8.0 の時点で、PALLETTEENTRY 構造体の peFlags メンバは、Platform SDK に説明されているようには機能しない。peFlags メンバは現在、8 ビットのパレット化されたフォーマット用のアルファ チャネルである。

非レベルゼロへの書き込みはアップデートすべきダーティーな矩形とはならない。D3DXFilterCubeTexture が呼び出され、サーフェイスが既にダーティーではなかった (これは通常の使用シナリオにはない) なら、アプリケーションは明示的にそのサーフェイスに IDirect3DTexture8::AddDirtyRect を呼び出す必要がある。

動作環境

  ヘッダー : D3dx8tex.h で宣言。
  インポート ライブラリ : D3dx8.lib を使用。