Commit Graph

2344 Commits

Author SHA1 Message Date
Behdad Esfahbod
5fecd8b035 [OT] Synthesize glyph classes 2012-07-31 23:17:22 -04:00
Behdad Esfahbod
03b09214c0 [GSUB] Minor 2012-07-31 22:43:58 -04:00
Behdad Esfahbod
f0fc1df8fc [hb-old] Implement getGlyphMetrics()
Still working on it.
2012-07-31 22:43:32 -04:00
Behdad Esfahbod
378d279bbf Implement Unicode compatibility decompositions
Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095
2012-07-31 21:36:16 -04:00
Behdad Esfahbod
321ec29cc2 Remove unused function 2012-07-31 21:10:16 -04:00
Behdad Esfahbod
69cc492dc1 [buffer] Minor 2012-07-31 14:51:36 -04:00
Behdad Esfahbod
693918ef85 [OT] Streamline complex shaper enumeration
Add a shaper class struct.
2012-07-30 21:08:51 -04:00
Behdad Esfahbod
c2e42c3db6 Minor 2012-07-30 19:54:50 -04:00
Behdad Esfahbod
03f67bc012 More refactoring glyph class access 2012-07-30 19:47:53 -04:00
Behdad Esfahbod
300c7307eb [OT] Don't crash if no GDEF available 2012-07-30 19:37:44 -04:00
Behdad Esfahbod
3dcbdc2125 Minor 2012-07-30 19:32:42 -04:00
Behdad Esfahbod
05bd1b6342 [GSUB/GPOS] Move glyph props matching around 2012-07-30 19:30:01 -04:00
Behdad Esfahbod
2fca1426ca [GSUB] Don't erase glyph classes if GDEF does not have glyph classes 2012-07-30 18:46:41 -04:00
Behdad Esfahbod
fd42257f8c Minor 2012-07-30 18:44:10 -04:00
Behdad Esfahbod
7fbbf86efe [GSUB] Minor 2012-07-30 18:36:42 -04:00
Behdad Esfahbod
713914d320 [Uniscribe] Clean up a bit 2012-07-30 17:54:38 -04:00
Behdad Esfahbod
301168dae7 [CoreText] Port to shape_plan infrastructure 2012-07-30 17:48:04 -04:00
Behdad Esfahbod
6cdfd14bb1 Fix build on Mac 2012-07-30 17:22:17 -04:00
Behdad Esfahbod
7e34601ded Unbreak Hangul jamo composition
When we removed the separate Hangul shaper, the specific normalization
preference of Hangul was lost.  Fix that.  Also, the Thai shaper was
copied from Hangul, so had the fully-composed normalization behavior,
which was unnecessary.  So, fix that too.
2012-07-30 14:53:41 -04:00
Behdad Esfahbod
7afb14407e [Indic] Recategorize Telugu length marks
Fixes 8 more Telugu tests.  Failures at 15 (0.00154548%).
2012-07-30 13:54:46 -04:00
Behdad Esfahbod
70b3dc3272 Add Hebrew test 2012-07-30 12:40:18 -04:00
Behdad Esfahbod
f2377155e3 [hb-old] Fix misc leaks
Backport (forward-port?!) from upstream:

commit 3ab7b37bdebf0f8773493a1fee910b151c4de30f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Jul 30 10:50:22 2012 -0400

    Fix misc leaks

    https://bugs.freedesktop.org/show_bug.cgi?id=31992
    https://bugs.freedesktop.org/show_bug.cgi?id=31993
    https://bugs.freedesktop.org/show_bug.cgi?id=31994
    https://bugs.freedesktop.org/show_bug.cgi?id=31995
2012-07-30 10:50:57 -04:00
Behdad Esfahbod
3f4764bb56 Don't lock user_data set during destruction if empty 2012-07-30 10:06:42 -04:00
Behdad Esfahbod
4ba647eecf Fix leak 2012-07-30 09:53:06 -04:00
Behdad Esfahbod
f860366456 [OT] Gain back some lost speed 2012-07-30 03:16:38 -04:00
Behdad Esfahbod
11f4c87d01 [OT] Remove hb_ot_layout_ensure()
I didn't like it from the beginning.
2012-07-30 02:36:46 -04:00
Behdad Esfahbod
578e42182b Minor 2012-07-30 02:35:07 -04:00
Behdad Esfahbod
a973b5ce86 [GSUB] Further adjustments to mark-attachment vs ligation interaction
The d1d69ec52e change broke Kannada badly,
since it was ligating consonants, pushing matra out, and then ligating
with the matra.  Adjust for that.  See comments.
2012-07-30 01:47:46 -04:00
Behdad Esfahbod
0aef425e25 [GSUB] Minor 2012-07-30 00:55:15 -04:00
Behdad Esfahbod
d1d69ec52e [GSUB] Don't ligate glyphs attached to different components of ligatures
This concludes the mark-attachment vs ligating interaction fixes (for now).
2012-07-30 00:51:47 -04:00
Behdad Esfahbod
4751dec8be Minor 2012-07-30 00:42:07 -04:00
Behdad Esfahbod
f24bcfbed1 Minor 2012-07-30 00:39:00 -04:00
Behdad Esfahbod
fe20c0f84f [GSUB] Fix mark component stuff when ligatures form ligatures!
See comments.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633
2012-07-30 00:00:59 -04:00
Behdad Esfahbod
2ec3ba46a3 [GSUB/GPOS] Minor
Start squeezing more out of lig_id/lig_comp.
2012-07-29 22:16:15 -04:00
Behdad Esfahbod
ef6e9cec33 Fixup bb0e4ba3e9 2012-07-29 21:35:22 -04:00
Behdad Esfahbod
cb3d340631 [GSUB] Don't set new lig_id on mark ligatures
If two marks form a ligature, retain their previous lig_id, such that
the mark ligature can attach to ligature components...

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676343

In fact, I noticed that we should not let ligatures form between glyphs
coming from different components of a previous ligature.  For example,
if the sequence is: LAM,SHADDA,LAM,FATHA,HEH, the LAM,LAM,HEH form a
ligature, putting SHADDA and FATHA next to eachother.  However, it would
be wrong to ligate them.  Uniscribe has this bug also.
2012-07-29 20:37:38 -04:00
Behdad Esfahbod
97a201becf Add Arabic tests for mark ligature component attachments 2012-07-29 20:37:29 -04:00
Behdad Esfahbod
a15b70a81a [hb-old] Fix cluster formation in RTL
Unlike Uniscribe, hb-old returns glyphs in logical order, so the logic
does not need to duplicated for RTL.
2012-07-29 20:09:22 -04:00
Behdad Esfahbod
8a7e70ef65 [Minor] 2012-07-29 19:56:54 -04:00
Behdad Esfahbod
bb0e4ba3e9 Minor 2012-07-29 17:34:14 -04:00
Behdad Esfahbod
a00ad60bc0 [Uniscribe] Remove hb_uniscribe_font_ensure()
Wasn't a huge fan of putting the burden on the user.  Just remove it and
do what we've got to do transparently.
2012-07-28 21:16:08 -04:00
Behdad Esfahbod
5d874d566f [GPOS] Fix mark-to-mark positioning when one of the marks is a ligature
This commit: a3313e5400 broke MarkMarkPos
when one of the marks itself is a ligature.  That regressed 26 Tibetan
tests (up from zero!).  Fix that.  Tibetan back to zero.
2012-07-28 21:05:25 -04:00
Behdad Esfahbod
338fe662b5 [GSUB] Minor 2012-07-28 18:53:01 -04:00
Behdad Esfahbod
e6f7479fe3 [GSUB] Simplify would-apply 2012-07-28 18:34:58 -04:00
Behdad Esfahbod
dadede012e Minor 2012-07-28 18:13:09 -04:00
Behdad Esfahbod
0b99429ead [GSUB/GPOS] Add get_coverage() and use it to speed up main loop
And use it to speed up the hotspot by checking coverage directly in
the main loop, not 10 functions deep in.

Gives me a solid 20% boost with Indic test suite.  Less so for less
lookup-intensive scenarios.

Remove the "fast_path" hack from before.
2012-07-28 17:46:35 -04:00
Behdad Esfahbod
30ec9002d8 Reject lookups with no subTable 2012-07-28 17:25:20 -04:00
Behdad Esfahbod
0981068b75 [GSUB/GPOS] Reject Context/ChainContext lookups with zero input 2012-07-28 17:01:59 -04:00
Behdad Esfahbod
2f87cebe10 Implement shape_plan caching
Should give us some performance boost.
2012-07-27 04:20:39 -04:00
Behdad Esfahbod
e9eb9503e9 Add default_shaper_list to shape_plan 2012-07-27 03:16:22 -04:00