Log

Author Commit Date CI Message
Behdad Esfahbod 8fbfda92 2012-08-01T19:03:46 Inline font getters
Behdad Esfahbod 6adf417b 2012-08-01T18:07:42 Use a lookup table for modified_combining_class
Behdad Esfahbod 208f70f0 2012-08-01T17:13:10 Inline Unicode callbacks internally
Behdad Esfahbod 7470315a 2012-08-01T17:01:59 Move unicode accessors around
Behdad Esfahbod 21fdcee0 2012-08-01T16:23:44 Add hb_unicode_combining_class_t
Behdad Esfahbod 84186a64 2012-08-01T13:32:39 Add commentary on the compatibility decomposition in the normalizer
Behdad Esfahbod 0834d952 2012-08-01T00:21:09 [hb-old] Adjust mark positioning parameters Fallback mark positioning works now... With hb-ft and hb-view / hb-shape at least.
Behdad Esfahbod 4ca743df 2012-08-01T00:03:41 [old] Implement fontMetrics
Behdad Esfahbod 1e7d8606 2012-07-31T23:41:06 [GPOS] Adjust mark advance-width zeroing logic If there is no GPOS, zero mark advances. If there *is* GPOS and the shaper requests so, zero mark advances for attached marks. Fixes regression with Tibetan, where the font has GPOS, and marks a glyph as mark where it shouldn't get zero advance.
Behdad Esfahbod a8842e4a 2012-07-31T23:10:11 Remove some TODO items
Behdad Esfahbod 2bc3b9a6 2012-07-31T23:08:25 [OT] Zero mark advances if the shaper desires so Enabled for all shapers except for Indic.
Behdad Esfahbod 5fecd8b0 2012-07-31T22:48:38 [OT] Synthesize glyph classes
Behdad Esfahbod 03b09214 2012-07-31T22:43:58 [GSUB] Minor
Behdad Esfahbod f0fc1df8 2012-07-31T22:43:32 [hb-old] Implement getGlyphMetrics() Still working on it.
Behdad Esfahbod 378d279b 2012-07-31T21:36:16 Implement Unicode compatibility decompositions Based on patch from Philip Withnall. https://bugs.freedesktop.org/show_bug.cgi?id=41095
Behdad Esfahbod 321ec29c 2012-07-31T21:10:16 Remove unused function
Behdad Esfahbod 69cc492d 2012-07-31T14:51:36 [buffer] Minor
Behdad Esfahbod 693918ef 2012-07-30T21:08:51 [OT] Streamline complex shaper enumeration Add a shaper class struct.
Behdad Esfahbod c2e42c3d 2012-07-30T19:54:50 Minor
Behdad Esfahbod 03f67bc0 2012-07-30T19:47:53 More refactoring glyph class access
Behdad Esfahbod 300c7307 2012-07-30T19:37:44 [OT] Don't crash if no GDEF available
Behdad Esfahbod 3dcbdc21 2012-07-30T19:31:17 Minor
Behdad Esfahbod 05bd1b63 2012-07-30T19:30:01 [GSUB/GPOS] Move glyph props matching around
Behdad Esfahbod 2fca1426 2012-07-30T18:46:41 [GSUB] Don't erase glyph classes if GDEF does not have glyph classes
Behdad Esfahbod fd42257f 2012-07-30T18:40:27 Minor
Behdad Esfahbod 7fbbf86e 2012-07-30T18:36:42 [GSUB] Minor
Behdad Esfahbod 713914d3 2012-07-30T17:54:38 [Uniscribe] Clean up a bit
Behdad Esfahbod 301168da 2012-07-30T17:48:04 [CoreText] Port to shape_plan infrastructure
Behdad Esfahbod 6cdfd14b 2012-07-30T17:22:17 Fix build on Mac
Behdad Esfahbod 7e34601d 2012-07-30T14:53:41 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.
Behdad Esfahbod 7afb1440 2012-07-30T13:54:46 [Indic] Recategorize Telugu length marks Fixes 8 more Telugu tests. Failures at 15 (0.00154548%).
Behdad Esfahbod 70b3dc32 2012-07-30T12:40:18 Add Hebrew test
Behdad Esfahbod f2377155 2012-07-30T10:50:57 [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
Behdad Esfahbod 3f4764bb 2012-07-30T10:06:42 Don't lock user_data set during destruction if empty
Behdad Esfahbod 4ba647ee 2012-07-30T09:53:06 Fix leak
Behdad Esfahbod f8603664 2012-07-30T02:38:39 [OT] Gain back some lost speed
Behdad Esfahbod 11f4c87d 2012-07-30T02:36:46 [OT] Remove hb_ot_layout_ensure() I didn't like it from the beginning.
Behdad Esfahbod 578e4218 2012-07-30T02:35:07 Minor
Behdad Esfahbod a973b5ce 2012-07-30T01:46:34 [GSUB] Further adjustments to mark-attachment vs ligation interaction The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada badly, since it was ligating consonants, pushing matra out, and then ligating with the matra. Adjust for that. See comments.
Behdad Esfahbod 0aef425e 2012-07-30T00:55:15 [GSUB] Minor
Behdad Esfahbod d1d69ec5 2012-07-30T00:51:47 [GSUB] Don't ligate glyphs attached to different components of ligatures This concludes the mark-attachment vs ligating interaction fixes (for now).
Behdad Esfahbod 4751dec8 2012-07-30T00:42:07 Minor
Behdad Esfahbod f24bcfbe 2012-07-30T00:39:00 Minor
Behdad Esfahbod fe20c0f8 2012-07-30T00:00:59 [GSUB] Fix mark component stuff when ligatures form ligatures! See comments. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633
Behdad Esfahbod 2ec3ba46 2012-07-29T22:02:24 [GSUB/GPOS] Minor Start squeezing more out of lig_id/lig_comp.
Behdad Esfahbod ef6e9cec 2012-07-29T21:35:22 Fixup bb0e4ba3e9c5a407fc5d73c914e429d24d336380
Behdad Esfahbod cb3d3406 2012-07-29T20:37:38 [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.
Behdad Esfahbod 97a201be 2012-07-29T20:31:36 Add Arabic tests for mark ligature component attachments
Behdad Esfahbod a15b70a8 2012-07-29T20:09:22 [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.
Behdad Esfahbod 8a7e70ef 2012-07-29T19:56:54 [Minor]
Behdad Esfahbod bb0e4ba3 2012-07-29T17:34:14 Minor
Behdad Esfahbod a00ad60b 2012-07-28T21:16:08 [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.
Behdad Esfahbod 5d874d56 2012-07-28T21:05:25 [GPOS] Fix mark-to-mark positioning when one of the marks is a ligature This commit: a3313e54008167e415b72c780ca7b9cda958d07e 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.
Behdad Esfahbod 338fe662 2012-07-28T18:53:01 [GSUB] Minor
Behdad Esfahbod e6f7479f 2012-07-28T18:34:58 [GSUB] Simplify would-apply
Behdad Esfahbod dadede01 2012-07-28T18:03:20 Minor
Behdad Esfahbod 0b99429e 2012-07-28T17:31:01 [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.
Behdad Esfahbod 30ec9002 2012-07-28T17:25:20 Reject lookups with no subTable
Behdad Esfahbod 0981068b 2012-07-28T17:01:59 [GSUB/GPOS] Reject Context/ChainContext lookups with zero input
Behdad Esfahbod 2f87cebe 2012-07-27T04:02:38 Implement shape_plan caching Should give us some performance boost.
Behdad Esfahbod e9eb9503 2012-07-27T03:16:22 Add default_shaper_list to shape_plan
Behdad Esfahbod 3b7c4e27 2012-07-27T03:12:23 Don't fail choosing shaper on planning failure Shapers have a chance to reject a font in face shaper_data creation. No need to allow failing during planning.
Behdad Esfahbod cfe98826 2012-07-27T03:06:30 Add hb_ot_layout_ensure() and hb_uniscribe_font_ensure()
Behdad Esfahbod c5b668fb 2012-07-27T02:49:39 Choose one shaper per plan
Behdad Esfahbod e82061e8 2012-07-27T02:29:32 Move ot shaper completely to shape_plan
Behdad Esfahbod ea278d38 2012-07-27T02:12:28 Partially switch ot shaper to shape_plan
Behdad Esfahbod b6b7ba13 2012-07-27T01:26:11 Switch old and uniscribe backends to shape_plan
Behdad Esfahbod c32c096a 2012-07-27T01:13:53 Switch to shape_plan Not optimized yet. Eats babies. And no shaper uses the shape_plan.
Behdad Esfahbod 5b95c148 2012-07-26T23:46:53 Start implementing shape_plan
Behdad Esfahbod bd26b4d2 2012-07-26T22:05:39 Minor
Behdad Esfahbod 027857d0 2012-07-26T17:34:25 Start adding a unified shaper access infrastructure Add global shape_plan. Unused so far.
Behdad Esfahbod fa2dfcd5 2012-07-26T16:06:16 Fix visibility warnings with MinGW32
Jonathan Kew ac2085d4 2012-07-26T15:58:45 [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).
Behdad Esfahbod 441d3bb7 2012-07-26T12:01:12 Minor
Behdad Esfahbod 2e7f2230 2012-07-25T19:30:15 [hb-old] Fix Arabic cursive positioning Backporting from upstream: commit b847f24ce855d24f6822bcd9c0006905e81b94d8 Author: Behdad Esfahbod <behdad@behdad.org> Date: Wed Jul 25 19:29:16 2012 -0400 [arabic] Fix Arabic cursive positioning This was clearly broken in testing. Who knows... Fixes for me. Test with a Nastaleeq font, or with Arabic Typesetting. Backporting from Chromium.
Behdad Esfahbod 9550a8c4 2012-07-25T19:22:57 [hb-old] Fixup not-enough-space handling
Behdad Esfahbod 91e721ea 2012-07-25T19:20:34 [hb-old] Fix clusters Unlike its "documentation", hb-old's log_clusters are, well, indeed logical, not visual. Fixup. Adapted / copied from hb-uniscribe.
Behdad Esfahbod a3313e54 2012-07-25T18:37:51 [GPOS] Fix MarkMarkPos applied to results of MultipleSubst This was broken as a result of 7b84c536c10ab90ed96a033d88e9ad232d46c5b8. As Khaled reported, MarkMark positioning was broken with glyphs resulting from a MultipleSubst. Fixed. Test with the ALLAH character in Amiri.
Behdad Esfahbod 35bdab3c 2012-07-25T11:59:52 Minor
Behdad Esfahbod 8fe4c740 2012-07-24T21:05:12 [hb-old] Add HarfBuzz.old shaper Choose using shaper name "old".
Behdad Esfahbod 5e198700 2012-07-24T19:53:55 [hb-old] Define Unicode funcs in terms of new HarfBuzz
Behdad Esfahbod 4a31166b 2012-07-24T19:49:48 [hb-old] Shovel out the line-breaking / word-segmentation stuff
Behdad Esfahbod 0bcbe88c 2012-07-24T19:38:24 [hb-old] Add visibility attributes
Behdad Esfahbod 6a9d43c3 2012-07-24T19:21:22 [hb-old] Remove unused header file
Behdad Esfahbod fb47209c 2012-07-24T19:20:19 [hb-old] Rename hb_buffer_* to HB_Buffer_*
Behdad Esfahbod 1512a735 2012-07-24T19:16:56 [hb-old] Start adding HarfBuzz-old as a new backend
Behdad Esfahbod 478fd052 2012-07-24T17:09:01 Minor
Behdad Esfahbod 8979a7f6 2012-07-24T17:03:55 [Mongolian] Remove Mongolian Vowel Separator at the end of shaping Results match Uniscribe now.
Jonathan Kew aa6d8498 2012-07-24T15:52:32 [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.
Behdad Esfahbod ec8d2494 2012-07-24T15:40:37 Make data members of various OpenType structs protected instead of private Should fix warnings generated when building with -Wunused-private-field. Based on patch from Jonathan Kew.
Behdad Esfahbod 97aa0b73 2012-07-24T15:02:34 Minor const correctness shuffling
Behdad Esfahbod 6411e74c 2012-07-24T13:48:49 [Indic] Reposition Gurmukhi top matras to after post The font is forming a post-base consonant in some samples, and Uniscribe positions top matra on the post-base. Do the same. Gurmukhi failures down from 59 to 41 (0.0674242%).
Behdad Esfahbod c3f769ba 2012-07-24T13:26:32 [Indic] Ignore Uniscribe output containing two zero-width space glyphs Uniscribe is buggy and sometimes /eats/ a mark next to a non-joiner. Most of Malayalam failures where actually hitting this bug. Ignore test output with two zero-width space glyphs. This is a hack until we build up the test suite infrastructure better. Bengali went down by 9, Devanagari by 2, Kannada by 130, Malayalm down from 1197 to 307, Sinhala down by 16, Telugu down by 26. New stats: BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%) DEVANAGARI: 693573 out of 693628 tests passed. 55 failed (0.00792932%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed (0.0292823%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271715 out of 271847 tests passed. 132 failed (0.0485567%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970550 out of 970573 tests passed. 23 failed (0.00236973%)
Behdad Esfahbod 65c43acc 2012-07-24T03:36:47 [Indic] Better position left-matra in Malayalam Just put it before base, which is what's expected. Malayalam failures down from 1559 to 1197 (0.114172%). BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%) DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed (0.114172%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
Behdad Esfahbod 88f413b5 2012-07-24T03:04:36 [Indic] Implement Reph+Ya-Phalaa interaction The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded that to get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H sequence requests subjoining, while a H,ZWJ requests Half form. Implement that. Bengali failures go down from 377 to 297 (0.0838308%). Gujarati is down by 4 to 17 (0.0046384%). Kannada is down by 226 to 957 (0.100534%). Current status: BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%) DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed (0.148701%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
Behdad Esfahbod dff0ece1 2012-07-24T02:30:38 [Indic] Limit matras to 4 per syllable Also limit joiners. This limits our syllable length to a constant, and is closer to what Uniscribe does anyway. Two Devanagari tests regressed, but who cares about tests with 20 joiners in a row?! Devanagari at 57 (0.00821766%) now.
Behdad Esfahbod 330b329c 2012-07-24T02:25:26 [Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama Fixes another 1 Khmer failure. Down to 30 (0.0100293%) now.
Behdad Esfahbod 6824a719 2012-07-24T02:22:18 [Indic] Recategorize Khmer various signs as top matras Khmer failures down from 39 to 31 (0.0103636%).
Behdad Esfahbod d90b8e84 2012-07-24T02:10:20 [Indic] Reposition Khmer prebase-reordering Ra around split matras In Khmer coeng model, a V,Ra can go *after* matras. If it goes after a split matra, it should be reordered to *before* the left part of such matra. Khmer failures down from 136 to 39 (0.0130381%).
Behdad Esfahbod 0afb84c1 2012-07-24T01:44:47 [Indic] Fix minor bug in pre-base Ra positioning