Lays out one line of text. The origin is the pen start on the baseline; glyph quads are placed
left-to-right by advance, y-up extents given by each glyph's offset. Missing glyphs are skipped
but still advance by a space's width (or 0) so spacing degrades gracefully. UVs are normalized to
the atlas size so the caller can swap atlas resolutions freely.
Lays out one line of text. The origin is the pen start on the baseline; glyph quads are placed left-to-right by advance, y-up extents given by each glyph's offset. Missing glyphs are skipped but still advance by a space's width (or 0) so spacing degrades gracefully. UVs are normalized to the atlas size so the caller can swap atlas resolutions freely.