On 29/5/15 15:16, Koji Ishii wrote:
Sorry if this was asked before, I'm new to this list (and to harfbuzz
too), please accept my apologies if so.

When a variation selector is in the source, such as:
   U+0030 U+FE0E
glyph_func receives U+FE0E as variationSelector argument.

What is the expected behavior for the glyph_func if it cannot find the
variant glyph?

 From my observation, if glyph_func returns false, harfbuzz returns 2
glyphs for the above string. So I'm guessing that when the specified
variant does not exist, glyph_func should fallback to the base glyph
and returns true if the base glyph exists.

Could someone confirm whether my understanding above is correct or not?

As I understand it, if a variation selector is passed to the glyph_func, it should return true only if the <char, selector> pair is explicitly handled.

Otherwise, it should return false; harfbuzz will call the glyph_func again for the base character alone, and then separately for the variation selector. This means it is possible for a font to implement variation selector support via an OpenType lookup (ligating pairs of <base glyph, VS glyph>, for example) if desired, instead of via cmap format 14.

If -- as is likely, if it's not supported by the font -- the variation selector maps to .notdef at this stage, it will then be hidden by later harfbuzz code that makes default-ignorables invisible.

JK

_______________________________________________
HarfBuzz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to