Behdad Esfahbod
d2998faad3
Merge pull request #3410 from harfbuzz/boring-expansion
...
[Boring Expansion] >64k loca & hmtx tables
This does two things:
The num-glyphs reported by the face now is the maximum reported by the maxp and that deduced from the length of the loca table; I think this is the right thing to do anyway; According to OpenType such loca tables are invalid.
The interpretation hmtx tables that have excessive bytes at the end, again, invalid according to OpenType, has changed. Previously we were interpreting those excessive bytes as extra lsb values. Now we interpret them as extra advance values, the last of which is repeated for all missing glyphs. Again, these are tables that are invalid according to OpenType, and the advances are for glyph indices beyond maxp table's num-glyphs.
The combined effect is that the font can have shapes and advances for gid's beyond the maxp limit of 64k. In fact, maxp table becomes optional.
2022-02-16 14:37:09 -06:00
Khaled Hosny
cfa8cd7fb0
[autotools] Fix make distcheck
...
The test-draw.c can now optionally uses hb-ft, but automake file was not
passing FreeType cflags or libs to it.
2022-02-16 11:58:38 +02:00
Behdad Esfahbod
67eb9acf79
[config] Add HB_NO_BORING_EXPANSION
2022-02-15 17:17:49 -06:00
Behdad Esfahbod
197ed8f592
[test/api] Fix leaks
2022-02-15 14:30:12 -06:00
Behdad Esfahbod
531c27d199
Fix build
2022-02-15 14:20:54 -06:00
Behdad Esfahbod
8b7ccc41c4
[hmtx] Implement [boring-expansion] >64k expansion
...
This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
2022-02-15 14:15:12 -06:00
Behdad Esfahbod
379e526aa4
[test] Add test for current hmtx logic
2022-02-14 15:02:31 -06:00
Behdad Esfahbod
ed6d287d11
[ot-face] Load num-glyphs from `loca` table before `maxp`
...
Implements [boring-expansion] [maxp] Relax
https://github.com/be-fonts/boring-expansion-spec/issues/6
2022-02-14 13:52:30 -06:00
Ebrahim Byagowi
6b75a30a73
[draw/test] Swap a freetype test case with a simpler one
...
As CI failure, apparently the my local freetype and CI one have different
result so let's switch the case with a simpler one just to test quadratic command
is emitted correctly.
2022-02-14 01:54:33 +03:30
Behdad Esfahbod
ae223764a3
[test/draw] Typo
2022-02-13 15:39:14 -06:00
Ebrahim Byagowi
0429921c10
[draw/test] Add test for freetype callback
...
Let's have that part of the code also covered.
2022-02-14 00:18:13 +03:30
Ebrahim Byagowi
d4588204e5
[draw/glyf] Emit empty contours
...
This makes it actually match freetype behaviour even though rasterizer
should filter such contours specially for stroking.
See https://github.com/harfbuzz/harfbuzz/pull/3411#discussion_r802283827 for the context.
2022-02-13 23:50:53 +03:30
Khaled Hosny
0e357c504c
[draw] Test scaling subfont differently from parent
2022-02-13 13:21:15 -06:00
Khaled Hosny
aca80a4a40
[draw] Add test for applying synthetic slant
2022-02-13 13:21:15 -06:00
Khaled Hosny
052fd2d8b9
[draw] Add test for hb_draw_move_to() etc
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
f1a9a9ccaf
[draw-state] Pass state down to callbacks
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
9f05362d43
[test-draw] Fix compiler warning
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
1740916ede
[draw] Remove check for no-op
...
This is unnecessary overhead. Up to rasterizers to handle this. Plus,
this throws off point-numbers in uses that rely on it.
Disabled one test that broke with this.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
5610fa1da0
[test-draw] Re-enable two disabled tests
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
8b4f429000
[draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape()
...
To be implemented in hb-ft.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
2bed4f46fb
[draw] Fix draw signatures
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
e0ac6c587b
Remove remaining traces of HB_EXPERIMENTAL_API
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
5207ce828a
[draw] Enable draw tests
...
Disable two failing ones.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
157caf254e
[test-draw] Fix compiler warning
2022-02-13 13:21:14 -06:00
Alexis King
81754a5a96
[ot-math] Add hb_ot_math_get_glyph_kernings
...
closes #3396
2022-02-09 12:03:07 -06:00
Alexis King
1bc4bad7a5
[ot-tag] Add HB_SCRIPT_MATH (Zmth) and map it to OT ‘math’ tag
...
The ISO 15924 code for mathematical notation is ‘Zmth’, but the
OpenType script is ‘math’.
2022-02-08 12:40:15 -06:00
luz paz
e2e305066a
Fix various typos
...
Found via `codespell -q 3 -S ./perf/texts -L actualy,ba,beng,fo,gir,inout,nd,ot,pres,ro,te,teh,timne`
2022-01-16 05:39:03 -08:00
Matthias Clasen
8dc86d0703
Add a test font scale rounding behavior
...
This test verifies the fix for
https://github.com/harfbuzz/harfbuzz/issues/3274
2021-11-01 17:59:48 -07:00
Qunxin Liu
8c583db9b5
[subset] COLRv1: update subset() method for new strutc ClipList and VarIdxMap
...
Also fix issues in struct PaintTransform definition
2021-10-23 11:22:39 -07:00
Garret Rieger
d700646c33
[subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
2021-09-16 15:31:29 -06:00
David Corbett
a0101a31b5
[Unicode 14] Add tests
2021-09-14 18:38:50 -04:00
Khaled Hosny
4d9b7de0b6
[style] Prepare for release
2021-09-13 10:10:10 -06:00
Behdad Esfahbod
201cbe3c66
[style] Rename HB_STYLE_TAG_SLANT to HB_STYLE_TAG_SLANT_ANGLE
2021-09-10 04:59:16 -06:00
Garret Rieger
102666dab7
[subset] add test for hb_subset_input_set (...).
2021-08-27 10:36:42 -07:00
Behdad Esfahbod
955f86a034
[test-set] Fix compiler warnings
2021-08-24 23:16:24 -06:00
Garret Rieger
f2441a4b65
[subset] Remove retain all layout features flag.
...
Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
2021-08-24 18:17:07 -06:00
Garret Rieger
f84daccb4f
[set] include null pool sets in the permutations tested by inverted_operations.
2021-08-24 16:51:11 -06:00
Garret Rieger
915550ab19
[set] remove inverted test TODO.
2021-08-19 17:48:38 -07:00
Garret Rieger
c4ed582997
[set] add test for inverted set operations.
...
This test checks all possible set configurations against each operation type.
2021-08-19 17:47:41 -07:00
Garret Rieger
325fd6ddb8
[set] add tests for inverted set equality.
2021-08-19 15:54:31 -07:00
Garret Rieger
287032af6c
[set] update set test TODO list.
2021-08-19 15:45:28 -07:00
Garret Rieger
5c003d80a6
[set] add tests for inverted previous iteration.
2021-08-19 15:41:12 -07:00
Garret Rieger
3f2cc582f2
[set] add basic and iteration set inverion tests.
2021-08-19 15:05:10 -07:00
Garret Rieger
cb05c363d7
[subset] add some basic tests for the legacy subset methods.
2021-08-14 10:37:02 -06:00
Khaled Hosny
6ac6a2b27b
[test] hb_ot_layout_language_get_feature_tags()
2021-08-11 16:33:37 -06:00
Khaled Hosny
e9b743b26d
[test] hb_ot_layout_script_get_language_tags()
2021-08-11 16:33:37 -06:00
Khaled Hosny
bf438b815f
[test] hb_ot_layout_table_get_feature_tags()
2021-08-11 16:33:37 -06:00
Khaled Hosny
2f88ea5a20
[test] hb_ot_layout_table_find_script()
2021-08-11 16:33:37 -06:00
Khaled Hosny
f60caad7ff
[test] hb_ot_layout_table_get_script_tags()
2021-08-11 16:33:37 -06:00
Garret Rieger
c08f1b8903
[map] fix incorrect population count in hash map.
...
If the same key was set twice the population was being incorrectly incremented.
2021-08-10 14:00:55 -06:00