D3DCLIPSTATUS9 結構

描述目前的剪輯狀態。

語法

typedef struct D3DCLIPSTATUS9 {
  DWORD ClipUnion;
  DWORD ClipIntersection;
} D3DCLIPSTATUS9, *LPD3DCLIPSTATUS9;

成員

ClipUnion

類型: DWORD

描述目前剪輯狀態的裁剪等位旗標。 此成員可以是下列一或多個旗標:

意義
D3DCS_ALL
所有剪輯旗標的組合。
D3DCS_LEFT
所有頂點都會由檢視 Frustum 的左平面裁剪。
D3DCS_RIGHT
所有頂點都會由檢視 Frustum 的右平面裁剪。
D3DCS_TOP
所有頂點都會由檢視 Frustum 的頂端平面裁剪。
D3DCS_BOTTOM
所有頂點都會由檢視 Frustum 的底端平面裁剪。
D3DCS_FRONT
檢視 Frustum 的前端平面會裁剪所有頂點。
D3DCS_BACK
所有頂點都會由檢視 Frustum 的背面平面裁剪。
D3DCS_PLANE0
應用程式定義的裁剪平面。
D3DCS_PLANE1
應用程式定義的裁剪平面。
D3DCS_PLANE2
應用程式定義的裁剪平面。
D3DCS_PLANE3
應用程式定義的裁剪平面。
D3DCS_PLANE4
應用程式定義的裁剪平面。
D3DCS_PLANE5
應用程式定義的裁剪平面。

 

ClipIntersection

類型: DWORD

裁剪描述目前剪輯狀態的交集旗標。 此成員可以採用與 ClipUnion 相同的旗標。

備註

由 ProcessVerticesDrawPrimitive或其他繪圖函式 () 在頂點處理期間啟用裁剪時,Direct3D 會計算每個頂點的剪輯程式碼。 剪輯程式碼是D3DCS_* 位的組合。 當頂點位於特定裁剪平面之外時,對應的位會在裁剪程式碼中設定。 Direct3D 會使用具有 ClipUnion 和 ClipIntersection 成員的 D3DCLIPSTATUS9來維護剪輯狀態。 ClipUnion 是所有頂點剪輯代碼的位 OR,ClipIntersection 是所有頂點剪輯代碼的位 AND。 ClipUnion 的初始值為零,而 ClipIntersection 0xFFFFFFFF。 當D3DRS_CLIPPING設為 FALSE時,ClipUnion 和 ClipIntersection 會設定為零。 Direct3D 會在繪圖呼叫期間更新剪輯狀態。 若要計算特定物件的剪輯狀態,請將 ClipUnion 和 ClipIntersection 設定為其初始值並繼續繪製。

DrawRectPatchDrawTriPatch不會更新剪輯狀態,因為沒有軟體模擬。

規格需求

需求
標頭
D3D9Types.h

另請參閱

Direct3D 結構

GetClipStatus

SetClipStatus