mirror of
https://github.com/love2d/megasource.git
synced 2026-08-23 05:55:28 +02:00
update harfbuzz to 10.1.0
This commit is contained in:
+527
-1
@@ -1,3 +1,529 @@
|
||||
Overview of changes leading to 10.1.0
|
||||
Tuesday, November 5, 2024
|
||||
====================================
|
||||
- Fix the sign of fallback vertical glyph advance (used when font has no
|
||||
vertical advance data).
|
||||
- Increase maximum “CFF” operands limit 20 times to support more complex fonts.
|
||||
- Add “--face-loader” option to command line utilities.
|
||||
- Support “COLR” v0 table in hb_font_get_glyph_extents().
|
||||
- Add support for font functions that use Core Text APIs, similar to FreeType
|
||||
font functions. This allows, for example, using drawing fonts that use the new
|
||||
(and undocumented) “hvgl” table.
|
||||
- Update IANA and OT language registries, as well ase USE data files.
|
||||
- Fix build with ICU 76.
|
||||
- Various compiler warnings and build fixes.
|
||||
- Various subsetter fixes.
|
||||
|
||||
- New API:
|
||||
+hb_face_create_or_fail()
|
||||
+hb_face_create_from_file_or_fail()
|
||||
+hb_coretext_face_create_from_file_or_fail()
|
||||
+hb_coretext_font_set_funcs()
|
||||
+hb_ft_face_create_from_file_or_fail()
|
||||
|
||||
Overview of changes leading to 10.0.1
|
||||
Tuesday, September 24, 2024
|
||||
====================================
|
||||
- Relax sanitization checks for “morx” subtables to fix broken AAT shaping of
|
||||
macOS 15.0 version of GeezaPro.
|
||||
|
||||
|
||||
Overview of changes leading to 10.0.0
|
||||
Monday, September 23, 2024
|
||||
====================================
|
||||
- Unicode 16.0.0 support.
|
||||
- Various documentation fixes.
|
||||
- Various build fixes.
|
||||
- Add API to allow HarfBuzz client to set what glyph to use when a Unicode
|
||||
Variation Selector is not supported by the font, which would allow the client
|
||||
to customize what happens in this case, by using a different font for example.
|
||||
- Add a callback to for “hb_face_t” for getting the list of table tags. This is
|
||||
now used to make calling “hb_face_get_table_tags()” work on a faces created by
|
||||
“hb_face_create_for_tables()” (e.g. faces returned by “hb_subset_or_fail()”).
|
||||
- CGJ and Mongolian Variation Selectors are now ignored during glyph
|
||||
positioning, previously they would block both glyph substitution and
|
||||
positioning across them.
|
||||
- Support cairo script as an output format for “hb-view” command line tool.
|
||||
- Drop an optimization that would cause HarfBuzz not apply pair positioning
|
||||
lookup subtables under certain circumstances, for compatibility with other
|
||||
implementations that do apply these subtables.
|
||||
- Subsetting will now fail if source font has no glyphs, so feeding the subsetter
|
||||
invalid data will not silently return an empty face.
|
||||
- If after partially instancing a font no variation data is left (the instance
|
||||
is fully static), don’t consider this a failure.
|
||||
- Workaround a Firefox bug in displaying SVGs generated be “hb-view” command
|
||||
line tool under certain circumstances.
|
||||
- Fix bug in macroman mapping for “cmap” table.
|
||||
- Fix difference shaping output when HarfBuzz is built with with
|
||||
“HB_NO_OT_RULESETS_FAST_PATH” enabled.
|
||||
- Various subsetting and instancing fixes.
|
||||
- Various fuzzing fixes.
|
||||
- Add “with_libstdcxx” meson build option.
|
||||
|
||||
|
||||
- New API:
|
||||
+HB_SCRIPT_GARAY
|
||||
+HB_SCRIPT_GURUNG_KHEMA
|
||||
+HB_SCRIPT_KIRAT_RAI
|
||||
+HB_SCRIPT_OL_ONAL
|
||||
+HB_SCRIPT_SUNUWAR
|
||||
+HB_SCRIPT_TODHRI
|
||||
+HB_SCRIPT_TULU_TIGALARI
|
||||
+hb_buffer_set_not_found_variation_selector_glyph()
|
||||
+hb_buffer_get_not_found_variation_selector_glyph()
|
||||
+hb_get_table_tags_func_t
|
||||
+hb_face_set_get_table_tags_func()
|
||||
|
||||
|
||||
Overview of changes leading to 9.0.0
|
||||
Thursday, Jun 27, 2024
|
||||
====================================
|
||||
- HarfBuzz now the supports the proposed new OpenType “VARC” table. This
|
||||
replaces the previously supported “Variable Composites” experimental feature.
|
||||
“VARC” support is still experimental and it is not enabled unless HarfBuzz is
|
||||
built with experimental APIs enabled:
|
||||
https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md
|
||||
- Autotools build system have been dropped. Meson is the only supported build
|
||||
system in HarfBuzz going forward.
|
||||
- Speed up “AAT” shaping for short words by up to 4%.
|
||||
- Ignore unknown “CFF” operators.
|
||||
- “hb_subset_input_keep_everything()” now keeps also non-unicode “name” table
|
||||
records.
|
||||
- Update the IANA and OpenType language tag registries.
|
||||
- Support composite glyphs with very large number of points in hb-draw API.
|
||||
- Various build fixes.
|
||||
|
||||
|
||||
Overview of changes leading to 8.5.0
|
||||
Monday, May 13, 2024
|
||||
====================================
|
||||
- API for partial instancing is now stable and have been promoted out of
|
||||
experimental APIs.
|
||||
- Support instancing “BASE” table.
|
||||
- Speedup AAT shaping by 13–30%.
|
||||
- Various build fixes.
|
||||
- Various subsetter and instancer fixes.
|
||||
|
||||
- New API:
|
||||
+HB_SUBSET_FLAGS_OPTIMIZE_IUP_DELTAS
|
||||
+hb_subset_input_get_axis_range()
|
||||
+hb_subset_input_pin_axis_location()
|
||||
|
||||
Overview of changes leading to 8.4.0
|
||||
Saturday, March 29, 2024
|
||||
====================================
|
||||
- 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()
|
||||
|
||||
Overview of changes leading to 8.3.1
|
||||
Saturday, March 16, 2024
|
||||
====================================
|
||||
- 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 API:
|
||||
hb_subset_input_pin_all_axes_to_default()
|
||||
|
||||
Overview of changes leading to 8.3.0
|
||||
Saturday, November 11, 2023
|
||||
====================================
|
||||
- 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
|
||||
|
||||
Overview of changes leading to 8.2.2
|
||||
Wednesday, October 18, 2023
|
||||
“From the river to the sea, Palestine will be free”
|
||||
====================================
|
||||
- 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.
|
||||
|
||||
|
||||
Overview of changes leading to 8.2.1
|
||||
Monday, September 18, 2023
|
||||
====================================
|
||||
- Unicode 15.1 support.
|
||||
|
||||
|
||||
Overview of changes leading to 8.2.0
|
||||
Friday, September 8, 2023
|
||||
====================================
|
||||
- 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
|
||||
|
||||
|
||||
Overview of changes leading to 8.1.1
|
||||
Wednesday, August 2, 2023
|
||||
====================================
|
||||
- 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.
|
||||
|
||||
|
||||
Overview of changes leading to 8.1.0
|
||||
Tuesday, August 1, 2023
|
||||
====================================
|
||||
- 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()
|
||||
|
||||
|
||||
Overview of changes leading to 8.0.1
|
||||
Wednesday, July 12, 2023
|
||||
====================================
|
||||
- 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.
|
||||
|
||||
|
||||
Overview of changes leading to 8.0.0
|
||||
Sunday, July 9, 2023
|
||||
====================================
|
||||
- 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:
|
||||
|
||||
https://github.com/harfbuzz/harfbuzz-wasm-examples
|
||||
|
||||
- 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()
|
||||
|
||||
|
||||
Overview of changes leading to 7.3.0
|
||||
Tuesday, May 9, 2023
|
||||
====================================
|
||||
- Speedup applying glyph variation in VarComposites fonts (over 40% speedup).
|
||||
(Behdad Esfahbod)
|
||||
- Speedup instancing some fonts (over 20% speedup in instancing RobotoFlex).
|
||||
(Behdad Esfahbod)
|
||||
- Speedup shaping some fonts (over 30% speedup in shaping Roboto).
|
||||
(Behdad Esfahbod)
|
||||
- Support subsetting VarComposites and beyond-64k fonts. (Behdad Esfahbod)
|
||||
- New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor optimizing memory
|
||||
usage over speed. (Behdad Esfahbod)
|
||||
- Supporting setting the mapping between old and new glyph indices during
|
||||
subsetting. (Garret Rieger)
|
||||
- Various fixes and improvements.
|
||||
(Behdad Esfahbod, Denis Rochette, Garret Rieger, Han Seung Min, Qunxin Liu)
|
||||
|
||||
- New API:
|
||||
+hb_subset_input_old_to_new_glyph_mapping()
|
||||
|
||||
|
||||
Overview of changes leading to 7.2.0
|
||||
Thursday, April 27, 2023
|
||||
====================================
|
||||
- Add Tifinagh to the list of scripts that can natively be either right-to-left
|
||||
or left-to-right, to improve handling of its glyph positioning.
|
||||
(Simon Cozens)
|
||||
- Return also single substitution from hb_ot_layout_lookup_get_glyph_alternates()
|
||||
(Behdad Esfahbod)
|
||||
- Fix 4.2.0 regression in applying across syllables in syllabic scripts.
|
||||
(Behdad Esfahbod)
|
||||
- Add flag to avoid glyph substitution closure during subsetting, and the
|
||||
corresponding “--no-layout-closure” option to “hb-subset” command line tool.
|
||||
(Garret Rieger)
|
||||
- Support instancing COLRv1 table. (Qunxin Liu)
|
||||
- Don’t drop used user-defined name table entries during subsetting.
|
||||
(Qunxin Liu)
|
||||
- Optimize handling of “gvar” table. (Behdad Esfahbod)
|
||||
- Various subsetter bug fixes and improvements. (Garret Rieger, Qunxin Liu)
|
||||
- Various documentation improvements. (Behdad Esfahbod, Josef Friedrich)
|
||||
|
||||
- New API:
|
||||
+HB_SUBSET_FLAGS_NO_LAYOUT_CLOSURE
|
||||
+HB_UNICODE_COMBINING_CLASS_CCC132
|
||||
|
||||
- Deprecated API:
|
||||
+HB_UNICODE_COMBINING_CLASS_CCC133
|
||||
|
||||
|
||||
Overview of changes leading to 7.1.0
|
||||
Friday, March 3, 2023
|
||||
====================================
|
||||
- New experimental hb_shape_justify() API that uses font variations to expand
|
||||
or shrink the text to a given advance. (Behdad Esfahbod)
|
||||
- Various build and bug fixes. (Behdad Esfahbod, Garret Rieger, Qunxin Liu)
|
||||
|
||||
- New API:
|
||||
+hb_font_set_variation()
|
||||
|
||||
|
||||
Overview of changes leading to 7.0.1
|
||||
Monday, February 20, 2023
|
||||
====================================
|
||||
- Various build and bug fixes.
|
||||
|
||||
|
||||
Overview of changes leading to 7.0.0
|
||||
Saturday, February 11, 2023
|
||||
====================================
|
||||
- New hb-paint API that is designed mainly to paint “COLRv1” glyphs, but can be
|
||||
also used as a unified API to paint any of the glyph representations
|
||||
supported by HarfBuzz (B/W outlines, color layers, or color bitmaps).
|
||||
(Behdad Esfahbod, Matthias Clasen)
|
||||
- New hb-cairo API for integrating with cairo graphics library. This is provided
|
||||
as a separate harfbuzz-cairo library. (Behdad Esfahbod, Matthias Clasen)
|
||||
- Support for instancing “CFF2” table. (Behdad Esfahbod)
|
||||
- Support font emboldening. (Behdad Esfahbod)
|
||||
- Support feature ranges with AAT shaping. (Behdad Esfahbod)
|
||||
- Experimental support to cubic curves in “glyf” table, see
|
||||
https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
|
||||
for spec. (Behdad Esfahbod)
|
||||
- Various subsetter improvements. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
|
||||
- Various documentation improvements.
|
||||
(Behdad Esfahbod, Matthias Clasen, Khaled Hosny)
|
||||
- Significantly reduced memory use during shaping. (Behdad Esfahbod)
|
||||
- Greatly reduced memory use during subsetting “CFF” table. (Behdad Esfahbod)
|
||||
- New command line utility, hb-info, for querying various font information.
|
||||
(Behdad Esfahbod, Matthias Clasen)
|
||||
- New hb-shape/hb-view options: --glyphs, --color-palette, --font-bold,
|
||||
--font-grade, and --named-instance. (Behdad Esfahbod)
|
||||
- Miscellaneous fixes and improvements.
|
||||
(Amir Masoud Abdol, Andres Salomon, Behdad Esfahbod, Chun-wei Fan,
|
||||
Garret Rieger, Jens Kutilek, Khaled Hosny, Konstantin Käfer, Matthias Clasen,
|
||||
Nirbheek Chauhan, Pedro J. Estébanez, Qunxin Liu, Sergei Trofimovich)
|
||||
|
||||
- New API:
|
||||
+HB_FONT_NO_VAR_NAMED_INSTANCE
|
||||
+HB_PAINT_IMAGE_FORMAT_BGRA
|
||||
+HB_PAINT_IMAGE_FORMAT_PNG
|
||||
+HB_PAINT_IMAGE_FORMAT_SVG
|
||||
+hb_cairo_font_face_create_for_face
|
||||
+hb_cairo_font_face_create_for_font
|
||||
+hb_cairo_font_face_get_face
|
||||
+hb_cairo_font_face_get_font
|
||||
+hb_cairo_font_face_get_scale_factor
|
||||
+hb_cairo_font_face_set_font_init_func
|
||||
+hb_cairo_font_face_set_scale_factor
|
||||
+hb_cairo_font_init_func_t
|
||||
+hb_cairo_glyphs_from_buffer
|
||||
+hb_cairo_scaled_font_get_font
|
||||
+hb_color_line_get_color_stops
|
||||
+hb_color_line_get_color_stops_func_t
|
||||
+hb_color_line_get_extend
|
||||
+hb_color_line_get_extend_func_t
|
||||
+hb_color_line_t
|
||||
+hb_color_stop_t
|
||||
+hb_draw_funcs_get_empty
|
||||
+hb_draw_funcs_get_user_data
|
||||
+hb_draw_funcs_set_user_data
|
||||
+hb_face_collect_nominal_glyph_mapping
|
||||
+hb_font_draw_glyph
|
||||
+hb_font_draw_glyph_func_t
|
||||
+hb_font_funcs_set_draw_glyph_func
|
||||
+hb_font_funcs_set_paint_glyph_func
|
||||
+hb_font_get_synthetic_bold
|
||||
+hb_font_get_var_named_instance
|
||||
+hb_font_paint_glyph
|
||||
+hb_font_paint_glyph_func_t
|
||||
+hb_font_set_synthetic_bold
|
||||
+hb_map_keys
|
||||
+hb_map_next
|
||||
+hb_map_update
|
||||
+hb_map_values
|
||||
+hb_ot_color_glyph_has_paint
|
||||
+hb_ot_color_has_paint
|
||||
+hb_ot_layout_script_select_language2
|
||||
+hb_ot_name_id_predefined_t
|
||||
+hb_paint_color
|
||||
+hb_paint_color_func_t
|
||||
+hb_paint_composite_mode_t
|
||||
+hb_paint_custom_palette_color
|
||||
+hb_paint_custom_palette_color_func_t
|
||||
+hb_paint_extend_t
|
||||
+hb_paint_funcs_create
|
||||
+hb_paint_funcs_destroy
|
||||
+hb_paint_funcs_get_empty
|
||||
+hb_paint_funcs_get_user_data
|
||||
+hb_paint_funcs_is_immutable
|
||||
+hb_paint_funcs_make_immutable
|
||||
+hb_paint_funcs_reference
|
||||
+hb_paint_funcs_set_color_func
|
||||
+hb_paint_funcs_set_custom_palette_color_func
|
||||
+hb_paint_funcs_set_image_func
|
||||
+hb_paint_funcs_set_linear_gradient_func
|
||||
+hb_paint_funcs_set_pop_clip_func
|
||||
+hb_paint_funcs_set_pop_group_func
|
||||
+hb_paint_funcs_set_pop_transform_func
|
||||
+hb_paint_funcs_set_push_clip_glyph_func
|
||||
+hb_paint_funcs_set_push_clip_rectangle_func
|
||||
+hb_paint_funcs_set_push_group_func
|
||||
+hb_paint_funcs_set_push_transform_func
|
||||
+hb_paint_funcs_set_radial_gradient_func
|
||||
+hb_paint_funcs_set_sweep_gradient_func
|
||||
+hb_paint_funcs_set_user_data
|
||||
+hb_paint_funcs_t
|
||||
+hb_paint_image
|
||||
+hb_paint_image_func_t
|
||||
+hb_paint_linear_gradient
|
||||
+hb_paint_linear_gradient_func_t
|
||||
+hb_paint_pop_clip
|
||||
+hb_paint_pop_clip_func_t
|
||||
+hb_paint_pop_group
|
||||
+hb_paint_pop_group_func_t
|
||||
+hb_paint_pop_transform
|
||||
+hb_paint_pop_transform_func_t
|
||||
+hb_paint_push_clip_glyph
|
||||
+hb_paint_push_clip_glyph_func_t
|
||||
+hb_paint_push_clip_rectangle
|
||||
+hb_paint_push_clip_rectangle_func_t
|
||||
+hb_paint_push_group
|
||||
+hb_paint_push_group_func_t
|
||||
+hb_paint_push_transform
|
||||
+hb_paint_push_transform_func_t
|
||||
+hb_paint_radial_gradient
|
||||
+hb_paint_radial_gradient_func_t
|
||||
+hb_paint_sweep_gradient
|
||||
+hb_paint_sweep_gradient_func_t
|
||||
+hb_set_is_inverted
|
||||
+hb_subset_input_keep_everything
|
||||
|
||||
- Deprecated API:
|
||||
+hb_font_funcs_set_glyph_shape_func
|
||||
+hb_font_get_glyph_shape_func_t
|
||||
+hb_font_get_glyph_shape
|
||||
|
||||
|
||||
Overview of changes leading to 6.0.0
|
||||
Friday, December 16, 2022
|
||||
====================================
|
||||
- A new API have been added to pre-process the face and speed up future
|
||||
subsetting operations on that face. Provides up to a 95% reduction in
|
||||
subsetting times when the same face is subset more than once.
|
||||
|
||||
For more details and benchmarks, see:
|
||||
https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md
|
||||
|
||||
(Garret Rieger, Behdad Esfahbod)
|
||||
|
||||
- Shaping have been speedup by skipping entire lookups when the buffer contents
|
||||
don't intersect with the lookup. Shows up to a 10% speedup in shaping some
|
||||
fonts. (Behdad Esfahbod)
|
||||
|
||||
- A new experimental feature, “Variable Composites” (enabled by passing
|
||||
-Dexperimental_api=true to meson), is also featured in this release.
|
||||
This technology enables drastic compression of fonts in the Chinese,
|
||||
Japanese, Korean, and other writing systems, by reusing the OpenType Font
|
||||
Variations technology for encoding “smart components” into the font.
|
||||
|
||||
The specification for these extensions to the font format can be found in:
|
||||
https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md
|
||||
|
||||
A test variable-font with ~7160 Hangul syllables derived from the
|
||||
NotoSerifKR-VF font has been built, with existing OpenType technology, as
|
||||
well as with the new Variable Composites (VarComposites) technology. The
|
||||
VarComposites font is over 90% smaller than the OpenType version of the font!
|
||||
Both fonts can be obtained from the “smarties” repository:
|
||||
https://github.com/behdad/smarties/tree/3.0/fonts/hangul/serif
|
||||
|
||||
When building HarfBuzz with experimental features enabled, you can test
|
||||
the “smarties” font with a sample character like this:
|
||||
|
||||
$ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700
|
||||
|
||||
(Behdad Esfahbod)
|
||||
|
||||
- The HarfBuzz subsetter can now drop axes by pinning them to specific values
|
||||
(also referred to as instancing). There are a couple of restrictions
|
||||
currently:
|
||||
|
||||
- Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet
|
||||
supported.
|
||||
- Only supports the case where all axes in a font are pinned.
|
||||
|
||||
(Garret Rieger, Qunxin Liu)
|
||||
|
||||
- Miscellaneous fixes and improvements.
|
||||
|
||||
(Behdad Esfahbod, Christoph Reiter, David Corbett, Eli Schwartz, Garret
|
||||
Rieger, Joel Auterson, Jordan Petridis, Khaled Hosny, Lorenz Wildberg,
|
||||
Marco Rebhan, Martin Storsjö, Matthias Clasen, Qunxin Liu, Satadru Pramanik)
|
||||
|
||||
|
||||
- New API
|
||||
+hb_subset_input_pin_axis_location()
|
||||
+hb_subset_input_pin_axis_to_default()
|
||||
+hb_subset_preprocess()
|
||||
|
||||
|
||||
Overview of changes leading to 5.3.1
|
||||
Wednesday, October 19, 2022
|
||||
====================================
|
||||
@@ -566,7 +1092,7 @@ Tuesday, March 16, 2021
|
||||
Previously these were shaped using the generalized Arabic shaper. (David Corbett)
|
||||
- Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett)
|
||||
- Update language tags. (David Corbett)
|
||||
- Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
|
||||
- Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
|
||||
- Documentation improvements. (Khaled Hosny, Nathan Willis)
|
||||
- Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu)
|
||||
- Fuzzer-found fixes and other improvements when memory failures happen. (Behdad)
|
||||
|
||||
Reference in New Issue
Block a user