?/TD> |
Microsoft DirectX 9.0 |
Describes the current clip status.
Syntax
typedef struct _D3DCLIPSTATUS9 { DWORD ClipUnion; DWORD ClipIntersection; } D3DCLIPSTATUS9;
Members
- ClipUnion
Clip union flags that describe the current clip status. This member can be one or more of the following flags.
- D3DCS_ALL
- Combination of all clip flags.
- D3DCS_BACK
- All vertices are clipped by the back plane of the viewing frustum.
- D3DCS_BOTTOM
- All vertices are clipped by the bottom plane of the viewing frustrum.
- D3DCS_FRONT
- All vertices are clipped by the front plane of the viewing frustrum.
- D3DCS_LEFT
- All vertices are clipped by the left plane of the viewing frustrum.
- D3DCS_RIGHT
- All vertices are clipped by the right plane of the viewing frustrum.
- D3DCS_TOP
- All vertices are clipped by the top plane of the viewing frustrum.
- D3DCS_PLANE0 through D3DCS_PLANE5
- Application-defined clipping planes.
- ClipIntersection
- Clip intersection flags that describe the current clip status. This member can take the same flags as ClipUnion.
Remarks
When clipping is enabled during vertex processing (by IDirect3DDevice9::ProcessVertices, IDirect3DDevice9::DrawPrimitive, or other drawing functions), Microsoft?Direct3D?computes a clip code for every vertex. The clip code is a combination of D3DCS_* bits. When a vertex is outside a particular clipping plane, the corresponding bit is set in the clipping code. Direct3D maintains the clip status using D3DCLIPSTATUS9, which has ClipUnion and ClipIntersection members. ClipUnion is a bitwise OR of all vertex clip codes and ClipIntersection is a bitwise AND of all vertex clip codes. Initial values are zero for ClipUnion and 0xFFFFFFFF for ClipIntersection. When D3DRS_CLIPPING is set to FALSE, ClipUnion and ClipIntersection are set to zero. Direct3D updates the clip status during drawing calls. To compute clip status for a particular object, set ClipUnion and ClipIntersection to their initial value and continue drawing.
Clip status is not updated by IDirect3DDevice9::DrawRectPatch and IDirect3DDevice9::DrawTriPatch because there is no software emulation for them.
Structure Information
Header d3d9types.h Minimum operating systems Windows 98
See Also
IDirect3DDevice9::GetClipStatus, IDirect3DDevice9::SetClipStatus