[HarfBuzz] Questions about interacting with HarfBuzz

Lóránt Pintér lorant.pinter at prezi.com
Tue Oct 2 13:51:16 PDT 2012


Hi Behdad, 

I finally managed to get OT layouting with HarfBuzz to work in JavaScript via Emscripten. It's awesome! :) There are still some open questions though. Can you please help me with them?
How should I find out if a glyph returned by hb_shape() is a ligature? I found some static functions in hb-ot-layout-private.hh like is_a_ligature(), but these are not C externs, so I cannot access them from JavaScript. Is there some other way supported by HarfBuzz, or shall I re-implement these functions in JS by inspecting the glyph_info_t struct?
How can I find internal x_advance positions inside a ligature? The GDEF table should contain information about this. Does HarfBuzz expose it in any way?
How should I find out if a character was split into multiple glyphs? I guess the "cluster" field of a glyph_info_t is about this, right? If I have a blown-up character, how can I find the caret positions that I should use?
Can HarfBuzz handle the Apple "kern," "morx" etc. tables? If not, is it safe to use FontForge to convert these fonts to use OpenType's GPOS/GSUB etc.? This is not very encouraging: http://fontforge.org/gposgsub.html
Which features are turned on by default? I can see that ligatures and kerning are turned on for my simple Latin text, and I can successfully turn them off by supplying features "-kern" and "-liga," but I'm still curious what the defaults are.
When kerning is applied, I get funny x_advances. This might be an error on my side, but currently when a pair of glyphs is kerned, the first character get's an x_advance that seems to have something like "42949017" subtracted from it. Because ligature substitution works perfectly, I assume GSUB table parsing works fine, so I don't see why GPOS would fail. Any pointers here?


Thanks a lot for any help you can provide! Also, if I can help out with writing documentation, please let me know.

Lorant

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20121002/702ace40/attachment.html>


More information about the HarfBuzz mailing list