Behdad Esfahbod
80a5011eb6
[VarC] Fix coord setting
...
Those are additive.
2022-12-12 11:37:59 -07:00
Behdad Esfahbod
4e9a6cfb49
[COLR] Use VarStoreInstancer
2022-12-12 10:20:51 -07:00
Behdad Esfahbod
a3a3d37b95
[var] Add VarStoreInstancer
2022-12-12 10:17:41 -07:00
Behdad Esfahbod
c64661b2f8
[COLR] Fix variation code
2022-12-12 10:11:02 -07:00
Behdad Esfahbod
ff332b14ea
[COLR] Handle HB_OT_LAYOUT_NO_VARIATIONS_INDEX
2022-12-11 21:05:14 -07:00
Behdad Esfahbod
9a3f0be291
[COLR] Apply variations in get_extent
2022-12-11 13:40:53 -07:00
Behdad Esfahbod
68964efa55
[COLR] Use bsearch in get_extents
2022-12-11 13:21:01 -07:00
Behdad Esfahbod
d0ee5a452f
[COLR] Return false from get_extents if table version not 1
2022-12-11 13:13:35 -07:00
Behdad Esfahbod
b3d6a5ef86
[colr] Minor no behavior change
2022-12-11 13:12:30 -07:00
Matthias Clasen
7a748ad4ac
COLRv1: use ClipBoxes for extents
...
This is a first step; ultimatively, we
should compute the extents is ClipBoxes
are missing.
2022-12-11 13:12:30 -07:00
Behdad Esfahbod
d36a0f8c42
[COLR] Add TODO
2022-12-11 13:12:19 -07:00
Behdad Esfahbod
a306820681
[colr] Use SortedArray instead of Array
2022-12-11 13:03:55 -07:00
Behdad Esfahbod
b9d5e7a8bb
[colr] Set HB_COLRV1_MAX_NESTING_LEVEL to 16
...
Was 100. That seemed excessive.
2022-12-11 12:54:19 -07:00
Behdad Esfahbod
c17afa48de
[colr] Remove COLRV1_ENABLE_SUBSETTING
2022-12-11 12:53:55 -07:00
Behdad Esfahbod
9ab2c8034e
Revert "[glyf] Use component phantom points after transformation"
...
This reverts commit a756bd1944
.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3929
2022-12-11 12:04:29 -07:00
Behdad Esfahbod
7f73b57bc1
[subset] Graduate L1 instancing API from experimental
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3926
2022-12-10 17:35:52 -07:00
Khaled Hosny
0f4e38cd86
[subset] Small doc fixes
2022-12-10 16:39:26 +02:00
Behdad Esfahbod
bf2e817549
[VarComposites] Support GID24
2022-12-09 23:15:26 -07:00
Behdad Esfahbod
10d38dcdfd
[varc] Change format slightly
...
Fixes https://github.com/harfbuzz/boring-expansion-spec/issues/70
2022-12-09 19:19:57 -07:00
Behdad Esfahbod
af450a757d
[config] Use HB_EXPERIMENTAL_API instead of adhoc HB_EXPERIMENTAL
2022-12-09 19:05:16 -07:00
Behdad Esfahbod
5cf0b9ae7d
[varc] Mark as experimental feature with HB_NO_VAR_COMPOSITES
2022-12-09 18:59:43 -07:00
Behdad Esfahbod
82b4f3791e
[coord-setter] Don't modify font coords
2022-12-09 18:46:33 -07:00
Behdad Esfahbod
e9e503b80b
[Glyph] Pass down coords to get_points
2022-12-09 18:42:46 -07:00
Behdad Esfahbod
8e46870093
[gvar] Take coords in instead of font in apply_deltas_to_points
2022-12-09 18:35:30 -07:00
Behdad Esfahbod
3caa42a4a7
Fix build after rebase
2022-12-09 14:48:41 -07:00
Behdad Esfahbod
bbe59e4211
Whitespace
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
13deea7cbd
[glyf/VarComposite] Clamp axis coordinates
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
a975be4c07
[glyf/VarComposite] Minor rename
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1e71db2d26
[glyf/VarComposite] Fix transformation
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1233be61d8
[glyf/VarComposite] Remove unneeded resize
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1a906162cb
[glyf/coord-setter] Fix memory issue
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
7efd68da39
[glyf/VarComposite] Set coordinates
...
Code is untested but complete!
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
4ec7781497
[glyf] Move coord-setter to its own file
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
dadb4ed71d
[glyf/VarComposite] More, almost there
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
0a939b48a6
[glyf/VarComposite] Implement more
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
65cc3b5e2b
[glyf/VarComposite] More
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
12688ed386
[glyf] Fix distcheck
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
60d959a6e7
[glyf/VarComposite] Add use_my_metrics()
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
575d99406a
[glyf] Flesh out VarCompositeGlyph
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
21f671bc45
[glyf] Add stub VarCompositeGlyph
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
435c5eeffe
[glyf] Split composite-iter
2022-12-09 14:45:29 -07:00
Behdad Esfahbod
1024a013fd
[glyf] Add CoordSetter
2022-12-09 14:45:29 -07:00
Garret Rieger
e66d02126e
[subset] replace subset-processing.md reference with link to it on github.
2022-12-08 16:32:24 -07:00
Garret Rieger
27201ed32b
[subset] fix up hb_subset_preprocess api comment.
2022-12-08 16:32:24 -07:00
Garret Rieger
13b0388351
[subset] link to preprocessing doc from api comment.
2022-12-08 16:32:24 -07:00
Garret Rieger
c097abab52
[subset] set no prune unicode ranges flag in preprocessor.
...
To avoid modifying the original unicode range values in the source font.
2022-12-08 16:32:24 -07:00
Garret Rieger
bc87fe952e
[subset] add note about memory management with preprocessed faces.
2022-12-08 16:32:24 -07:00
Garret Rieger
5e713e99bf
Revert "[map] Speed up is_real()"
...
This reverts commit f5307c3ba8
.
Found to slow down the benchmarks in some cases.
2022-12-08 16:32:24 -07:00
Garret Rieger
eda02c2ebd
[subset] Move hb_subset_preprocess to be non-experimental.
2022-12-08 16:32:24 -07:00
Garret Rieger
76d5482a7c
[subset] always return a valid face from hb_subset_preprocess.
2022-12-08 16:32:24 -07:00
Garret Rieger
35233d2514
[repacker] fix fuzzer reported stack overflow.
...
Fixes https://oss-fuzz.com/testcase-detail/6014493291577344 .
2022-12-07 10:32:56 -07:00
Garret Rieger
f1d3489388
[repacker] bail on failure to alloc assigned_bytes set.
...
Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/5390364397928448 .
2022-12-05 14:13:47 -07:00
Garret Rieger
239a5aca02
[repacker] don't allow references to the null object in graph.
...
Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/6714085985353728
2022-12-05 14:13:47 -07:00
Behdad Esfahbod
4ce0f08897
[coretext] Clamp variation settings to min/max
...
Like our native implementation does; CoreText doesn't itself.
Also fix leak of CFNumber's.
2022-12-05 13:18:34 -07:00
Behdad Esfahbod
22b0390e2d
Revert "[VarData] Don't clear memory we are going to fill in completely"
...
This reverts commit e28e2dad03
.
This made fuzzer unhappy. I'm not sure how.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54044
2022-12-05 09:43:36 -07:00
Behdad Esfahbod
3c497e2458
[harfbuzz-subset.cc] Revert accidental change
...
These extra files are unnecessary, but our generator currently
isn't smart enough to know that. Will fix some time.
2022-12-04 15:35:01 -07:00
Behdad Esfahbod
aa7f5e3742
[subset] Conditionalize call to hb_font_set_variations
2022-12-04 15:33:18 -07:00
Behdad Esfahbod
ad5588e800
[config] If HB_NO_SHAPER then HB_NO_OT_SHAPE
2022-12-04 15:27:59 -07:00
Behdad Esfahbod
1a5c749581
[config] Flesh out HB_NO_SHAPER a bit more
2022-12-04 15:20:51 -07:00
Behdad Esfahbod
2c0abf0258
Revert "[harfbuzz-subset.cc] Trim down!"
...
This reverts commit a335458d57
.
While this can be vastly trimmed down, what I did is not right.
It still depends on hb-face, hb-font, hb-blob, hb-set, and hb-map.
2022-12-04 15:03:36 -07:00
Behdad Esfahbod
a335458d57
[harfbuzz-subset.cc] Trim down!
2022-12-04 14:56:20 -07:00
Behdad Esfahbod
765a3551da
[face-builder] Minor cast
2022-12-04 14:48:32 -07:00
Behdad Esfahbod
3fff6d9084
[face-builder] Initialize face orders to -1
2022-12-04 14:47:38 -07:00
Behdad Esfahbod
805ce9ad3d
[face-builer] Protect against wrong face
...
In hb_face_builder_sort_tables.
2022-12-04 14:43:17 -07:00
Behdad Esfahbod
0acfd2b714
[indic-machine] Regenerate line numbers
2022-12-04 14:01:05 -07:00
Behdad Esfahbod
9704f8354e
Merge branch 'config-header'
2022-12-04 13:58:52 -07:00
Behdad Esfahbod
c1aae14a68
[features.h] Fix autotools build rules
2022-12-04 13:58:39 -07:00
Behdad Esfahbod
0545949f01
[gvar] Minor use array get_size()
2022-12-04 12:44:09 -07:00
Behdad Esfahbod
1bd386515c
[bit-set] Micro-optimize page_for
2022-12-04 12:30:20 -07:00
Behdad Esfahbod
b182e2808a
[bit-set] Don't clear pages when copying set
2022-12-04 12:22:17 -07:00
Behdad Esfahbod
f5307c3ba8
[map] Speed up is_real()
2022-12-04 11:54:16 -07:00
Behdad Esfahbod
301f6e4b47
[Coverage] Remove TODO
2022-12-04 11:46:10 -07:00
Behdad Esfahbod
dbbb8e8006
Revert "[map] Add hb_map_filter_invalid"
...
This reverts commit 8d7e921117
.
Surprisingly this slowed NotoNastaliqUrdu benchmark down by a couple
percent instead of speeding it up.
2022-12-04 11:13:39 -07:00
Behdad Esfahbod
8d7e921117
[map] Add hb_map_filter_invalid
...
Use it in one place.
2022-12-04 11:02:15 -07:00
David Corbett
260df1fa32
[indic] Support <U+0A02, U+0A40>
2022-12-04 10:46:47 -07:00
Behdad Esfahbod
8b533763c0
Use hb_len() instead of .len()
2022-12-03 15:58:12 -07:00
Behdad Esfahbod
e28e2dad03
[VarData] Don't clear memory we are going to fill in completely
2022-12-03 15:56:43 -07:00
Behdad Esfahbod
0e13b4abbc
[VarData] Optimize main loop slightly
2022-12-03 15:50:24 -07:00
Behdad Esfahbod
ad17c0acce
[VarData] Whitespace
2022-12-03 14:56:57 -07:00
Behdad Esfahbod
e7eb445d29
[VarData] Optimize longWord calculation
2022-12-03 14:56:00 -07:00
Behdad Esfahbod
f2c980be29
[VarData] Optimize wordCount calculation
...
6% speedup in RobotoFlex-Variable/900 benchmark.
2022-12-03 14:49:38 -07:00
Behdad Esfahbod
3641b0e01e
[VarData] Optimize serialize()
2022-12-03 14:26:21 -07:00
Behdad Esfahbod
e155f12307
[VarData] Minor save a variable
2022-12-03 14:14:39 -07:00
Behdad Esfahbod
5596a73087
[layout] Speed up ClassDefFormat2 intersects
2022-12-03 13:33:48 -07:00
Behdad Esfahbod
85e7263b38
[VariationStore] Minor access array directly
2022-12-03 13:28:02 -07:00
Behdad Esfahbod
41a8597f38
[layout] Simplify CoverageFormat2 intersects_coverage()
2022-12-03 13:23:26 -07:00
Behdad Esfahbod
1f4d8ccaed
[CoverageFormat2] Optimize intersects()
2022-12-03 13:17:15 -07:00
Behdad Esfahbod
c482b06108
[gpos] Optimize PairPosFormat1::intersects
2022-12-03 13:14:31 -07:00
Behdad Esfahbod
58e9df132f
[Device] Serialize VariationDevice zerocopy
2022-12-03 13:04:00 -07:00
Behdad Esfahbod
071a2bb4f7
[serialize] Support zerocopy while sharing
2022-12-03 13:03:38 -07:00
Behdad Esfahbod
44a5de3a97
[Device] Save a snap/revert
2022-12-03 12:50:32 -07:00
Behdad Esfahbod
93328cedfc
[Device] Save a map get()
2022-12-03 12:49:26 -07:00
Behdad Esfahbod
630b874ae6
[gsubgpos] Add a cache to intersected_class_glyphs
...
30% gain on subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/1400.
2022-12-03 12:13:15 -07:00
Behdad Esfahbod
c044f4af3e
[gsubgpos] Remove wrong const
2022-12-03 11:58:04 -07:00
Behdad Esfahbod
2680be1f22
[gsubgpos] Don't set unnecessary funcs
2022-12-03 11:54:52 -07:00
Behdad Esfahbod
023f595dec
[cmap] Speed up DefaultUVS::copy even more
...
Another 14% on SourceHanSerifVF/10 benchmark.
2022-12-03 11:18:05 -07:00
Behdad Esfahbod
4ca6105108
[cmap] Remove double-min
2022-12-03 11:15:06 -07:00
Behdad Esfahbod
cd29147e30
[cmap] Minor cast
2022-12-03 10:41:42 -07:00
Behdad Esfahbod
4cdb5cc69b
[cmap] Minor change iterator
2022-12-03 10:40:24 -07:00
Behdad Esfahbod
2cdaedaf54
Use hb_enumerate in more places
2022-12-03 10:16:35 -07:00
Behdad Esfahbod
02bc4dd69b
Use hb_enumerate instead of hand-coding
2022-12-03 10:10:01 -07:00
Behdad Esfahbod
4d19c724c0
[CoverageFormat1] Speed up intersects()
...
Speeds up SourceHanSerif/10000 benchmark (not in test suite) by
32%!
2022-12-03 09:57:29 -07:00
Behdad Esfahbod
a2d33779e1
Fix arm bot build
2022-12-03 09:49:00 -07:00
Behdad Esfahbod
dabbf13d40
[cmap] Speed up DefaultUVS::copy
2022-12-03 09:46:11 -07:00
Qunxin Liu
8eadb83640
[subset] Update hb_subset_input_override_name_table API
...
Override the name string for the NameRecord identified by name_id,
platform_id, encoding_id and language_ids specified by the user.
If a record with specified name_id does not exist, this API will create
a new NameRecord with provided info and insert it to the name table.
2022-12-02 18:05:53 -07:00
Behdad Esfahbod
ddeac3658b
[test-multimap] More tests
2022-12-02 16:51:07 -07:00
Behdad Esfahbod
ff419789ef
[subset-plan] Sort unicode_to_new_gid_list when needed
2022-12-02 16:43:33 -07:00
Behdad Esfahbod
1a40da4ad1
[subset-plan] Use add_array instead of add_sorted_array
...
That vector is not declared as sorted.
2022-12-02 16:13:37 -07:00
Behdad Esfahbod
32e049a315
[subset-plan] Use gid-to-unicodes multimap
...
One test fails. Need investigation.
2022-12-02 16:09:10 -07:00
Behdad Esfahbod
da7961b2e8
.
2022-12-02 16:08:40 -07:00
Behdad Esfahbod
7d6893a803
[subset-accelerator] Cache gid-to-unicodes
2022-12-02 15:50:52 -07:00
Behdad Esfahbod
10c8fc5553
[multimap] Add a multimap datastructure
2022-12-02 15:50:49 -07:00
Behdad Esfahbod
a42fc8ec4a
[subset-accelerator] Adjust in_error()
2022-12-02 15:41:18 -07:00
Behdad Esfahbod
65d9630312
[subset-cff2] Whitespace
2022-12-02 14:59:26 -07:00
Behdad Esfahbod
b33297ee26
[cff2] Remove unused typedef
2022-12-02 14:43:37 -07:00
Behdad Esfahbod
3ade2ffaa5
[serialize] Adjust pop_discard for zerocopy
2022-12-02 14:26:36 -07:00
Behdad Esfahbod
043eeb29a3
[subset-cff] Optimize encode_subrs
...
Don't loop over all original subrs. Just walk over closure subrs.
2022-12-02 13:58:36 -07:00
Behdad Esfahbod
0ad5977cd6
[subset-cff] Simplify hinting processing
...
We already have drop_hints in the params.
2022-12-02 13:41:36 -07:00
Behdad Esfahbod
16cbe41bca
Merge pull request #3910 from googlefonts/repacker_fuzz
...
[repacker] Add a fuzzer for the hb-subset-repacker api.
2022-12-02 12:43:13 -07:00
Behdad Esfahbod
2a7a1d5a73
[Coverage] Avoid timeout on broken ranges
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53929
2022-12-02 12:33:24 -07:00
Behdad Esfahbod
c947652768
[subset-cff] Micro-optimize
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
a24d4e9261
[array] Oops. Fix memcpy copy()!
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
5e41766bb9
[array] Fix hb_bytes_t memcpy copy
...
Wasn't being used!
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
a5616227ca
[subset-cff] Fix buffer size calculation
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
015af5a8e5
[subset-cff] Write a couple loops as range-based for
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
bfbbd4af25
[subset-cff] Copy str for call ops
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
c755b3884f
[subset-cff] Pre-alloc enough for check-less copy
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
062e59ae67
[subset-cff] Optimize vector allocation for preprocessed input
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
8e9e94dba9
Revert "[vector] Optimize grow_vector() for size"
...
This reverts commit 1dd9396c7a
.
Is faster indeed.
15% on SourceHanSans/10000 benchmark.
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
2644540a74
[subset-cff] Compact parsed strings if using accelerator
...
Saves 32% on SourceHanSans/10000 benchmark!
Also, use memcmp now for writing out strings since now that our
ops are not super short, that's faster.
This makes cff-japanese test takes super long though; that needs
inspection.
2022-12-02 12:01:35 -07:00
Behdad Esfahbod
6012d3b228
[subset-cff] Write out charstrings zerocopy to serializer
2022-12-01 17:33:53 -07:00
Behdad Esfahbod
36e1a6339c
[cff] Add total_size to INDEX
2022-12-01 17:00:03 -07:00
Behdad Esfahbod
3843000660
[serialize] Add start_zerocopy()
2022-12-01 16:48:22 -07:00
Garret Rieger
de5a621322
[repacker] enforce root node having no incoming edges.
2022-12-01 23:37:16 +00:00
Behdad Esfahbod
a2681c37c1
[cff-subset] Simplify INDEX serialize() more
2022-12-01 16:15:23 -07:00
Behdad Esfahbod
c4b05878cb
[subset-cff] Remove INDEX unused serialize() methods
2022-12-01 15:56:37 -07:00
Behdad Esfahbod
b3ad4d72cc
[cff] Another no-memset in INDEX
2022-12-01 15:46:00 -07:00
Behdad Esfahbod
5fd2f255fc
[open-type] Don't memset 0 in serialize for ArrayOf family
...
Not necessary.
2022-12-01 15:18:59 -07:00
Garret Rieger
30e405e470
[repacker] ensure link obj indices are valid.
2022-12-01 22:12:59 +00:00
Behdad Esfahbod
70ac6dfb28
[subset-cff] Don't memset 0 INDEX and other serialize methods
...
Not necessary.
2022-12-01 14:58:25 -07:00
Garret Rieger
554ed06fac
[repacker] add cycle detection to the graph sort.
...
This allows us to bail early if the graph is not acyclic.
2022-12-01 21:52:37 +00:00
Behdad Esfahbod
a66de336fb
[vector] Minor use get_size() in as_bytes()
2022-12-01 14:32:13 -07:00
Behdad Esfahbod
0b826368fd
[serializer] Don't memset memory in embed
...
Not necessary.
2022-12-01 14:23:25 -07:00
Behdad Esfahbod
3b68c7146f
[array] Don't clear serializer buffer when copying out
...
Not needed.
2022-12-01 14:19:27 -07:00
Behdad Esfahbod
57808609c9
[VarData] Move an unlikely
2022-12-01 14:03:56 -07:00
Garret Rieger
9e99d08470
[repacker] validate link widths during repacker setup.
2022-12-01 20:17:41 +00:00
Garret Rieger
edf7a29595
[repacker] Validate link positions before running the repacker.
2022-12-01 20:17:41 +00:00
Garret Rieger
deca30b268
[repacker] get repacker fuzzer working.
...
Additionally add helper method that allows a graph to be saved as a fuzzer seed.
2022-12-01 20:17:40 +00:00
Garret Rieger
985b19f678
[repacker] begin implementing a fuzzer for the repacker api.
2022-12-01 20:17:39 +00:00
Matthias Clasen
c6d616cc41
Generate and install hb-features.h
...
This header has defines for all the optional
dependendencies that come with their own Harfbuzz
headers, so you can do:
#include <hb-features.h>
#ifdef HB_HAS_DIRECTWRITE
#include <hb-directwrite.h>
#endif
2022-12-01 18:16:55 +08:00