harfbuzz

HarfBuzz text shaping engine

OTHER License

Downloads
255.1K
Stars
4K
Committers
248

Bot releases are hidden (Show)

harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.8.4
Tuesday, July 17, 2018

  • Fix build on non-C++11.
  • Use C++-style GCC atomics and C++11 atomics.
harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.8.3
Wednesday, July 11, 2018

  • A couple of Indic / USE bug fixes.
  • Disable vectorization, as it was causing unaligned access bus error on
    certain 32bit architectures.
harfbuzz -

Published by behdad over 6 years ago

harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.8.1
Tuesday, June 12, 2018

  • Fix hb-version.h file generation; last two releases went out with wrong ones.
  • Add correctness bug in hb_set_t operations, introduced in 1.7.7.
  • Remove HB_SUBSET_BUILTIN build option. Not necessary.
harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.8.0
Tuesday, June 5, 2018

  • Update to Unicode 11.0.0.
harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.7.7
Tuesday, June 5, 2018

  • Lots of internal changes, but not yet exposed externally.
  • All HarfBuzz objects are significantly smaller in size now.
  • Sinhala: Position repha on top of post-consonant, not base.
    This better matches Windows 10 behavior, which was changed
    from previous Windows versions.
  • New build options:
    o New cpp macro HB_NO_ATEXIT
    o New cpp macro HB_SUBSET_BUILTIN
  • Significant libharfbuzz-subset changes. API subject to change.
  • New API in libharfbuzz:

+hb_blob_create_from_file()
+hb_face_count()

A hashmap implementation:
+hb-map.h
+HB_MAP_VALUE_INVALID
+hb_map_t
+hb_map_create()
+hb_map_get_empty()
+hb_map_reference()
+hb_map_destroy()
+hb_map_set_user_data()
+hb_map_get_user_data()
+hb_map_allocation_successful()
+hb_map_clear()
+hb_map_is_empty()
+hb_map_get_population()
+hb_map_set()
+hb_map_get()
+hb_map_del()
+hb_map_has()

harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.7.6
Wednesday, March 7, 2018

  • Fix to hb_set_t binary operations. Ouch.

  • New experimental harfbuzz-subset library. All of hb-subset.h
    is experimental right now and API WILL change.

  • New API:
    hb_blob_copy_writable_or_fail()
    HB_OT_TAG_BASE
    hb_set_previous()
    hb_set_previous_range()

harfbuzz -

Published by behdad over 6 years ago

Overview of changes leading to 1.7.5
Tuesday, January 30, 2018

  • Separate Khmer shaper from Indic.
  • First stab at AAT morx. Not hooked up.
  • Misc bug fixes.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.7.4
Wednesday, December 20, 2017

  • Fix collect_glyphs() regression caused by hb_set_t changes.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.7.3
Monday, December 18, 2017

  • hb_set_t performance tuning and optimizations.
  • Speed up collect_glyphs() and reject garbage data.
  • In hb_coretext_font_create() set font point-size (ptem).
  • Misc fixes.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.7.2
Monday, December 4, 2017

  • Optimize hb_set_add_range().
  • Misc fixes.
  • New API:
    hb_coretext_font_create()
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.7.1
Tuesday, November 14, 2017

  • Fix atexit object destruction regression.
  • Fix minor integer-overflow.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.7.0
Monday, November 13, 2017

  • Minor Indic fixes.
  • Implement kerning and glyph names in hb-ot-font.
  • Various DSO optimization re .data and .bss sizes.
  • Make C++11 optional; build fixes.
  • Mark all other backends "unsafe-to-break".
  • Graphite fix.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.6.3
Thursday, October 26th, 2017

  • Fix hb_set_t some more. Should be solid now.
  • Implement get_glyph_name() for hb-ot-font.
  • Misc fixes.
harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.6.2
Monday, October 23nd, 2017

harfbuzz -

Published by behdad almost 7 years ago

Overview of changes leading to 1.6.1
Sunday, October 22nd, 2017

  • Don't skip over COMBINING GRAPHEME JOINER when ligating, etc.
    To be refined: https://github.com/behdad/harfbuzz/issues/554
  • Faster hb_set_t implementation.
  • Don't use deprecated ICU API.
  • Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0
  • Deprecated API:
    hb_set_invert()
harfbuzz -

Published by behdad about 7 years ago

Overview of changes leading to 1.6.0
Friday, October the 13th, 2017

  • Update to Unicode 10.

  • Various Indic and Universal Shaping Engine fixes as a result of
    HarfBuzz Hackfest with Jonathan Kew at Web Engines Hackfest at
    the Igalia offices in A Coruña, Spain. Thanks Igalia for having
    us!

  • Implement Unicode Arabic Mark Ordering Algorithm UTR#53.

  • Implement optical sizing / tracking in CoreText backend, using
    new API hb_font_set_ptem().

  • Allow notifying hb_font_t that underlying FT_Face changed sizing,
    using new API hb_ft_font_changed().

  • More Graphite backend RTL fixes.

  • Fix caching of variable font shaping plans.

  • hb-view / hb-shape now accept following new arguments:

    o --unicodes: takes a list of hex numbers that represent Unicode
    codepoints.

New API:
+hb_face_get_table_tags()
+hb_font_set_ptem()
+hb_font_get_ptem()
+hb_ft_font_changed()

harfbuzz -

Published by behdad about 7 years ago

Overview of changes leading to 1.5.1
Tuesday, September 5, 2017

  • Fix "unsafe-to-break" in fallback shaping and other corner cases.
    All our tests pass with --verify now, meaning unsafe-to-break API
    works as expected.
  • Add --unicodes to hb-view / hb-shape.
  • [indic] Treat Consonant_With_Stacker as consonant. This will need
    further tweaking.
  • hb_buffer_diff() tweaks.
harfbuzz -

Published by behdad about 7 years ago

Overview of changes leading to 1.5.0
Wednesday, August 23, 2017

  • Misc new API, for appending a buffer to another, and for comparing
    contents of two buffers for types of differences.

  • New "unsafe-to-break" API. Can be used to speed up reshaping
    in line-breaking situations. Essentially, after shaping, it returns
    positions in the input string (some of the cluster boundaries) that
    are "safe to break" in that if the text is segmented at that position
    and two sides reshaped and concatenated, the shaping result is
    exactly the same as shaping the text in one piece.

    hb-view and hb-shape and hb-shape now take --verify, which verifies
    the above property.

    Some corner cases of the implementation are still not quite working.
    Those will be fixed in subsequent releases.

  • New API:

hb_buffer_append()

hb_glyph_flags_t
HB_GLYPH_FLAG_UNSAFE_TO_BREAK
HB_GLYPH_FLAG_DEFINED
hb_glyph_info_get_glyph_flags()

HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS

hb_buffer_diff_flags_t
HB_BUFFER_DIFF_FLAG_EQUAL
HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH
HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH
HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT
HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT
HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH
HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH
HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH
hb_buffer_diff

harfbuzz -

Published by behdad about 7 years ago

Overview of changes leading to 1.4.8
Tuesday, August 8, 2017

  • Major fix to avar table handling.
  • Rename hb-shape --show-message to --trace.
  • Build fixes.
Package Rankings
Top 3.3% on Spack.io
Top 15.69% on Repo1.maven.org
Top 19.66% on Anaconda.org
Top 3.06% on Formulae.brew.sh
Top 4.56% on Conda-forge.org
Badges
Extracted from project README
Linux CI Status CircleCI Build Status OSS-Fuzz Status Coverity Scan Build Status Codacy Badge Codecov Code Coverage Packaging status OpenSSF Scorecard xkcd-derived image Packaging status