IDirect3DDevice9::SetClipStatus メソッド

IDirect3DDevice9::SetClipStatus メソッド

クリップ ステータスを設定する。

構文

HRESULT SetClipStatus(      
    const D3DCLIPSTATUS9 *pClipStatus
);

パラメータ

  • pClipStatus
    [in] 設定するクリップ ステータスを記述する D3DCLIPSTATUS9 構造体へのポインタ。

戻り値

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

引数のいずれかが無効な場合は、D3DERR_INVALIDCALL を返す。

注意

クリップ ステータスは、ソフトウェア頂点処理で使う。したがって、ピュア ハードウェアや非ピュア ハードウェアの処理デバイスでは、このメソッドはサポートされない。ピュア デバイスの詳細については、「D3DCREATE」を参照すること。

IDirect3DDevice9::ProcessVerticesIDirect3DDevice9::DrawPrimitive、またはその他の描画機能による頂点処理中にクリッピングを有効にすると、Microsoft® Direct3D® は頂点ごとにクリップ コードを計算する。クリップ コードは、D3DCS_* ビットの組み合わせである。頂点が特定のクリップ面の外にある場合は、クリップ コード内の対応するビットが設定される。Direct3D では、ClipUnion および ClipIntersection メンバを持つ D3DCLIPSTATUS9 を使ってクリップ ステータスを保持する。ClipUnion は全頂点のクリップ コードのビット OR、ClipIntersection はビット AND である。ClipUnion の初期値はゼロ、ClipIntersection の初期値は 0xFFFFFFFF である。D3DRS_CLIPPING を FALSE に設定すると、ClipUnion および ClipIntersection はゼロに設定される。Direct3D は、描画処理の呼び出しの中でクリップ ステータスを更新する。特定のオブジェクトのクリップ ステータスを計算するには、ClipUnion および ClipIntersection をそれぞれの初期値に設定し、引き続き描画を実行する。

IDirect3DDevice9::DrawRectPatch および IDirect3DDevice9::DrawTriPatch ではクリップ ステータスを更新しない。これらに対するソフトウェア エミュレーションが存在しないからである。

参照

IDirect3DDevice9::GetClipStatus