On 14-06-09 10:12 AM, Jonathan Kew wrote: > Hi Behdad, > > Our current mark-zeroing code, in zero_mark_widths_by_gdef() and > zero_mark_widths_by_unicode(), modifies only the advance of the glyphs, so > that they no longer take up any space on the line.
Right. > I'm wondering whether we should also adjust the offset, by subtracting the > advance from it before we zero the advance. (Though perhaps only if there's no > GPOS positioning?) We definitely need to test what Uniscribe does, eg. for Latin. Note that any offsetting should only happen in LTR, not RTL. > In particular, this is required for correct rendering of old fonts such as MS > Sans Serif codepage 874 (Thai), which has spacing glyphs for the Thai > vowel/tone marks. Note that Thai and Hangul might be more affected as they have fallback_position turned off. The default shaper has fallback_position turned on which takes care of this. > AFAICT, what Uniscribe does with it is to zero their advance > width *and* offset them to the left by their original advance, so that they > overstrike the preceding glyph, even though the images in the font appear to > the right of the origin. > > WDYT? Can you think of fonts where this would *not* be appropriate? The reason we turned fallback positioning off for Thai had to do with vertical positioning IIRC. Maybe we should turn it on for horizontal but not vertical? I don't remember why we did that for Hangul, perhaps because of the special logic we have for tone marks. -- behdad http://behdad.org/ _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
