// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.Fonts { /// /// Visitor types for streaming laid-out glyphs through the layout pipeline. /// internal static partial class TextLayout { /// /// Receives laid-out glyphs streamed from the layout pipeline. /// Implementations are value types so the generic dispatch is specialized by the JIT and no boxing or /// delegate allocation is required. /// internal interface IGlyphLayoutVisitor { /// /// Invoked before glyphs are streamed for a laid-out line. /// /// The zero-based index of the line in the line-broken text box. public void BeginLine(int lineIndex); /// /// Invoked once for each laid-out glyph in layout order. /// /// The laid-out glyph. public void Visit(in GlyphLayout glyph); /// /// Invoked after glyphs have been streamed for a laid-out line. /// public void EndLine(); } } }