|
810fbedf
|
2025-04-03T20:59:23
|
|
[shape] Use font-data for GDEF varStore cache
Last remaining alloc during shaping is gone!
Fixes https://github.com/harfbuzz/harfbuzz/issues/5237
|
|
7b8ae3d0
|
2025-03-13T10:44:40
|
|
[kern/kerx] Make zero-malloc
|
|
7cf63429
|
2025-02-20T12:05:17
|
|
[ot-layout] Use a variable
Doesn't make a diff in the generated code I believe,
but is nice.
|
|
6091abcc
|
2025-02-06T02:40:24
|
|
[buffer] Avoid a copy in collect_codepoints()
|
|
e5e3bc40
|
2025-02-06T02:36:26
|
|
[buffer] Merge two functions into a template
|
|
7862c7c5
|
2025-02-04T21:37:27
|
|
Rename a method again
|
|
80bbb0b2
|
2025-02-04T18:42:33
|
|
[set-digest] Rename a method
|
|
773fe850
|
2024-11-20T17:20:49
|
|
[layout] Blocklist the GDEF table of various Courier New versions
These files have incorrectly give several base glyphs GDEF mark glyph
class leading in zeroing there advance widths.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4936
|
|
0037ee28
|
2024-05-24T08:10:15
|
|
Merge pull request #4578 from harfbuzz/varc-table
`VARC` table
|
|
e2ab6c7b
|
2024-05-12T15:25:13
|
|
[kern/kerx] Add accelerator and set-digest filtering
|
|
ebbec771
|
2024-05-12T15:10:21
|
|
[kern] Use the sanitized version from face
I'm not sure why kern/kerx/morx were written this way
before.
|
|
ac411f26
|
2024-04-23T13:26:53
|
|
[Condition] Finish evaluation of ConditionValue
https://github.com/adobe-type-tools/opentype-spec-drafts/blob/main/condvalue_spec.md
|
|
2f41d54b
|
2024-01-07T13:43:50
|
|
Fix old-compiler warning
|
|
aca55dbe
|
2023-11-03T10:51:37
|
|
[instancer] fix feature variations collect lookups
We already know which record to keep, so just collect lookups and no
need to check the substitutes_map
|
|
091e538d
|
2023-10-26T12:52:08
|
|
[instancer] support partial instancing for FeatureVariations
|
|
6190bb0b
|
2023-10-16T14:08:31
|
|
[layout] Change order of feature collection
See comments for rationale.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4445
|
|
fcb9e591
|
2023-08-01T00:57:06
|
|
8.1.0
|
|
29ad9304
|
2023-07-30T17:06:25
|
|
[layout] Minor add prealloc
|
|
dc35a0fb
|
2023-07-30T16:32:11
|
|
[ot-map] Speed up feature finding
New API:
- hb_ot_layout_collect_feature_map()
|
|
b4305532
|
2023-07-09T02:54:30
|
|
8.0.0
|
|
690af7aa
|
2023-06-30T10:36:01
|
|
[GPOS] Sanitize Device tables lazily
This speeds up face loading for variable fonts by 80%!
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
---------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb -0.0368 -0.0366 20 20 20 19
BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/hb -0.7149 -0.7162 77 22 77 22
BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/var/hb -0.7241 -0.7255 80 22 79 22
BM_Font/load_face_and_shape/SourceSansPro-Regular.otf/hb -0.1441 -0.1445 28 24 28 24
BM_Font/load_face_and_shape/AdobeVFPrototype.otf/hb -0.7893 -0.7910 66 14 66 14
BM_Font/load_face_and_shape/AdobeVFPrototype.otf/var/hb -0.7865 -0.7882 67 14 66 14
BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/hb -0.8895 -0.8900 227 25 226 25
BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/var/hb -0.8895 -0.8900 226 25 225 25
BM_Font/load_face_and_shape/Comfortaa-Regular-new.ttf/hb -0.5512 -0.5531 42 19 42 19
BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1511 -0.1510 227 192 225 191
BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.1494 -0.1498 41 35 40 34
OVERALL_GEOMEAN -0.6443 -0.6456 0 0 0 0
|
|
f0f6f6a8
|
2023-06-22T10:58:44
|
|
[layout] More message massaging
|
|
37555f84
|
2023-06-22T10:21:19
|
|
[layout] Trace chosen script tag
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
e047b1ab
|
2023-05-20T10:27:31
|
|
[layout] Improve docs
|
|
02e0e939
|
2023-05-19T13:18:06
|
|
[layout] Fetch default font extents if localized extents not found
|
|
8ccc1ff2
|
2023-05-19T13:14:57
|
|
[layout] Mark language as nullable
GI needs it apparently.
|
|
792ca22c
|
2023-05-19T11:42:20
|
|
[layout] Document new API
|
|
0894813a
|
2023-05-19T11:30:03
|
|
[layout] Add "2" version of BASE table API
...that do the script/language resolution.
Part of https://github.com/harfbuzz/harfbuzz/pull/4237
Ref https://github.com/harfbuzz/harfbuzz/issues/3439
|
|
3e110c69
|
2023-05-19T11:06:26
|
|
[layout] Add hb_ot_layout_get_font_extents()
Untested.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3290
|
|
3f2401e2
|
2023-05-03T16:56:52
|
|
[layout] Don't init iters successively multiple times
|
|
8a8fc37c
|
2023-05-03T14:57:00
|
|
[GDEF] Use a cache for glyph classes
Shows 5% speedup for Roboto shaping.
|
|
577bc8a2
|
2023-05-01T14:01:08
|
|
[layout] Micro-optimize
|
|
5b78e9a9
|
2023-05-01T13:45:42
|
|
[layout] Whitespace
|
|
7c9ed76d
|
2023-04-27T03:26:57
|
|
[doc] Use simpler markdown link syntax
|
|
48f8ed7e
|
2023-04-22T10:11:22
|
|
Docs
|
|
8bdaeddf
|
2023-02-11T23:44:58
|
|
7.0.0
|
|
0ea8bbd9
|
2023-02-11T20:01:06
|
|
[doc] Use XSince for REPLACEME/EXPERIMENTAL
To hide them from gtk-doc so that we can finally enable gtkdoc-check.
|
|
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.
|
|
04056d44
|
2023-01-28T22:52:25
|
|
[layout] Optimize more buffer message calls
Continuation of da7b66c1f8bbf7147f8113.
|
|
da7b66c1
|
2023-01-27T16:39:06
|
|
[layout] Optimize buffer message calls
Those aren't exactly free. They were showing up in profiles.
|
|
edec8946
|
2023-01-20T09:28:59
|
|
New API: hb_ot_layout_script_select_language2()
Variant that outputs chosen_language.
Not sure why the original API didn't have this. The script
counterpart has.
|
|
2fd8e36e
|
2023-01-20T09:09:14
|
|
[layout] Fix return value of chosen_script when matching fails
|
|
ed023f66
|
2023-01-12T17:04:24
|
|
Enable -Wformat-signedness
And fix the codebase.
|
|
a81dd105
|
2022-11-26T13:43:15
|
|
[layout] Adjust printing feature tags
For required-feature, print spaces, not nul bytes.
|
|
56e3868b
|
2022-11-26T13:14:23
|
|
[layout/buffer-message] Print feature name in lookup buffer messages
|
|
ed43bc51
|
2022-11-20T13:10:19
|
|
[buffer] Move delete_glyphs_inplace() here
|
|
561946c7
|
2022-11-16T17:58:59
|
|
[layout] Comment
|
|
27a8fe7d
|
2022-11-16T17:49:44
|
|
[layout] Only update buffer digest if buffer changed by a pause
|
|
8b2a2111
|
2022-11-16T16:57:44
|
|
[layout] Keep digest updated in the context
Don't recompute digest after every (applied) GSUB lookup.
|
|
a5964a2d
|
2022-11-16T16:45:23
|
|
[layout] Minor simplify
|
|
80b87588
|
2022-11-16T16:26:41
|
|
[layout] Add a buffer message for digest-skipped lookups
|
|
dff1b809
|
2022-11-16T16:19:05
|
|
[buffer] Add .digest() and use
|
|
654a2eaf
|
2022-11-16T16:09:04
|
|
[layout] Use buffer-digest for GSUB as well
Combined with previous commit, this shows up to 12% speed up with
Roboto and the en-words (ie. short strings) benchmark, about 5%
for longer English tests, and no adverse effect on heavier fonts.
|
|
15b6c325
|
2022-11-16T15:59:13
|
|
[layout] Use a buffer digest for GPOS to skip whole lookups
|
|
3ce4b8f5
|
2022-10-08T19:10:07
|
|
5.3.0
|
|
f4813e3b
|
2022-09-09T10:34:09
|
|
[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.
|
|
b70032ed
|
2022-09-22T15:59:16
|
|
[layout] Fix typo in docs
|
|
752060a4
|
2022-09-01T13:47:12
|
|
[layout] Document hb_ot_layout_lookup_get_optical_bound()
|
|
71c6cba0
|
2022-09-01T13:43:19
|
|
[layout] Rename API:
-hb_ot_layout_get_optical_bound()
+hb_ot_layout_lookup_get_optical_bound()
|
|
3892128a
|
2022-09-01T13:40:53
|
|
[layout] Add HB_NO_LAYOUT_RARELY_USED
|
|
8e88653f
|
2022-09-01T13:39:26
|
|
[layout] Move code around
|
|
4bf96211
|
2022-08-31T09:18:18
|
|
[optical-bounds] Optimize
|
|
5d6f1a88
|
2022-08-31T08:31:24
|
|
[layout] Add hb_ot_layout_get_optical_bound()
|
|
14eb3d37
|
2022-09-01T13:18:42
|
|
[layout] Improve annotations
|
|
29d5c7f6
|
2022-08-31T15:03:09
|
|
docs: Improve docs for some apis
Various functions take hb_tag_t arrays. Those
arrays are expected to be 0-terminated. Document
that.
|
|
c96bfca3
|
2022-08-31T08:05:14
|
|
[get-alternates] Minor simplify
|
|
41aa02ae
|
2022-08-29T11:17:22
|
|
[layout] Improve get_feature_tags documentation
Fixes https://github.com/harfbuzz/harfbuzz/issues/3798
|
|
371c8867
|
2022-08-23T22:28:58
|
|
Add few missing since tags
|
|
5fdae684
|
2022-06-29T23:52:08
|
|
[reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl.
|
|
98e90cc6
|
2022-06-30T08:43:57
|
|
[docs] Reduce warnings
Use markdown syntax for inline code blocks instead of %true, %false, and
%NULL.
|
|
3fbf2dec
|
2022-06-28T23:55:32
|
|
[reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS.
|
|
88ef3c5a
|
2022-06-28T23:26:49
|
|
[reorg] Change OT::Layout::GPOS to OT::Layout::GPOS_impl.
|
|
74f45f7c
|
2022-06-24T23:14:30
|
|
[reorg] Move remaining GPOS lookup types to new directory.
|
|
c13ff395
|
2022-06-08T06:25:23
|
|
[layout] Rename apply_recurse_func to specialization of dispatch_recurse_func
|
|
42051fe1
|
2022-06-08T04:00:21
|
|
[layout] s/inplace/always_inplace/g
|
|
b96622d1
|
2022-06-05T02:45:41
|
|
[layout] Use a cache for main input ClassDef of (Chain)ContextLookupFormat2
This commit adds a per-lookup caching infrastructure to GSUB/GPOS, and
uses it to cache input ClassDef.get_class value for (Chain)ContextLookupFormat2.
For fonts heavy on use of heave class-based2 context matching, this shows
a good speedup. For NotoNastaliqUrdu for example, I observe 17% speedup.
Unfortunately not many other lookups can use a cache like this :(.
https://github.com/harfbuzz/harfbuzz/pull/3636
|
|
15543f70
|
2022-06-04T10:55:50
|
|
[indic-like] Move allocation of syllable() buffer var to shapers that use it
In indic, we don't have a pause location release the var.
|
|
e6409d39
|
2022-06-05T06:57:37
|
|
Revert "[layout] Use a cache for main input ClassDef of (Chain)ContextLookups"
This reverts commit 57d1c08739d0acd94b96da2f9d5dd6c0ff3b3722.
Err. This was an accident.
|
|
57d1c087
|
2022-06-05T02:45:41
|
|
[layout] Use a cache for main input ClassDef of (Chain)ContextLookups
|
|
997d9cc4
|
2022-06-02T18:04:12
|
|
[map] Make unique_ptr hashable
|
|
e9407a2b
|
2022-06-02T11:29:44
|
|
Use shared_ptr<hb_set_t> in one place
See if valgrind is happy...
|
|
3957d292
|
2022-05-29T07:30:58
|
|
[layout] Remove stale comment
|
|
044d7a06
|
2022-03-28T12:38:56
|
|
[indic-like] Add per-lookup per-syllable flag
This allows mix-and-matching per-syllable and other lookups.
In fact, removes the clear-syllables call completely.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3513
|
|
b342adeb
|
2022-03-23T16:28:22
|
|
[reorg] Move GSUB into OT::Layout::GSUB namespace.
|
|
cad2fe8e
|
2022-03-15T10:49:29
|
|
[baseline] Fix HB_NO_METRICS build
Fixes https://github.com/harfbuzz/harfbuzz/issues/3482
|
|
a8a89b80
|
2022-03-15T10:48:03
|
|
[layout] Whitespace
|
|
6bf8f0a3
|
2022-03-15T10:44:41
|
|
[baseline] Use ot-metrics fallback API
|
|
e7ab42b2
|
2022-03-10T09:05:43
|
|
[layout] Fix handling of baseline variations
For BASE table format 1.1, the handling of design
space vs user space coordinates was inconsistent.
We were applying design -> user transformation
twice for the deltas, leading to wrong baseline
values.
Patch by Ebrahim Byagowi <ebrahim@gnu.org>
Fixes: #3476
|
|
8d1b000a
|
2022-03-01T21:27:32
|
|
4.0.0
|
|
95bb2ff7
|
2022-02-16T13:10:52
|
|
[ot-layout] Add central baselines
Add HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL
and HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL
which are the centers of the ideographic em-box
and face box.
|
|
f81578fd
|
2022-02-13T19:15:36
|
|
[ot-layout] Synthesize missing baselines
Add a variation of hb_ot_layout_get_baseline that
synthesizes missing baselines, using heuristics in part
taken from the CSS Inline Layout Module, Level 3.
Includes some new tests for synthesized baselines.
The base2.ttf is a subset of Noto Sans Bengali that
includes just the Bengali Ka.
New API: hb_ot_layout_get_baseline_with_fallback
|
|
98079109
|
2022-02-13T18:15:32
|
|
[ot-layout] Add +hb_ot_layout_get_horizontal_baseline_tag_for_script()
New API:
+hb_ot_layout_get_horizontal_baseline_tag_for_script()
|
|
9909e332
|
2022-02-15T18:02:09
|
|
Improve docs for hb_ot_layout_get_ligature_carets
Add some relevant details to the documentation
for this function.
Fixes: #3168
|
|
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.
|
|
bea5369c
|
2022-01-04T10:52:05
|
|
[buffer] Rename swap_buffers() to sync()
|
|
d6702570
|
2021-12-10T13:52:05
|
|
[subset] reset the visited lookup count before each closure iteration.
|
|
394f7729
|
2021-11-19T11:49:23
|
|
[map] Allow storing classes in the hashmap
Fixes https://github.com/harfbuzz/harfbuzz/issues/3293
The trick was to change the type of the invalid key/value to be non-class.
|
|
1e07d42a
|
2021-11-07T01:19:42
|
|
Typo fix
|