2.0.0
This commit is contained in:
parent
535ca678bf
commit
3d9a0306eb
68
NEWS
68
NEWS
|
@ -1,3 +1,71 @@
|
||||||
|
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
|
Overview of changes leading to 1.9.0
|
||||||
Monday, September 10, 2018
|
Monday, September 10, 2018
|
||||||
====================================
|
====================================
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
AC_PREREQ([2.64])
|
AC_PREREQ([2.64])
|
||||||
AC_INIT([HarfBuzz],
|
AC_INIT([HarfBuzz],
|
||||||
[1.9.0],
|
[2.0.0],
|
||||||
[https://github.com/harfbuzz/harfbuzz/issues/new],
|
[https://github.com/harfbuzz/harfbuzz/issues/new],
|
||||||
[harfbuzz],
|
[harfbuzz],
|
||||||
[http://harfbuzz.org/])
|
[http://harfbuzz.org/])
|
||||||
|
|
|
@ -1190,7 +1190,7 @@ hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer)
|
||||||
* U+0020 SPACE character is used. Otherwise, this value is used
|
* U+0020 SPACE character is used. Otherwise, this value is used
|
||||||
* verbatim.
|
* verbatim.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
|
hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
|
||||||
|
@ -1211,7 +1211,7 @@ hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
|
||||||
* Return value:
|
* Return value:
|
||||||
* The @buffer invisible #hb_codepoint_t.
|
* The @buffer invisible #hb_codepoint_t.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_codepoint_t
|
hb_codepoint_t
|
||||||
hb_buffer_get_invisible_glyph (hb_buffer_t *buffer)
|
hb_buffer_get_invisible_glyph (hb_buffer_t *buffer)
|
||||||
|
|
|
@ -401,13 +401,13 @@ typedef void (*hb_destroy_func_t) (void *user_data);
|
||||||
/**
|
/**
|
||||||
* HB_FEATURE_GLOBAL_START
|
* HB_FEATURE_GLOBAL_START
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
*/
|
*/
|
||||||
#define HB_FEATURE_GLOBAL_START 0
|
#define HB_FEATURE_GLOBAL_START 0
|
||||||
/**
|
/**
|
||||||
* HB_FEATURE_GLOBAL_END
|
* HB_FEATURE_GLOBAL_END
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
*/
|
*/
|
||||||
#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
|
#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ hb_set_invert (hb_set_t *set);
|
||||||
/**
|
/**
|
||||||
* hb_unicode_eastasian_width_func_t:
|
* 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,
|
typedef unsigned int (*hb_unicode_eastasian_width_func_t) (hb_unicode_funcs_t *ufuncs,
|
||||||
hb_codepoint_t unicode,
|
hb_codepoint_t unicode,
|
||||||
|
@ -77,7 +77,7 @@ typedef unsigned int (*hb_unicode_eastasian_width_func_t) (hb_unicode_funcs_t
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN HB_DEPRECATED void
|
HB_EXTERN HB_DEPRECATED void
|
||||||
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
@ -88,7 +88,7 @@ hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
||||||
* hb_unicode_eastasian_width:
|
* hb_unicode_eastasian_width:
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN HB_DEPRECATED unsigned int
|
HB_EXTERN HB_DEPRECATED unsigned int
|
||||||
hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs,
|
hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs,
|
||||||
|
@ -113,7 +113,7 @@ 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.
|
* 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,
|
typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_funcs_t *ufuncs,
|
||||||
hb_codepoint_t u,
|
hb_codepoint_t u,
|
||||||
|
@ -125,7 +125,7 @@ typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_
|
||||||
*
|
*
|
||||||
* See Unicode 6.1 for details on the maximum decomposition length.
|
* 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 */
|
#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN HB_DEPRECATED void
|
HB_EXTERN HB_DEPRECATED void
|
||||||
hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs,
|
hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
@ -150,7 +150,7 @@ hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs,
|
||||||
* hb_unicode_decompose_compatibility:
|
* hb_unicode_decompose_compatibility:
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN HB_DEPRECATED unsigned int
|
HB_EXTERN HB_DEPRECATED unsigned int
|
||||||
hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
|
hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
|
||||||
|
@ -174,7 +174,7 @@ typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_v_kerning_func_t;
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN void
|
HB_EXTERN void
|
||||||
hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs,
|
hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs,
|
||||||
|
@ -191,7 +191,7 @@ hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs,
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN void
|
HB_EXTERN void
|
||||||
hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs,
|
hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs,
|
||||||
|
|
|
@ -922,7 +922,7 @@ hb_font_get_glyph_v_origin (hb_font_t *font,
|
||||||
* Return value:
|
* Return value:
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_position_t
|
hb_position_t
|
||||||
hb_font_get_glyph_h_kerning (hb_font_t *font,
|
hb_font_get_glyph_h_kerning (hb_font_t *font,
|
||||||
|
@ -942,7 +942,7 @@ hb_font_get_glyph_h_kerning (hb_font_t *font,
|
||||||
* Return value:
|
* Return value:
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_position_t
|
hb_position_t
|
||||||
hb_font_get_glyph_v_kerning (hb_font_t *font,
|
hb_font_get_glyph_v_kerning (hb_font_t *font,
|
||||||
|
@ -1171,7 +1171,7 @@ hb_font_subtract_glyph_origin_for_direction (hb_font_t *font,
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
* Deprecated: REPLACEME
|
* Deprecated: 2.0.0
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
hb_font_get_glyph_kerning_for_direction (hb_font_t *font,
|
hb_font_get_glyph_kerning_for_direction (hb_font_t *font,
|
||||||
|
|
|
@ -237,7 +237,7 @@ hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs,
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN void
|
HB_EXTERN void
|
||||||
hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
|
hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
|
||||||
|
|
|
@ -376,7 +376,7 @@ hb_ot_layout_table_choose_script (hb_face_t *face,
|
||||||
/**
|
/**
|
||||||
* hb_ot_layout_table_select_script:
|
* hb_ot_layout_table_select_script:
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
hb_ot_layout_table_select_script (hb_face_t *face,
|
hb_ot_layout_table_select_script (hb_face_t *face,
|
||||||
|
@ -489,7 +489,7 @@ hb_ot_layout_script_find_language (hb_face_t *face,
|
||||||
/**
|
/**
|
||||||
* hb_ot_layout_script_select_language:
|
* hb_ot_layout_script_select_language:
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
hb_ot_layout_script_select_language (hb_face_t *face,
|
hb_ot_layout_script_select_language (hb_face_t *face,
|
||||||
|
@ -1134,7 +1134,7 @@ hb_ot_layout_get_size_params (hb_face_t *face,
|
||||||
*
|
*
|
||||||
* Return value: true if data found, false otherwise
|
* Return value: true if data found, false otherwise
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
hb_ot_layout_feature_get_name_ids (hb_face_t *face,
|
hb_ot_layout_feature_get_name_ids (hb_face_t *face,
|
||||||
|
@ -1207,7 +1207,7 @@ hb_ot_layout_feature_get_name_ids (hb_face_t *face,
|
||||||
*
|
*
|
||||||
* Return value: Number of total sample characters in the cvXX feature.
|
* Return value: Number of total sample characters in the cvXX feature.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
unsigned int
|
unsigned int
|
||||||
hb_ot_layout_feature_get_characters (hb_face_t *face,
|
hb_ot_layout_feature_get_characters (hb_face_t *face,
|
||||||
|
|
|
@ -37,14 +37,14 @@ HB_BEGIN_DECLS
|
||||||
/**
|
/**
|
||||||
* hb_name_id_t:
|
* hb_name_id_t:
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
*/
|
*/
|
||||||
typedef unsigned int hb_name_id_t;
|
typedef unsigned int hb_name_id_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HB_NAME_ID_INVALID
|
* HB_NAME_ID_INVALID
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
#define HB_NAME_ID_INVALID 0xFFFF
|
#define HB_NAME_ID_INVALID 0xFFFF
|
||||||
|
|
||||||
|
|
|
@ -336,7 +336,7 @@ parse_private_use_subtag (const char *private_use_subtag,
|
||||||
*
|
*
|
||||||
* Converts an #hb_script_t and an #hb_language_t to script and language tags.
|
* Converts an #hb_script_t and an #hb_language_t to script and language tags.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
hb_ot_tags_from_script_and_language (hb_script_t script,
|
hb_ot_tags_from_script_and_language (hb_script_t script,
|
||||||
|
@ -448,7 +448,7 @@ hb_ot_tag_to_language (hb_tag_t tag)
|
||||||
* Converts a script tag and a language tag to an #hb_script_t and an
|
* Converts a script tag and a language tag to an #hb_script_t and an
|
||||||
* #hb_language_t.
|
* #hb_language_t.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
hb_ot_tags_to_script_and_language (hb_tag_t script_tag,
|
hb_ot_tags_to_script_and_language (hb_tag_t script_tag,
|
||||||
|
|
|
@ -42,13 +42,13 @@ HB_BEGIN_DECLS
|
||||||
/**
|
/**
|
||||||
* HB_OT_MAX_TAGS_PER_SCRIPT:
|
* HB_OT_MAX_TAGS_PER_SCRIPT:
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
#define HB_OT_MAX_TAGS_PER_SCRIPT 3u
|
#define HB_OT_MAX_TAGS_PER_SCRIPT 3u
|
||||||
/**
|
/**
|
||||||
* HB_OT_MAX_TAGS_PER_LANGUAGE:
|
* HB_OT_MAX_TAGS_PER_LANGUAGE:
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 2.0.0
|
||||||
**/
|
**/
|
||||||
#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u
|
#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u
|
||||||
|
|
||||||
|
|
|
@ -36,11 +36,11 @@
|
||||||
HB_BEGIN_DECLS
|
HB_BEGIN_DECLS
|
||||||
|
|
||||||
|
|
||||||
#define HB_VERSION_MAJOR 1
|
#define HB_VERSION_MAJOR 2
|
||||||
#define HB_VERSION_MINOR 9
|
#define HB_VERSION_MINOR 0
|
||||||
#define HB_VERSION_MICRO 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) \
|
#define HB_VERSION_ATLEAST(major,minor,micro) \
|
||||||
((major)*10000+(minor)*100+(micro) <= \
|
((major)*10000+(minor)*100+(micro) <= \
|
||||||
|
|
Loading…
Reference in New Issue