UniTextBuffers
Container for all intermediate and final buffers used during text processing.
Remarks
EnsureRentBuffers before processing and EnsureReturnBuffers when done.Gets or creates a PooledArrayAttribute<T> and clears it to codepoint count. Combines GetOrCreateAttributeData + EnsureCountAndClear into a single call.
public PooledBuffer<int> codepointsParsed Unicode codepoints from the input text.
public PooledBuffer<TextRun> runsText runs before shaping (segmented by script, direction, font).
public PooledBuffer<ShapedRun> shapedRunsShaped runs with glyph ranges and metrics.
public PooledBuffer<ShapedGlyph> shapedGlyphsShaped glyphs with glyph IDs, advances, and offsets.
public PooledBuffer<float> cpWidthsWidth of each codepoint for line breaking calculations.
public PooledBuffer<LineBreakType> breakOpportunitiesLine break types per codepoint (UAX #14).
public PooledBuffer<bool> graphemeBreaksGrapheme cluster boundaries per codepoint (UAX #29).
public PooledBuffer<TextLine> linesComputed text lines after line breaking.
public PooledBuffer<ShapedRun> orderedRunsRuns reordered for visual display within each line.
public PooledBuffer<PositionedGlyph> positionedGlyphsFinal positioned glyphs ready for rendering.
public PooledBuffer<uint> virtualCodepointsVirtual codepoints for synthesized glyphs (e.g., modifiers).
public PooledBuffer<PositionedGlyph> virtualPositionedGlyphsVirtual positioned glyphs injected by modifiers (ellipsis, list markers). Separate from positionedGlyphs to not affect hit testing / selection.
public PooledBuffer<byte> bidiLevelsBiDi embedding levels per codepoint (UAX #9).
public PooledBuffer<UnicodeScript> scriptsUnicode script per codepoint (UAX #24).
public PooledBuffer<float> startMarginsStart margins per codepoint (for list items, indentation).
public PooledBuffer<float> perLineAdvancesAdvance width per line for alignment calculations.
public TextDirection baseDirectionThe resolved base paragraph direction.
