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