This commit is contained in:
Khaled Hosny 2025-03-24 00:33:53 +02:00
parent 7599d097c9
commit ea6a172f84
16 changed files with 92 additions and 30 deletions

61
NEWS
View file

@ -1,3 +1,64 @@
Overview of changes leading to 11.0.0
Monday, March 24, 2025
====================================
- There are three new font-functions implementations (integrations) in this
release:
* `hb-coretext` has gained one, calling into the CoreText library,
* `hb-directwrite` has gained one, calling into the DirectWrite library.
* `hb-fontations` has gained one, calling into the Skrifa Rust library.
All three are mostly useful for performance and correctness testing, but some
clients might find them useful.
An API is added to use them from a single API by providing a backend name
string:
* `hb_font_set_funcs_using()`
- Several new APIs are added, to load a font-face using different
"face-loaders", and a single entry point to them all using a loader name
string:
* `hb_ft_face_create_from_file_or_fail()` and
`hb_ft_face_create_from_blob_or_fail()`
* `hb_coretext_face_create_from_file_or_fail()` and
`hb_coretext_face_create_from_blob_or_fail()`
* `hb_directwrite_face_create_from_file_or_fail()` and
`hb_directwrite_face_create_from_blob_or_fail()`
* `hb_face_create_from_file_or_fail_using()`
- All drawing and painting operations using the default, `hb-ot` functions have
become memory allocation-free.
- Several performance optimizations have been implemented.
- Application of the `trak` table during shaping has been improved.
- The `directwrite` shaper now supports font variations, and correctly applies
user features.
- The `hb-directwrite` API and shaper has graduated from experimental.
- Various bug fixes and other improvements.
- New API:
+hb_malloc
+hb_calloc
+hb_realloc
+hb_free
+hb_face_list_loaders
+hb_face_create_or_fail_using
+hb_face_create_from_file_or_fail_using
+hb_font_list_funcs
+hb_font_set_funcs_using
+hb_coretext_face_create_from_blob_or_fail
+hb_directwrite_face_create_from_file_or_fail
+hb_directwrite_face_create_from_blob_or_fail
+hb_directwrite_font_create
+hb_directwrite_font_get_dw_font_face
+hb_directwrite_font_set_funcs
+hb_fontations_font_set_funcs
+hb_ft_face_create_from_blob_or_fail
+hb_paint_push_font_transform
+hb_paint_push_inverse_font_transform
+HB_BUFFER_CLUSTER_LEVEL_GRAPHEMES
+HB_BUFFER_CLUSTER_LEVEL_IS_MONOTONE
+HB_BUFFER_CLUSTER_LEVEL_IS_GRAPHEMES
+HB_BUFFER_CLUSTER_LEVEL_IS_CHARACTERS
- Deprecated API:
+hb_directwrite_font_get_dw_font
Overview of changes leading to 10.4.0
Saturday, March 1, 2025
====================================

View file

@ -17,7 +17,7 @@
- [ ] Based on severity of changes, decide whether it's a minor or micro release number bump.
- [ ] Search for 'XSince: REPLACEME' on the repository and replace it with the chosen version for the release, e.g. 'Since: 1.4.7'.
- [ ] Search for 'REPLACEME' on the repository and replace it with the chosen version for the release, e.g. 'Since: 1.4.7'.
- [ ] Make sure you have correct date and new version at the top of NEWS file.

View file

@ -121,6 +121,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"><title>Index of deprecated API</title><xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include></index>
<index id="api-index-11-0-0"><title>Index of new symbols in 11.0.0</title><xi:include href="xml/api-index-11.0.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-10-4-0"><title>Index of new symbols in 10.4.0</title><xi:include href="xml/api-index-10.4.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-10-3-0"><title>Index of new symbols in 10.3.0</title><xi:include href="xml/api-index-10.3.0.xml"><xi:fallback /></xi:include></index>
<index id="api-index-10-2-0"><title>Index of new symbols in 10.2.0</title><xi:include href="xml/api-index-10.2.0.xml"><xi:fallback /></xi:include></index>

View file

@ -1,6 +1,6 @@
project('harfbuzz', ['c', 'cpp'],
meson_version: '>= 0.55.0',
version: '10.4.0',
version: '11.0.0',
default_options: [
'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway
# 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI

View file

@ -473,7 +473,7 @@ typedef enum {
* Tests whether a cluster level groups cluster values into monotone order.
* Requires that the level be valid.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
#define HB_BUFFER_CLUSTER_LEVEL_IS_MONOTONE(level) \
((bool) ((1u << (unsigned) (level)) & \
@ -487,7 +487,7 @@ typedef enum {
* Tests whether a cluster level groups cluster values by graphemes. Requires
* that the level be valid.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
#define HB_BUFFER_CLUSTER_LEVEL_IS_GRAPHEMES(level) \
((bool) ((1u << (unsigned) (level)) & \
@ -501,7 +501,7 @@ typedef enum {
* Tests whether a cluster level does not group cluster values by graphemes.
* Requires that the level be valid.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
#define HB_BUFFER_CLUSTER_LEVEL_IS_CHARACTERS(level) \
((bool) ((1u << (unsigned) (level)) & \

View file

@ -1226,7 +1226,7 @@ uint8_t
*
* Return value: A pointer to the allocated memory.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
void* hb_malloc(size_t size) { return hb_malloc_impl (size); }
@ -1240,7 +1240,7 @@ void* hb_malloc(size_t size) { return hb_malloc_impl (size); }
*
* Return value: A pointer to the allocated memory.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
void* hb_calloc(size_t nmemb, size_t size) { return hb_calloc_impl (nmemb, size); }
@ -1254,7 +1254,7 @@ void* hb_calloc(size_t nmemb, size_t size) { return hb_calloc_impl (nmemb, size)
*
* Return value: A pointer to the reallocated memory.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
void* hb_realloc(void *ptr, size_t size) { return hb_realloc_impl (ptr, size); }
@ -1265,7 +1265,7 @@ void* hb_realloc(void *ptr, size_t size) { return hb_realloc_impl (ptr, size); }
* Frees the memory pointed to by @ptr, using the allocator set at
* compile-time. Typically just free().
*
* XSince: REPLACEME
* Since: 11.0.0
**/
void hb_free(void *ptr) { hb_free_impl (ptr); }

View file

@ -445,7 +445,7 @@ hb_coretext_face_create_from_file_or_fail (const char *file_name,
* Return value: (transfer full): The new face object, or `NULL` if
* no face is found at the specified index or the blob cannot be read.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
hb_face_t *
hb_coretext_face_create_from_blob_or_fail (hb_blob_t *blob,

View file

@ -363,7 +363,7 @@ _hb_directwrite_get_font_funcs ()
* <note>Note: Internally, this function creates a DirectWrite font.
* </note>
*
* XSince: REPLACEME
* Since: 11.0.0
**/
void
hb_directwrite_font_set_funcs (hb_font_t *font)

View file

@ -239,7 +239,7 @@ hb_directwrite_face_create (IDWriteFontFace *dw_face)
* Return value: (transfer full): The new face object, or `NULL` if
* no face is found at the specified index or the file cannot be read.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
hb_face_t *
hb_directwrite_face_create_from_file_or_fail (const char *file_name,
@ -266,7 +266,7 @@ hb_directwrite_face_create_from_file_or_fail (const char *file_name,
* Return value: (transfer full): The new face object, or `NULL` if
* no face is found at the specified index or the blob cannot be read.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
HB_EXTERN hb_face_t *
hb_directwrite_face_create_from_blob_or_fail (hb_blob_t *blob,
@ -334,7 +334,7 @@ hb_directwrite_face_get_font_face (hb_face_t *face)
*
* Return value: #hb_font_t object corresponding to the given input
*
* XSince: REPLACEME
* Since: 11.0.0
**/
hb_font_t *
hb_directwrite_font_create (IDWriteFontFace *dw_face)
@ -389,7 +389,7 @@ hb_directwrite_font_create (IDWriteFontFace *dw_face)
*
* Return value: DirectWrite IDWriteFontFace object corresponding to the given input
*
* XSince: REPLACEME
* Since: 11.0.0
**/
IDWriteFontFace *
hb_directwrite_font_get_dw_font_face (hb_font_t *font)
@ -407,7 +407,7 @@ hb_directwrite_font_get_dw_font_face (hb_font_t *font)
* Return value: Returns `NULL`.
*
* Since: 10.3.0
* XDeprecated: REPLACEME:
* Deprecated: 11.0.0:
**/
IDWriteFont *
hb_directwrite_font_get_dw_font (hb_font_t *font)

View file

@ -41,7 +41,7 @@ HB_BEGIN_DECLS
* @path_start_y: Y component of the start of current path
* @current_x: X component of current point
* @current_y: Y component of current point
* @slant_xy: (XSince: REPLACEME): Slanting factor for synthetic oblique
* @slant_xy: (Since: 11.0.0): Slanting factor for synthetic oblique
*
* Current drawing state.
*

View file

@ -395,7 +395,7 @@ static const char *get_default_loader_name ()
* Return value: (transfer full): The new face object, or `NULL` if
* the file cannot be read or the loader fails to load the face.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
hb_face_t *
hb_face_create_from_file_or_fail_using (const char *file_name,
@ -445,7 +445,7 @@ retry:
* Return value: (transfer full): The new face object, or `NULL` if
* the loader fails to load the face.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
hb_face_t *
hb_face_create_or_fail_using (hb_blob_t *blob,
@ -522,7 +522,7 @@ void free_static_face_loader_list ()
* constant strings. The returned array is owned by HarfBuzz
* and should not be modified or freed.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
const char **
hb_face_list_loaders ()

View file

@ -2355,7 +2355,7 @@ static const char *get_default_funcs_name ()
*
* Return value: `true` if the font-functions was found and set, `false` otherwise
*
* XSince: REPLACEME
* Since: 11.0.0
**/
hb_bool_t
hb_font_set_funcs_using (hb_font_t *font,
@ -2433,7 +2433,7 @@ void free_static_font_funcs_list ()
* constant strings. The returned array is owned by HarfBuzz
* and should not be modified or freed.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
const char **
hb_font_list_funcs ()

View file

@ -46,7 +46,7 @@ HB_BEGIN_DECLS
* Configures the font-functions structure of the specified #hb_font_t font
* object to use Fontations font functions.
*
* XSince: REPLACEME
* Since: 11.0.0
**/
HB_EXTERN void
hb_fontations_font_set_funcs (hb_font_t *font);

View file

@ -1449,7 +1449,7 @@ hb_ft_font_changed (hb_font_t *font)
* variation-axis settings on the @font.
* This call is fast if nothing has changed on @font.
*
* Note that as of version REPLACEME, calling this function is not necessary,
* Note that as of version 11.0.0, calling this function is not necessary,
* as HarfBuzz will automatically detect changes to the font and update
* the underlying FT_Face as needed.
*
@ -1645,7 +1645,7 @@ _destroy_blob (void *p)
* Return value: (transfer full): The new face object, or `NULL` if
* loading fails (eg. blob does not contain valid font data).
*
* XSince: REPLACEME
* Since: 11.0.0
*/
hb_face_t *
hb_ft_face_create_from_blob_or_fail (hb_blob_t *blob,

View file

@ -473,7 +473,7 @@ hb_paint_push_transform (hb_paint_funcs_t *funcs, void *paint_data,
* Push the transform reflecting the font's scale and slant
* settings onto the paint functions.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
void
hb_paint_push_font_transform (hb_paint_funcs_t *funcs, void *paint_data,
@ -491,7 +491,7 @@ hb_paint_push_font_transform (hb_paint_funcs_t *funcs, void *paint_data,
* Push the inverse of the transform reflecting the font's
* scale and slant settings onto the paint functions.
*
* XSince: REPLACEME
* Since: 11.0.0
*/
void
hb_paint_push_inverse_font_transform (hb_paint_funcs_t *funcs, void *paint_data,

View file

@ -41,13 +41,13 @@ HB_BEGIN_DECLS
*
* The major component of the library version available at compile-time.
*/
#define HB_VERSION_MAJOR 10
#define HB_VERSION_MAJOR 11
/**
* 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 "10.4.0"
#define HB_VERSION_STRING "11.0.0"
/**
* HB_VERSION_ATLEAST: