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