DrvRealizeBrush

BOOL DrvRealizeBrush(

    IN BRUSHOBJ  *pbo,
   IN SURFOBJ  *psoTarget,
   IN SURFOBJ  *psoPattern,
   IN SURFOBJ  *psoMask,
   IN XLATEOBJ  *pxlo,
   ULONG  iHatch
  );

DrvRealizeBrush requests that the driver realize a specified brush for a specified surface.

Parameters

pbo

Points to the BRUSHOBJ that is to be realized. All other parameters, except for psoTarget, can be queried from this object. Parameter specifications are provided as an optimization. This parameter is best used only as a parameter for BRUSHOBJ_pvAllocRBrush, which allocates the memory for the realized brush.

psoTarget

Points to the surface for which the brush is to be realized. This surface can be the physical surface for the device, a device format bitmap, or a standard format bitmap.

psoPattern

Points to the surface that describes the pattern for the brush. For a raster device, this is a bitmap. For a vector device, this is one of the pattern surfaces provided by DrvEnablePDEV.

psoMask

Points to a transparency mask for the brush. This is a 1 bit per pixel bitmap that has the same extent as the pattern. A mask of zero means the pixel is considered a background pixel for the brush. (In transparent background mode, the background pixels are unaffected in a fill.) Plotters can ignore this parameter because they never draw background information.

pxlo

Points to a XLATEOBJ that defines the interpretration of colors in the pattern. A XLATEOBJXxx service routine can be called to translate the colors to device color indices. Vector devices should translate color zero through the XLATEOBJ to get the foreground color for the brush.

iHatch

Specifies whether psoPattern is one of the hatch brushes returned by DrvEnablePDEV. This is true if the value of this parameter is less than HS_API_MAX.

Return Value

The return value is TRUE if the brush was successfully realized. Otherwise, it is FALSE, and an error code is logged.

Comments

To realize a brush, the driver converts a GDI brush into a form that can be used internally. A realized brush contains information and accelerators the driver needs to fill an area with a pattern; information that is defined by the driver and used only by the driver.

The driver’s realization of a brush is written into the buffer allocated by a call to BRUSHOBJ_pvAllocRbrush.

DrvRealizeBrush is required for a driver that does any drawing to any surface.

See Also

BRUSHOBJ, BRUSHOBJ_pvAllocRBrush, DrvEnablePDEV, XLATEOBJ