StripGenerator class

Fine-rasterizes fills, strokes, and glyph outlines into a StripBuffer.

Per fill: flatten to device-space edges (Wang's bound, same semantics as flattenPath) -> clip to the viewport (x-clipping projects offscreen portions onto the viewport edge so winding is preserved) -> y-slice edges into 4-px strip rows via intrusive typed-array linked lists -> font-rs signed-area accumulation into a reused Float32List (4 scanlines x row width) -> per-column prefix sum -> fill rule (nonzero min(1,|w|), even-odd triangle wave |w - 2 round(w/2)|) -> strip emission (zero runs skipped, all-255 runs of >= 2 columns become solid strips, mixed columns append alpha texels). Only the touched accumulator span is zeroed behind the scan.

Constructors

StripGenerator()

Properties

glyphCache ↔ GlyphStripCache?
Replayable glyph strip cache consulted by fillOutline. Defaults to the process-wide GlyphStripCache.shared; set null to rasterize every glyph directly (unquantized - the pre-cache behavior).
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
height → int
no setter
rowCount → int
Number of 4-px strip rows covering the viewport.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
shapeCache ↔ ShapeStripCache?
Replayable stroke/fill strip cache consulted by fillPath and strokePath for small paths (repeated CAD symbols, hatch strokes, dimension arrows). Content-keyed - repeated geometry rarely shares object identity, so the key is the translation-invariant quantized outline (1/64 px deltas from the first point) plus stroke/fill parameters and a 1/8-px anchor subpixel phase (the glyph cache's scheme, finer grid; y phase stays within the 4-px strip row so replays are row-aligned). Set null to rasterize every path directly (unquantized).
getter/setter pair
strips → StripBuffer
final
width → int
no setter

Methods

begin(int width, int height) → void
Starts a new page/batch: sets the device viewport (pixels) and clears the strip buffer. Scratch buffers are kept and only grow.
fillContours(StrokeContours contours, int rgba) → void
Fills stroke-expansion contours (device space) with the nonzero rule.
fillOutline(FlattenedOutline outline, PdfMatrix emToDevice, int rgba) → void
Fills a cached em-space glyph outline through emToDevice (em space -> device pixels): transform-and-bin, no re-flattening. Glyph outlines fill nonzero (§9.4).
fillPath(PdfPath path, PdfMatrix transform, PdfFillRule rule, int rgba, {double tolerance = 0.25}) → void
Fills path (page space) mapped through transform into device space. rgba is a premultiplied color from premulRgba8.
fillSubpaths(List<FlatSubpath> subpaths, PdfFillRule rule, int rgba) → void
Fills already-flattened device-space subpaths (each implicitly closed - PDF fill semantics).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
strokePath(PdfPath path, PdfMatrix transform, PdfStroke stroke, int rgba, {double tolerance = 0.25}) → void
Strokes path (page space, stroke parameters in page space like PdfDevice.strokePath) by expanding to closed contours and filling them nonzero.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited