Commit Graph

6236 Commits

Author SHA1 Message Date
Behdad Esfahbod fe099a844b [test] Add Khmer tests, with NotoSansKhmer-Regular.ttf
Note that there's minor positioning differences, and ONE reordering
difference between what we get for these and what Uniscribe gets.
Probably same as what's described in commit message for
1a96cc825d
2018-07-31 14:20:31 -07:00
Behdad Esfahbod 5772edc0ea [khmer] Typo 2018-07-31 14:10:31 -07:00
Behdad Esfahbod 2d6edc9008 [test] Add Khmer test texts from recent bugs 2018-07-31 13:56:55 -07:00
Behdad Esfahbod df26a32c8f [test] Move things around for shaper updates 2018-07-31 13:55:53 -07:00
Behdad Esfahbod 6ddd669e20 [khmer] Clear syllables before presentation features
Probably not what Uniscribe does, but good idea?
2018-07-31 13:40:22 -07:00
Behdad Esfahbod 8eef1964a7 [khmer] Revert previous change, and remove pauses
This makes test suite happy again (at 44) while fixing the sequences
we were fixing, which were the following with KhmerUI.ttf:

  U+1789,U+17BC
  U+1789,U+17D2,U+1789
  U+1789,U+17D2,U+1789,U+17BC

Fixes rest of https://github.com/harfbuzz/harfbuzz/issues/974
2018-07-31 13:40:17 -07:00
Behdad Esfahbod 7c658ea2f2 [khmer] Apply ccmp after basic features
Part of https://github.com/harfbuzz/harfbuzz/issues/974
2018-07-31 12:49:02 -07:00
Behdad Esfahbod 1a96cc825d [khmer] Rewrite most of shaper to better follow spec
Khmer spec has only one reordering phase, and only simple prebase
matra and Coeng-Ro reordering.  Implement that.  Specifically,
this was done to address recognizing different orders of the matra
and Coeng-Ro sequence.  That said, some combinations are now
reordered differently from Uniscribe.  Not clear if that's intended
or a bug in Uniscribe.  The following two sequences render the same
in Uniscribe whereas we reorder them differently:

  U+17A0,U+17D2,U+179A,U+17C2
  U+17A0,U+17C2,U+17D2,U+179A

For that reason, our test suite numbers regressed slightly.  Used
to be at 34 for fails, now at:

KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%)

But generally a good change, and removed lots of code.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1026
2018-07-31 11:45:32 -07:00
Behdad Esfahbod f5152cea42 [shaper] Move code around 2018-07-31 01:27:04 -07:00
Behdad Esfahbod 36d0fbbc52 [shaper] Remove a macro 2018-07-31 01:15:04 -07:00
Behdad Esfahbod b1e5650c67 [atomic] Make pointer get op relaxed instead of acquire
We only use it before cmpexch, so relaxed is fine and faster for
common case.
2018-07-31 01:02:31 -07:00
Behdad Esfahbod 66ccd8ac40 [serialize] Increase stage count from 8 to 32
Indic shaper uses many stages.  Now we are provably not limiting
functionality whereas the previous limit of 8 was assuming real-world
practices.
2018-07-30 17:03:06 -07:00
Behdad Esfahbod ee8cf91965 [serialize] Remove unused truncate() method 2018-07-30 16:59:41 -07:00
Garret Rieger 5edf454aa6 [subset] During lookup collection remember the features we've already processed. 2018-07-27 17:29:00 -07:00
Behdad Esfahbod 42c183f803 Minor 2018-07-27 14:55:29 -07:00
Behdad Esfahbod ecab6604e5 [serialize] Allocate for markFilteringSet 2018-07-27 14:54:15 -07:00
Behdad Esfahbod 7f08818c44 Minor 2018-07-27 14:54:15 -07:00
prrace 2e25d8f491 Fix unlikely leaks 2018-07-27 14:54:08 -07:00
Behdad Esfahbod 3c2842cbcf Add hb-iter-private.hh
Unused so far.
2018-07-25 17:07:17 -07:00
Behdad Esfahbod 92b1e025c6 Move some code from hb-open-type-private.hh to hb-machinery-private.hh 2018-07-25 16:58:47 -07:00
Behdad Esfahbod 6b11fea997 [closure] Allocate out set on the stack 2018-07-25 16:01:37 -07:00
Behdad Esfahbod 74467b7901 Fix compile 2018-07-25 14:30:07 -07:00
Behdad Esfahbod bf90f35302 [coretext] Add note 2018-07-25 13:57:24 -07:00
Garret Rieger fb58cb4b5c [subset] Only used reachable lookups for gsub closure. 2018-07-25 13:56:58 -07:00
Behdad Esfahbod c38bd4025f [closure] Separate in and out glyphs
Fixes https://github.com/harfbuzz/harfbuzz/issues/1107
2018-07-24 13:47:32 -07:00
Garret Rieger 85646fdadb [subset] Limit the iterations of the closure algorithm.
Prevents O(n^2) run times.
2018-07-23 16:01:57 -07:00
Behdad Esfahbod 94759d4cf8 Fix visibility on mingw32
Should fix bots again.
2018-07-23 15:08:32 -07:00
Behdad Esfahbod 61eddbd8ef Fix infinite loop in loading num_glyphs within sanitizer 2018-07-23 14:44:10 -07:00
Behdad Esfahbod e22a48ac95 One more visibility trick
Should fix Windows build again.
2018-07-23 13:24:26 -07:00
Behdad Esfahbod e57a638bde One more 2018-07-23 12:00:02 -07:00
Behdad Esfahbod 36ed163fdd Remove unnecessary OT:: namespace specifiers 2018-07-23 11:57:45 -07:00
Behdad Esfahbod c6bc7c3831 Set num glyphs on sanitizer reference_table()
Move out-of-class definitions of two methods to hb-static so they
are accessible in libharfbuzz-subset.
2018-07-23 11:46:46 -07:00
Behdad Esfahbod 9401829d4e Remove Sanitizer<> 2018-07-22 22:50:58 -07:00
Behdad Esfahbod 8e3e41272b Port rest of code away from Sanitizer<> 2018-07-22 22:49:26 -07:00
Behdad Esfahbod d6a8f64045 Port dump-emoji away from Sanitizer<> 2018-07-22 22:47:19 -07:00
Behdad Esfahbod 14f78d2b3b . 2018-07-22 22:45:26 -07:00
Behdad Esfahbod 4547051f48 Minor 2018-07-22 22:44:22 -07:00
Behdad Esfahbod 740ae27d5c Port sbix off of Sanitizer<> 2018-07-22 22:43:25 -07:00
Behdad Esfahbod 9583e0077d Port more off of Sanitizer<> 2018-07-22 22:43:25 -07:00
Behdad Esfahbod e7737b41d7 Add sanitizer reference_table, also fix clang build
Clang is being really peculiar.  Fix with:

-  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); }
+  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }
2018-07-22 22:24:31 -07:00
David Corbett 62fa7cd1cc Order Chakma split vowels in accordance with NFC
Fixes #1105.
2018-07-22 19:47:21 -07:00
Ebrahim Byagowi 0c1b287b72
Add a new API, hb_ot_layout_get_feature_name_ids (#976)
This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-07-21 21:14:48 +04:30
Ebrahim Byagowi 93b65d9fe3
Remove dump-fon (#1100)
It had interesting stuffs like EXE parsing and
big-endian parsers but added in an attempt to find
a solution for #681 which later found not related.
2018-07-17 23:29:16 +04:30
Ebrahim Byagowi d5cd47a69c
Remove AAT's gcid/fmtx (#1099)
We are not going to use them, at least in the foreseeable future
2018-07-17 22:32:37 +04:30
Behdad Esfahbod 1e9e344b2b Fix hb_face_count() sanitize referencing 2018-07-17 19:17:59 +02:00
Behdad Esfahbod a8cc0b5907 Remove TODO that is not gonna be done
Previously the idea was to cache sanitize results externally (think,
in Fontconfig) and avoid resanitizing every time.  That's, not a good
idea.
2018-07-17 19:09:03 +02:00
Behdad Esfahbod be70738400 Move sanitizer code around a bit 2018-07-17 18:51:59 +02:00
Behdad Esfahbod db5d430eff [aat] Update for blob changes
Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
2018-07-17 18:14:45 +02:00
Behdad Esfahbod 68310a65cb 1.8.4 2018-07-17 13:20:40 +02:00
Behdad Esfahbod 04b7b81bcb Reland "Implement C++11-style GCC builtin atomic ops"
Fixed the crasher in it.
2018-07-17 11:02:38 +02:00