Commit Graph

118 Commits

Author SHA1 Message Date
Khaled Hosny c8213c6198 [coretext] Avoid font fallback with CoreText shaper
CoreText does automatic font fallback (AKA "cascading") for  characters
not supported by the requested font, and provides no way to turn it off,
so detect if the returned run uses a font other than the requested one
and fill in the buffer with .notdef glyphs instead of random indices
glyph from a different font.
2013-11-29 19:01:56 -05:00
Behdad Esfahbod 68c372ed2e More scratch-buffer cleanup 2013-11-13 14:45:43 -05:00
Behdad Esfahbod 8fcadb9cf9 [coretext] More scratch buffer fixes 2013-11-13 14:33:57 -05:00
Behdad Esfahbod 16f175cb2e Fix scratch-buffer alignment warnings 2013-11-12 17:22:49 -05:00
Behdad Esfahbod 3613696b57 [coretext] Fully support user features
Based on patch from Jonathan Kew and data from Apple.

It's not working correctly though, and I suspect I'm hitting a bug in
CoreText.  When I do this:

hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \
--features=-liga

I expect both ligatures to turn off, but only the second one does:

[Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250]

whereas if I disable 'dlig' instead of 'liga', both are turned off.
Smells...

Doesn't resolve conflicting feature settings.
2013-08-12 12:01:05 -04:00
Behdad Esfahbod a782a5e9a3 [coretext] Start adding support for features
Unlike AAT, looks like with CoreText very few OT features can be mapped.
:(
2013-08-07 22:08:29 -04:00
Behdad Esfahbod c461371419 [CoreText] Don't leak the CTLine object (and everything that hangs off it)
Patch from Jonathan Kew.
2013-07-30 14:48:23 -04:00
Behdad Esfahbod 7235f33f9e Fix misc warnings reported by cppcheck
https://bugs.freedesktop.org/show_bug.cgi?id=65544
2013-06-10 15:08:49 -04:00
Behdad Esfahbod e923e6487b [coretext] Fixed typo
Oops.  Thanks Khaled for catching this.
2012-12-09 19:39:40 -05:00
Behdad Esfahbod 9a8395824b [coretext] Add hb_coretext_face_get_cg_font()
Not sure if it's useful, but it was missing.
2012-12-09 18:47:36 -05:00
Behdad Esfahbod 8611235688 [coretext] Remove hack around GlyphID
We not namespace our types, so the hack is not needed anymore.
2012-12-09 18:47:09 -05:00
Behdad Esfahbod 7d52e6601f Whitespace 2012-11-16 18:49:54 -08:00
Behdad Esfahbod 45c1383cc7 Minor 2012-08-14 09:33:18 -04:00
Behdad Esfahbod 301168dae7 [CoreText] Port to shape_plan infrastructure 2012-07-30 17:48:04 -04:00
Behdad Esfahbod 027857d041 Start adding a unified shaper access infrastructure
Add global shape_plan.  Unused so far.
2012-07-26 21:14:02 -04:00
Jonathan Kew ac2085d4b3 [CoreText] Ensure cluster indices in output buffer are non-decreasing.
Does not provide Uniscribe-compatible results, but should at least avoid
breaking hb-view due to out-of-order cluster values.

For RTL runs, ensure cluster values are non-increasing (instead of
non-decreasing).
2012-07-26 15:58:45 -04:00
Behdad Esfahbod 441d3bb7de Minor 2012-07-26 12:01:12 -04:00
Jonathan Kew aa6d849838 [CoreText] Add basic Core Text backend for comparison with our native shaping
Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way;
just returns the original string indexes that CT maintains. These may even be
out-of-order in the case of reordrant glyphs.
2012-07-24 15:52:32 -04:00