IDirect3DDevice9::SetClipStatus 方法 (d3d9helper.h)
設定剪輯狀態。
語法
HRESULT SetClipStatus(
[in] const D3DCLIPSTATUS9 *pClipStatus
);
參數
[in] pClipStatus
類型:const D3DCLIPSTATUS9*
D3DCLIPSTATUS9結構的指標,描述要設定的剪輯狀態設定。
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果其中一個引數無效,傳回值會D3DERR_INVALIDCALL。
備註
剪輯狀態會在軟體頂點處理期間使用。 因此,純或非硬體處理裝置不支援此方法。 如需純裝置的詳細資訊,請參閱 D3DCREATE。
在頂點 (處理期間啟用裁剪時, IDirect3DDevice9::P rocessVertices、 IDirect3DDevice9::D rawPrimitive或其他繪圖函式) ,Direct3D 會計算每個頂點的剪輯程式碼。 剪輯程式碼是D3DCS_* 位的組合。 當頂點位於特定裁剪平面之外時,對應的位會在裁剪程式碼中設定。 Direct3D 會使用具有 ClipUnion 和 ClipIntersection 成員 的 D3DCLIPSTATUS9來維護剪輯狀態。 ClipUnion 是所有頂點剪輯代碼的位 「OR」,ClipIntersection 是所有頂點剪輯代碼的位 「AND」。 ClipUnion 的初始值為零,而 ClipIntersection 0xFFFFFFFF。 當D3DRS_CLIPPING設為 FALSE時,ClipUnion 和 ClipIntersection 會設定為零。 Direct3D 會在繪圖呼叫期間更新剪輯狀態。 若要計算特定物件的剪輯狀態,請將 ClipUnion 和 ClipIntersection 設定為其初始值並繼續繪製。
IDirect3DDevice9::D rawRectPatch和IDirect3DDevice9::D rawTriPatch不會更新剪輯狀態,因為沒有軟體模擬。
需求
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |