Declaration ​
pascal
procedure PolyPolygonFS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; Filler: TCustomPolygonFiller; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS_LCD(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS_LCD2(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; ClipRect: TRect; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; ClipRect: TRect; Filler: TCustomPolygonFiller; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS_LCD(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; ClipRect: TRect; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonFS_LCD2(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFloatPoint; ClipRect: TRect; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonXS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFixedPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonXS(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFixedPoint; Filler: TCustomPolygonFiller; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonXS_LCD(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFixedPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;
procedure PolyPolygonXS_LCD2(Bitmap: TCustomBitmap32; const Points: TArrayOfArrayOfFixedPoint; Color: TColor32; FillMode: TPolyFillMode = pfAlternate; Transformation: TTransformation = nil); overload;Parameters ​
| Parameter | Type | Description |
|---|---|---|
Bitmap | TCustomBitmap32 | Destination bitmap. |
Points | - | Array of polygon contours. |
Color | TColor32 | Solid fill color. |
Filler | TCustomPolygonFiller | Custom span filler. |
ClipRect | TRect | Optional explicit clipping rectangle. |
FillMode | TPolyFillMode | Polygon fill rule (pfAlternate or pfWinding). |
Transformation | TTransformation | Optional coordinate transformation. |
Description ​
The PolyPolygon routines rasterize multi-contour filled polygon shapes (such as compound shapes with holes or multiple disconnected sub-paths) defined by Points onto a destination Bitmap.
Function variants support floating-point (FS) and fixed-point (XS) coordinate inputs, solid color or custom span filler rendering, optional explicit bounding box clipping (ClipRect), and sub-pixel LCD antialiasing (LCD and LCD2).
Variants ​
| Variant | Coordinate Type | Anti-Aliasing | Description |
|---|---|---|---|
PolyPolygonFS | Floating-point | Standard coverage | Rasterizes multi-contour floating-point polygons using standard antialiased coverage blending. |
PolyPolygonFS_LCD | Floating-point | 3x LCD sub-pixel | Rasterizes multi-contour floating-point polygons using horizontal sub-pixel LCD rendering. |
PolyPolygonFS_LCD2 | Floating-point | Soft LCD sub-pixel | Rasterizes multi-contour floating-point polygons using a soft sub-pixel LCD filtering profile. |
PolyPolygonXS | Fixed-point | Standard coverage | Rasterizes multi-contour fixed-point polygons using standard antialiased coverage blending. |
PolyPolygonXS_LCD | Fixed-point | 3x LCD sub-pixel | Rasterizes multi-contour fixed-point polygons using horizontal sub-pixel LCD rendering. |
PolyPolygonXS_LCD2 | Fixed-point | Soft LCD sub-pixel | Rasterizes multi-contour fixed-point polygons using a soft sub-pixel LCD filtering profile. |
Example ​
pascal
var
PolyPts: TArrayOfArrayOfFloatPoint;
begin
SetLength(PolyPts, 2);
// Outer rectangle
PolyPts[0] := BuildRectangle(FloatRect(10, 10, 100, 100));
// Inner hole
PolyPts[1] := BuildRectangle(FloatRect(30, 30, 70, 70));
// Render multi-contour polygon with hole using alternate fill mode
PolyPolygonFS(Bitmap, PolyPts, clBlue32, pfAlternate);
end;