Qunxin Liu
61636d4efe
[instance] update GPOS AnchorFormat3 table
2022-09-01 09:37:00 -07:00
Qunxin Liu
b72995ff16
[instance] GDEF table: collect both varidxes and deltas
2022-09-01 09:33:02 -07:00
Behdad Esfahbod
84d33a1ed8
[glyf] Fix compiler warning
2022-08-23 13:13:13 -06:00
Qunxin Liu
ac0e22fa8e
[instance] update glyf/hmtx/vmtx tables
2022-08-22 09:29:37 -07:00
Garret Rieger
5ea3c0be8f
[repacker] Implement MarkArray::clone.
2022-08-11 22:21:28 +00:00
Behdad Esfahbod
f4f7d691af
Merge pull request #3779 from harfbuzz/split_pair_pos_2
...
[repacker] Add PairPosFormat2 table splitting in the repacker.
2022-08-09 22:23:23 -06:00
Behdad Esfahbod
a4e0fd1685
[MultipleSubst] Rewrite serialize signature as single iterator
2022-08-05 15:05:51 -06:00
Behdad Esfahbod
65d28bc5a7
[MultipleSubst] Rewrite serialize() in terms of iterators
...
Unused still, and hence untested
2022-08-05 14:56:07 -06:00
Behdad Esfahbod
b57ea3b053
Revert "[iter] Use && in uses of is_source_of"
...
This reverts commit ccbba667a9
.
2022-08-05 14:29:27 -06:00
Behdad Esfahbod
ccbba667a9
[iter] Use && in uses of is_source_of
2022-08-05 11:51:51 -06:00
Behdad Esfahbod
8fb7cc1c63
[iter] Use && in is_sink_of uses
2022-08-05 11:49:29 -06:00
Behdad Esfahbod
914542bd18
Whitespace
2022-08-04 11:40:54 -06:00
Garret Rieger
7f4b2037a5
[repacker] include size of device tables when determining PairPos2 split points.
2022-08-02 18:43:25 +00:00
Garret Rieger
58fdbd8e5d
[repacker] begin adding PairPosFormat2 splitting support.
2022-08-02 17:32:13 +00:00
Behdad Esfahbod
6549aec89d
[SingleSubstFormat1] Help avoid timeouts in closure() some more
...
For https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49712
2022-08-01 13:11:14 -06:00
Garret Rieger
f6a242b605
[repacker] begin adding PairPos splitting support.
2022-07-29 22:21:30 +00:00
Behdad Esfahbod
149b030520
Fix thinko
2022-07-29 12:41:30 -06:00
Behdad Esfahbod
f7677213d7
[SingleSubstFormat1] Don't close glyphs in degenerate cases
...
Fixes https://oss-fuzz.com/testcase-detail/5145429829877760
2022-07-29 12:00:29 -06:00
Behdad Esfahbod
e51526bf06
[CompositeGlyph] Add HB_NO_BEYOND_64K
2022-07-28 09:53:30 -06:00
Behdad Esfahbod
e2cc34e190
[subset/GPOS] Fix a fuzzer timeout test
...
Fixes https://oss-fuzz.com/testcase-detail/5234369031176192
2022-07-26 12:31:40 -06:00
Behdad Esfahbod
59b05359cd
[GSUB/GPOS] Add more buffer messages
...
Behind HB_BUFFER_MESSAGE_MORE.
https://github.com/harfbuzz/harfbuzz/pull/3495
2022-07-24 18:39:30 -06:00
Behdad Esfahbod
9eab3ac72d
[CoverageFormat2] Remove hand-written loop
...
While on a fuzzer-found test case (added) that loop was faster,
on real fonts, including NotoNastaliq in our benchmark, it was
actually slower, which intuitively I would have expected.
Still no idea why on that fuzzer case it's faster though. :(
2022-07-21 12:36:53 -06:00
Behdad Esfahbod
bbb4db90dd
[Coverage/SingleSubst] Move hand-written loop to Coverage
2022-07-21 12:34:46 -06:00
Behdad Esfahbod
7b95783efb
[Coverage] Internal rename
2022-07-21 12:18:51 -06:00
Behdad Esfahbod
afa65f2903
[Coverage] Minor type change
2022-07-21 12:17:08 -06:00
Behdad Esfahbod
b38587aa0b
[Coverage] Internal renames
2022-07-21 12:14:06 -06:00
Behdad Esfahbod
84d38df828
[Coverage] Minor use range-based loop
2022-07-21 12:12:04 -06:00
Behdad Esfahbod
b017b73ffe
[Coverage] Minor remove a couple unnecessary as_array()'s
2022-07-21 12:06:55 -06:00
Behdad Esfahbod
9e650b4e0c
[Coverage] Speedup intersect_set
2022-07-21 12:01:52 -06:00
Behdad Esfahbod
efa388074d
[subset/SingleSubsetFormat1] Use Coverage.intersect_set
2022-07-21 11:52:36 -06:00
Behdad Esfahbod
00dfbbce1c
[Coverage] Rename and templatize intersected_coverage_glyphs
2022-07-21 11:45:05 -06:00
Behdad Esfahbod
d0eb273791
[subset/GSUB/GPOS] Use more intersected_coverage_glyphs()
2022-07-21 11:24:56 -06:00
Behdad Esfahbod
450d834679
[subset/PairPosFormat1] Speed up significantly
2022-07-21 11:05:35 -06:00
Behdad Esfahbod
5d7556e184
Revert "[subst/SingleSubstFormat1] Rewrite nicer"
...
This reverts commit bababe1072
.
The hand-written code is still much faster :(.
2022-07-21 10:58:36 -06:00
Behdad Esfahbod
71ce931e6d
[PairPos] Don't compute newFormat
...
It was wrong, because it would be writing wrong values.
Test suite doesn't seem to catch any.
2022-07-21 10:41:29 -06:00
Behdad Esfahbod
02ca025443
[layout] Add large_int to Types
2022-07-21 10:30:23 -06:00
Behdad Esfahbod
bababe1072
[subst/SingleSubstFormat1] Rewrite nicer
2022-07-21 10:25:27 -06:00
Behdad Esfahbod
cf123e6a0d
[Coverage] Add get_population ()
2022-07-21 10:24:04 -06:00
Behdad Esfahbod
fa471043fc
[subset] Fix previous commit
2022-07-20 22:42:18 -06:00
Behdad Esfahbod
c4d2ef9004
[subset] Speed up subsetting of SingleSubstFormat1_3
2022-07-20 22:36:35 -06:00
Behdad Esfahbod
d01e6babe6
[subset] Speed up SingleSubstFormat1_3 closure
2022-07-20 22:17:33 -06:00
Behdad Esfahbod
aae8c74e05
[>64k:layout:SingleSubstFormat3] Fix masking
...
https://github.com/be-fonts/boring-expansion-spec/issues/31
2022-07-20 11:51:27 -06:00
Behdad Esfahbod
3c137ef041
[GPOS/CursivePos] Fix unsafe-to-break marking
...
Fixes test.
2022-07-20 11:29:30 -06:00
Behdad Esfahbod
54e9ab4a91
[GPOS/Cursive] Fix breaking of parent-child attachment
...
Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/2469
2022-07-18 18:57:14 -06:00
Behdad Esfahbod
89de8c700f
[CoverageFormat2] Another fix for broken tables
...
Fixes https://oss-fuzz.com/testcase-detail/6005342714068992
2022-07-18 13:07:29 -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
af84680f23
[GSUB] Remove a reinterpret_cast
2022-07-17 12:00:04 -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
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
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
cc83b0b8fd
[>64k:layout:MarkBasePos/MarkMarkPos/MarkLigPos] Implement format 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/40
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
4b43070e2f
[>64k:layout] Templatize MarkBasePos/MarkMarkPos/MarkLigPos
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
f0d6dda5a6
[>64k:layout:PairPos] Implement format 3
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/38
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
298ee47c55
[>64k:layout] Templatize PairPosFormat1
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e9f8010fd0
[>64k:layout:PairPos] Templatize & implement format 4
...
Implements part of https://github.com/be-fonts/boring-expansion-spec/issues/38
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
ecd8bc5a9c
[>64k:layout:LigatureSubst] Implement format 2
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/33
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
704e696ad0
[>64k:layout] Templatize LigatureSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
27d24212db
[>64k:layout:AlternateSubst] Implement format 2
...
Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/32
Subset does NOT lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
c53d3ad51e
[>64k:layout] Templatize AlternateSet
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
a58a48622a
[>64k:layout:MultipleSubst] Implement format 2
...
Implements part of https://github.com/be-fonts/boring-expansion-spec/issues/32
Subset is NOT updated to lower format.
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
684c8fcea7
[>64k:layout] Templatize MultipleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
8775e9b4a4
[>64k:layout:SingleSubst] Implement format 3/4
...
Implements https://github.com/be-fonts/boring-expansion-spec/issues/31
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
e3caf8d50a
[>64k:layout] Templatize SingleSubst
2022-07-12 13:42:52 -06:00
Behdad Esfahbod
d15041be7d
[GSUB/GPOS] Trace toplevel sanitize
2022-07-12 11:11:22 -06:00
Behdad Esfahbod
5192294f83
.
2022-07-08 14:09:04 -06:00
Behdad Esfahbod
8a107125a5
[layout] Make SubstLookup:serialize_single take iterators
2022-07-08 12:02:11 -06:00
Behdad Esfahbod
ea11029a6e
[GPOS] Split LigatureArray.hh
2022-07-08 11:58:43 -06:00
Behdad Esfahbod
68b2742fe4
[GPOS] Move code around
2022-07-07 16:11:15 -06:00
Behdad Esfahbod
6a3043a0c1
Fix tests
2022-07-07 14:51:37 -06:00
Behdad Esfahbod
0b0e3b30ce
[GPOS] Break down PairPosFormat1 into new layout
2022-07-07 14:06:44 -06:00
Kleis Auke Wolthuizen
79eb0f7486
[GSUB] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Kleis Auke Wolthuizen
3238cb744b
[GPOS] Fix build on GCC < 7
2022-07-06 14:00:16 +02:00
Behdad Esfahbod
d9ab805e61
Fix LookupFlag negation
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3703
2022-07-05 11:45:10 -06:00
Behdad Esfahbod
b0cb9a1a63
Make get_leading_bearing return bool
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3496
Part of supporting >64k glyphs correctly.
2022-07-03 15:32:32 -06:00
Behdad Esfahbod
115e1a03e7
[glyf] Relax condition for matching number of coords
2022-07-03 14:45:12 -06:00
Behdad Esfahbod
800760c5bd
[glyf] Rename get_extents functions for clarity
2022-07-03 13:21:06 -06:00
Behdad Esfahbod
ab327f93b7
[glyf] Fix another bug with scaling
...
Of advances this time.
That codepath is never exercised though, if font has HVAR table.
2022-07-03 13:17:03 -06:00
Behdad Esfahbod
f46ddeba48
[hmtx/glyf] Rename side-bearing functions for clarity
2022-07-03 13:12:49 -06:00
Behdad Esfahbod
b2d60cbd6e
[glyf] Rename advance functions for clarity
2022-07-03 12:56:48 -06:00
Behdad Esfahbod
35c00c1216
[hmtx] Rename advance functions for clarity
2022-07-03 12:54:17 -06:00
Behdad Esfahbod
6b82d4faa1
[glyf] Make an optional argument non-optional
2022-07-03 12:45:27 -06:00
Behdad Esfahbod
3ef590808f
[glyf] Internal flip a variable
2022-07-03 12:44:24 -06:00
Behdad Esfahbod
78b4f39821
[glyf] Fix confusion between scaled vs unscaled lsb
...
Was always broken.
2022-07-03 12:39:55 -06:00
Behdad Esfahbod
6665881c7d
[glyf] Change side-bearing rounding
2022-07-03 12:39:55 -06:00
Garret Rieger
900476c635
Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
2022-06-30 15:33:20 -06:00
Garret Rieger
5fdae68481
[reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
2022-06-30 15:33:20 -06:00
Garret Rieger
910a137f4e
[reorg] Fix propagate_attachment_offsets definition.
2022-06-28 18:47:50 -06:00
Garret Rieger
3fbf2dece7
[reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
2022-06-28 18:47:50 -06:00
Garret Rieger
88ef3c5a9a
[reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
2022-06-28 18:47:50 -06:00
Garret Rieger
49ddf069e0
[reorg] Move GPOS reverse_cursive_minor_offset implementation into new directory layout.
2022-06-28 18:47:50 -06:00
Garret Rieger
74f45f7c2a
[reorg] Move remaining GPOS lookup types to new directory.
2022-06-28 18:47:50 -06:00
Garret Rieger
197d9a5c99
[reorg] Move more GPOS lookups to new directory.
2022-06-28 18:47:50 -06:00
Garret Rieger
c7307ca06a
[reorg] Begin moving GPOS into the new directory layout.
2022-06-28 18:47:50 -06:00
Behdad Esfahbod
34c6c0193c
[glyf] Fix byterange check again
2022-06-27 20:26:57 -06:00
Behdad Esfahbod
20572f914c
[glyf] Move read_flags into a function
2022-06-27 20:22:09 -06:00
Behdad Esfahbod
6e72c2e3fa
[glyf] Add an assertion
2022-06-27 15:09:25 -06:00
Behdad Esfahbod
3a0e27e794
[glyf] Move comment
2022-06-27 13:07:39 -06:00
Behdad Esfahbod
d0836dee7a
[glyf] Minor typo change
2022-06-27 13:05:58 -06:00