[HarfBuzz] harfbuzz-0.9.2 now available

Behdad Esfahbod behdad at behdad.org
Fri Aug 10 12:07:34 PDT 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone,

So, after (finally!) implementing synthetic GDEF and fallback mark
positioning, I found myself running out of major features to implement this
week.  I can finally claim that new HarfBuzz is in par with or better than
both Pango and old.HarfBuzz / Qt.  The main outstanding issue that I know of
is Indic support with Free fonts, which I hope to improve in the coming weeks.
 Testing and reports will be key to what I will end up working on.

With features complete, and performance looking good, I'm shifting gears to
release mode, starting with a 0.9.2 release today, and working my way towards
a 1.0 release around the end of the month or in early September.  This may be
a good time for distributions to start putting a harfbuzz package together.  A
proper build system will be coming soon.

I put a short checklist together to track 1.0 progress:

  http://goo.gl/4xnyw

Feel free to comment (on the doc or on the list).

In the mean time, enjoy the 0.9.2 release!

  http://www.freedesktop.org/software/harfbuzz/release/

As always, I like to specially thank Jonathan Kew, as well as everyone who
helped with testing.

Cheers,
Behdad Esfahbod
August 10, 2012


Overview of changes leading to 0.9.2
Friday, Aug 10, 2011
====================================

- - Over a thousand commits!  This is the first major release of HarfBuzz.

- - HarfBuzz is feature-complete now!  It should be in par, or better, than
  both Pango's shapers and old HarfBuzz / Qt shapers.

- - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer.

- - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic,
  Sinhala, N'ko, Mongolian, and Mandaic.

- - New Thai / Lao shaper.

- - Tibetan / Hangul support in the generic shaper.

- - Synthetic GDEF support for fonts without a GDEF table.

- - Fallback mark positioning for fonts without a GPOS table.

- - Unicode normalization shaping heuristic during glyph mapping.

- - New experimental Graphite2 backend.

- - New Uniscribe backend (primarily for testing).

- - New CoreText backend (primarily for testing).

- - Major optimization and speedup.

- - Test suites and testing infrastructure (work in progress).

- - Greatly improved hb-view cmdline tool.

- - hb-shape cmdline tool.

- - Unicode 6.1 support.

Summary of API changes:

o Changed API:

  - Users are expected to only include main header files now (ie. hb.h,
    hb-glib.h, hb-ft.h, ...)

  - All struct tag names had their initial underscore removed.
    Ie. "struct _hb_buffer_t" is "struct hb_buffer_t" now.

  - All set_user_data() functions now take a "replace" boolean parameter.

  - hb_buffer_create() takes zero arguments now.
    Use hb_buffer_pre_allocate() to pre-allocate.

  - hb_buffer_add_utf*() now accept -1 for length parameteres,
    meaning "nul-terminated".

  - hb_direction_t enum values changed.

  - All *_from_string() APIs now take a length parameter to allow for
    non-nul-terminated strings. A -1 length means "nul-terminated".

  - Typedef for hb_language_t changed.

  - hb_get_table_func_t renamed to hb_reference_table_func_t.

  - hb_ot_layout_table_choose_script()

  - Various renames in hb-unicode.h.

o New API:

  - hb_buffer_guess_properties()
    Automatically called by hb_shape().

  - hb_buffer_normalize_glyphs()

  - hb_tag_from_string()

  - hb-coretext.h

  - hb-uniscribe.h

  - hb_face_reference_blob()
  - hb_face_[sg]et_index()
  - hb_face_set_upem()

  - hb_font_get_glyph_name_func_t
    hb_font_get_glyph_from_name_func_t
    hb_font_funcs_set_glyph_name_func()
    hb_font_funcs_set_glyph_from_name_func()
    hb_font_get_glyph_name()
    hb_font_get_glyph_from_name()
    hb_font_glyph_to_string()
    hb_font_glyph_from_string()

  - hb_font_set_funcs_data()

  - hb_ft_font_set_funcs()
  - hb_ft_font_get_face()

  - hb-gobject.h (work in progress)

  - hb_ot_shape_glyphs_closure()
    hb_ot_layout_substitute_closure_lookup()

  - hb-set.h

  - hb_shape_full()

  - hb_unicode_combining_class_t

  - hb_unicode_compose_func_t
    hb_unicode_decompose_func_t
    hb_unicode_decompose_compatibility_func_t
    hb_unicode_funcs_set_compose_func()
    hb_unicode_funcs_set_decompose_func()
    hb_unicode_funcs_set_decompose_compatibility_func()
    hb_unicode_compose()
    hb_unicode_decompose()
    hb_unicode_decompose_compatibility()

o Removed API:

  - hb_ft_get_font_funcs()

  - hb_ot_layout_substitute_start()
    hb_ot_layout_substitute_lookup()
    hb_ot_layout_substitute_finish()
    hb_ot_layout_position_start()
    hb_ot_layout_position_lookup()
    hb_ot_layout_position_finish()

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlAlW/YACgkQn+4E5dNTERXQPwCePZGJN/mV/eNcgg0+SfOq2kFQ
0nQAoLYybPR6aSSsISywdHgFstxGm0w8
=8/5G
-----END PGP SIGNATURE-----



More information about the HarfBuzz mailing list