This commit is contained in:
Khaled Hosny 2022-03-01 21:27:32 +02:00
parent 6e466256e4
commit 8d1b000a3e
15 changed files with 138 additions and 47 deletions

92
NEWS
View File

@ -1,3 +1,93 @@
Overview of changes leading to 4.0.0
Tuesday, March 1, 2022
====================================
- New public API to create subset plan and gather information on things like
glyph mappings in the final subset. The plan can then be passed on to perform
the subsetting operation. (Garret Rieger)
- Draw API for extracting glyph shapes have been extended and finalized and is
no longer an experimental API. The draw API supports glyf, CFF and CFF2
glyph outlines tables, and applies variation settings set on the font as well
as synthetic slant. The new public API is not backward compatible with the
previous, non-public, experimental API. (Behdad Esfahbod)
- The hb-view tool will use HarfBuzz draw API to render the glyphs instead of
cairo-ft when compiled with Cairo 1.17.5 or newer, setting HB_DRAW
environment variable to 1 or 0 will force using or not use the draw API,
respectively. (Behdad Esfahbod)
- The hb-shape and hb-view tools now default to using HarfBuzzs own font
loading functions (ot) instead of FreeType ones (ft). They also have a new
option, --font-slant, to apply synthetic slant to the font. (Behdad Esfahbod)
- HarfBuzz now supports more than 65535 (the OpenType limit) glyph shapes and
metrics. See https://github.com/be-fonts/boring-expansion-spec/issues/6 and
https://github.com/be-fonts/boring-expansion-spec/issues/7 for details.
(Behdad Esfahbod)
- New API to get the dominant horizontal baseline tag for a given script.
(Behdad Esfahbod)
- New API to get the baseline positions from the font, and synthesize missing
ones. As well as new API to get font metrics and synthesize missing ones.
(Matthias Clasen)
- Improvements to finding dependencies on Windows when building with Visual
Studio. (Chun-wei Fan)
- New buffer flag, HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT, that must be set
during shaping for HB_GLYPH_FLAG_UNSAFE_TO_CONCAT flag to be reliably
produced. This is to limit the performance hit of producing this flag to when
it is actually needed. (Behdad Esfahbod)
- Documentation improvements. (Matthias Clasen)
- New API
- General:
+HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT
+hb_var_num_t
- Draw:
+hb_draw_funcs_t
+hb_draw_funcs_create
+hb_draw_funcs_reference
+hb_draw_funcs_destroy
+hb_draw_funcs_is_immutable
+hb_draw_funcs_make_immutable
+hb_draw_move_to_func_t
+hb_draw_funcs_set_move_to_func
+hb_draw_line_to_func_t
+hb_draw_funcs_set_line_to_func
+hb_draw_quadratic_to_func_t
+hb_draw_funcs_set_quadratic_to_func
+hb_draw_cubic_to_func_t
+hb_draw_funcs_set_cubic_to_func
+hb_draw_close_path_func_t
+hb_draw_funcs_set_close_path_func
+hb_draw_state_t
+HB_DRAW_STATE_DEFAULT
+hb_draw_move_to
+hb_draw_line_to
+hb_draw_quadratic_to
+hb_draw_cubic_to
+hb_draw_close_path
+hb_font_get_glyph_shape_func_t
+hb_font_funcs_set_glyph_shape_func()
+hb_font_get_glyph_shape()
- OpenType layout
+HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL
+HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL
+hb_ot_layout_get_horizontal_baseline_tag_for_script()
+hb_ot_layout_get_baseline_with_fallback
- Metrics:
+hb_ot_metrics_get_position_with_fallback
- Subset:
+hb_subset_plan_t
+hb_subset_plan_create_or_fail
+hb_subset_plan_reference
+hb_subset_plan_destroy
+hb_subset_plan_set_user_data
+hb_subset_plan_get_user_data
+hb_subset_plan_execute_or_fail
+hb_subset_plan_unicode_to_old_glyph_mapping
+hb_subset_plan_new_to_old_glyph_mapping
+hb_subset_plan_old_to_new_glyph_mapping
Overview of changes leading to 3.4.0
Sunday, February 13, 2022
====================================
@ -18,7 +108,7 @@ Sunday, February 13, 2022
+HB_OT_TAG_MATH_SCRIPT
+HB_SCRIPT_MATH
+hb_ot_math_kern_entry_t
+hb_ot_math_get_glyph_kernings
+hb_ot_math_get_glyph_kernings()
- Deprecated API
+HB_OT_MATH_SCRIPT

View File

@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
[3.4.0],
[4.0.0],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])

View File

@ -117,6 +117,7 @@
<index id="api-index-full"><title>API Index</title><xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include></index>
<index id="deprecated-api-index" role="deprecated"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index>
<index id="api-index-4-0-0" role="4.0.0"><title>Index of new symbols in 4.0.0</title><xi:include href="xml/api-index-4.0.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-3-4-0" role="3.4.0"><title>Index of new symbols in 3.4.0</title><xi:include href="xml/api-index-3.4.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-3-3-0" role="3.3.0"><title>Index of new symbols in 3.3.0</title><xi:include href="xml/api-index-3.3.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-3-1-0" role="3.1.0"><title>Index of new symbols in 3.1.0</title><xi:include href="xml/api-index-3.1.0.xml"><xi:fallback /></xi:include></index>

View File

@ -1,6 +1,6 @@
project('harfbuzz', 'c', 'cpp',
meson_version: '>= 0.55.0',
version: '3.4.0',
version: '4.0.0',
default_options: [
'cpp_rtti=false', # Just to support msvc, we are passing -fno-exceptions also anyway
'cpp_std=c++11',

View File

@ -141,7 +141,7 @@ typedef struct hb_glyph_info_t {
* @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT during
* shaping, otherwise the buffer flag will not be
* reliably produced.
* Since: REPLACEME
* Since: 4.0.0
* @HB_GLYPH_FLAG_DEFINED: All the currently defined flags.
*
* Flags for #hb_glyph_info_t.
@ -372,7 +372,7 @@ hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
* @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT:
* flag indicating that the @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT
* glyph-flag should be produced by the shaper. By default
* it will not be produced since it incurs a cost. Since: REPLACEME
* it will not be produced since it incurs a cost. Since: 4.0.0
*
* Flags for #hb_buffer_t.
*

View File

@ -118,7 +118,7 @@ HB_DRAW_FUNCS_IMPLEMENT_CALLBACKS
* memory cannot be allocated, a special singleton #hb_draw_funcs_t object will
* be returned.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_draw_funcs_t *
hb_draw_funcs_create ()
@ -154,7 +154,7 @@ DEFINE_NULL_INSTANCE (hb_draw_funcs_t) =
* Return value: (transfer full):
* The referenced #hb_draw_funcs_t.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_draw_funcs_t *
hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs)
@ -170,7 +170,7 @@ hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs)
* Decreases the reference count on @dfuncs by one. If the result is zero, then
* @dfuncs and all associated resources are freed. See hb_draw_funcs_reference().
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs)
@ -192,7 +192,7 @@ hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs)
*
* Makes @dfuncs object immutable.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_funcs_make_immutable (hb_draw_funcs_t *dfuncs)
@ -211,7 +211,7 @@ hb_draw_funcs_make_immutable (hb_draw_funcs_t *dfuncs)
*
* Return value: %true if @dfuncs is immutable, %false otherwise
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_bool_t
hb_draw_funcs_is_immutable (hb_draw_funcs_t *dfuncs)
@ -230,7 +230,7 @@ hb_draw_funcs_is_immutable (hb_draw_funcs_t *dfuncs)
*
* Perform a "move-to" draw operation.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_move_to (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -251,7 +251,7 @@ hb_draw_move_to (hb_draw_funcs_t *dfuncs, void *draw_data,
*
* Perform a "line-to" draw operation.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_line_to (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -274,7 +274,7 @@ hb_draw_line_to (hb_draw_funcs_t *dfuncs, void *draw_data,
*
* Perform a "quadratic-to" draw operation.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_quadratic_to (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -301,7 +301,7 @@ hb_draw_quadratic_to (hb_draw_funcs_t *dfuncs, void *draw_data,
*
* Perform a "cubic-to" draw operation.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_cubic_to (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -324,7 +324,7 @@ hb_draw_cubic_to (hb_draw_funcs_t *dfuncs, void *draw_data,
*
* Perform a "close-path" draw operation.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_draw_close_path (hb_draw_funcs_t *dfuncs, void *draw_data,

View File

@ -44,7 +44,7 @@ HB_BEGIN_DECLS
*
* Current drawing state.
*
* Since: REPLACEME
* Since: 4.0.0
**/
typedef struct hb_draw_state_t {
hb_bool_t path_open;
@ -83,7 +83,7 @@ typedef struct hb_draw_state_t {
* #hb_draw_quadratic_to_func_t calls to #hb_draw_cubic_to_func_t if the
* callback isn't defined.
*
* Since: REPLACEME
* Since: 4.0.0
**/
typedef struct hb_draw_funcs_t hb_draw_funcs_t;
@ -101,7 +101,7 @@ typedef struct hb_draw_funcs_t hb_draw_funcs_t;
* A virtual method for the #hb_draw_funcs_t to perform a "move-to" draw
* operation.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_draw_move_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -121,7 +121,7 @@ typedef void (*hb_draw_move_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data
* A virtual method for the #hb_draw_funcs_t to perform a "line-to" draw
* operation.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_draw_line_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -143,7 +143,7 @@ typedef void (*hb_draw_line_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data
* A virtual method for the #hb_draw_funcs_t to perform a "quadratic-to" draw
* operation.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_draw_quadratic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -168,7 +168,7 @@ typedef void (*hb_draw_quadratic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw
* A virtual method for the #hb_draw_funcs_t to perform a "cubic-to" draw
* operation.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_draw_cubic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -188,7 +188,7 @@ typedef void (*hb_draw_cubic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_dat
* A virtual method for the #hb_draw_funcs_t to perform a "close-path" draw
* operation.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_draw_close_path_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data,
@ -204,7 +204,7 @@ typedef void (*hb_draw_close_path_func_t) (hb_draw_funcs_t *dfuncs, void *draw_d
*
* Sets move-to callback to the draw functions object.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *dfuncs,
@ -220,7 +220,7 @@ hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *dfuncs,
*
* Sets line-to callback to the draw functions object.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *dfuncs,
@ -236,7 +236,7 @@ hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *dfuncs,
*
* Sets quadratic-to callback to the draw functions object.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_draw_funcs_set_quadratic_to_func (hb_draw_funcs_t *dfuncs,
@ -252,7 +252,7 @@ hb_draw_funcs_set_quadratic_to_func (hb_draw_funcs_t *dfuncs,
*
* Sets cubic-to callback to the draw functions object.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *dfuncs,
@ -268,7 +268,7 @@ hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *dfuncs,
*
* Sets close-path callback to the draw functions object.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *dfuncs,

View File

@ -1310,7 +1310,7 @@ hb_font_get_glyph_from_name (hb_font_t *font,
* The shape is returned by way of calls to the callsbacks of the @dfuncs
* objects, with @draw_data passed to them.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_font_get_glyph_shape (hb_font_t *font,

View File

@ -522,7 +522,7 @@ typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void *
*
* A virtual method for the #hb_font_funcs_t of an #hb_font_t object.
*
* Since: REPLACEME
* Since: 4.0.0
*
**/
typedef void (*hb_font_get_glyph_shape_func_t) (hb_font_t *font, void *font_data,
@ -798,7 +798,7 @@ hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs,
*
* Sets the implementation function for #hb_font_get_glyph_shape_func_t.
*
* Since: REPLACEME
* Since: 4.0.0
**/
HB_EXTERN void
hb_font_funcs_set_glyph_shape_func (hb_font_funcs_t *ffuncs,

View File

@ -1974,7 +1974,7 @@ hb_ot_layout_substitute_lookup (OT::hb_ot_apply_context_t *c,
*
* Return value: dominant baseline tag for the @script.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_ot_layout_baseline_tag_t
hb_ot_layout_get_horizontal_baseline_tag_for_script (hb_script_t script)
@ -2080,7 +2080,7 @@ hb_ot_layout_get_baseline (hb_font_t *font,
* Fetches a baseline value from the face, and synthesizes
* it if the font does not have it.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_ot_layout_get_baseline_with_fallback (hb_font_t *font,

View File

@ -440,11 +440,11 @@ hb_ot_layout_feature_get_characters (hb_face_t *face,
* if the direction is horizontal or vertical, respectively.
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT: Ideographic character face top or right edge,
* if the direction is horizontal or vertical, respectively.
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL: The center of the ideographic character face. Since: REPLACEME
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL: The center of the ideographic character face. Since: 4.0.0
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT: Ideographic em-box bottom or left edge,
* if the direction is horizontal or vertical, respectively.
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT: Ideographic em-box top or right edge baseline,
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL: The center of the ideographic em-box. Since: REPLACEME
* @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL: The center of the ideographic em-box. Since: 4.0.0
* if the direction is horizontal or vertical, respectively.
* @HB_OT_LAYOUT_BASELINE_TAG_MATH: The baseline about which mathematical characters are centered.
* In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.

View File

@ -247,7 +247,7 @@ hb_ot_metrics_get_position (hb_font_t *font,
* Fetches metrics value corresponding to @metrics_tag from @font,
* and synthesizes a value if it the value is missing in the font.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_ot_metrics_get_position_with_fallback (hb_font_t *font,

View File

@ -470,7 +470,7 @@ _nameid_closure (hb_face_t *face,
* hb_subset_plan_destroy(). If there is a failure creating the plan
* nullptr will be returned.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_subset_plan_t *
hb_subset_plan_create_or_fail (hb_face_t *face,
@ -548,7 +548,7 @@ hb_subset_plan_create_or_fail (hb_face_t *face,
* Decreases the reference count on @plan, and if it reaches zero, destroys
* @plan, freeing all memory.
*
* Since: REPLACEME
* Since: 4.0.0
**/
void
hb_subset_plan_destroy (hb_subset_plan_t *plan)
@ -613,7 +613,7 @@ hb_subset_plan_destroy (hb_subset_plan_t *plan)
* Return value: (transfer none):
* A pointer to the #hb_map_t of the mapping.
*
* Since: REPLACEME
* Since: 4.0.0
**/
const hb_map_t*
hb_subset_plan_old_to_new_glyph_mapping (const hb_subset_plan_t *plan)
@ -631,7 +631,7 @@ hb_subset_plan_old_to_new_glyph_mapping (const hb_subset_plan_t *plan)
* Return value: (transfer none):
* A pointer to the #hb_map_t of the mapping.
*
* Since: REPLACEME
* Since: 4.0.0
**/
const hb_map_t*
hb_subset_plan_new_to_old_glyph_mapping (const hb_subset_plan_t *plan)
@ -649,7 +649,7 @@ hb_subset_plan_new_to_old_glyph_mapping (const hb_subset_plan_t *plan)
* Return value: (transfer none):
* A pointer to the #hb_map_t of the mapping.
*
* Since: REPLACEME
* Since: 4.0.0
**/
const hb_map_t*
hb_subset_plan_unicode_to_old_glyph_mapping (const hb_subset_plan_t *plan)
@ -665,7 +665,7 @@ hb_subset_plan_unicode_to_old_glyph_mapping (const hb_subset_plan_t *plan)
*
* Return value: @plan.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_subset_plan_t *
hb_subset_plan_reference (hb_subset_plan_t *plan)
@ -685,7 +685,7 @@ hb_subset_plan_reference (hb_subset_plan_t *plan)
*
* Return value: %true if success, %false otherwise
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_bool_t
hb_subset_plan_set_user_data (hb_subset_plan_t *plan,
@ -707,7 +707,7 @@ hb_subset_plan_set_user_data (hb_subset_plan_t *plan,
*
* Return value: (transfer none): A pointer to the user data
*
* Since: REPLACEME
* Since: 4.0.0
**/
void *
hb_subset_plan_get_user_data (const hb_subset_plan_t *plan,

View File

@ -364,7 +364,7 @@ hb_subset_or_fail (hb_face_t *source, const hb_subset_input_t *input)
* on success returns a reference to generated font subset. If the subsetting operation fails
* returns nullptr.
*
* Since: REPLACEME
* Since: 4.0.0
**/
hb_face_t *
hb_subset_plan_execute_or_fail (hb_subset_plan_t *plan)

View File

@ -41,13 +41,13 @@ HB_BEGIN_DECLS
*
* The major component of the library version available at compile-time.
*/
#define HB_VERSION_MAJOR 3
#define HB_VERSION_MAJOR 4
/**
* HB_VERSION_MINOR:
*
* The minor component of the library version available at compile-time.
*/
#define HB_VERSION_MINOR 4
#define HB_VERSION_MINOR 0
/**
* HB_VERSION_MICRO:
*
@ -60,7 +60,7 @@ HB_BEGIN_DECLS
*
* A string literal containing the library version available at compile-time.
*/
#define HB_VERSION_STRING "3.4.0"
#define HB_VERSION_STRING "4.0.0"
/**
* HB_VERSION_ATLEAST: