Behdad Esfahbod
000a3c5dca
[beyond-64k/subset] Fetch lsb from glyph table if not available
...
The beyond-64k hmtx table doesn't encode LSB. If subsetting brings
the glyph under 64k (which currently is the only mode we support),
then we need to encode the LSB, which wasn't available. We need to
fetch xMin from glyf table and set it as LSB.
2023-04-20 15:53:10 -06:00
Behdad Esfahbod
1111c7578e
hb_memset
2023-04-20 15:17:23 -06:00
Behdad Esfahbod
219e739c9f
[beyond-64k/subset] Lower CompositeGlyph GID24's when possible
2023-04-20 15:13:12 -06:00
Behdad Esfahbod
a2e8ecf996
[Glyph] Minor change type of type to enum type
...
Say that thrice.
2023-04-20 14:08:23 -06:00
Garret Rieger
19e1b698c5
[subset] Fix ubsan failure.
2023-04-18 13:21:46 -06:00
Garret Rieger
647b024784
[subset] Fix fuzzer issue https://oss-fuzz.com/testcase-detail/6521393809588224
2023-04-18 13:21:46 -06:00
Behdad Esfahbod
75e6498d9a
Don't use M_PI
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/4166
Happy Pi Day!
2023-03-14 12:41:46 -06:00
Garret Rieger
663ecc01d8
[subset] don't free glyphs by range.
...
The iterator in this loop is a map iterator so glyphs are not necessarily traveresed in order.
2023-03-13 16:32:59 -06:00
Garret Rieger
3d05b96181
[subset] track which glyphs have allocated memory so we can clean up correctly.
...
Fixes https://oss-fuzz.com/testcase-detail/5388270411579392
2023-03-13 16:03:58 -06:00
Garret Rieger
28b05e1cb6
[subset] Fix memory leak in glyf subset.
...
Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6525813890875392 .
2023-03-08 17:02:04 -07:00
Garret Rieger
9286e12525
Don't subset a glyf table with an unknown format.
...
Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/4875306193518592
2023-03-08 14:51:54 -07:00
Behdad Esfahbod
cfa9541daa
[glyf] "Support" glyf version 1
2023-03-08 10:35:39 -07:00
Behdad Esfahbod
f325aba561
[VarComposites] Minor rename
2023-03-06 13:07:42 -07:00
Behdad Esfahbod
6b286cfabf
[cubic-glyf] Remove stale comment
2023-02-21 16:15:45 -07:00
Behdad Esfahbod
22b9315628
[cubic-glyf] Handle wrap-around cubic off-curves
2023-02-21 15:50:55 -07:00
Behdad Esfahbod
050f5a58fe
[cubic-glyf] Handle contour-initial cubic offcurves
2023-02-21 15:26:27 -07:00
Behdad Esfahbod
c6c1c6ddf1
Merge pull request #4107 from harfbuzz/cubic-glyf
...
[glyf] Support cubic curves
2023-02-11 09:20:51 -07:00
Behdad Esfahbod
6ddd490191
[path-builder] Comment re cubic
2023-02-10 14:24:03 -07:00
Behdad Esfahbod
91c2f098d0
[cubic-glyf] Add HB_NO_CUBIC_GLYF
2023-02-10 14:15:16 -07:00
Qunxin Liu
af1e605be2
[instancer] bug fix
...
It's possible that length of all_points equals to 4 for non-empty
glyphs: a composite glyph which contains only one child glyph that is
empty.
2023-02-10 12:51:27 -07:00
Behdad Esfahbod
1d9dafbfd5
[glyf] Support cubic curves
...
https://github.com/harfbuzz/boring-expansion-spec/issues/41
2023-02-07 22:19:45 -07:00
Behdad Esfahbod
ef2a8f722f
[VarComposite] Adjust for RESET_UNSPECIFIED_AXES semantic change
...
https://github.com/harfbuzz/boring-expansion-spec/issues/81
2023-02-06 12:04:16 -07:00
Garret Rieger
fda200658e
[subset] fix missing compiled glyph cleanup when serialization succeeds.
2023-02-02 15:25:37 -07:00
Qunxin Liu
5e86870378
[instancer] compute head/maxp values using only non-empty glyphs
2023-01-25 14:53:19 -07:00
Qunxin Liu
d15551c6f3
[instancer] update head table flagbit: allXMinIsLsb
2023-01-25 14:53:19 -07:00
Behdad Esfahbod
a4420479a8
Revert "[VarComposite] Fix skew"
...
This reverts commit 8cf7076309
.
2023-01-25 14:37:10 -07:00
Behdad Esfahbod
8cf7076309
[VarComposite] Fix skew
2023-01-25 14:35:35 -07:00
Qunxin Liu
90a98dd62a
[instancer] fix potential memory leak for compiled glyph bytes
...
Also calculate max_offsets after glyph bytes are compiled, cause byte
length of a glyph might change after compile
2023-01-25 11:37:19 -07:00
Qunxin Liu
27f72f0deb
[instancer] avoid double free for compiled glyph bytes
...
also increase the HB_GLYF_MAX_POINTS limit to 20000 cause the test file has a
.notdef glyph which is a composite glyph and has 10176 points after
get_points() call
2023-01-24 17:28:51 -07:00
Qunxin Liu
30058f489a
[instancer] trim .notdef outline data after recalc bounds
...
If outline data present, we use it to recalc bounds and then trim it
accordingly
2023-01-20 14:50:03 -08:00
Qunxin Liu
94c390d078
[instancer] update head table
2023-01-20 14:50:03 -08:00
Qunxin Liu
2ecb1c31e9
[instancer] always recalculate bounds when --instance option enabled
...
But don't recompile glyph bytes if pinned at default
2023-01-20 14:50:03 -08:00
Qunxin Liu
1f948e7fd5
[instancer] store recalculated head/maxp info in subset plan
2023-01-20 14:49:54 -08:00
Qunxin Liu
92122421c9
[instancer] update vhea/hhea tables
2023-01-20 14:48:53 -08:00
Behdad Esfahbod
d06976e68f
[glyf] Add an edge-count limit
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55246
2023-01-20 08:21:43 -07:00
Behdad Esfahbod
eed5d5efdd
[VarComposite] Implement RESET_UNSPECIFIED_AXES
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/79
2023-01-18 14:13:12 -07:00
Behdad Esfahbod
ed023f66df
Enable -Wformat-signedness
...
And fix the codebase.
2023-01-12 17:04:24 -07:00
Behdad Esfahbod
cfb672f1e5
[glyf] Revert sign of advance widths back
2023-01-12 11:59:18 -07:00
Behdad Esfahbod
65d3db375c
[subset-plan] Simplify user_axes_location allocation
2023-01-11 12:36:54 -07:00
Behdad Esfahbod
75b33cb04b
[subset-plan] Simplify hmtx_map / vmtx_map allocation
2023-01-11 12:24:35 -07:00
Behdad Esfahbod
33ce3a0d44
[subset] Minor adjust a couple types
2023-01-11 12:21:26 -07:00
Behdad Esfahbod
c8486b6301
[open-type] Add to_int to fixed types
...
To make sure we don't accidentally forget to_float().
As we did recently in COLRv1 code.
2023-01-07 14:15:17 -07:00
Behdad Esfahbod
2eacc37e08
[vector] Add internal API for exact-size allocation
...
Use it from a couple of places.
2022-12-31 12:30:31 -07:00
Behdad Esfahbod
ae208963df
Add hb-limits.hh
2022-12-26 12:30:39 -07:00
Behdad Esfahbod
f3985d9482
[paint] Fix drawing non-color glyphs
2022-12-23 13:37:59 -07:00
Matthias Clasen
c221933977
[paint] Preserve foreground information
2022-12-23 13:37:59 -07:00
Matthias Clasen
6387004cad
[paint] Simplify api
...
Drop the hb_paint_context_t struct from the API, and
only pass the font where we need it.
2022-12-23 13:37:59 -07:00
Matthias Clasen
71bd5a0dfc
[paint] Resolve colors
...
We don't need to pass the index/alpha pairs to
client callbacks, and can just resolve the colors
internally.
Update test results.
2022-12-23 13:37:59 -07:00
Matthias Clasen
9be01b6bff
[paint] Pass hb_paint_context_t along
...
Replace the font argument with a hb_paint_context_t
that carries the font, the palette index and the
foreground color.
The hb_font_paint_glyph() api now takes the palette
index and the foreground color as extra arguments.
Update all callers and regenerate test results.
2022-12-23 13:37:59 -07:00
Matthias Clasen
97224f3b63
[paint] Pass font to all callbacks
...
This will lead to easier implementations.
At the same time, we change the push_clip_glyph
callback to use the font as-is, no unscaling needed.
Update all callers and expected test results.
2022-12-23 13:37:59 -07:00