Commit graph

13692 commits

Author SHA1 Message Date
Behdad Esfahbod
faa8cdc898 [util] Allow HB_CHAFA=2/3 to enable wedges/all symbols in Chafa 2022-07-18 10:22:19 -06:00
Behdad Esfahbod
b4e95965c8 [util] Revert Chafa to use simple blocks only
The wedges are nice but not available on Mac.

Fixes https://github.com/harfbuzz/harfbuzz/issues/3729
2022-07-18 10:14:14 -06:00
Behdad Esfahbod
f7f6d278bb Add hb_language_matches()
New API:
+ hb_language_matches()
2022-07-17 22:15:42 -06:00
Behdad Esfahbod
d57ce30054 [ot-shape] Pass reference to props instead of pointer
Since cannot be nullptr.
2022-07-17 21:56:56 -06:00
Behdad Esfahbod
a972d05d7e [aat] Fix build 2022-07-17 21:42:04 -06:00
Behdad Esfahbod
a5dad50072 [aat/morx] Add test for previous commit
https://github.com/harfbuzz/harfbuzz/issues/1373
2022-07-17 21:39:41 -06:00
Behdad Esfahbod
2124ad8906 [aat/morx] Implement language-specific forms
Test on Mac with, eg.

$ hb-view /Library/Fonts/BigCaslon.ttf -u 107
vs
$ hb-view /Library/Fonts/BigCaslon.ttf -u 107 --language pl

Fixes https://github.com/harfbuzz/harfbuzz/issues/1373
2022-07-17 21:32:27 -06:00
Behdad Esfahbod
d8574b44cc [CoverageFormat2] Fix iterator to avoid infinite loop
on invalid data.

Fixes https://oss-fuzz.com/testcase-detail/5304497047470080
2022-07-17 18:44:27 -06:00
Behdad Esfahbod
b475a2ab29 [array] Adjust operator != 2022-07-17 18:44:11 -06:00
Behdad Esfahbod
9518d602f3 [atomic] Disable compiler memory barrier on MSVC
It keeps giving me internal compiler error.

https://github.com/harfbuzz/harfbuzz/issues/3728
2022-07-17 17:03:40 -06:00
Behdad Esfahbod
f0707e2348 [atomic] Add compiler memory_r_barrier
https://github.com/harfbuzz/harfbuzz/issues/3728
2022-07-17 16:47:16 -06:00
Behdad Esfahbod
f3151b6582 [ArrayOf family] Use memory barrier before accessing array
Without it, the compiler was reordering and batching the read
of array length and array[0] if the 0'th member was accessed
constantly and function was inlined.  This felt safe to the
compiler because HB_VAR_ARRAY is 1, but could be unsafe actually.
The memory barrier disallows that.

This was found by afl/honggfuzz address sanitizers.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49187
2022-07-17 16:22:29 -06:00
Behdad Esfahbod
90e40f24fe [algs] Tweak attribute(packed) usage
Allow disabling it. Also don't cast this pointer.
2022-07-17 15:01:04 -06:00
Behdad Esfahbod
af84680f23 [GSUB] Remove a reinterpret_cast 2022-07-17 12:00:04 -06:00
Behdad Esfahbod
9843f07658 [OffsetTo] Try catching nullable offsets to unbounded types
Doesn't catch all cases; if type is not fully defined at
OffsetTo time, we can't know.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
to the best we can do.
2022-07-15 16:04:40 -06:00
Behdad Esfahbod
1327d8e3df [layout-common] Reshuffle code so Feature is defined before it's used 2022-07-15 16:03:38 -06:00
Behdad Esfahbod
f7147835eb [colr] Add MIN_SIZE to Paint 2022-07-15 16:03:25 -06:00
Behdad Esfahbod
e1d2facd53 [null] Add hb_has_null_size() and hb_has_min_size() 2022-07-15 16:02:58 -06:00
Behdad Esfahbod
c8908f92d7
Merge pull request #3726 from harfbuzz/ft-bitmap
Ft bitmap
2022-07-15 15:32:58 -06:00
Behdad Esfahbod
6ed57de15c [ft] Fix negative font sizes for bitmaps 2022-07-15 15:09:28 -06:00
Behdad Esfahbod
307ee9baff [ft] Fix bitmap-only vertical metrics 2022-07-15 14:48:29 -06:00
Behdad Esfahbod
87d338eb61 [ft] Fix test 2022-07-15 14:26:47 -06:00
Khaled Hosny
e294200dac [ft] Check for FT_Get_Transform at build time 2022-07-15 21:59:33 +02:00
Behdad Esfahbod
901236f721 [ft] Implement loading (color) bitmap fonts
Fixes https://github.com/harfbuzz/harfbuzz/issues/489

Something about the vertical metrics is still off, not matching
hb-ot.  I cannot figure out what.
2022-07-15 13:35:14 -06:00
Behdad Esfahbod
3ac110560d [ft] Fix scale when font-sizes are negative 2022-07-15 12:48:11 -06:00
Behdad Esfahbod
d68507d062 [arabic] Pause after calt only if no rclt
Fixes https://github.com/harfbuzz/harfbuzz/issues/1573
2022-07-15 12:27:46 -06:00
Behdad Esfahbod
8b379ddc76 [test-iter] Add back test of OT namespace iteration 2022-07-14 16:20:04 -06:00
Behdad Esfahbod
ab21c4c283 [hb-view] Add one to row of padding 2022-07-14 16:02:10 -06:00
Behdad Esfahbod
2da36cf99a [hb-view] Use envvar HB_CHAFA=0 to disable Chafa output 2022-07-14 15:57:43 -06:00
Behdad Esfahbod
76e6feb77f [util/ansi] Enable all symbols in Chafa
Gives vastly smoother output. The previous setting was
equivalent to our in-house renderer.
2022-07-14 13:45:39 -06:00
Behdad Esfahbod
679c87ca36 [util/ansi] Fix chafa cell width/height
No idea why it was set to 10/20 instead of 8/16.
2022-07-14 13:39:14 -06:00
Behdad Esfahbod
b706be540c [mingw32] Update instructions 2022-07-14 11:03:04 -06:00
Garret Rieger
5363e40de1 [reorg] update build files. 2022-07-13 20:25:13 -06:00
Garret Rieger
d82ace5c6f [reorg] add TODO to RangeRecord. 2022-07-13 20:25:13 -06:00
Garret Rieger
c1e280ea78 [reorg] Move Coverage, RangeRecord into new namespace layout. 2022-07-13 20:25:13 -06:00
Garret Rieger
9c2518988d [repack] Don't count space isolation against round limit.
Restore max rounds to 20 but don't count space isolation against the limit. The number of iterations space isolation can make changes for is already bounded to a reasonable max (the number of lookups in the font) so no need to cap the number of iterations.
2022-07-13 20:24:59 -06:00
Behdad Esfahbod
a2f0723148 [GPOS] Adjust mark attachment on multiple substitution some more
Fixes https://github.com/harfbuzz/harfbuzz/issues/1545
2022-07-13 16:02:39 -06:00
Behdad Esfahbod
ac216972ab [subset] Add table size blowup bound
Fixes https://github.com/harfbuzz/harfbuzz/issues/3091
2022-07-13 15:32:19 -06:00
Behdad Esfahbod
4b3afafb00 [array] Use hb_swap() in reverse() 2022-07-13 15:13:07 -06:00
Behdad Esfahbod
87167acfe3
Merge pull request #3704 from harfbuzz/64k
Towards breaking the 64k in GSUB/GPOS
2022-07-13 14:58:09 -06:00
Garret Rieger
a369ab133b [repacker] Increase max_rounds when called via public api. 2022-07-13 14:01:42 -06:00
Behdad Esfahbod
4ee471922d More -Wcomma fixes
Fixes https://github.com/harfbuzz/harfbuzz/issues/3716
2022-07-13 13:59:35 -06:00
Behdad Esfahbod
c2712ff4f5 Reorder hb_ot_shaper_t members to save 8 bytes of data per shaper 2022-07-13 13:34:11 -06:00
Behdad Esfahbod
e5f0bc8f0a [set] Save a few kilobytes via type erasure of process() 2022-07-13 13:22:34 -06:00
Behdad Esfahbod
42da7da5ef Fix HB_NO_SHAPER HB_NO_OT_SHAPE build 2022-07-13 12:46:36 -06:00
Behdad Esfahbod
015aecfcdd [use-table] Port to using packtab
Saves around 9kb.
2022-07-13 12:24:46 -06:00
Behdad Esfahbod
0fcd1decb7 Fix file permissions 2022-07-13 12:17:35 -06:00
Behdad Esfahbod
7549d447ba [>64k:glyf] Implement composites for >64k
Implements https://github.com/be-fonts/boring-expansion-spec/issues/42
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
09de94788b [>64k:glyf] Hid composite glyphIndex 2022-07-12 13:42:52 -06:00
Behdad Esfahbod
df7eebf40a [>64k:layout] Fix layout of RangeRecord
https://github.com/be-fonts/boring-expansion-spec/issues/30
2022-07-12 13:42:52 -06:00