|
64e8707e
|
2022-11-24T18:24:50
|
|
[subset] don't use hb repacker when generating test files from fonttools.
|
|
ff3cac0c
|
2022-11-23T23:50:49
|
|
[subset] Fix unecessary trailing 0 bytes left by ContextFormat2 pruning.
Uneeded rules where beind removed from the count by the bytes for them was being left in the font.
|
|
2822b589
|
2022-11-03T19:49:49
|
|
[subset] Include instancing tests in distribution.
Automatically enable them when the experimental api is enabled.
|
|
8a552483
|
2022-10-27T09:43:07
|
|
[instance] update OS2/.usWeightClass and .usWidthClass when
no-prune-unicode-ranges option is enabled
|
|
db22bfb3
|
2022-10-17T18:37:07
|
|
[subset] Remove Franklin from the tests which is not an open source font.
|
|
3394ec70
|
2022-10-13T23:02:54
|
|
[subset] use subset accelerator in tests.
This ensures it produces equivalent subsets as without the accelerator.
|
|
d5fc4a73
|
2022-09-14T14:43:20
|
|
[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
|
|
47094490
|
2022-08-31T12:01:32
|
|
[instance] add benchmarks for instancing
|
|
88c02e00
|
2022-08-26T08:34:12
|
|
[instance] add tests for full instancing
Also update previous tests with GDEF/GPOS tables
|
|
f887ee0c
|
2022-07-27T13:18:21
|
|
[instance] update post.italicAngle
Add tests for instancing glyf/hmtx
|
|
f1a69ff1
|
2022-06-30T16:22:15
|
|
[instance] update scripts for testing instancing
|
|
d6f579e9
|
2022-06-30T22:22:03
|
|
[subset] add tests that exercise script filtering.
|
|
858570b1
|
2022-06-01T18:08:09
|
|
[subset] add some additional 32bit var store cases.
Test the path where the 32 bit delta is not included.
|
|
209d6aa2
|
2022-06-01T18:02:03
|
|
[subset] Update make files for 32bit_var_store test.
|
|
9c41bfe1
|
2022-06-01T17:53:14
|
|
[subset] Add subset test of font with 32 bit delta in a var store.
|
|
52d59bf1
|
2022-05-10T19:40:37
|
|
[perf] Make subset benchmark data driven.
|
|
b051f3fa
|
2022-05-05T23:27:34
|
|
[subset] Fix cpal subsetting when there are partial palette overlaps.
The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array.
Updates one of the color tests to use multiple palettes.
Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296.
|
|
a003fc0d
|
2022-03-25T09:37:50
|
|
Remove accidental files
|
|
01829882
|
2022-03-25T08:36:44
|
|
[set] Add call to export set contents to an array. (#3500)
[set] Add hb_set_next_many.
|
|
7cb002cb
|
2022-03-14T11:40:35
|
|
[subset] bug fix in prune_langsys
we should not cache visited langsys cause 2 different Record<Langsys>
could have different Tag while pointing to the same Langsys, a langsys
is redundant in Record<Langsys> A does not mean it's redundant in Record
B. Same thing for visited_script.
Also adding the number of features in the LangSys's feature list to the
visited langsys count so it's more accurate.
Plus some improvement in langsys compare()
|
|
b3f8288c
|
2022-02-12T14:52:42
|
|
[test/subset] Don't hash files without reason
Fixes https://github.com/harfbuzz/harfbuzz/issues/3118#issuecomment-894021518
|
|
bc899650
|
2022-01-28T13:54:10
|
|
[subset] Fix for issue #3397.
cur_intersected_glyphs gets modified during recursion leading to incorrect filtering of sub tables in some cases. So don't use cur_intersected_glyphs. Instead just add an additional entry onto the parent_active_glyphs () stack.
Additionaly expands NotoNastaliqUrdu tests to include coverage of the issue from #3397.
|
|
706014f6
|
2021-12-01T20:20:12
|
|
[subset] (Chain)ContextSubst glyph_closure fix
- When pos_glyphs is empty, use current full glyphs set as input for
subsequent recursive closure process
- Also increase max_lookup_visit_count to 35000 cause a real font file hit
previous limit 20000 and some lookups are dropped unexpectedly
|
|
51655a07
|
2021-12-05T19:27:57
|
|
[subset] COLR : only include glyphs after COLR closure
|
|
74b46b29
|
2021-12-02T19:50:16
|
|
[subset] MATH: don't serialize coverage table when iterator is empty
when iterator is empty, just set coverage offset to 0.
serialize() in coverage will at lease write out a 16-bit format header.
|
|
9121ed0c
|
2021-11-30T13:45:22
|
|
[subset] Improve sharing of Ligature subtables.
Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
|
|
95329081
|
2021-11-26T16:18:42
|
|
[subset] further optimize cmap4 packing.
|
|
59914382
|
2021-11-26T14:19:39
|
|
[subset] Don't pad glyphs when using long loca.
|
|
d9660fd5
|
2021-11-25T18:15:35
|
|
[subset] Make cmap4 packing more optimal.
The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
|
|
903a6bae
|
2021-11-15T19:58:33
|
|
[subset] layout_features filtering fix
we should not use get_size (), which returns length * item_size
|
|
69d8f27c
|
2021-11-20T17:09:15
|
|
[meson] Require 0.55.0
We implicitly require it for building ragel subproject. This new version
requirement should satisfied in both Fedora 33 and Debian bullseye, and
not be too cutting edge for us.
|
|
84dc4e85
|
2021-11-08T09:36:31
|
|
[subset] avoid writing out duplicate extra glyph names in post table
Add check for possible duplicate with other name index
|
|
ca418cac
|
2021-11-17T16:42:08
|
|
[subset] keep features that have FeatureParams and the tag is "size"
|
|
e88fc41e
|
2021-11-18T16:53:36
|
|
[subset] inputSequence could be empty, change the sanity check
|
|
540f19b6
|
2021-10-29T17:11:53
|
|
[subset] fix bug in (Chain)ContextFormat2
Only keep rulesets for glyphs class numbers that survived in coverage
|
|
e260eeb9
|
2021-11-02T15:31:32
|
|
[subset] Update test goldens for gdef.glyphset.
|
|
60e20364
|
2021-11-02T15:02:36
|
|
[subset] use glyphset_gsub instead of glyphset for GDEF
|
|
e39647c0
|
2021-11-02T15:25:05
|
|
[subset] update subset goldens to fix tests.
|
|
364b6b39
|
2021-10-31T14:38:20
|
|
[subset] Don't assume FeatureList is sorted
Though the spec said FeatureRecords are sorted alphabetically by feature
tag, there're font files with unsorted FeatureList. And harfbuzz is not
able to subset these files correctly because we use binary search in
finding featureRecords when collecting lookups. Also
find_duplicate_features needs to be updated to handle this.
|
|
49c93924
|
2021-09-24T09:28:10
|
|
[subset] During LigatureSubstFormat1 subsetting always place Coverage last.
In Windows 7 on Chrome if the coverage table comes before any of the LigatureSet or Ligature subtables the font won't load. This changes the packing order to always place the Coverage table last. Virtual links are used to ensure the repacker maintains the desired ordering.
Coincidentally fontTools also does the same thing (https://github.com/fonttools/fonttools/blob/a3f988fbf621142d7d9b3e68a69725b88f358869/Lib/fontTools/ttLib/tables/otTables.py#L1137) to reduce overflows during packing.
|
|
42626369
|
2021-10-23T13:18:22
|
|
Merge pull request #3248 from googlefonts/connected_components
[repacker] Keep connected subgraphs in the same space.
|
|
8c583db9
|
2021-10-02T20:32:30
|
|
[subset] COLRv1: update subset() method for new strutc ClipList and VarIdxMap
Also fix issues in struct PaintTransform definition
|
|
79937d24
|
2021-10-05T12:53:21
|
|
[repacker] Add repacker test that requires space splitting.
|
|
d5beb96e
|
2021-09-09T10:40:08
|
|
[repacker] add repacker isolation test on real font.
|
|
ca7b9dae
|
2021-09-20T14:42:51
|
|
[subset] subset MATH table
|
|
c2cc566c
|
2021-09-22T14:15:55
|
|
[subset] Fix subset_offset_array adding unused space to serializer.
ArrayOf.serialize_append allocates space for the new item, but ArrayOf.pop() does not recover the allocated space. So in the case where the revert path was entered the extra space added by serialize_append gets left in the serialization buffer. This moves the snapshot to before ArrayOf.serialize_append is called so that revert cleans up the buffer extend.
|
|
8c5c8174
|
2021-09-12T20:16:30
|
|
[subset] fix find_duplicate_features
We should check each feature against all other features with the same
tag for duplicates.
|
|
37379f8f
|
2021-09-02T11:54:37
|
|
[subset] fox for (Chain)ContextFormat3: subset lookupRecord
skip copying a lookupRecord if lookup referenced in the lookupRecord is
not retained after subset
|
|
34e0b28f
|
2021-08-18T20:46:06
|
|
[subset] make glyph-names option match fonttools behavior
Don't encode psNames that are contained in standard glyph names set
|
|
44802c8e
|
2021-08-12T11:11:51
|
|
[subset] use layout-features=* for layout subsetting tests w/ synthetic test fonts.
|
|
58bfe407
|
2021-08-11T19:48:28
|
|
[util] Move hb-subset away from main-font-text
|
|
f1226988
|
2021-08-12T01:47:35
|
|
[test] Improve generate-expected-outputs.py diff output
|
|
e39c3bde
|
2021-08-10T11:41:55
|
|
[subset] fix bug in parsing glyf flags.
the bytes of the flag stream were being treated as signed integers instead of unsigned as specified in the spec.
|
|
f3acb977
|
2021-08-10T11:05:40
|
|
[test/shaping;util] Use ';' instead of ':' to separate test fields
Accept that in --batch mode. Also in batch mode don't send the 0th arg.
Related discussion: https://github.com/harfbuzz/harfbuzz/pull/3102
|
|
b83fd3a5
|
2021-08-10T02:21:05
|
|
[util] Refactor batch-processing code into batch.hh
|
|
c2ee1fdd
|
2021-08-04T16:42:49
|
|
[subset] remove unsed table_entry struct.
|
|
dea0fe57
|
2021-08-04T16:36:20
|
|
[subset] discard extra copies of a table in face builder.
Fixes #2361. Stores tables in the builder in a hashmap so you end up with at most one copy of each table. Table serialization order is now based on tag sort order instead of order of insertion into the builder.
|
|
2c024dc3
|
2021-08-04T11:38:38
|
|
[subset] prune redundant cmap12 subtables.
If the post subset cmap12 table is equivalent to another cmap subtable don't include the 12 table in the final subset. Matches change https://github.com/fonttools/fonttools/pull/2146 from fontTools.
|
|
84946e4d
|
2021-08-05T00:05:26
|
|
[test] Suggest updating the expectation if ttx matches
https://github.com/harfbuzz/harfbuzz/issues/3089#issuecomment-892208892
|
|
f698fe5a
|
2021-08-04T12:08:18
|
|
[test] Always fail subset tests if hashes don’t match
Regardless of the pre sentience or absence of fonttools.
|
|
9f544e50
|
2021-08-04T04:20:14
|
|
[test] Don’t skip subset tests early
Check for FontTools only when the checksums are mismatching.
|
|
b0841533
|
2021-08-04T04:12:31
|
|
[test] Remove subset tests from the slow suite
|
|
7ccc52b0
|
2021-08-04T03:57:18
|
|
[test] Compare sha256 hash before TTX dumps
Most of time the files are identical, so instead of comparing the TTX
dump we can check sha256 hashes of the files first and if they match, we
don’t have to check the TTX dumps at all, making the subset tests orders
of magnitude faster.
time meson test --suite=subset down from:
real 0m19.418s
user 0m38.171s
sys 0m3.587s
to:
real 0m3.102s
user 0m8.622s
sys 0m1.701s
The expected files have been replaced by hb-subset output so they are
bit-identical where FontTools output might not.
The generate-expected-outputs.py now compares the hb-subset output with
fontttols subset and errors of they don’t match.
|
|
770fbd5a
|
2021-08-04T00:07:23
|
|
Revert "[test] Speed-up subset tests by saving TTX dump"
This reverts commit 278f44dcee34cea25403e42e06668f0afe2328c1.
|
|
10e73d18
|
2021-08-01T11:11:12
|
|
[test] Add batch mode to hb-subset and use it
time meson test --suite=subset down from:
real 0m22.822s
user 0m44.561s
sys 0m9.255s
to:
real 0m19.418s
user 0m38.171s
sys 0m3.587s
Does not seem to help much, but it is something.
Part of https://github.com/harfbuzz/harfbuzz/issues/3089
|
|
7cbcdaf6
|
2021-07-30T11:26:46
|
|
Whitespace
|
|
f6c67a5f
|
2021-07-30T02:20:19
|
|
[test] Open file in UTF-8
It is 2021 and Python still does not default to UTF-8 on Windows!
|
|
bafbade0
|
2021-07-30T01:42:45
|
|
[test] Force FontTools to use \n on all platforms
On Windows in helfuly uses \r\n.
|
|
278f44dc
|
2021-07-29T23:43:56
|
|
[test] Speed-up subset tests by saving TTX dump
Speed-up subset tests by saving TTX dump of expected output instead of
generating it each time the tests are run.
Cuts down meson test --suite=subset on my system from:
real 0m38.977s
user 1m12.024s
sys 0m10.547s
to:
real 0m22.291s
user 0m44.548s
sys 0m9.221s
Part of https://github.com/harfbuzz/harfbuzz/issues/3089
|
|
acbd8b27
|
2021-07-27T14:31:18
|
|
[subset] temporarily disable COLRv1 subsetting.
Currently COLRv1 spec is being changed so the subsetting implementation is out of sync. Disable subsetting by failing sanitization for COLRv1 tables and disable all colrv1 tests.
|
|
71b5509c
|
2021-07-20T20:05:35
|
|
[subset] support option --glyph-names
|
|
deee24fb
|
2021-07-14T13:46:36
|
|
[subset] Add missing FontName op code in top dict parsing.
Fix for #3058
|
|
eee7b459
|
2021-06-24T10:17:46
|
|
[subset] add option --no-prune-unicode-ranges
|
|
d2397d91
|
2021-06-18T18:12:19
|
|
[subset] Add additional colrv1 subsetting tests that has a glyph with components.
|
|
d07f789a
|
2021-06-09T15:36:40
|
|
[subset] support option "--notdef-outline"
|
|
cb5a6b5a
|
2021-05-19T17:33:46
|
|
[subset] support option --layout-features
|
|
f739e1dc
|
2021-05-11T11:44:32
|
|
[subset] subset both CPAL and COLRv1
|
|
a08900b7
|
2021-05-04T16:48:41
|
|
[subset] fix failing colrv0 subsetting when font has composite glyphs.
Composite glyph collection was happening along side colrv0 glyph collection which meant it was possible to miss grabbing the component glyphs for a glyph added by colrv0.
|
|
b07b97d5
|
2021-03-29T10:39:38
|
|
[subset] Add more Noto Nastaliq test cases.
|
|
92757f68
|
2021-04-22T15:18:35
|
|
[subset] Don't drop anchor device tables when dropping hints. These may contain variation data.
Update subseting expected files to match latest version of fontTools.
|
|
6fddc2bb
|
2021-04-01T15:34:17
|
|
[subset] subset layout tables (G*) by default.
|
|
4ec18c85
|
2021-04-02T15:33:54
|
|
[subset] add subsetting tests with drop hints and layout subsetting enabled.
|
|
596f4258
|
2021-04-02T12:41:09
|
|
[subset] copy Lookup::markFilteringSet when subseting.
|
|
c35d7863
|
2021-04-01T14:32:38
|
|
[subset] never drop the 'pref' feature.
Never ever drop feature 'pref', even if it's empty. Harfbuzz uses it to choose the shaper for Khmer.
|
|
85b07287
|
2021-03-25T12:17:18
|
|
Add full variable font subsetting test.
|
|
b10741ca
|
2021-03-25T19:14:48
|
|
[subset] when closing glyphs in context lookups don't use a current glyph set if a lookup is already applied.
|
|
2773d057
|
2020-11-04T11:11:16
|
|
[subset] Add a test case using NotoNastaliqUrdu.
|
|
95230e29
|
2021-03-18T17:41:25
|
|
[subset] support subsetting GSUB8
|
|
01044099
|
2021-02-16T11:38:14
|
|
Fix repack_tests for distcheck.
|
|
b8b8c58b
|
2020-11-10T11:56:09
|
|
[subset] add tests that check for successful repacking of a real font file.
|
|
56ca4357
|
2021-01-28T15:21:26
|
|
[subset] fix for collect_features and remove_redundant_lamngsys
previously remove_redundant_sys () is missing in harfbuzz, after
redundant langsys removal, some features are removed as well in
prune_features() in fonttools. This change is trying to get the same
result between harfbuzz and fonttools.
|
|
69d772e5
|
2021-03-17T14:11:16
|
|
[subset] Fixed test gsub5 test files.
|
|
0e1c0fa4
|
2021-01-12T10:17:14
|
|
[subset] optimize glyph closure method: step 5
add testcase and some fixes
|
|
b1b1486d
|
2021-03-16T13:32:23
|
|
[subset] update expected files to not include cmap12 pruning.
|
|
190b7a98
|
2020-10-08T14:44:54
|
|
[subset] Update PairPosFormat2 subsetting to match fontTools updated subsetting (https://github.com/fonttools/fonttools/pull/2221)
- subset class def 1 against the coverage table.
- Don't re-use class 0 in class def 2.
- Ignore class 0 glyphs for the purposes of determing format 1 vs format 2 encoding for ClassDef.
Add an additional test case which demonstrates these issues.
|
|
00d92763
|
2020-10-14T14:48:11
|
|
Add gpos9 expected files to Makefile.am
|
|
08a4997f
|
2020-10-06T13:02:12
|
|
[subset] Add subset support for Extension lookups (GPOS 9, GSUB 7).
|
|
eb069f39
|
2021-02-10T19:13:51
|
|
[tests] Update expected output of recently-merged gpos5
The merged PR was from before landing this:
commit 7a72b20aa2b604053696e731185a17286de73b08
Author: Garret Rieger <grieger@google.com>
Date: Thu Sep 24 15:58:48 2020 -0700
[subset] Subset GDEF during layout subsetting tests.
|
|
c7d232ce
|
2021-02-10T18:13:38
|
|
Merge pull request #2701 from googlefonts/Mark-To-Ligature_grieger
[subset] GPOS 5 MarkToLigature subsetting support
|
|
554aaa0c
|
2021-02-10T22:25:16
|
|
[build] Fix make distcheck
A regression from 7b77ce0507e18fb981a9b865f3eaac0c2ae06044.
It was caught by the CI build in the PR, but apparently we are now used
to CI failures that they are effectively ignored.
Also, yay for multiple build systems.
|