Commit Graph

6186 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