Commit Graph

14412 Commits

Author SHA1 Message Date
Garret Rieger 4ec5eb955f [subset] add a subset accelerator.
Can be optionally attached to the face during subsetting. Contains data which can accelerate future subsets.
2022-10-13 19:40:31 +00:00
Garret Rieger f105c28749 [subset] Suggested flags to enable more performant subset production for use in incxfer. 2022-10-13 18:53:41 +00:00
Behdad Esfahbod 5769d422c5 [type] Add HBFixed template 2022-10-13 12:12:24 -06:00
Behdad Esfahbod 8c29dcaee4 s/HBFixed/F16DOT16/g 2022-10-13 12:06:15 -06:00
Behdad Esfahbod 294b1c9f6e Use snprintf instead of sprintf 2022-10-13 11:30:02 -06:00
Garret Rieger 9559d3c1c1 [repacker] fix incorrect coverage table size estimation.
During splitting of PairPosFormat2 the code was assuming the maximum size of the generated coverage table would be equal too the current size. This is incorrect size the new coverage table may not preserve the ranges found in the original coverage table (since we are splitting based on class, not coverage) and in the worst case may convert from format2 to format1. So use the size of a format1 table as the max size.
2022-10-11 14:06:04 -06:00
Khaled Hosny dcd8fe2c3b Revert "[ci] Mark automatic releases as draft"
This reverts commit 9a28df411e.

It creates a new draft release for each upload, which is not what we are
after.
2022-10-08 19:33:38 +02:00
Khaled Hosny 3ce4b8f5c9 5.3.0 2022-10-08 19:10:07 +02:00
Khaled Hosny 90eee512a0 [doc] Add symbols to harfbuzz-sections.txt 2022-10-08 19:02:28 +02:00
Khaled Hosny 9a28df411e [ci] Mark automatic releases as draft
Fixes https://github.com/harfbuzz/harfbuzz/issues/2780
2022-10-08 18:22:13 +02:00
Garret Rieger 99f4668e19 [repacker] use mutable copies of Coverage/ClassDef in MarkBasePos shrink operation.
Also make mutable copies (when needed) of the top level subtables during a split operation.
2022-09-30 10:58:50 -06:00
Garret Rieger 8f1bf23cc9 [subset] optimize glyf subsetting w/ retain gids.
When retain gids is enabled the subset plan may require the output of many empty glyphs. This change optimizes the glyf subsetting code when the number of retained glyphs << number of output glyphs. Unnessecary lookups to the glyph map are reduced by iterating through the glyph map instead of the output glyph set.
2022-09-29 15:44:49 -06:00
Qunxin Liu e94fe2adf3 [instance] minor optimizations to glyf instancing 2022-09-29 12:14:43 -06:00
Qunxin Liu d5fc4a73c0 [instance] add tests for featureVariations
Also updated the script that is used to generate tests.With fonttools,
we now do instancing first and then subsetting.

With different order of subsetting and instancing operations on the same
VF file, fonttools seems to generate 2 different font files with different
glyph set.
1. do subsetting and then instancing: this seems result in a larger glyph
   set in the font file. Lookups are collected from both retained features
   and all possible alternate featurevariations, this leads to a larger
   glyph set after glyph closurei. And instancer doesn't redo glyph
   closure, it does lookups pruning only.

2. do instancing and then subsetting: lookups are collected from
   features that are replaced already and possible alternate feature
   variations
2022-09-29 12:14:43 -06:00
Qunxin Liu b90ce34a25 [instance] fix for non-empty .notdef glyph metrics update
we need pass in source glyph's outline data to calculate boundaries, and
then drop the outline data if notdef-outline is specified.

Also disable shifting points for instancing in get_points () API
2022-09-29 12:14:43 -06:00
Qunxin Liu b706c6f77e [instance] update FeatureList with variations 2022-09-29 12:14:43 -06:00
Qunxin Liu 8f3a7017c3 [instance] support FeatureVariations table 2022-09-29 12:14:43 -06:00
Qunxin Liu f4813e3b7f [instance] update collect_lookups/prune_features()/closure_features() with variations
Some features will be substituted with variations, so we do not collect
lookups from the original feature tables.
2022-09-29 12:14:43 -06:00
Qunxin Liu 64e2f2fc58 [instance] store active featurevariation record/condition idxes in the plan 2022-09-29 12:14:43 -06:00
Qunxin Liu 0a6c16a313 [instance] instantiate fvar table
Added an old->new axes_indices mapping in the subset plan
2022-09-29 12:14:43 -06:00
Behdad Esfahbod 486fc2271a [cplusplus] Add missing const 2022-09-28 15:11:45 -06:00
Qunxin Liu c335bf469f support dereferencing shared_ptrs and unique_ptrs 2022-09-27 15:44:29 -06:00
Garret Rieger d5829b3ce2 [repacker] update the repacker doc to reflect the current state. 2022-09-23 15:02:41 -06:00
Garret Rieger 8cd7d1c3fe [subset] Allow table ordering on the face builder to be overriden. 2022-09-22 16:52:14 -06:00
Behdad Esfahbod b70032edda [layout] Fix typo in docs 2022-09-22 15:59:16 -06:00
Khaled Hosny d2966d3919 [ot-font] Try CBDT extents before outline tables
Like we do for sbix table.

Fixes https://github.com/harfbuzz/harfbuzz/issues/3827
2022-09-22 15:50:27 -06:00
Behdad Esfahbod 1fdf046427
Merge pull request #3799 from harfbuzz/optical-bounds
Optical bounds
2022-09-22 12:03:17 -06:00
David Corbett 3ca5fbda76 [USE] Update the data files
This uses the data files from
<3254c94606/USE>
and closes #3817.
2022-09-21 16:28:02 -06:00
Behdad Esfahbod b78d4b1e58 [color] Fix documentation re UPEM vs PPEM
Fixes https://github.com/harfbuzz/harfbuzz/issues/3826
2022-09-21 13:27:12 -06:00
Behdad Esfahbod 56c4670935 [subset] Fix compiler warning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3823
2022-09-20 17:40:13 -06:00
Behdad Esfahbod c02a1a4adc [ot-font] Remove unused include 2022-09-20 17:40:13 -06:00
David Corbett d7cc82ad48 Update the language system tag registry URL 2022-09-20 10:37:50 -06:00
Jonathan Kew 21b0e59414 [aat] Add test for rlig-to-aat feature mapping in Geeza Pro. 2022-09-20 10:37:27 -06:00
Jonathan Kew f54d2b3e2c [aat] Map 'rlig' to AAT required-ligatures setting.
Fixes #3819.
2022-09-20 10:37:27 -06:00
Khaled Hosny d827a5ee40 [subset] Skip glyph closure for any dropped table
If COLR or MATH tables are being dropped, there is no point in closing
glyphs over them, just like it is done for GSUB.
2022-09-19 13:49:42 -06:00
Khaled Hosny 4a1d891c63 5.2.0 2022-09-17 03:19:29 +02:00
Xavier Claessens 53a194aa3f meson: Fix freetype and icu dependency lookup
It is wrong to search for a different name depending on the compiler. If
anything, cmake name could be available on systems that uses GCC too.

This also fix regression in the usage of freetype subproject fallback as
its name is "freetype2" and was previously used even when the
"freetype" option was set to "auto".
2022-09-08 09:43:41 -06:00
خالد حسني (Khaled Hosny) 7c0791d61a
Merge pull request #3810 from ankith26/main
[cmake] Generate pkg-config .pc files
2022-09-07 10:31:17 +02:00
Qunxin Liu 2b766e8ade [subset] No need to collect_features twice 2022-09-06 13:41:51 -06:00
David Corbett 09b9a1ffdd [USE] Allow ZWNJ at the end of a cluster 2022-09-06 11:33:12 -06:00
Qunxin Liu a3e6dbbb43 [subset] skip the script if it's not included in the final subset 2022-09-06 11:29:34 -06:00
Ankith a120b01ab3
[cmake] Generate pkg-config .pc files 2022-09-06 18:28:43 +05:30
Wez Furlong e3548c2069
hb-view: Detect WezTerm and use iterm2 image protocol
Similar to the logic that detects iterm2, but look for
TERM_PROGRAM=WezTerm which identifies wezterm is present.

This allows hb-view to output an image directly to the terminal.
2022-09-03 17:15:03 +02:00
Behdad Esfahbod 752060a49c [layout] Document hb_ot_layout_lookup_get_optical_bound() 2022-09-01 13:47:12 -06:00
Behdad Esfahbod 71c6cba097 [layout] Rename API:
-hb_ot_layout_get_optical_bound()
+hb_ot_layout_lookup_get_optical_bound()
2022-09-01 13:43:19 -06:00
Behdad Esfahbod 3892128a1f [layout] Add HB_NO_LAYOUT_RARELY_USED 2022-09-01 13:41:50 -06:00
Behdad Esfahbod 8e88653f05 [layout] Move code around 2022-09-01 13:39:26 -06:00
Behdad Esfahbod 4bf9621113 [optical-bounds] Optimize 2022-09-01 13:36:26 -06:00
Behdad Esfahbod 5d6f1a88e4 [layout] Add hb_ot_layout_get_optical_bound() 2022-09-01 13:36:26 -06:00
Behdad Esfahbod 238e7dd2b6 Fix build 2022-09-01 13:24:01 -06:00