|
d00b8873
|
2023-07-14T11:26:51
|
|
Revert "[subset/closure] Batch recursions in scheduled stages"
This reverts commit f2aaeeb3016e10bf91c251296391a381d5fc6385.
|
|
f2aaeeb3
|
2023-07-14T11:17:37
|
|
[subset/closure] Batch recursions in scheduled stages
Going to revert. Doesn't pass tests and savings are minor.
|
|
7a4bd97e
|
2023-01-31T14:59:39
|
|
[layout] Build lookup accelerators lazily on-demand
Reduces memory consumption for large multi-script fonts
drastically.
|
|
83353f13
|
2023-01-31T14:32:14
|
|
[layout] Reduce memory use slightly
By using raw pointer instead of vector for subtable accelerator.
To be used for more memory saving by making subtable accelerators
lazy-loaded by shape-plans for large fonts.
|
|
950c7ab3
|
2023-01-26T15:26:05
|
|
[gsubgpos] Use accelerator when recursing
|
|
79eb0f74
|
2022-07-06T13:29:55
|
|
[GSUB] Fix build on GCC < 7
|
|
900476c6
|
2022-06-30T19:21:23
|
|
Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories.
|
|
5fdae684
|
2022-06-29T23:52:08
|
|
[reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
|
|
4119f73c
|
2022-06-08T06:34:48
|
|
[subset/layout] Rename dispatch_closure_lookups_recurse_func to dispatch_recurse_func<>
|
|
c13ff395
|
2022-06-08T06:25:23
|
|
[layout] Rename apply_recurse_func to specialization of dispatch_recurse_func
|
|
a9910e25
|
2022-03-23T16:09:41
|
|
[reorg] Move SubstLookup and GSUB into the new layout.
|
|
90af2143
|
2022-03-23T15:28:29
|
|
[reorg] Move ReverseChainSingleSubst to new layout.
|
|
403feb38
|
2022-03-23T15:19:04
|
|
[reorg] Move LigatureSubst to new layout.
|
|
6a369389
|
2022-03-23T15:04:11
|
|
[reorg] Move AlternateSubst to new layout.
|
|
dea0681d
|
2022-03-23T14:48:58
|
|
[reorg] Move MultipleSubst into new layout.
|
|
7dfd9e70
|
2022-01-13T14:17:51
|
|
[reorganization] WIP move single substitution into separate files.
|
|
a5759920
|
2022-01-22T10:30:39
|
|
[unsafe-to-concat] Mark LigatureSubst
Failures down to two:
209/401 harfbuzz:shaping+aots / gpos6 FAIL 0.06s exit status 1
265/401 harfbuzz:shaping+aots / lookupflag_ignore_attach FAIL 0.06s exit status 1
|
|
78481b32
|
2021-11-21T16:50:34
|
|
[gsubgpos] Combine input/backtrack/lookahead unsafe-to-concat
I feel like this is correct logic. Still have to prove.
Errors unchanged at 10.
|
|
ac1bb3e3
|
2022-01-20T11:47:17
|
|
[machinery] Move accelerators to constructor/destructor
|
|
94d43c00
|
2021-12-04T16:56:39
|
|
[buffer] Merge and rename clear_glyph_flags()
|
|
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.
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
f0a1892f
|
2021-07-28T17:36:22
|
|
[serialize] Remove unnecessary pointer indirection
|
|
6fe0d7d6
|
2021-07-28T12:06:49
|
|
[GSUB] If MultipleSubst is applied to a ligature-component, preserve lig-id
Fixes https://github.com/harfbuzz/harfbuzz/issues/3069
|
|
b926fb9b
|
2021-07-28T11:58:10
|
|
Whitespace
|
|
40884af1
|
2021-07-09T17:17:05
|
|
[ot-layout] Narrow down random feature logic vs safe-to-break
|
|
cc96c4e8
|
2021-06-14T16:43:23
|
|
[shaping] Update shaping substituion lookup serialization to use serializer pop()/pack().
|
|
5ba46ed0
|
2021-06-11T13:34:00
|
|
[subset] Correct OffsetTo serialization in GSUB to use serialize_serialize ().
|
|
35458b6b
|
2021-06-11T13:14:51
|
|
[subset] Add serialize_serialize to OffsetTo.
Similar to serialize_subset() this will serialize the new object and then link it to the offset.
|
|
5639e253
|
2021-03-31T16:04:43
|
|
Add Array16Of<>
|
|
6c4e0491
|
2021-03-31T15:31:32
|
|
s/OffsetArrayOf/Array16OfOffset16To/g
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
95230e29
|
2021-03-18T17:41:25
|
|
[subset] support subsetting GSUB8
|
|
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.
|
|
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.
|
|
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.
|
|
0e1c0fa4
|
2021-01-12T10:17:14
|
|
[subset] optimize glyph closure method: step 5
add testcase and some fixes
|
|
b8a58a0c
|
2021-01-10T15:50:04
|
|
[subset] optimize glyph closure method: step 4
optimize recurse_lookups in Context/ChainContext
glyph closure, only the glyphs that the parent lookup
can apply the recursion to can participate in recursing
the lookup.
|
|
b4fc593c
|
2020-12-09T10:44:18
|
|
[subset] optimize glyph closure method: step1
Previous GSUB glyph closure is done by recursively visiting
all reachable lookup tables that apply to any glyphs in the
current/input glyph set, but actually only the glyphs that
the parent lookup can apply the recursion to can participate
in recursing the lookup. This is step 1 for glyph closure
optimization:
1. Add stack of currently active glyph set pointers into hb_closure_context_t
2. Update closure() method in simple GSUB tables to use
this stack in order not to change current glyph set at different stages
of recursion
3. Add function may_have_non_1to1() to GSUB tables
|
|
e5835053
|
2020-09-29T11:05:08
|
|
[subset] Use plan->glyphset_gsub instead of plan->glyphset for GSUB/GPOS
This matches fontTools behaviour. glyphset_gsub does not contain gids added from closing over composite glyphs in glyf, since these cannot particpate in GSUB/GPOS processing.
|
|
5a7cc7fd
|
2020-07-29T08:33:32
|
|
minor spacing tweak
|
|
d0e2addd
|
2020-07-18T22:14:52
|
|
minor
|
|
b2a1accc
|
2020-06-18T16:41:31
|
|
Simplify get_glyph_alternates() dispatcher
Trying to make it **very simple** to add a specialized dispatcher for
one API to be routed to just a few objects (one in this case).
|
|
ffe8d3f3
|
2020-06-18T16:31:39
|
|
Use dispatch for get_glyph_alternates_t
First time we do this in a way that if target object doesn't have the matching
function we basically "ignore". Risky but I feel like is the right decision
for this case.
I'm going to put back the template varargs and use those, which would make
the dispatcher be just that: "dispatcher", and wouldn't need to carry the
call context. That would be a refreshing change I think.
|
|
bedf4171
|
2020-06-18T15:49:01
|
|
Push get_glyph_alternates() work all the way down
|
|
1bac8582
|
2020-06-18T22:56:07
|
|
[layout] Rename _get_alternates to _get_glyph_alternates
|
|
d3c16979
|
2020-06-18T08:37:21
|
|
[layout] move alternate buffer iteration logic to AlternateSet
|
|
1348a2c8
|
2020-06-16T21:05:16
|
|
[layout] hb_ot_layout_lookup_get_alternates, a new API
An API to retrieve one-to-one alternates from a given GSUB lookup index.
|
|
41ef75f6
|
2020-06-17T16:29:09
|
|
[gsub] Don't substitute in ReverseChainSingleSubstFormat1 if missing substitute
Fixes https://github.com/harfbuzz/harfbuzz/issues/2467
|
|
973c47f6
|
2020-06-11T11:27:57
|
|
[subset] Move 2 experimental public api methods to be private methods in GSUB/GPOS.
2 methods are: hb_ot_layout_closure_lookups and hb_ot_layout_closure_features
|
|
56719474
|
2020-06-05T12:57:23
|
|
s/blacklist/blocklist/g
|
|
5cf53c06
|
2020-04-23T10:55:41
|
|
Rename add_coverage to collect_coverage
|
|
188a0a47
|
2020-03-07T11:02:36
|
|
removed default base; replaced w/ bias if required
|
|
07504569
|
2020-02-21T13:05:44
|
|
[gsub] minor format
|
|
41122542
|
2020-02-20T13:43:06
|
|
Fix glyph closure for alternate substitution.
It was not filtering on the glyphs to be retained.
|
|
72cbfb90
|
2020-01-18T16:35:52
|
|
remove empty lookup subtables
Added a variant of subset_offset_array which takes an extra arg passed to serialize_subset for this impl.
Added a new api test "test-subset-gpos" for this.
|
|
e565d1f9
|
2019-11-01T10:21:36
|
|
[subset] subset lookup/feature/script lists for GSUB/GPOS
|
|
0b39c480
|
2019-10-22T16:00:43
|
|
[subset] closure lookups for GSUB/GPOS
|
|
a061e47f
|
2019-12-10T13:31:50
|
|
Change a few HB_INTERNAL static methods to static inline
|
|
dd3972a3
|
2019-12-10T13:21:26
|
|
[GSUB] Simplify Extension is_reverse()
We don't allow extension lookups to chain to another extension lookup.
Simplify code for that.
|
|
858b6279
|
2019-12-10T13:18:32
|
|
[machinery] Remove CastR<>()
|
|
e17e7443
|
2019-10-09T11:45:42
|
|
Convert existing uses of serialize_append in gsub subsetting to use subset_offset_array.
|
|
36f18cec
|
2019-10-07T14:02:31
|
|
Add subset_offset_array helper function which simplifies subsetting offset arrays during stream operations.
|
|
d512087e
|
2019-09-14T10:36:29
|
|
Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
|
|
38f95baf
|
2019-08-29T13:40:46
|
|
[subset] in SingleSubst subsetting, check for substitute in glyphset
That matches what fonttools does and allows for specifying exact
glyphset for subset.
|
|
49902964
|
2019-08-29T15:09:39
|
|
[gsub] Fix clang's semicolon complains
|
|
dc9222b1
|
2019-08-28T15:38:46
|
|
[subset] Implement AlternateSubst subsetting
|
|
23681b6d
|
2019-08-28T15:30:37
|
|
Minor
|
|
33c8e230
|
2019-08-28T15:25:55
|
|
[subset] Implement MultipleSubst subsetting
|
|
5c43a7ba
|
2019-08-28T15:09:58
|
|
[GSUB] Use dagger in Ligature::intersects()
|
|
b8c642c1
|
2019-08-28T15:06:45
|
|
Minor
|
|
bc5ef765
|
2019-08-28T14:51:28
|
|
[subset] Subset ligature substitutes!
Test with:
$ ./hb-subset -o out.ttf NotoSansArabic-Regular.ttf --drop-tables= سلام && ./hb-view out.ttf سلام
|
|
0a18efd7
|
2019-07-26T14:34:26
|
|
Minor
|
|
7dcf8e12
|
2019-06-26T13:44:10
|
|
[config] Fix build with HB_NO_OT_LAYOUT
|
|
2ad4ba7b
|
2019-05-31T15:48:54
|
|
[gsub] Minor
|
|
2dbdec66
|
2019-05-31T15:38:11
|
|
[gsub] Porting serialize to iterators
|
|
0af9de13
|
2019-05-20T15:04:20
|
|
[subset] For gsub subsetting only consider glyphs reachable via gsub closure.
|
|
bcd3ffc9
|
2019-05-16T13:22:09
|
|
Whitespace
|
|
05bc5f96
|
2019-05-16T13:05:58
|
|
[subset] Remove extra iteration
|
|
23768676
|
2019-05-15T21:57:26
|
|
Use hb_map(hb_add(this)) to dereference OffsetTo<>'s
|
|
d214b078
|
2019-05-15T19:07:39
|
|
Fix clang build
Ugh.
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
|
|
371b55c7
|
2019-05-15T18:54:07
|
|
Fix clang build
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
hb_requires (hb_is_sorted_source_of (Iterator,
^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
define hb_requires(Cond) hb_enable_if((Cond))
^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
^
1 error generated.
|
|
f92d188d
|
2019-05-15T18:52:57
|
|
Whitespace
|
|
962f95cf
|
2019-05-09T13:04:11
|
|
[subset] Switch SingleSubst to use iterators in serialize.
|
|
78d35f0e
|
2019-05-15T18:15:05
|
|
Reduce captures of lambdas
|
|
d0df996c
|
2019-05-15T00:32:41
|
|
Use implicit lambda return type
|
|
7df3ecfb
|
2019-05-10T20:43:26
|
|
[meta] hb_void_t -> hb_empty_t
|
|
83e3eabd
|
2019-05-07T20:58:43
|
|
Whitespace
|
|
41248cce
|
2019-05-07T20:54:31
|
|
Remove MIN/MAX in favor of hb_min/hb_max
|
|
36bb24f7
|
2019-05-05T10:14:17
|
|
[dispatch] Forward arguments in all dispatch multiplexers
|
|
b10f6593
|
2019-05-05T09:23:35
|
|
[dispatch] Use functionality from previous commit
To remove a couple of unwanted wrapper methods
|
|
88a41472
|
2019-05-02T14:22:31
|
|
[serializer] Accept exact type in serialize_subset/copy()
|
|
92588782
|
2019-04-30T13:05:10
|
|
Remove space between right angle brackets now that we have C++11 (#1689)
|
|
42526d16
|
2019-04-24T10:24:33
|
|
[serialize] Fix SingleSubstFormat1 failure
|
|
915b9ea5
|
2019-04-24T10:07:19
|
|
[serialize] Add c->check_assign()
To check for assignment overflows.
|
|
00a00bc1
|
2019-04-24T10:01:30
|
|
Fix two TODOs
|
|
95df00ae
|
2019-04-12T17:50:03
|
|
Hide a few static methods
Looks like static methods that do not get inlined end up exported.
We have a lot more. Need to protect all at some point. Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.
Was exposed by check-symbols.sh when compiling on OS X 10.14 with:
$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
|
|
688069bb
|
2019-03-29T22:17:31
|
|
[iter] One more dagger
|
|
90b60bd6
|
2019-03-29T22:12:42
|
|
Remove HB_DEBUG_WOULD_APPLY
Not that useful.
|