EngFillPath

BOOL EngFillPath(

    IN SURFOBJ *pso,

    IN PATHOBJ *ppo,

    IN CLIPOBJ *pco,

    IN BRUSHOBJ *pbo,

    IN POINTL *pptlBrushOrg,

    IN MIX mix,

    IN FLONG flOptions

   );

EngFillPath is an optional entry point that fills a path. Whenever GDI fills a path on a device-managed surface, it can call this entry point depending on a comparison of the fill requirements and the following GCAPS bits: GCAPS_BEZIERS, GCAPS_ALTERNATEFILL, and GCAPS_WINDINGFILL.

The driver can return FALSE if the path or the clipping is too complex for the device to handle.

Parameters

pso
Points to a SURFOBJ structure that describes the surface on which to draw.
ppo
Points to a PATHOBJ structure that defines the path to be filled. Use the PATHOBJ_Xxx service routines to enumerate the lines, Bezier curves, and other data that make up the path.
pco
Points to a CLIPOBJ structure. Use the CLIPOBJ_Xxx service routines to enumerate the clip region as a set of rectangles.
pbo
Points to a BRUSHOBJ structure that defines the pattern and colors with which to fill.
pptlBrushOrg
Points to a POINTL structure defining the brush origin to use to align the brush pattern on the device.
mix
Defines the foreground and background raster operations to use for the brush.
flOptions
Specifies the mode to use when filling the path. This value should be FP_WINDINGMODE or FP_ALTERNATEMODE. All other flags should be ignored.

Return Value

The return value is TRUE if GDI is able to fill the path. Otherwise, it is FALSE, and an error code is not logged. If an error is encountered, the return value is FALSE, and an error code is logged.

Comments

The driver can return FALSE if the path or the clipping is too complex to be handled by the device.

The mix mode defines how the incoming pattern should be mixed with the data already on the device surface. The MIX data type consists of two ROP2 values packed into a single ULONG. The low-order byte defines the foreground raster operation; the next byte defines the background raster operation. For more information about raster operation codes, see the Win32 SDK.

See Also

BRUSHOBJ, CLIPOBJ, PATHOBJ, SURFOBJ