EngStrokePath

BOOL EngStrokePath(

    IN SURFOBJ  *pso,
   IN PATHOBJ  *ppo,
   IN CLIPOBJ  *pco,
   IN XFORMOBJ  *pxo,
   IN BRUSHOBJ  *pbo,
   IN POINTL  *pptlBrushOrg,
   IN LINEATTRS  *plineattrs,
   IN MIX  mix
  );

EngStrokePath requests that GDI stroke a specified path.

Parameters

pso

Points to a SURFOBJ structure that describes the surface on which to draw.

ppo

Points to a PATHOBJ structure. The PATHOBJ_Xxx service routines are provided to enumerate the lines, Bezier curves, and other data that make up the path. This indicates what is to be drawn.

pco

Points to a CLIPOBJ structure. The CLIPOBJ_Xxx service routines are provided to enumerate the clip region as a set of rectangles. Optionally, all the lines in the path can be enumerated preclipped by this CLIPOBJ. This means that drivers can have all their line clipping calculations done for them.

pxo

Points to a XFORMOBJ structure. This is only needed when a geometric wide line is to be drawn. It specifies the transform that converts world coordinates to device coordinates. This is needed because the path is provided in device coordinates but a geometric wide line is actually widened in world coordinates.

The driver can use the XFORMOBJ_Xxx service routines to determine the transform.

pbo

Specifies the brush to be used when drawing the path.

pptlBrushOrg

Points to the brush origin used to align the brush pattern on the device.

plineattrs

Points to a LINEATTRS structure. Note that the elStyleState member of the structure must be updated as part of this function if the line is styled. Also note the ptlLastPel member must be updated if a single-pixel-width cosmetic line is being drawn.

mix

Specifies how to combine the brush with the destination.

Return Value

The return value is TRUE if GDI strokes the path. If the driver should stroke the path, the return value is FALSE, and no error is logged. If GDI encounters an error, the return value is DDI_ERROR, and an error code is logged.

Comments

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

CLIPOBJ, DrvStrokePath, LINEATTRS, PATHOBJ, SURFOBJ, XFORMOBJ