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

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

構造体の情報

ヘッダー d3d9types.h
最低限のオペレーティング システム Windows 98

参照

IDirect3DDevice9::GetClipStatusIDirect3DDevice9::SetClipStatus