Files
eepp/src
Martín Lucas Golini 5aeb0b1acf The new sparse invariant is:
- Empty vector: every quad is Mask; use the existing single draw call.
  - Non-empty vector: the text contains subpixel glyphs; entries correspond to every quad.

  addGlyphQuad() therefore delays allocation until the first subpixel glyph. At that point it backfills earlier quads as Mask, records the current subpixel glyph, and tracks every subsequent quad.

  addLine() only appends Mask after tracking has started. A line before the first subpixel glyph will be included by the later backfill; a line after it must be appended to preserve the one-entry-per-quad mapping.

  This protects the common grayscale path from subpixel-related overhead while correctly handling mixed mask/subpixel text. It introduces no allocations until subpixel rendering is actually encountered.

  The critical fix versus the earlier broken version is that the first subpixel glyph is appended unconditionally. The old code accidentally skipped it when it was the first quad, causing the first character to be
  classified as Mask.
2026-07-25 20:41:35 -03:00
..
2026-07-25 20:41:35 -03:00
2026-07-25 18:59:20 -03:00
2026-07-25 20:26:24 -03:00
2026-07-20 22:59:58 -03:00
2026-07-25 18:59:20 -03:00