+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()
+
+
Overview of changes leading to 1.9.0
Monday, September 10, 2018
====================================
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [1.9.0],
+ [2.0.0],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
* U+0020 SPACE character is used. Otherwise, this value is used
* verbatim.
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
void
hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
* Return value:
* The @buffer invisible #hb_codepoint_t.
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
hb_codepoint_t
hb_buffer_get_invisible_glyph (hb_buffer_t *buffer)
/**
* HB_FEATURE_GLOBAL_START
*
- * Since: REPLACEME
+ * Since: 2.0.0
*/
#define HB_FEATURE_GLOBAL_START 0
/**
* HB_FEATURE_GLOBAL_END
*
- * Since: REPLACEME
+ * Since: 2.0.0
*/
#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
/**
* hb_unicode_eastasian_width_func_t:
*
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
*/
typedef unsigned int (*hb_unicode_eastasian_width_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode,
*
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN HB_DEPRECATED void
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
* hb_unicode_eastasian_width:
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN HB_DEPRECATED unsigned int
hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs,
*
* Return value: number of codepoints in the full compatibility decomposition of @u, or 0 if no decomposition available.
*
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
*/
typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t u,
*
* See Unicode 6.1 for details on the maximum decomposition length.
*
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
*/
#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
*
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN HB_DEPRECATED void
hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs,
* hb_unicode_decompose_compatibility:
*
*
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN HB_DEPRECATED unsigned int
hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
*
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN void
hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs,
*
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
HB_EXTERN void
hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs,
* Return value:
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
hb_position_t
hb_font_get_glyph_h_kerning (hb_font_t *font,
* Return value:
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
hb_position_t
hb_font_get_glyph_v_kerning (hb_font_t *font,
*
*
* Since: 0.9.2
- * Deprecated: REPLACEME
+ * Deprecated: 2.0.0
**/
void
hb_font_get_glyph_kerning_for_direction (hb_font_t *font,
*
*
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
HB_EXTERN void
hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
/**
* hb_ot_layout_table_select_script:
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
hb_bool_t
hb_ot_layout_table_select_script (hb_face_t *face,
/**
* hb_ot_layout_script_select_language:
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
hb_bool_t
hb_ot_layout_script_select_language (hb_face_t *face,
*
* Return value: true if data found, false otherwise
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
hb_bool_t
hb_ot_layout_feature_get_name_ids (hb_face_t *face,
*
* Return value: Number of total sample characters in the cvXX feature.
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
unsigned int
hb_ot_layout_feature_get_characters (hb_face_t *face,
/**
* hb_name_id_t:
*
- * Since: REPLACEME
+ * Since: 2.0.0
*/
typedef unsigned int hb_name_id_t;
/**
* HB_NAME_ID_INVALID
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
#define HB_NAME_ID_INVALID 0xFFFF
*
* Converts an #hb_script_t and an #hb_language_t to script and language tags.
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
void
hb_ot_tags_from_script_and_language (hb_script_t script,
* Converts a script tag and a language tag to an #hb_script_t and an
* #hb_language_t.
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
void
hb_ot_tags_to_script_and_language (hb_tag_t script_tag,
/**
* HB_OT_MAX_TAGS_PER_SCRIPT:
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
#define HB_OT_MAX_TAGS_PER_SCRIPT 3u
/**
* HB_OT_MAX_TAGS_PER_LANGUAGE:
*
- * Since: REPLACEME
+ * Since: 2.0.0
**/
#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u
HB_BEGIN_DECLS
-#define HB_VERSION_MAJOR 1
-#define HB_VERSION_MINOR 9
+#define HB_VERSION_MAJOR 2
+#define HB_VERSION_MINOR 0
#define HB_VERSION_MICRO 0
-#define HB_VERSION_STRING "1.9.0"
+#define HB_VERSION_STRING "2.0.0"
#define HB_VERSION_ATLEAST(major,minor,micro) \
((major)*10000+(minor)*100+(micro) <= \