measureText is not directly measuring glyphs -- it's actually measuring a run of text. When we provide a character from an RTL script, it lays the single-character run of text out right-to-left, and the right of the bounding box ends up being less than the left of the bounding box. TinySDF tries to allocate a negative-size array for the glyph and errors out.
I think there may be more work to do to get the left metric correct, but this PR at least avoids the crash and gives something renderable.
measureText
is not directly measuring glyphs -- it's actually measuring a run of text. When we provide a character from an RTL script, it lays the single-character run of text out right-to-left, and the right of the bounding box ends up being less than the left of the bounding box. TinySDF tries to allocate a negative-size array for the glyph and errors out.I think there may be more work to do to get the
left
metric correct, but this PR at least avoids the crash and gives something renderable.@mourner