I've now confirmed that this is exactly what Uniscribe does for Thai as well. I'm going ahead and making the change.
On 16-02-10 03:48 PM, Behdad Esfahbod wrote: > Hi Jonathan, > > To my surprise, I have produced evince that, contrary to our previous belief, > Uniscribe does NOT zero mark advances in the default (eg. Latin) shaper based > on Unicode. In fact, this is my observation: > > > - With GDEF: > - If mark is class=3 in GDEF: > -> advance zeroed regardless of whether mark attached in GPOS or not. > - If mark is class != 0 in GDEF: > -> advance NOT zeroed (and mark attachment obviously doesn't apply.) > > - No GDEF: > - Mark advance is NOT zeroed; and mark attachment doesn't apply. > > So, it looks like: > > 1. Uniscribe is NOT synthesizing any GDEF, > > 2. It's zeroing mark advance purely based on GDEF. > > I think our GDEF synthesis is still a good idea. But like to change advance > zeroing to work based on GDEF. This will fix the following bug: > > https://github.com/googlei18n/noto-fonts/issues/472#issuecomment-147528411 > > as well as a bug Martin and I discovered today, which is: currently GC=Mc > marks retain their advance, even if they are attached. That can't be right > either... > > The Thai and Tibetan shapers also use BY_UNICODE_LATE mark-zeroing. I'm going > to test those and change as well, to follow Uniscribe. > > Comments? Can you possibly get your monster test suite running after this > change? > > Thanks, > -- behdad http://behdad.org/ _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
