D3DCLIPSTATUS9 構造体
D3DCLIPSTATUS9 構造体
現在のクリップ ステータスを記述する。
構文
typedef struct _D3DCLIPSTATUS9 {
DWORD ClipUnion;
DWORD ClipIntersection;
} D3DCLIPSTATUS9;
メンバ
ClipUnion
現在のクリップ ステータスを示すクリップ結合フラグ。このメンバには、次の 1 つまたは複数のフラグを設定できる。D3DCS_ALL
すべてのクリップ フラグの組み合わせ。D3DCS_BACK
すべての頂点を 視錐台 の背面でクリッピングする。D3DCS_BOTTOM
すべての頂点を視錐台の底面でクリッピングする。D3DCS_FRONT
すべての頂点を視錐台の前面でクリッピングする。D3DCS_LEFT
すべての頂点を視錐台の左側面でクリッピングする。D3DCS_RIGHT
すべての頂点を視錐台の右側面でクリッピングする。D3DCS_TOP
すべての頂点を視錐台の上面でクリッピングする。D3DCS_PLANE0 through D3DCS_PLANE5
アプリケーションで定義されているクリップ面。
ClipIntersection
現在のクリップ ステータスを示すクリップ交点フラグ。このメンバの値は、ClipUnion と同じフラグである。
注意
IDirect3DDevice9::ProcessVertices、IDirect3DDevice9::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 ではクリップ ステータスを更新しない。 これらに対するソフトウェア エミュレーションが存在しないからである。
構造体の情報
ヘッダー | d3d9types.h |
最低限のオペレーティング システム | Windows 98 |
参照
IDirect3DDevice9::GetClipStatus、IDirect3DDevice9::SetClipStatus