IDirect3DDevice9::GetClipStatus

クリップ ステータスを取得します。

HRESULT 
GetClipStatus(
  D3DCLIPSTATUS9 * pClipStatus
);

パラメータ

  • pClipStatus
    クリップ ステータスを表す D3DCLIPSTATUS9 構造体へのポインターです。

戻り値

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

引数が無効な場合は、D3DERR_INVALIDCALL が返されます。

解説 

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

クリップ ステータスは、IDirect3DDevice9::DrawRectPatch および IDirect3DDevice9::DrawTriPatch によって更新されません。それらのソフトウェア エミュレーションが存在しないからです。

クリップ ステータスはソフトウェア頂点処理中に使用されます。このため、このメソッドはピュア ハードウェア処理デバイスやノンピュア ハードウェア処理デバイスではサポートされません。ピュア デバイスについては、「D3DCREATE」を参照してください。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9::SetClipStatus