CLIPOBJ

typedef struct _CLIPOBJ {

    ULONG iUniq;

    RECTL rclBounds;

    BYTE iDComplexity;

    BYTE iFComplexity;

    BYTE iMode;

    BYTE fjOptions;

} CLIPOBJ;

The CLIPOBJ structure describes the clip region used when drawing. This region can be enumerated as a series of rectangles.

Members

iUniq

Specifies a value that uniquely identifies the clip region. If iUniq is nonzero, the driver uses it as a cache identifier. This allows the driver to recognize a region after downloading and caching it. If the value is zero, the driver should not cache the region because the region will not be used again.

rclBounds

Specifies a rectangle that bounds the part of the region that intersects the drawing. If iDComplexity is DC_RECT, then this is the clipping rectangle to be considered.

iDComplexity

Specifies the complexity of the part of the region that intersects with the drawing. This member must be one of the following values:

Value Meaning
DC_TRIVIAL Clipping need not be considered; draw the whole figure.
DC_RECT Clip to a single rectangle.
DC_COMPLEX The clip region must be enumerated.

iFComplexity

Specifies the complexity of the whole region. This value is used by the driver in deciding whether or not to cache the region. CLIPOBJ_cEnumStart can be called to determine the exact number of rectangles in the region. This member can be one of the following values:

Value Meaning
FC_RECT The region is a single rectangle.
FC_RECT4 The region consists of, at most, four rectangles.
FC_COMPLEX The region consists of more than four rectangles.

iMode

Specifies how the region is stored by GDI. This can help the driver determine how to enumerate the region. This member can be one of the following values:

Value Meaning
TC_RECTANGLES The region is stored as rectangles.
TC_PATHOBJ The region is stored as a path.

fjOptions

Specifies clipping options. This member can be the following value:

Value Meaning
OC_BANK_CLIP Indicates an engine callback for a banked device.

See Also

CLIPOBJ_bEnum, CLIPOBJ_cEnumStart