Commit Graph

12240 Commits

Author SHA1 Message Date
Behdad Esfahbod ca19091549 [hhea/vhea] Add MVAR during instancing 2023-01-11 15:36:22 -07:00
Behdad Esfahbod f455000138 [post] Add MVAR to subsetting 2023-01-11 15:36:22 -07:00
Behdad Esfahbod 9dc3e785aa [instancer] Add MVAR values to OS/2 2023-01-11 15:36:22 -07:00
Behdad Esfahbod e78a68bf46 [subset-input] Don't RETAIN_GIDs in keep-everything 2023-01-11 15:34:11 -07:00
Behdad Esfahbod d675f0d4f2
Merge pull request #4023 from harfbuzz/aat-features2
[aat] Support feature ranges
2023-01-11 15:06:31 -07:00
Behdad Esfahbod 1135f0b8cc Another try at fixing arm build 2023-01-11 13:45:16 -07:00
Behdad Esfahbod 527e2d7ce2 [gobject] Add another value type hb_ot_var_axis_info 2023-01-11 13:41:44 -07:00
Behdad Esfahbod 8206569d63 [map] Remove hashmap create/destroy/vtable
Unused now.
2023-01-11 13:24:50 -07:00
Behdad Esfahbod 1426f1c8ea [subset-plan] Simplify name_table_overrides allocation 2023-01-11 13:23:34 -07:00
Behdad Esfahbod 5cab4a55d2 [subset-input] Simplify axes_location allocation 2023-01-11 13:21:57 -07:00
Behdad Esfahbod df721e0562 [gobject] Add draw/paint value types 2023-01-11 12:50:52 -07:00
Behdad Esfahbod 41352c08b8 [hmtx] Fix types 2023-01-11 12:42:14 -07:00
Behdad Esfahbod 4e7c803969 [subset-plan] Simplify name_table_overrides allocation 2023-01-11 12:38:26 -07:00
Behdad Esfahbod 65d3db375c [subset-plan] Simplify user_axes_location allocation 2023-01-11 12:36:54 -07:00
Behdad Esfahbod 60418fcb95 [subset-plan] Simplify axes_index_map allocation 2023-01-11 12:33:25 -07:00
Behdad Esfahbod 8265277c2e [subset-plan] Simplify axes_location allocation 2023-01-11 12:32:04 -07:00
Behdad Esfahbod d54902c659 [subset-plan] Simplify axes_old_index_tag_map allocation 2023-01-11 12:29:25 -07:00
Behdad Esfahbod 9f4c8fb700 [subset-plan] Minor move code around 2023-01-11 12:28:18 -07:00
Behdad Esfahbod a34a204bf7 [subset-plan] Simplify unicodes allocation 2023-01-11 12:27:19 -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 67eefebf8d [subset-plan] Simplify user_axes_location destruction 2023-01-11 11:44:09 -07:00
Behdad Esfahbod b2007abff7 [subset-plan] Simplify glyph_map_gsub allocation 2023-01-11 11:27:22 -07:00
Behdad Esfahbod bd4b040e7f [shape-plan] Simplify glyphs_requested allocation 2023-01-11 11:23:48 -07:00
Behdad Esfahbod c51d33685d [subset-plan] Simplify no_subset_tables allocation 2023-01-11 11:22:22 -07:00
Behdad Esfahbod 999be72135 [subset-plan] Simplify drop_tables allocation 2023-01-11 11:21:17 -07:00
Behdad Esfahbod b33eb9ecfc [subset-plan] Simplify layout_variation_idx_delta_map allocation 2023-01-11 11:20:04 -07:00
Behdad Esfahbod 9c45d98f73 [subset-plan] Simplify colr_palettes allocation 2023-01-11 11:16:18 -07:00
Behdad Esfahbod b74a265196 [subset-plan] Simplify colrv1_layers allocation 2023-01-11 11:15:15 -07:00
Behdad Esfahbod 89905368ca [subset-plan] Simplify sanitized_table_cache allocation 2023-01-11 11:13:49 -07:00
Behdad Esfahbod 9e24873c1e [subset-plan] Simplify gsub/gpos_feature_substitutes_map allocation 2023-01-11 11:12:07 -07:00
Behdad Esfahbod 01208c7c02 [subset-plan] Simplify gsub/gpos_feature_record_cond_idx_map allocation 2023-01-11 11:10:28 -07:00
Behdad Esfahbod 06039db080 [subset-plan] Simplify gsub_langsys and gpos_langsys allocation 2023-01-11 11:07:31 -07:00
Behdad Esfahbod 5fc91de2c0 [shape-plan] Simplify _glyphset_colred allocation 2023-01-11 11:04:17 -07:00
Behdad Esfahbod efafe7aa3b [subset-plan] Simplify _glyphset_mathed allocation 2023-01-11 11:03:19 -07:00
Behdad Esfahbod 113a1700df [subset-plan] Simplify _glyphset_gsub allocation 2023-01-11 11:01:11 -07:00
Behdad Esfahbod 4a9268f280 [subset-plan] Simplify _glyphset allocation 2023-01-11 11:00:02 -07:00
Behdad Esfahbod 1a00ab69ec [subset-plan] Simplify gsub_lookups and gpos_lookups allocation 2023-01-11 10:56:16 -07:00
Behdad Esfahbod 1a716bad03 [subset-plan] Simplify gsub_features and gpos_features allocation 2023-01-11 10:51:48 -07:00
Behdad Esfahbod 78aa9f1e9c [subset-plan] Simplify name_ids allocation 2023-01-11 10:47:40 -07:00
Behdad Esfahbod cfb48f91da [subset-plan] Simplify name_languages allocation 2023-01-11 10:45:26 -07:00
Behdad Esfahbod e4ca0fe436 [subset-plan] Simplify layout_features allocation 2023-01-11 10:43:01 -07:00
Behdad Esfahbod 4de66eec57 [subset-plan] Simplify layout_scripts allocation 2023-01-11 10:40:54 -07:00
Behdad Esfahbod 5f51dd276b [ft-colr] Minor use false instead of 0 2023-01-10 22:57:07 -07:00
Behdad Esfahbod f84a8e3289 [ft-colr] Comment 2023-01-10 22:43:42 -07:00
Behdad Esfahbod bf16dad55a [paint-extents] Return unbounded on memory allocation failure 2023-01-10 17:29:25 -07:00
Behdad Esfahbod 3e1c524e64 [bit-page] Comment 2023-01-10 17:18:34 -07:00
Behdad Esfahbod 626def03f8 [hmtx] Remove TODO items 2023-01-10 17:12:50 -07:00
Behdad Esfahbod adf0bd6dcd [test-map] Add a test 2023-01-10 17:05:19 -07:00
Behdad Esfahbod 4fd0354067 [font] Docs 2023-01-10 14:32:08 -07:00
Behdad Esfahbod bfd7548e24 [aat] Optimize feature-range application 2023-01-10 13:31:58 -07:00
Behdad Esfahbod dd42939e31 [aat] Reduce unsafe_to_concat calls 2023-01-10 13:23:19 -07:00
Behdad Esfahbod fecce62a45 [ft] Docs 2023-01-10 13:13:43 -07:00
Behdad Esfahbod cb509d9c89 [face] Docs 2023-01-10 13:11:48 -07:00
Behdad Esfahbod 8a2efbd8a1 [upem] More docs 2023-01-10 13:10:36 -07:00
Behdad Esfahbod ccffce58cc [scale] More docs 2023-01-10 13:09:30 -07:00
Behdad Esfahbod c4580d8670 [scale] More docs 2023-01-10 12:56:02 -07:00
Behdad Esfahbod f0e695a3a9 [scale] Comment 2023-01-10 12:55:17 -07:00
Behdad Esfahbod 8c47580ac8 [scale] Document 2023-01-10 12:53:54 -07:00
Behdad Esfahbod 8b17c6ca30 [aat] Comment 2023-01-10 12:17:38 -07:00
Behdad Esfahbod 0e11d317ee [aat] Optimize feature application 2023-01-10 12:16:04 -07:00
Behdad Esfahbod a70543daf3 [aat] Always unsafe-to-concat in state machine 2023-01-10 11:49:48 -07:00
Behdad Esfahbod 62383315fa [aat] Try fix leak on memory allocation failure 2023-01-10 11:29:04 -07:00
Behdad Esfahbod e122fe2acf [aat] Adjust last range
Otherwise a user cluster value of -1 would have tripped us.
2023-01-10 11:08:21 -07:00
Behdad Esfahbod e28c158c35 [aat] Run subtable across ranges if flags match 2023-01-10 11:08:21 -07:00
Behdad Esfahbod 2c9c49fd32 [aat] Support ranges in NonContextual subtable as well 2023-01-10 11:08:21 -07:00
Behdad Esfahbod c08308a83c [aat] Always generate a feature range 2023-01-10 11:08:21 -07:00
Behdad Esfahbod db4c874758 Revert "Revert "[aat] Support feature ranges""
This reverts commit 6a7a38521f.
2023-01-10 11:08:21 -07:00
Behdad Esfahbod 0728098e45 [Coverage] Speed up subset for too-large Coverage tables
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54980
2023-01-10 10:19:00 -07:00
Behdad Esfahbod 6a7a38521f Revert "[aat] Support feature ranges"
This reverts commit 1b7994cb3a.

Broke Zapfino with partial ligature disabling. Debugging.
2023-01-09 21:29:39 -07:00
Behdad Esfahbod adfd5dd7a9 Fix TINY build 2023-01-09 21:18:12 -07:00
Behdad Esfahbod 1b7994cb3a [aat] Support feature ranges
The hard way...

A bit uglier than I liked it to be, but is proper at least.

Fixes https://github.com/harfbuzz/harfbuzz/issues/4020
2023-01-09 21:16:20 -07:00
Behdad Esfahbod 622a686952 Revert "Revert "Revert "[aat] Allow disable feature ranges"""
This reverts commit 5202053c2c.
2023-01-09 21:16:20 -07:00
Behdad Esfahbod 5202053c2c Revert "Revert "[aat] Allow disable feature ranges""
This reverts commit 82b3e8af69.

Another try.

Fixes https://github.com/harfbuzz/harfbuzz/issues/4020
2023-01-09 17:59:09 -07:00
Behdad Esfahbod 82b3e8af69 Revert "[aat] Allow disable feature ranges"
This reverts commit 24a4d397ba.

This was broken.
2023-01-09 17:28:52 -07:00
Behdad Esfahbod 24a4d397ba [aat] Allow disable feature ranges
Fixes https://github.com/harfbuzz/harfbuzz/issues/4020

This is a hack.

To implement this properly we need to treat runs with different features
as independent runs for running the state machine, as the subtable flags
might be different. That would be a significant change to our internal
implementation.
2023-01-09 17:26:48 -07:00
Behdad Esfahbod 3ff713ab80 [coretext] Remove unused variable 2023-01-09 14:19:25 -07:00
Behdad Esfahbod 4148487556 [ft] Comment 2023-01-09 13:47:59 -07:00
Behdad Esfahbod d2aa2397ba Optimize non-slant extents code 2023-01-09 13:44:44 -07:00
Behdad Esfahbod 73dab7f784 [ft] Fix slanting code 2023-01-09 13:44:44 -07:00
Behdad Esfahbod 0275151490 [paint] Align deptch/edge count conditions across two backends 2023-01-09 12:27:09 -07:00
Behdad Esfahbod 839f4b6494 [ft] Fix slanting clip box 2023-01-09 12:01:46 -07:00
Behdad Esfahbod 30adbc22d9 hb-font: Fix scale_glyph_extents() again
And better fix this time.
2023-01-09 11:54:44 -07:00
Behdad Esfahbod 6c1a4bed4a Better rounding clip boxes 2023-01-09 11:37:39 -07:00
Behdad Esfahbod f46dcf147b [paint/COLR] Fix clip transform
Sigh. So complicated.
2023-01-08 14:35:42 -07:00
Behdad Esfahbod f283d4d366 [paint] Try to adjust both renderers to use same clip order 2023-01-08 12:42:34 -07:00
Behdad Esfahbod 5d94eb61b8 [hb-cairo] Fix hb_cairo_glyphs_from_buffer() when utf8 missing
Fixes https://github.com/harfbuzz/harfbuzz/issues/4016
2023-01-08 11:56:01 -07:00
Behdad Esfahbod 5bd6fc1ace Comment 2023-01-07 16:32:50 -07:00
Behdad Esfahbod 432afa9dff [paint] Fix paint_extents usage
It was broken all this time :(.

The two backends do this slightly differently...
2023-01-07 16:25:30 -07:00
Behdad Esfahbod a63d329261 [paint-extents] Simplify transform_extents 2023-01-07 16:05:24 -07:00
Behdad Esfahbod e062f98260 [paint-extents] Fix transform_extents
Ouch!
2023-01-07 16:02:21 -07:00
Behdad Esfahbod 823a9b18d9 [cairo] Return COMPOSITE mode CLEAR for unknown values
As per the spec.
2023-01-07 14:50:30 -07:00
Behdad Esfahbod 65c3cde5da [COLRv1] Fix scale variation 2023-01-07 14:29:18 -07:00
Behdad Esfahbod 004cdc10f8 [open-type] More tweaks to fixed types
Add set_int().
2023-01-07 14:27:15 -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 dfd9bf8a50 [COLRv1] Fix a couple of missing to_float() calls
Ouch!
2023-01-07 14:05:02 -07:00
Behdad Esfahbod d045de78c1 [paint] Optimize PAINT_COMPOSITE
At the start of each paint call the current group is clear.
So we don't need to start a new group for the backdrop paint.

A paint composite really needs one group push, not two.
2023-01-07 13:56:43 -07:00
Behdad Esfahbod 5ea5aacda9 [ft-colr] Adjust for FreeType master color-stop change
Part of https://github.com/harfbuzz/harfbuzz/issues/4013
2023-01-07 13:25:11 -07:00
Qunxin Liu 1eb5445e75 [subset] Fix issue in hb_subset_input_override_name_table()
If a nameRecord with provided name_id/platform_id/encoding_id/lang_id
is not retained after subsetting, create it and insert it to
the name table. So we need to check against retained name_records
rather than name_record in the original name table.
2023-01-06 19:17:14 -07:00
Khaled Hosny 02948263f9 [subset] Document that CFF2 instancing is now supported 2023-01-06 13:58:29 -07:00
Behdad Esfahbod 82c863a50b Whitespace 2023-01-06 12:51:58 -07:00
Behdad Esfahbod 76879c5763 [subset-cff] Minor hide num_coords again 2023-01-06 11:47:04 -07:00
Behdad Esfahbod 576b36a31b [cff2] Undo rounding change in draw() codepath 2023-01-06 11:40:21 -07:00
Behdad Esfahbod 4867e0b192 [subset-cff2] Faster instancing
Instantiate blends during parsing. Dedups code as well.
2023-01-06 11:39:13 -07:00
Behdad Esfahbod 3757baab2c [subset-cff2] Better condition
Previous condition wasn't working for dropping axes.
2023-01-06 11:23:37 -07:00
Behdad Esfahbod acc6c13f05 [subset-cff] Round numbers when instancing 2023-01-06 11:20:41 -07:00
Behdad Esfahbod 2f174f23c3 Rename 2023-01-06 11:11:14 -07:00
Behdad Esfahbod a59116cd8f Oops 2023-01-06 11:09:09 -07:00
Behdad Esfahbod c632a164b9 [subset/cff] Support instancing 2023-01-06 11:01:25 -07:00
Behdad Esfahbod 5153218b41 [set] Add hb_set_is_inverted() 2023-01-05 16:26:41 -07:00
Behdad Esfahbod e8ac0ef2fd [face] Minor rename a variable 2023-01-05 16:20:59 -07:00
Behdad Esfahbod 14ff747024 [set] Add tests for inverted set range iteration 2023-01-05 16:20:59 -07:00
Matthias Clasen 381ac2fd78 docs: Fix a typo 2023-01-05 15:55:57 -07:00
Behdad Esfahbod 2764a61691 Revert "[gsubgpos] Use swap instead of move"
This reverts commit 8a17cc4ecf.
2023-01-05 15:14:54 -07:00
Behdad Esfahbod 167b7c6046 Revert "[gsubgpos] Reduce hb_set_t allocations"
This reverts commit 0b7f6d6cf0.

Not much benefit as the main allocations come from other places.
2023-01-05 14:48:20 -07:00
Behdad Esfahbod 3947cedd09 Revert "[gsubgpos] Cache pos_glyphs allocation in closure"
This reverts commit 3961cc46bf.

This was wrong...
2023-01-05 14:47:47 -07:00
Behdad Esfahbod 097fb8b8aa [priority-queue] Use resize instead of shrink
To avoid reallocation of smaller array. Not desirable here.
2023-01-05 14:38:10 -07:00
Behdad Esfahbod 8a17cc4ecf [gsubgpos] Use swap instead of move
Move is wrong when we want to reuse the object.
2023-01-05 14:15:38 -07:00
Behdad Esfahbod 4401dd2482 [gsubgpos] Minor use ->clear() directly 2023-01-05 14:13:57 -07:00
Behdad Esfahbod 207ae11ab9 [set] Allocate first page exact 2023-01-05 14:08:47 -07:00
Behdad Esfahbod 0b7f6d6cf0 [gsubgpos] Reduce hb_set_t allocations 2023-01-05 14:05:11 -07:00
Behdad Esfahbod 3961cc46bf [gsubgpos] Cache pos_glyphs allocation in closure
Saves some 3% in Gulzar-Regular subsetting.
2023-01-05 13:58:57 -07:00
Behdad Esfahbod a90f149e1b [gsubgpos] Minor drop an allocation 2023-01-05 13:52:11 -07:00
Behdad Esfahbod c54debc76d [face] Add hb_face_collect_nominal_glyph_mapping
Fixes https://github.com/harfbuzz/harfbuzz/issues/3973
2023-01-05 11:57:48 -07:00
Behdad Esfahbod ec70a3f797 [map] Include 2023-01-05 11:52:12 -07:00
Behdad Esfahbod 8b12c19573 [face] Split hb-face-builder.cc 2023-01-05 11:42:21 -07:00
Behdad Esfahbod dc7b3a627d [test-map] Another test 2023-01-05 10:49:10 -07:00
Behdad Esfahbod a8df5cb07d [test-map] Test keys() / values() 2023-01-05 10:47:47 -07:00
Konstantin Käfer a349eef6a6 Disable hb_paint_extents_* functions if HB_NO_PAINT is defined 2023-01-05 10:18:47 -07:00
Behdad Esfahbod 9420966f5b [map] Fix next() 2023-01-05 10:17:24 -07:00
Behdad Esfahbod 35f46e74d1 [map] Add hb_map_keys() and hb_map_values() 2023-01-04 17:12:08 -07:00
Behdad Esfahbod 07f2d8d538 Comment 2023-01-04 15:42:56 -07:00
Behdad Esfahbod 4f6079138d [map] Add hb_map_update() 2023-01-04 13:58:46 -07:00
Behdad Esfahbod c350458539 [subset-plan] Relax const return type of a few functions
Fixes https://github.com/harfbuzz/harfbuzz/issues/4003
2023-01-04 13:25:03 -07:00
Behdad Esfahbod dbf0964a0f [map] Doc 2023-01-04 13:17:14 -07:00
Behdad Esfahbod 0875a420f7 [map] Doc 2023-01-04 13:11:37 -07:00
Behdad Esfahbod ffafcf9633 [map] Add hb_map_next() 2023-01-04 12:56:42 -07:00
Behdad Esfahbod 3e471bbc08 [vector] Better test 2023-01-04 11:53:49 -07:00
Behdad Esfahbod 45fc919a10 [bit-set] Minor setting length on allocation failure 2023-01-04 11:35:44 -07:00
Behdad Esfahbod d8509061e6 [vector] It's okay if shrinking fails 2023-01-04 11:33:54 -07:00
Behdad Esfahbod 6c272b920d [set] Don't discard allocation in operator=
That had caused memory thrashing.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54789
2023-01-03 13:00:41 -07:00
Behdad Esfahbod e6bbf112ea [buffer] Better document set_content_type
Fixes https://github.com/harfbuzz/harfbuzz/issues/4000
2023-01-03 12:35:48 -07:00
Behdad Esfahbod 8f2345ca36 Use more vector resize_exact 2023-01-02 18:08:45 -07:00
Behdad Esfahbod b6be455020 [vector] Add resize_exact() 2023-01-02 18:05:43 -07:00
Behdad Esfahbod a516ce97e0 [subset-cff] Add a few exact-allocation calls 2023-01-02 17:58:51 -07:00
Behdad Esfahbod 4a435dc024 [subset-cff] Remove an unlikely 2023-01-02 17:41:31 -07:00
Behdad Esfahbod f8c578fd93 [subset-cff] Remove commented-out line 2023-01-02 17:33:04 -07:00
Behdad Esfahbod d5e1748f31 [cff] Simplify add_op() 2023-01-02 12:26:43 -07:00
Behdad Esfahbod 27531d853e [subset-cff] Move code around 2023-01-02 12:05:11 -07:00
Behdad Esfahbod 9afe5f973e [vector] Fix leak
Discovered by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54767
2023-01-02 11:46:45 -07:00