@behdad behdad released this Nov 17, 2018

Assets 4

Overview of changes leading to 2.1.3
Friday, November 16, 2018

  • Fix AAT 'mort' shaping, which was broken in 2.1.2

@behdad behdad released this Nov 16, 2018 · 5 commits to master since this release

Assets 4

Overview of changes leading to 2.1.2
Friday, November 16, 2018

  • Various internal changes.
  • AAT shaping improvements:
    o Implement kern table Format 1 state-machine-based kerning.
    o Implement cross-stream kerning (cursive positioning, etc).
    o Ignore emptyish GSUB tables (zero scripts) if morx present.
    o Don't apply GPOS if morx is being applied. Matches Apple.

@behdad behdad released this Nov 6, 2018 · 217 commits to master since this release

Assets 4

Overview of changes leading to 2.1.1
Monday, November 5, 2018

  • AAT improvements:
    o Implement 'mort' table.
    o Implement 'kern' subtables Format 1 and Format 3.

@behdad behdad released this Oct 30, 2018 · 303 commits to master since this release

Assets 4

Overview of changes leading to 2.1.0
Tuesday, October 30, 2018

  • AAT shaping improvements:
    o Allow user controlling AAT features, for whole buffer only currently.
    o Several 'morx' fixes.
    o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default
    San Francisco fonts.
  • Support for color fonts:
    o COLR/CPAL API to fetch color layers.
    o SVG table to fetch SVG documents.
    o CBDT/sbix API to fetch PNG images.
  • New 'name' table API.
  • hb-ot-font now uses 'VORG' table to correctly position CFF glyphs
    in vertical layout.
  • Various fuzzer-found bug fixes.

Changed API:

A type and a macro added in 2.0.0 were renamed:

hb_name_id_t -> hb_ot_name_id_t
HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID

New API:

+hb_color_t
+HB_COLOR
+hb_color_get_alpha()
+hb_color_get_red()
+hb_color_get_green()
+hb_color_get_blue()
+hb_ot_color_has_palettes()
+hb_ot_color_palette_get_count()
+hb_ot_color_palette_get_name_id()
+hb_ot_color_palette_color_get_name_id()
+hb_ot_color_palette_flags_t
+hb_ot_color_palette_get_flags()
+hb_ot_color_palette_get_colors()
+hb_ot_color_has_layers()
+hb_ot_color_layer_t
+hb_ot_color_glyph_get_layers()
+hb_ot_color_has_svg()
+hb_ot_color_glyph_reference_svg()
+hb_ot_color_has_png()
+hb_ot_color_glyph_reference_png()

+hb_ot_name_id_t
+HB_OT_NAME_ID_INVALID
+HB_OT_NAME_ID_COPYRIGHT
+HB_OT_NAME_ID_FONT_FAMILY
+HB_OT_NAME_ID_FONT_SUBFAMILY
+HB_OT_NAME_ID_UNIQUE_ID
+HB_OT_NAME_ID_FULL_NAME
+HB_OT_NAME_ID_VERSION_STRING
+HB_OT_NAME_ID_POSTSCRIPT_NAME
+HB_OT_NAME_ID_TRADEMARK
+HB_OT_NAME_ID_MANUFACTURER
+HB_OT_NAME_ID_DESIGNER
+HB_OT_NAME_ID_DESCRIPTION
+HB_OT_NAME_ID_VENDOR_URL
+HB_OT_NAME_ID_DESIGNER_URL
+HB_OT_NAME_ID_LICENSE
+HB_OT_NAME_ID_LICENSE_URL
+HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY
+HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY
+HB_OT_NAME_ID_MAC_FULL_NAME
+HB_OT_NAME_ID_SAMPLE_TEXT
+HB_OT_NAME_ID_CID_FINDFONT_NAME
+HB_OT_NAME_ID_WWS_FAMILY
+HB_OT_NAME_ID_WWS_SUBFAMILY
+HB_OT_NAME_ID_LIGHT_BACKGROUND
+HB_OT_NAME_ID_DARK_BACKGROUND
+HB_OT_NAME_ID_VARIATIONS_PS_PREFIX
+hb_ot_name_entry_t
+hb_ot_name_list_names()
+hb_ot_name_get_utf8()
+hb_ot_name_get_utf16()
+hb_ot_name_get_utf32()

@behdad behdad released this Oct 20, 2018 · 604 commits to master since this release

Assets 4

Overview of changes leading to 2.0.2
Saturday, October 20, 2018

  • Fix two minor memory access issues in AAT tables.

@behdad behdad released this Oct 20, 2018 · 619 commits to master since this release

Assets 4

Overview of changes leading to 2.0.1
Friday, October 19, 2018

  • Fix hb-version.h reported release version that went wrong (1.8.0)
    with previous release.
  • Fix extrapolation in 'trak' table.
  • Fix hb-font infinite-recursion issue with some font funcs and
    subclassed fonts.
  • Implement variation-kerning format in kerx table, although without
    variation.
  • Fix return value of hb_map_is_empty().

@behdad behdad released this Oct 18, 2018 · 641 commits to master since this release

Assets 4

Overview of changes leading to 2.0.0
Wednesday, October 17, 2018

  • Added AAT shaping support (morx/kerx/trak).
    Automatically used if GSUB/GPOS are not available respectively.
    Set HB_OPTIONS=aat env var to have morx/kerx preferred over
    GSUB/GPOS.
  • Apply TrueType kern table internally, instead of relying on
    hb_font_t callbacks.
  • Khmer shaper significantly rewritten to better match Uniscribe.
  • Indic3 tags ('dev3', etc) are passed to USE shaper.
  • .dfont Mac font containers implemented.
  • Script- and language-mapping revamped to better use BCP 47.
  • Misc USE and Indic fixes.
  • Misc everything fixes.
  • Too many things to list. Biggest release since 0.9.1, with
    over 500 commits in just over 5 weeks! Didn't intend it to
    be a big release. Just happened to become.
  • hb-ft now locks underlying FT_Face during use.

API changes:

  • Newly-created hb_font_t's now have our internal "hb-ot-font"
    callbacks set on them, so they should work out of the box
    without any callbacks set. If callbacks are set, everything
    is back to what it was before, the fallback callbacks are
    null. If you to get the internal implementation modified,
    sub_font it.

  • New hb_font_funcs_set_nominal_glyphs_func() allows speeding
    up character to glyph mapping.

New API:
+HB_FEATURE_GLOBAL_START
+HB_FEATURE_GLOBAL_END
+hb_buffer_set_invisible_glyph()
+hb_buffer_get_invisible_glyph()
+hb_font_funcs_set_nominal_glyphs_func()
+hb_ot_layout_table_select_script()
+hb_ot_layout_script_select_language()
+hb_ot_layout_feature_get_name_ids()
+hb_ot_layout_feature_get_characters()
+hb_name_id_t
+HB_NAME_ID_INVALID
+HB_OT_MAX_TAGS_PER_SCRIPT
+hb_ot_tags_from_script_and_language()
+hb_ot_tags_to_script_and_language()

Deprecated API:
-hb_font_funcs_set_glyph_func()
-hb_unicode_eastasian_width_func_t
-hb_unicode_funcs_set_eastasian_width_func()
-hb_unicode_eastasian_width()
-hb_unicode_decompose_compatibility_func_t
-HB_UNICODE_MAX_DECOMPOSITION_LEN
-hb_unicode_funcs_set_decompose_compatibility_func()
-hb_unicode_decompose_compatibility()
-hb_font_funcs_set_glyph_h_kerning_func()
-hb_font_funcs_set_glyph_v_kerning_func()
-hb_font_get_glyph_h_kerning()
-hb_font_get_glyph_v_kerning()
-hb_font_get_glyph_kerning_for_direction()
-hb_ot_layout_table_choose_script()
-hb_ot_layout_script_find_language()
-hb_ot_tags_from_script()
-hb_ot_tag_from_language()

@behdad behdad released this Sep 10, 2018 · 1159 commits to master since this release

Assets 4

Overview of changes leading to 1.9.0
Monday, September 10, 2018

  • Added 'cmap' API to hb_face_t.
  • Face-builder API.
  • hb-ot-font re-creation should be much leaner now, as the
    font tables it uses are cached on hb_face_t now.
  • Internal source header file name changes:
    hb--private.hh is renamed to hb-.hh.

New API:
+HB_UNICODE_MAX
+hb_face_collect_unicodes()
+hb_face_collect_variation_selectors()
+hb_face_collect_variation_unicodes()
+hb_face_builder_create()
+hb_face_builder_add_table()

@behdad behdad released this Aug 14, 2018 · 1240 commits to master since this release

Assets 4

Overview of changes leading to 1.8.8
Tuesday, August 14, 2018

  • Fix hb-icu crash on architectures where compare_exchange_weak() can
    fail falsely. This bug was introduced in 1.8.4.
    https://bugs.chromium.org/p/chromium/issues/detail?id=873568
  • More internal refactoring of atomic operations and singletons.
  • API changes:
    The following functions do NOT reference their return value before
    returning:
    • hb_unicode_funcs_get_default()
    • hb_glib_get_unicode_funcs()
    • hb_icu_get_unicode_funcs()
      This is consistent with their naming ("get", instead of "reference")
      as well as how they are used in the wild (ie. no one calls destroy()
      on their return value.)

@behdad behdad released this Aug 9, 2018 · 1277 commits to master since this release

Assets 4

Overview of changes leading to 1.8.7
Wednesday, August 8, 2018

  • Fix assertion failure with GDEF-blacklisted fonts.