Releases: harfbuzz/harfbuzz
8.4.0
What's Changed
- Add /bigobj to MSVC compiler flags in meson build, to fix building hb-subset.cc
- Specify minimum versions of various dependencies in meson and autotools build.
- When subsetting, place variation store at the end of โGDEFโ table to fix shaping issues with some versions of Adobe InDesign.
- Various build fixes.
- New API:
+hb_buffer_set_random_state()
+hb_buffer_get_random_state()
New Contributors
Full Changelog: 8.3.1...8.4.0
8.3.1
What's Changed
- hb_blob_create_from_file_or_fail() on Windows will now try to interpret the file name as UTF-8 first, and as system code page if it is not valid UTF-8.
- Fix hb_style_get_value() in fonts with โSTATโ table.
- Properly handle negative offsets in CFF table.
- Update IANA Language Subtag Registry to 2024-03-07.
- Subsetter now supports subsetting โBASEโ table.
- Subsetter will update โhheaโ font metrics in sync with โOS/2โ ones.
- โ--variationsโ option of โhb-subsetโ now supports leaving out values that should be unchanged, e.g. โwght=:500:โ will change the default and keep max and min unchanged. It also supports โ*=dropโ to to pin all axes to default location.
- Fix hb_ot_math_get_glyph_kerning() to match updated โMATHโ table spec.
- Support legacy MacRoman encoding in โcmapโ table.
- Various build fixes.
- Various subsetting and instancing fixes.
New Contributors
- @pseiderer made their first contribution in #4512
- @utelle made their first contribution in #4514
- @lie-yan made their first contribution in #4541
- @sezero made their first contribution in #4546
- @apache-hb made their first contribution in #4561
- @TingPing made their first contribution in #4562
- @lzsiga made their first contribution in #4576
- @chrsan made their first contribution in #4579
- @Nopey made their first contribution in #4585
- @jpcomito made their first contribution in #4619
Full Changelog: 8.3.0...8.3.1
8.3.0
What's Changed
-
Improve memory barrier to fix potential segfaults.
-
Various build fixes.
-
Various subsetting and instancing fixes.
-
Rename โhb-subsetโ option โ--instanceโ to โ--variationsโ to match the other
tools. Old option is kept as an alias. -
New API:
HB_AAT_LAYOUT_FEATURE_TYPE_CURSIVE_CONNECTION -
Deprecated API:
HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION
New Contributors
- @manthey made their first contribution in #4450
- @biodranik made their first contribution in #4448
- @yisibl made their first contribution in #4455
- @dalboris made their first contribution in #4492
Full Changelog: 8.2.2...8.3.0
8.2.2
What's Changed
- Fix regression from 8.1.0 in shaping fonts with duplicate feature tags.
- Fix regression from 8.2.0 in parsing CSS-style feature strings.
- Variable fonts instanciation now handles more tables.
- Various CMake build improvements.
- various fixes to build without errors with gcc 4.9.2.
New Contributors
- @tpetillon made their first contribution in #4408
- @Duncaen made their first contribution in #4413
- @inobelar made their first contribution in #4417
Full Changelog: 8.2.1...8.2.2
8.2.1
8.2.0
What's Changed
-
Various build and fuzzing fixes
-
Improvements to COLRv1 painting.
-
New API:
+hb_paint_color_glyph_func_t
+hb_paint_funcs_set_color_glyph_func
+hb_paint_color_glyph
New Contributors
- @benoit-pierre made their first contribution in #4391
- @amyspark made their first contribution in #4394
Full Changelog: 8.1.1...8.2.0
8.1.1
- Fix shaping of contextual rules at the end of string, introduced in 8.1.0
- Fix stack-overflow in repacker with malicious fonts.
- 30% speed up loading Noto Duployan font.
Full Changelog: 8.1.0...8.1.1
8.1.0
What's Changed
-
Fix long-standing build issue with the AIX compiler and older Apple clang.
-
Revert optimization that could cause timeout during subsetting with malicious fonts.
-
More optimization work:
- 45% speed up in shaping Noto Duployan font.
- 10% speed up in subsetting Noto Duployan font.
- Another 8% speed up in shaping Gulzar.
- 5% speed up in loading Roboto.
-
New API:
+hb_ot_layout_collect_features_map()
New Contributors
- @derekdreery made their first contribution in #4334
Full Changelog: 8.0.1...8.1.0
8.0.1
What's Changed
-
Build fix on 32-bit ARM.
-
More speed optimizations:
- 60% speed up in retain-gid (used for IFT) subsetting of SourceHanSans-VF.
- 16% speed up in retain-gid (used for IFT) subsetting of NotoSansCJKkr.
- 38% speed up in subsetting (beyond-64k) mega-merged Noto.
Full Changelog: 8.0.0...8.0.1
8.0.0
What's Changed
-
New, experimental, WebAssembly (WASM) shaper, that provides greater flexibility over OpenType/AAT/Graphite shaping, using WebAssembly embedded inside the font file. Currently WASM shaper is disabled by default and needs
to be enabled at build time. For details, see:https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md
For example fonts making use of the WASM shaper, see:
-
Improvements to Experimental features introduced in earlier releases:
- Support for subsetting beyond-64k and VarComposites fonts.
- Support for instancing variable fonts with cubic โglyfโ table.
-
Many big speed optimizations:
- Up to 89% speedup loading variable fonts for shaping.
- Up to 88% speedup in small subsets of large (eg. CJK) fonts (both TTF and OTF), essential for Incremental Font Transfer (IFT).
- Over 50% speedup in loading Roboto font for shaping.
- Up to 40% speed up in loading (sanitizing) complex fonts.
- 30% speed up in shaping Gulzar font.
- Over 25% speedup in glyph loading Roboto font.
- 10% speed up loading glyph shapes in VarComposite Hangul font.
- hb-hashmap optimizations & hashing improvements.
-
New macro HB_ALWAYS_INLINE. HarfBuzz now inlines functions more aggressively, which results in some speedup at the expense of bigger code size. To disable this feature define the macro to just inline.
-
New API:
+HB_CODEPOINT_INVALID
+hb_ot_layout_get_baseline2()
+hb_ot_layout_get_baseline_with_fallback2()
+hb_ot_layout_get_font_extents()
+hb_ot_layout_get_font_extents2()
+hb_subset_input_set_axis_range()
New Contributors
- @fanc999-1 made their first contribution in #4240
- @arch1t3cht made their first contribution in #4299
- @aelmahmoudy made their first contribution in #4301
Full Changelog: 7.3.0...8.0.0