src/hb-ot-hmtx-table.hh


Log

Author Commit Date CI Message
Behdad Esfahbod 9b6da299 2025-03-02T17:00:14 [font/var] Try to regain performance of all-normalized-coords=0
Behdad Esfahbod aaecaa4c 2025-02-24T22:03:00 [vector] Disallow accidental creation of transient vectors Fix sites that were doing this under our feet. This lowers precision of some instancing operations from double to float, which modifies a few results by rounding error. TODO: Update tests.
Behdad Esfahbod 0037ee28 2024-05-24T08:10:15 Merge pull request #4578 from harfbuzz/varc-table `VARC` table
Behdad Esfahbod 3609ebb0 2024-05-13T11:05:04 [htmx] Return non-variable advance if no glyf table available Fixes https://github.com/harfbuzz/harfbuzz/issues/4706
Behdad Esfahbod 11388c16 2024-03-16T13:16:20 Fix build
Behdad Esfahbod 1cb47eff 2024-02-06T14:49:31 Rename VariationStore to ItemVariationStore
Qunxin Liu f1ac36ba 2023-11-15T11:38:41 [instancer] update hhea vertical metrics with OS/2 ones
Behdad Esfahbod 04ee306b 2023-07-09T07:37:57 [subset/hmtx] Another TODO
Behdad Esfahbod caef35b3 2023-07-09T07:23:16 [subset/hmtx] TODO
Behdad Esfahbod 82741304 2023-06-04T09:41:41 [subset] start_embed never returns nullptr Remove checks.
Behdad Esfahbod f014112d 2023-06-03T18:27:24 Revert "[subset] Allow adding table directly from subset()" This reverts commit 25a6514887ebe899bd4ede1e283e067f97e15def.
Behdad Esfahbod 25a65148 2023-06-03T18:26:36 [subset] Allow adding table directly from subset() And do it for hmtx. Going to revert since it slows things down. Apparently the serializer buffer is in caches and hot, so faster to write to and copy even.
Behdad Esfahbod 8dab4441 2023-06-03T17:06:30 [subset/hmtx] Micro-optimize last commit hb_zip has its own overhead...
Behdad Esfahbod e981dc24 2023-06-03T17:01:52 [subset/hmtx] Rewrite loop faster for retaingid
Behdad Esfahbod 4a9da026 2023-06-03T16:46:29 [subset/hmtx] Micro-optimize
Behdad Esfahbod ca27925d 2023-06-03T16:18:15 Use hb_codepoint_pair_t in more places
Behdad Esfahbod 841e86fd 2023-06-03T16:09:45 [subset/hmtx] Further speedup!
Behdad Esfahbod 13a4c7b3 2023-06-03T15:12:53 [subset/hmtx] Comment
Behdad Esfahbod cd249d23 2023-06-02T16:15:05 [subset/hmtx] Micro-optimize
Behdad Esfahbod 916629d1 2023-06-02T16:08:49 [subset/hmtx] Don't clear allocation
Behdad Esfahbod b67e464b 2023-06-02T15:11:06 [subset/retaingid] Regain perf lost In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
Garret Rieger ad872e23 2023-06-02T18:32:09 [subset] Optimize hmtx/vmtx serialization. Make serializer allocation up front to avoid bounds checking overhead for each metric. Benchmarks: BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10_median -0.1005 -0.1005 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64_median -0.0693 -0.0692 0 0 0 0 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512_median -0.0294 -0.0293 1 1 1 1 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096_median -0.0033 -0.0032 3 3 3 3 BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000_median +0.0170 +0.0171 7 7 7 7
Behdad Esfahbod 9f54ab92 2023-06-01T17:45:03 [subset-plan] Keep a reverse-gid vector To speed up iteration.
Behdad Esfahbod aa7dd70a 2023-06-01T14:24:33 [hmtx] Reduce map usage slightly
Behdad Esfahbod 5543d058 2023-05-17T17:29:44 [subset] Use vector instead of map for glyph bounds (#4232) * [subset] Use vector instead of map for glyph bounds Is faster. Part of https://github.com/harfbuzz/harfbuzz/issues/4231 * [subset] initialize bounds_vec value to 0xFFFFFFFF Some non-EMPTY glyph might have 0 bounds width/height --------- Co-authored-by: Qunxin Liu <qxliu@google.com>
Behdad Esfahbod 0e4bcf90 2023-04-20T16:23:41 [hmtx] Add TODO
Behdad Esfahbod 639f45ef 2023-04-20T16:21:08 [beyond-64k/subset] Implement subsetting of hmtx beyond64k
Behdad Esfahbod 000a3c5d 2023-04-20T15:53:10 [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.
Behdad Esfahbod 317e3693 2023-04-20T11:48:43 [beyond-64k] Fail hmtx subsetting if subset too large
Behdad Esfahbod 7a47a369 2023-01-22T09:09:45 [hmtx] Fix typo
Qunxin Liu 92122421 2023-01-13T11:42:58 [instancer] update vhea/hhea tables
Behdad Esfahbod ca190915 2023-01-11T14:36:02 [hhea/vhea] Add MVAR during instancing
Behdad Esfahbod 1135f0b8 2023-01-11T13:45:16 Another try at fixing arm build
Behdad Esfahbod 41352c08 2023-01-11T12:42:14 [hmtx] Fix types
Behdad Esfahbod 75b33cb0 2023-01-11T12:24:35 [subset-plan] Simplify hmtx_map / vmtx_map allocation
Behdad Esfahbod 626def03 2023-01-10T17:12:50 [hmtx] Remove TODO items
Qunxin Liu ac0e22fa 2022-07-22T09:37:09 [instance] update glyf/hmtx/vmtx tables
Behdad Esfahbod 5a9c7930 2022-07-22T21:33:15 Add HB_NO_BEYOND_64K
Behdad Esfahbod b0cb9a1a 2022-07-03T15:32:32 Make get_leading_bearing return bool Fixes https://github.com/harfbuzz/harfbuzz/issues/3496 Part of supporting >64k glyphs correctly.
Behdad Esfahbod f46ddeba 2022-07-03T13:12:49 [hmtx/glyf] Rename side-bearing functions for clarity
Behdad Esfahbod 23435d52 2022-07-03T13:04:27 [hvar] Rename advance function for clarity
Behdad Esfahbod 9f974cae 2022-07-03T13:03:12 [hvar] Rename lsb function for clarity
Behdad Esfahbod b2d60cbd 2022-07-03T12:56:48 [glyf] Rename advance functions for clarity
Behdad Esfahbod 35c00c12 2022-07-03T12:54:17 [hmtx] Rename advance functions for clarity
Behdad Esfahbod 71d52e10 2022-07-02T11:21:36 [var] Fix getting side-bearing variations In HVAR/VVAR, if the side-bearing mappings are null, it means the table does not have them and they should be loaded from glyf table. Previous logic was returning zer0. Part of fixing https://github.com/harfbuzz/harfbuzz/issues/1694
Behdad Esfahbod 13c499cb 2022-06-30T14:25:09 [hvar] Minor internal rewiring Not passing font to functions makes it more clear that they don't scale values.
Behdad Esfahbod eee29f73 2022-06-30T14:03:07 [hmtx] Specialize var_table
Behdad Esfahbod 5336ba70 2022-05-20T17:03:18 [HVAR] Cache VarStore region scalars
Behdad Esfahbod df42d28d 2022-03-21T21:17:15 [hmtx] Change default advance for horizontal direction to upem/2 again
Behdad Esfahbod 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
Behdad Esfahbod 67eb9acf 2022-02-15T17:17:49 [config] Add HB_NO_BORING_EXPANSION
Behdad Esfahbod 8b7ccc41 2022-02-15T14:15:12 [hmtx] Implement [boring-expansion] >64k expansion This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
Behdad Esfahbod 431c948e 2022-02-14T14:13:04 [hmtx] Document
Behdad Esfahbod be4ddcc3 2022-02-14T14:12:07 [hmtx] Rename internal num_advances to num_long_metrics
Behdad Esfahbod 622cbc48 2022-02-14T14:09:40 [hmtx] Internal rename num_metrics to num_bearings
Behdad Esfahbod ed6d287d 2022-02-02T14:10:16 [ot-face] Load num-glyphs from `loca` table before `maxp` Implements [boring-expansion] [maxp] Relax https://github.com/be-fonts/boring-expansion-spec/issues/6
Behdad Esfahbod 42b119ed 2022-02-12T14:18:02 [hmtx] Remove other subset-specific method from hmtx accelerator
Behdad Esfahbod 9ba520b5 2022-02-12T13:57:03 [hmtx] Remove one subset-specific method from hmtx accelerator Looks ugly but is the right thing to do.
Behdad Esfahbod ac1bb3e3 2022-01-20T11:47:17 [machinery] Move accelerators to constructor/destructor
Behdad Esfahbod e062376e 2022-01-19T17:09:34 [machinery] Make accelerator lazy-loader call Xinit/Xfini Instead of init/fini. To isolate those functions. To be turned into constructor/destructors, ideally one per commit (after some SFINAE foo.)
Behdad Esfahbod 53eebc7c 2021-12-08T08:32:41 [CONFIG] Add HB_NO_VERTICAL
Garret Rieger b14475d2 2021-03-18T10:51:26 [subset] further changes to serializer error handling. - Rename enum type and enum members. - in_errors() now returns true for any error having been set. hb-subset now looks for offset overflow only errors to divert to repacker. - Added INT_OVERFLOW and ARRAY_OVERFLOW enum values.
Garret Rieger 73ed59f7 2021-03-17T15:53:10 [subset] store errors in the serializer as a flag set. Make check_assign/check_equal specify the type of error to set.
Ebrahim Byagowi e541fb47 2020-06-21T09:49:48 minor, replace single hb_apply daggers with foreach
Ebrahim Byagowi 08428a15 2020-04-24T23:45:17 minor, spacing
Ebrahim Byagowi 2dda6dd7 2020-04-20T14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
Ebrahim Byagowi ba22df36 2020-03-10T10:42:20 minor makes search for sanitize calls easier for me
Ebrahim Byagowi 453050ad 2019-10-13T08:38:56 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi b068e25f 2019-10-08T16:29:15 [glyf] Address Behdad's reviews Addresses https://github.com/harfbuzz/harfbuzz/pull/1999#issuecomment-539298559 * Don't check against Null pool * Remove cryptic _tt suffix
Ebrahim Byagowi d73cdcf3 2019-10-06T18:09:14 [ot-font] Apply font scaling before turning to int
Ebrahim Byagowi 74a2dbbc 2019-10-06T17:06:40 minor
Ebrahim Byagowi 100dbcca 2019-10-06T09:18:22 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi 57528636 2019-10-05T23:51:50 [glyf][gvar] Make HB_NO_VAR buildable
Ebrahim Byagowi ee761018 2019-10-03T15:59:45 [hmtx] Use more conventional internal API style
Ebrahim Byagowi c9577a63 2019-10-03T15:48:35 [hmtx] Use more optimal way to access glyf table
Michiharu Ariza b9ff43c1 2019-10-01T16:13:40 Implement gvar table and variable glyf Split from Ariza's "[subset] TrueType/CFF2 variable font" work on #1594
Ebrahim Byagowi 19d45dca 2019-10-03T13:39:17 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi 3fd555be 2019-10-03T13:02:41 [hmtx] Prepare to fix and minor fixes
Michiharu Ariza 6d09b5a8 2019-10-03T12:01:39 Implement hmtx/vmtx metrics read from hvar/vvar
Ebrahim Byagowi 9ff32b79 2019-08-29T19:53:18 Merge remote-tracking branch 'upstream/master' into glyf-rebase
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
blueshade7 5988ab8a 2019-07-22T14:36:16 Merge branch 'master' into var-subset
Ebrahim Byagowi 29444d7e 2019-07-20T13:52:21 Don't cache ascender/descender metrics
Behdad Esfahbod 9675a067 2019-07-18T14:15:08 [ot-metrics] Touch up
Ebrahim Byagowi 87e62843 2018-11-20T23:26:46 Implement a simple API for fetching opentype metrics Fixes https://github.com/harfbuzz/harfbuzz/pull/1432
Michiharu Ariza 8f8e8a84 2019-06-05T12:59:09 fix build
Michiharu Ariza 4ddab6fa 2019-06-05T11:21:27 Merge branch 'master' into var-subset
Qunxin Liu 209491fc 2019-05-29T14:03:17 [subset] Hmtx/vmtx tables to use subset2 and new iterator frameworks
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Michiharu Ariza ab9d3096 2019-04-10T17:21:37 Add tt var metrics test cases & bug fixes
Michiharu Ariza a1177fec 2019-03-29T08:43:47 Merge branch 'master' into var-subset rebase master
Behdad Esfahbod b986c6a3 2019-03-29T20:17:46 [C++11] Remove IntType::set() in favor of operator=
Michiharu Ariza 511518c7 2019-03-18T15:39:10 add api test for tt var advance widths stripped HVAR from SourceSansVariable-Roman.abc.ttf so glyf gets parsed
Michiharu Ariza bee8d866 2019-03-18T10:48:53 fix build
Michiharu Ariza c302ec6d 2019-03-17T15:36:26 moved most of var code from gvar to glyf initialize phantom points from metrics from htmx/vmtx & glyf bbox before execution added source file hb-ot-hmtx-table.cc to call glyf from hmtx/vmtx indirectly & temporarily, workaround a cyclic reference between the two
Michiharu Ariza 40dfca72 2019-03-01T15:14:22 calculate VF advance widths from gvar & glyf
Michiharu Ariza 9d3a2520 2019-03-18T15:39:10 add api test for tt var advance widths stripped HVAR from SourceSansVariable-Roman.abc.ttf so glyf gets parsed
Michiharu Ariza 9d9d5c70 2019-03-18T10:48:53 fix build
Michiharu Ariza 8a7998fd 2019-03-17T15:36:26 moved most of var code from gvar to glyf initialize phantom points from metrics from htmx/vmtx & glyf bbox before execution added source file hb-ot-hmtx-table.cc to call glyf from hmtx/vmtx indirectly & temporarily, workaround a cyclic reference between the two
Michiharu Ariza baf2ccf1 2019-03-01T15:14:22 calculate VF advance widths from gvar & glyf