CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 673
Releases: harfbuzz/harfbuzz
11.2.1
Compare
What's Changed
- Various build improvements.
- Fix build with
HB_NO_DRAW
andHB_NO_PAINT
- Add an optional
harfruzz
shaper that uses HarfRuzz; an ongoing Rust port of HarfBuzz shaping. This shaper is mainly used for testing the output of the Rust implementation. - Fix regression that caused applying
unsafe_to_break()
to the whole buffer to be ignored. - Update USE data files.
- Fix getting advances of out-of-rage glyph indices in DirectWrite font functions.
Full Changelog: 11.2.0...11.2.1
Assets 5
11.2.0
Compare
What's Changed
-
Painting of COLRv1 fonts without clip boxes is now about 10 times faster.
-
Synthetic bold/slant of a sub font is now respected, instead of using the parent’s.
-
Glyph extents for fonts synthetic bold/slant are now accurately calculated.
-
Various build fixes
-
New API:
+hb_font_is_synthetic()
+hb_font_draw_glyph_or_fail_func_t
+hb_font_paint_glyph_or_fail_func_t
+hb_font_funcs_set_draw_glyph_or_fail_func()
+hb_font_funcs_set_paint_glyph_or_fail_func()
+hb_font_draw_glyph_or_fail()
+hb_font_paint_glyph_or_fail() -
Deprecated API:
-hb_font_draw_glyph_func_t
-hb_font_paint_glyph_func_t
-hb_font_funcs_set_draw_glyph_func()
-hb_font_funcs_set_paint_glyph_func()
New Contributors
- @JordanTheToaster made their first contribution in #5297
Full Changelog: 11.1.0...11.2.0
Assets 5
11.1.0
Compare
What's Changed
- Include bidi mirroring variants of the requested codepoints when subsetting. The new
HB_SUBSET_FLAGS_NO_BIDI_CLOSURE
can be used to disable this behaviour. - Various bug fixes.
- Various build fixes and improvements.
- Various test suite improvements.
New Contributors
Full Changelog: 11.0.1...11.1.0
Assets 5
11.0.1
Compare
What's Changed
- The change in version 10.3.0 to apply “trak” table tracking values to glyph advances directly has been reverted as it required every font functions implementation to handle it, which breaks existing custom font functions. Tracking is instead back to being applied during shaping.
- When
directwrite
integration is enabled, we now link todwrite.dll
instead of dynamically loading it. - A new experimental APIs for getting raw “CFF” and “CFF2” CharStrings.
- We now provide manpages for the various command line utilities. Building manpages requires “help2man” and will be skipped if it is not present.
- The command line utilities now set different return value for different kinds of failures. Details are provided in the manpages.
- Various fixes and improvements to
fontations
font functions. - All shaping operations using the
ot
shaper have become memory allocation-free. - Glyph extents returned by
hb-ot
andhb-ft
font functions are now rounded in stead of flooring/ceiling them, which also matches what other font libraries do. - Fix “AAT” deleted glyph marks interfering with fallback mark positioning.
- Glyph outlines emboldening have been moved out of
hb-ot
andhb-ft
font functions to the HarfBuzz font layer, so that it works with any font functions implementation. - Fix our fallback C++11 atomics integration, which seems to not be widely used.
- Various testing fixes and improvements.
- Various subsetting fixes and improvements.
- Various other fixes and improvements.
New Contributors
Full Changelog: 11.0.0...11.0.1
Assets 5
11.0.0
Compare
What's Changed
-
There are three new font-functions implementations (integrations) in this release:
hb-coretext
has gained one, calling into the CoreText library,hb-directwrite
has gained one, calling into the DirectWrite library.hb-fontations
has gained one, calling into the Skrifa Rust library.
All three are mostly useful for performance and correctness testing, but some clients might find them useful.
An API is added to use them from a single API by providing a backend name string:hb_font_set_funcs_using()
-
Several new APIs are added, to load a font-face using different "face-loaders", and a single entry point to them all using a loader name string:
hb_ft_face_create_from_file_or_fail()
andhb_ft_face_create_from_blob_or_fail()
hb_coretext_face_create_from_file_or_fail()
andhb_coretext_face_create_from_blob_or_fail()
hb_directwrite_face_create_from_file_or_fail()
andhb_directwrite_face_create_from_blob_or_fail()
hb_face_create_from_file_or_fail_using()
-
All drawing and painting operations using the default,
hb-ot
functions have become memory allocation-free. -
Several performance optimizations have been implemented.
-
Application of the
trak
table during shaping has been improved. -
The
directwrite
shaper now supports font variations, and correctly applies user features. -
The
hb-directwrite
API and shaper has graduated from experimental. -
Various bug fixes and other improvements.
-
New API:
+hb_malloc
+hb_calloc
+hb_realloc
+hb_free
+hb_face_list_loaders
+hb_face_create_or_fail_using
+hb_face_create_from_file_or_fail_using
+hb_font_list_funcs
+hb_font_set_funcs_using
+hb_coretext_face_create_from_blob_or_fail
+hb_directwrite_face_create_from_file_or_fail
+hb_directwrite_face_create_from_blob_or_fail
+hb_directwrite_font_create
+hb_directwrite_font_get_dw_font_face
+hb_directwrite_font_set_funcs
+hb_fontations_font_set_funcs
+hb_ft_face_create_from_blob_or_fail
+hb_paint_push_font_transform
+hb_paint_push_inverse_font_transform
+HB_BUFFER_CLUSTER_LEVEL_GRAPHEMES
+HB_BUFFER_CLUSTER_LEVEL_IS_MONOTONE
+HB_BUFFER_CLUSTER_LEVEL_IS_GRAPHEMES
+HB_BUFFER_CLUSTER_LEVEL_IS_CHARACTERS -
Deprecated API:
+hb_directwrite_font_get_dw_font
New Contributors
- @parona-source made their first contribution in #5090
- @pweiskircher made their first contribution in #5107
Full Changelog: 10.4.0...11.0.0
Assets 5
10.4.0
Compare
What's Changed
-
Drawing glyphs using hb-draw API now avoids any “malloc” calls, which improves drawing performance by 10+%.
-
Add support new “GVAR” table fonts with more than 65535 glyphs. Support is currently behind a compilation flag and is disabled by default.
-
Some hb-directwrite and hb-ft APIs got renamed with more clear names and the old names are deprecated.
-
Various build and fuzzing fixes.
-
New API:
+hb_directwrite_face_get_dw_font_face()
+hb_ft_font_get_ft_face() -
Deprecated API:
+hb_directwrite_face_get_font_face()
+hb_ft_font_get_face()
Full Changelog: 10.3.0...10.4.0
Assets 5
10.3.0
Compare
What's Changed
-
Vastly improved “AAT” shaping performance. LucidaGrande benchmark-shape before: 14.6ms after: 5.9ms.
-
Improved OpenType shaping performance (kerning / ligature), at the expense of ~1kb per face allocated cache memory. Roboto-Regular benchmark-shape before: 10.3ms after: 9.4ms.
-
Improved “COLRv1” benchmark-font paint performance. Before: 7.85ms after 4.85ms.
-
Don’t apply glyph substitutions in “morx” table of a font with known broken “morx” table (AALMAGHRIBI.ttf font).
-
Update IANA and OT language registries.
-
Various documentation updates.
-
Various build improvements, and test speed-ups.
-
The “hb_face_reference_blob()” API now works for faces created with “hb_face_create_for_tables()” if the face sets “get_table_tags” callback. This constructs a new face blob from individual table blobs.
-
Various fixes to how “trak” table is handled to bring it closer to Core Text behaviour. Particularly, the tracking values for sizes not explicitly set in the table are now properly interpolated, and the tracking is applied to glyph advances when they are returned by ot-font functions, instead of applying them during shaping. The “trak” pseudo OpenType feature that could be used to disable “trak” table application have been dropped.
-
Core Text font functions now support non-BMP code points.
-
The drawing algorithm used by hb-draw for “glyf” table now match the algorithm used by FreeType and Core Text.
-
The “hb_coretext_font_create()” API now copy font variations from Core Text font to the created HarfBuzz font.
-
Add an API to get the feature tags enabled on a given shape-plan after executing it, which can be used to applications to show in the UI what features are applied by default (which can vary based on the font, the script, the language, and the direction set on the buffer).
-
Add APIs to created HarfBuzz font from DirectWrite font, and copy the font variations.
-
New API:
+hb_directwrite_font_create()
+hb_directwrite_font_get_dw_font()
+hb_ot_shape_plan_get_feature_tags()
New Contributors
- @jimwang118 made their first contribution in #5070
Full Changelog: 10.2.0...10.3.0
Assets 5
10.2.0
Compare
What's Changed
-
Consider Unicode Variation Selectors when subsetting “cmap” table.
-
Guard hb_cairo_glyphs_from_buffer() against malformed UTF-8 strings.
-
Fix incorrect “COLR” v1 glyph scaling in hb-cairo.
-
Use locale-independent parsing of double numbers is “hb-subset” command line tool.
-
Fix incorrect zeroing of advance width of base glyphs in various “Courier New” font versions due to incorrect “GDEF” glyph classes.
-
Fix handling of long language codes with “HB_LEAN” configuration.
-
Update OpenType language system registry.
-
Allow all Myanmar tone marks (including visarga) in any order
-
Don’t insert U+25CC DOTTED CIRCLE before superscript/subscript digits
-
Handle Garay script as right to left script.
-
New API for serializing font tables and potentially repacking them in optimal way. This was a previously experimental-only API.
-
New API for converting font variation setting from and to strings.
-
Various build fixes
-
Various subsetter and instancer fixes.
-
New API:
+hb_subset_serialize_link_t
+hb_subset_serialize_object_t
+hb_subset_serialize_or_fail()
+hb_subset_axis_range_from_string()
+hb_subset_axis_range_to_string()
New Contributors
- @lucebac made their first contribution in #4961
- @kesyog made their first contribution in #4963
- @wang-bin made their first contribution in #4979
- @Treata11 made their first contribution in #4993
Full Changelog: 10.1.0...10.2.0
Assets 5
10.1.0
Compare
What's Changed
- 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 Contributors
- @serval2412 made their first contribution in #4880
Full Changelog: 10.0.1...10.0.2
Assets 5
10.0.1
Compare
What's Changed
- Relax sanitization checks for “morx” subtables to fix broken AAT shaping of macOS 15.0 version of GeezaPro.
Full Changelog: 10.0.0...10.0.1