|
4fe69bc4
|
2022-05-05T10:19:16
|
|
[subset] Use del_range in _remove_invalid_gids
|
|
2a42edcc
|
2022-05-04T17:06:18
|
|
[subset] Cosmetic; use set bulk array population instead of for loop
|
|
43938ecd
|
2022-05-04T16:59:28
|
|
[subset] Remove outdated comment
I tried something like that. It was slower because of the allocations.
|
|
50db78ba
|
2022-05-04T15:48:18
|
|
[subset] In cmap planning, remove a qsort()
|
|
052812b6
|
2022-05-04T15:38:30
|
|
Merge pull request #3561 from googlefonts/cmap_opt
[subset] Further cmap subsetting speed optimizations
|
|
7cb36e42
|
2022-05-04T21:22:26
|
|
[subset] Re-introduce size threshold in choosing unicode collection method.
Threshold is needed since the unicodes set might be an inverted set.
|
|
42c54eba
|
2022-05-04T20:21:43
|
|
[subset] Presize unicode to gid list to unicodes + glyphs size.
|
|
7c7c01d2
|
2022-05-03T22:40:56
|
|
[subset] Remove switch to alternate unicode collection at large subset sizes.
Benchmarks show that the first path is always faster even at large subset sizes:
BM_subset_codepoints/subset_roboto/10_median +0.0324 +0.0325 0 0 0 0
BM_subset_codepoints/subset_roboto/64_median +0.0253 +0.0255 0 1 0 1
BM_subset_codepoints/subset_roboto/512_median +0.0126 +0.0128 1 1 1 1
BM_subset_codepoints/subset_roboto/4000_median +0.0500 +0.0491 6 7 6 7
BM_subset_codepoints/subset_amiri/10_median +0.0338 +0.0332 1 1 1 1
BM_subset_codepoints/subset_amiri/64_median +0.0238 +0.0234 1 1 1 1
BM_subset_codepoints/subset_amiri/512_median +0.0066 +0.0063 8 8 8 8
BM_subset_codepoints/subset_amiri/4000_median -0.0011 -0.0012 13 13 13 13
BM_subset_codepoints/subset_noto_nastaliq_urdu/10_median +0.0226 +0.0226 0 0 0 0
BM_subset_codepoints/subset_noto_nastaliq_urdu/64_median +0.0047 +0.0044 20 20 20 20
BM_subset_codepoints/subset_noto_nastaliq_urdu/512_median +0.0022 +0.0021 165 166 165 166
BM_subset_codepoints/subset_noto_nastaliq_urdu/1000_median -0.0021 -0.0023 166 166 166 165
BM_subset_codepoints/subset_noto_devangari/10_median +0.0054 +0.0054 0 0 0 0
BM_subset_codepoints/subset_noto_devangari/64_median +0.0024 +0.0019 0 0 0 0
BM_subset_codepoints/subset_noto_devangari/512_median +0.0089 +0.0090 5 5 5 5
BM_subset_codepoints/subset_noto_devangari/1000_median -0.0028 -0.0019 5 5 5 5
BM_subset_codepoints/subset_mplus1p/10_median +0.0001 +0.0002 0 0 0 0
BM_subset_codepoints/subset_mplus1p/64_median +0.0073 +0.0075 1 1 1 1
BM_subset_codepoints/subset_mplus1p/512_median +0.0034 +0.0034 1 1 1 1
BM_subset_codepoints/subset_mplus1p/4096_median -0.1248 -0.1248 7 6 7 6
BM_subset_codepoints/subset_mplus1p/10000_median -0.0885 -0.0885 13 12 13 12
BM_subset_codepoints/subset_notocjk/10_median +0.0031 +0.0032 2 2 2 2
BM_subset_codepoints/subset_notocjk/64_median -0.0010 -0.0010 2 2 2 2
BM_subset_codepoints/subset_notocjk/512_median -0.0023 -0.0023 9 9 9 9
BM_subset_codepoints/subset_notocjk/4096_median -0.1725 -0.1726 28 23 28 23
BM_subset_codepoints/subset_notocjk/32768_median -0.0277 -0.0287 140 137 140 136
BM_subset_codepoints/subset_notocjk/100000_median -0.0929 -0.0926 162 147 162 147
|
|
f0c04114
|
2022-05-03T22:02:59
|
|
[subset] Embed unicode to gid list vector in subset plan.
|
|
15fa8afb
|
2022-05-02T16:46:41
|
|
Add fast-path for big-endian 32-bit byteswap
Speeds up cmap format-12 decoding by some 40% as measured by
the newly added test in perf/benchmark-font!
|
|
3fff2e91
|
2022-05-02T16:31:59
|
|
[perf/benchmark-font] Cosmetic
|
|
307d2d8b
|
2022-05-02T16:30:22
|
|
[cmap] Sprinkle some 'unlikely's
|
|
85ec5cbc
|
2022-05-02T22:29:43
|
|
[subset] In _populate_unicodes_to_retain populate unicodes in order.
Allows the set insert to take advantage of page lookup cache.
|
|
088133d9
|
2022-05-02T21:29:16
|
|
[subset] cache cp to new gid list in subset plan.
This avoids having to recompute the ordered list multiple times during cmap generation.
|
|
6922a256
|
2022-04-29T23:30:32
|
|
[subset] Change serialize_rangeoffset_glyid back to using iterator.
|
|
c66fd50c
|
2022-04-29T23:18:53
|
|
[subset] in cmap4 serialization save cp to gid iter to memory.
Iterator accesses are slow and it's iterated multiple times.
|
|
17b98563
|
2022-04-29T22:49:02
|
|
[subset] In cmap4 serialization reduce unnessecary calls into the iterator.
Gives ~20% speedup for large subsets.
|
|
5e241094
|
2022-04-29T22:44:43
|
|
[subset] In unicodes cache cleanup if set insert fails.
|
|
a424a92c
|
2022-04-29T22:14:03
|
|
[subset] s/void */intptr_t.
|
|
aad67f56
|
2022-04-29T22:01:06
|
|
[subset] cache results of collect_unicodes.
|
|
b4236b7d
|
2022-04-29T19:21:13
|
|
[subset] Optimize Cmap4 collect_unicodes.
Use set add_range() instead of individual add() calls.
|
|
067225a8
|
2022-04-29T13:04:36
|
|
[set] Optimize const page_for() using last_page_lookup caching
Similar to previous commit.
This speeds up SetLookup benchmark by 50%, but that's because that
lookup always hits the same page...
|
|
c283e41c
|
2022-04-29T12:45:48
|
|
[set] Optimize non-const page_for() using last_page_lookup caching
This speeds up SetOrderedInsert tests by 15 to 40 percent, and the
subset_mplus1p benchmarks by 9 to 27 percent.
|
|
d8292b84
|
2022-04-27T12:38:35
|
|
[CFF] Fix parsing of empty Index
https://github.com/harfbuzz/harfbuzz/issues/3545#issuecomment-1111047941
|
|
6454cec0
|
2022-04-24T11:10:17
|
|
[USE] Classify U+10A38 as CONS_MOD_BELOW
|
|
f7aee78e
|
2022-04-24T05:47:57
|
|
4.2.1
|
|
6695bf05
|
2022-04-22T13:48:41
|
|
[gsubgpos] Remove wrong condition in Context application
Fixes https://github.com/harfbuzz/harfbuzz/issues/3545
|
|
8575a8f5
|
2022-04-21T11:14:09
|
|
Add _hb_codepoint_is_regional_indicator()
|
|
c1ee7d28
|
2022-04-20T13:38:05
|
|
Typo
Co-authored-by: Khaled Hosny <khaled@aliftype.com>
|
|
4d48fae4
|
2022-04-20T11:35:19
|
|
Enforce Regional_Indicators native direction to LTR
And undo the morx direction reversal change introduced in
https://github.com/harfbuzz/harfbuzz/pull/3315
23159084b43c1ce429d9e98035bf845919fd8a89
This fixes original bug https://github.com/harfbuzz/harfbuzz/issues/3314
And the reversion in morx code fixes regressions:
https://github.com/harfbuzz/harfbuzz/issues/3528
https://github.com/harfbuzz/harfbuzz/issues/3535
Supersedes:
https://github.com/harfbuzz/harfbuzz/pull/3529
|
|
a85461b9
|
2022-04-20T12:13:16
|
|
Add link to Context LookupFlag discussion
https://github.com/harfbuzz/harfbuzz/discussions/3538
|
|
9e59c401
|
2022-04-20T16:56:34
|
|
[myanmar] Reword confusing comment about masks
|
|
903cf8cf
|
2022-04-13T15:31:51
|
|
[check-static-inits] Unbreak test
|
|
ec925ece
|
2022-04-13T11:51:48
|
|
[khmer] Reinstate a pause after basic features
This was removed as part of 044d7a06db552e1564b8575f4d23798f009d9dde,
which caused the regression. Just adding a pause fixes the shaping.
Debugged by just tracing the good/bad shaping and observing the
lookup orders intermingling in the bad shaping.
Test:
hb-shape LeelawUI.ttf --unicodes U+1780,U+17D2,U+179A,U+17BB
Fixes https://github.com/harfbuzz/harfbuzz/issues/3531
|
|
88bb746b
|
2022-04-01T02:18:37
|
|
[blob] Return nullptr from create_from_file_or_fail
Fix a couple of cases where it would return empty blob, possibly
missed in bdfed8f113431a2156e13d59a4b21e19feb7efd9.
|
|
b179d357
|
2022-03-30T12:59:52
|
|
[main] Fix unused-variable warnings
|
|
9d5730b9
|
2022-03-30T15:08:34
|
|
4.2.0
|
|
044d7a06
|
2022-03-28T12:38:56
|
|
[indic-like] Add per-lookup per-syllable flag
This allows mix-and-matching per-syllable and other lookups.
In fact, removes the clear-syllables call completely.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3513
|
|
61486746
|
2022-03-28T15:57:07
|
|
Revert "[indic] Clear syllables before presentation features"
This reverts commit 90f09b1e877dc6edf63fc4ac2b397ef4e5c92083.
This regressed Indic shaping. See:
https://github.com/harfbuzz/harfbuzz/issues/3513
|
|
e8f3397f
|
2022-03-28T12:07:05
|
|
[matcher] Simplify syllable initialization
|
|
94f5c630
|
2022-03-28T11:25:44
|
|
[aat] Remove morx deleted-glyphs before GPOS processing
Fixes new Apple Color Emoji glyphs sequences rendering.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3512
|
|
0dcbdbde
|
2022-03-26T20:56:50
|
|
[indic] Categorize U+0D04 as Consonant_Placeholder
|
|
a665e29e
|
2022-03-23T17:30:25
|
|
[use] Avoid O(n^2) in the machine
Fixes https://github.com/harfbuzz/harfbuzz/issues/3502
|
|
ccd9161b
|
2022-03-24T13:10:48
|
|
[apply-lookup] Try to fix the logic for contextual lookups
Fixes https://github.com/harfbuzz/harfbuzz/issues/1611
Notably, this fixes Myles's AdditionFont:
https://litherum.blogspot.com/2019/03/addition-font.html
Test with AdditionFont, eg.:
$ util/hb-view AdditionFont.otf =1112112+1113134=
|
|
fa15fc44
|
2022-03-25T15:00:11
|
|
[subset] Require exact harfbuzz version in .pc file
Fixes https://github.com/harfbuzz/harfbuzz/issues/1446
|
|
b619b05f
|
2022-03-25T14:56:55
|
|
[subset] Adjust name in .pc file
|
|
12290786
|
2022-03-25T22:41:25
|
|
[set] Fix annotation
|
|
3a78cf92
|
2022-03-25T12:56:44
|
|
[gvar] Fix decoding of private vs shared points
Fixes https://github.com/harfbuzz/harfbuzz/issues/3506
|
|
a02fb4a0
|
2022-03-25T12:56:19
|
|
[glyf] Don't bail rendering glyf even if gvar failed
Part of https://github.com/harfbuzz/harfbuzz/issues/3506
|
|
0a388785
|
2022-03-25T09:42:36
|
|
[set] Minor touch-up on the previous commit
|
|
01829882
|
2022-03-25T08:36:44
|
|
[set] Add call to export set contents to an array. (#3500)
[set] Add hb_set_next_many.
|
|
a55a4244
|
2022-03-24T20:16:41
|
|
Meson build writes to the source directory (issue #3507 ) (#3508)
Don't write to source directory if files did not change
Remove writes to the source directory which cause a meson build failure
if the source directory is read-only.
https://github.com/harfbuzz/harfbuzz/pull/3508
|
|
bf2a845a
|
2022-03-24T13:09:53
|
|
[ot-layout] Comment
|
|
a792e16e
|
2022-03-24T13:08:51
|
|
[ot-layout] Change max nesting level of lookups from 6 to 64
|
|
444c2375
|
2022-03-23T16:49:13
|
|
[reorg] Use relative includes for hb-ot-layout-gsubgpos.hh
|
|
b342adeb
|
2022-03-23T16:28:22
|
|
[reorg] Move GSUB into OT::Layout::GSUB namespace.
|
|
a9910e25
|
2022-03-23T16:09:41
|
|
[reorg] Move SubstLookup and GSUB into the new layout.
|
|
90af2143
|
2022-03-23T15:28:29
|
|
[reorg] Move ReverseChainSingleSubst to new layout.
|
|
403feb38
|
2022-03-23T15:19:04
|
|
[reorg] Move LigatureSubst to new layout.
|
|
6a369389
|
2022-03-23T15:04:11
|
|
[reorg] Move AlternateSubst to new layout.
|
|
dea0681d
|
2022-03-23T14:48:58
|
|
[reorg] Move MultipleSubst into new layout.
|
|
7243bf3e
|
2022-01-26T08:26:50
|
|
[reorg] Use relative include
|
|
c180f937
|
2022-01-26T08:22:40
|
|
[reorg] Move sanitize/dispatch and size macros to top
|
|
f577d02f
|
2022-01-20T14:39:48
|
|
[reorg] Fix check-* scripts to work with sources files in directories.
|
|
3ef180db
|
2022-01-13T15:22:55
|
|
[reorg] Move SingleSubst opentype fields to top of the classes.
|
|
7dfd9e70
|
2022-01-13T14:17:51
|
|
[reorganization] WIP move single substitution into separate files.
|
|
c36844d6
|
2022-03-23T07:20:59
|
|
4.1.0
|
|
d35c73cd
|
2022-03-22T10:20:28
|
|
[buffer] Whitespace
|
|
1449498e
|
2022-03-21T21:40:07
|
|
[ot-font] Vertically center glyph in vertical writing fallback
Fixes https://github.com/harfbuzz/harfbuzz/issues/537
|
|
bf03d7e9
|
2022-03-21T21:27:31
|
|
[ot-font] Use ascent+descent for fallback vertical advance
This matches what FreeType does.
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
|
|
df42d28d
|
2022-03-21T21:17:15
|
|
[hmtx] Change default advance for horizontal direction to upem/2 again
|
|
6d0e67de
|
2022-03-21T21:07:11
|
|
[ot-font] Only use vmtx side-bearing if table exists
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
|
|
f41945e3
|
2022-03-21T18:24:30
|
|
[cmap] In collect_unicodes() of format 12/13, limit to max Unicode
Fixes fuzzer timeout:
https://oss-fuzz.com/testcase-detail/5062368881672192
|
|
03085132
|
2022-03-21T18:06:33
|
|
[buffer] Fix out-buffer under memory-alloc failure
This was broken in July refactoring of the buffer, and exposed to
ReverseChainSingleSubstFormat1 in 3807061d634b60bd6235d6e1d8c47a034377f924
Fixes:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38800
https://bugs.chromium.org/p/chromium/issues/detail?id=1303552
|
|
116cc692
|
2022-03-22T00:11:26
|
|
[set] Fix documentation
|
|
90f09b1e
|
2022-03-21T10:24:23
|
|
[indic] Clear syllables before presentation features
Fixes https://github.com/harfbuzz/harfbuzz/issues/3488
|
|
4289684c
|
2022-03-21T15:37:05
|
|
[set] Fix-up previous commits
|
|
1176620b
|
2022-03-21T14:31:47
|
|
Move fn, fix doc.
|
|
7d802994
|
2022-03-21T13:55:34
|
|
Remove null checks.
|
|
ef588ea9
|
2022-03-21T13:29:22
|
|
Add option to insert a sorted arrays of values to sets.
|
|
7a1e79c3
|
2022-03-21T13:18:04
|
|
Fix typo.
|
|
4ee00f94
|
2022-03-21T13:16:28
|
|
Use bit shifting instead of multiplying and dividing.
|
|
3125f5ae
|
2022-03-21T13:12:14
|
|
Add log base 2 versions of constants.
|
|
1ffe637a
|
2022-03-21T10:37:42
|
|
[coretext] Remove dead code
Fixes https://github.com/harfbuzz/harfbuzz/issues/3484
|
|
7bdc20ec
|
2022-03-19T17:47:04
|
|
restores unintended addition in 43be5ba
restores two lines in restore in _hb_allocate_lig_id function that were unintentionally deleted in 43be5ba
|
|
7cb002cb
|
2022-03-14T11:40:35
|
|
[subset] bug fix in prune_langsys
we should not cache visited langsys cause 2 different Record<Langsys>
could have different Tag while pointing to the same Langsys, a langsys
is redundant in Record<Langsys> A does not mean it's redundant in Record
B. Same thing for visited_script.
Also adding the number of features in the LangSys's feature list to the
visited langsys count so it's more accurate.
Plus some improvement in langsys compare()
|
|
cad2fe8e
|
2022-03-15T10:49:29
|
|
[baseline] Fix HB_NO_METRICS build
Fixes https://github.com/harfbuzz/harfbuzz/issues/3482
|
|
a8a89b80
|
2022-03-15T10:48:03
|
|
[layout] Whitespace
|
|
21f5ef56
|
2022-03-15T10:45:50
|
|
[metrics] Simplify x-height fallback
|
|
6bf8f0a3
|
2022-03-15T10:44:41
|
|
[baseline] Use ot-metrics fallback API
|
|
965cf1d6
|
2022-03-14T12:48:18
|
|
Make load_num_glyphs_from_loca conditional on HB_NO_BORING_EXPANSION
Fixes build errors complaining about this function being unused.
|
|
49fb8f90
|
2022-03-13T15:01:11
|
|
[USE] Treat visible viramas like dependent vowels
|
|
1f79ba94
|
2022-03-11T20:19:04
|
|
4.0.1
|
|
a35757c6
|
2022-02-02T10:30:34
|
|
[repacker] expose hb_subset_repack() API, hb_object_t and hb_link_t structs
|
|
e7ab42b2
|
2022-03-10T09:05:43
|
|
[layout] Fix handling of baseline variations
For BASE table format 1.1, the handling of design
space vs user space coordinates was inconsistent.
We were applying design -> user transformation
twice for the deltas, leading to wrong baseline
values.
Patch by Ebrahim Byagowi <ebrahim@gnu.org>
Fixes: #3476
|
|
e5707a44
|
2022-03-02T21:30:22
|
|
Update IANA Language Subtag Registry to 2022-03-02
|
|
13bb46cf
|
2022-03-06T15:35:31
|
|
[USE] Remove obsolete overrides
|
|
c33468d4
|
2022-03-06T12:26:37
|
|
[USE] Treat all gc=Cn as independent clusters
|
|
e497a8f1
|
2022-03-06T11:36:43
|
|
[USE] Remove obsolete symbol/punctuation overrides
|
|
854219e0
|
2022-03-05T10:46:31
|
|
[USE] Simplify `not_ccs_default_ignorable`
|