mirror of
https://github.com/harfbuzz/harfbuzz.git
synced 2025-04-06 14:05:05 +00:00
11.0.0
This commit is contained in:
parent
7599d097c9
commit
ea6a172f84
16 changed files with 92 additions and 30 deletions
61
NEWS
61
NEWS
|
@ -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
|
||||
====================================
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)) & \
|
||||
|
|
|
@ -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); }
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue