6.0.0
This commit is contained in:
parent
27ff90d7b8
commit
afcae83a06
62
NEWS
62
NEWS
|
@ -1,3 +1,65 @@
|
||||||
|
Overview of changes leading to 6.0.0
|
||||||
|
Friday, December 16, 2022
|
||||||
|
====================================
|
||||||
|
- A new API have been added to pre-process the face and speed up future
|
||||||
|
subsetting operations on that face. Provides up to a 95% reduction in
|
||||||
|
subsetting times when the same face is subset more than once.
|
||||||
|
|
||||||
|
For more details and benchmarks, see:
|
||||||
|
https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md
|
||||||
|
|
||||||
|
(Garret Rieger, Behdad Esfahbod)
|
||||||
|
|
||||||
|
- Shaping have been speedup by skipping entire lookups when the buffer contents
|
||||||
|
don't intersect with the lookup. Shows up to a 10% speedup in shaping some
|
||||||
|
fonts. (Behdad Esfahbod)
|
||||||
|
|
||||||
|
- A new experimental feature, “Variable Composites” (enabled by passing
|
||||||
|
-Dexperimental_api=true to meson), is also featured in this release.
|
||||||
|
This technology enables drastic compression of fonts in the Chinese,
|
||||||
|
Japanese, Korean, and other writing systems, by reusing the OpenType Font
|
||||||
|
Variations technology for encoding “smart components” into the font.
|
||||||
|
|
||||||
|
The specification for these extensions to the font format can be found in:
|
||||||
|
https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md
|
||||||
|
|
||||||
|
A test variable-font with ~7160 Hangul syllables derived from the
|
||||||
|
NotoSerifKR-VF font has been built, with existing OpenType technology, as
|
||||||
|
well as with the new Variable Composites (VarComposites) technology. The
|
||||||
|
VarComposites font is over 90% smaller than the OpenType version of the font!
|
||||||
|
Both fonts can be obtained from the “smarties” repository:
|
||||||
|
https://github.com/behdad/smarties/tree/3.0/fonts/hangul/serif
|
||||||
|
|
||||||
|
When building HarfBuzz with experimental features enabled, you can test
|
||||||
|
the “smarties” font with a sample character like this:
|
||||||
|
|
||||||
|
$ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700
|
||||||
|
|
||||||
|
(Behdad Esfahbod)
|
||||||
|
|
||||||
|
- The HarfBuzz subsetter can now drop axes by pinning them to specific values
|
||||||
|
(also referred to as instancing). There are a couple of restrictions
|
||||||
|
currently:
|
||||||
|
|
||||||
|
- Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet
|
||||||
|
supported.
|
||||||
|
- Only supports the case where all axes in a font are pinned.
|
||||||
|
|
||||||
|
(Garret Rieger, Qunxin Liu)
|
||||||
|
|
||||||
|
- Miscellaneous fixes and improvements.
|
||||||
|
|
||||||
|
(Behdad Esfahbod, Christoph Reiter, David Corbett, Eli Schwartz, Garret
|
||||||
|
Rieger, Joel Auterson, Jordan Petridis, Khaled Hosny, Lorenz Wildberg,
|
||||||
|
Marco Rebhan, Martin Storsjö, Matthias Clasen, Qunxin Liu, Satadru Pramanik)
|
||||||
|
|
||||||
|
|
||||||
|
- New API
|
||||||
|
+hb_subset_input_pin_axis_location()
|
||||||
|
+hb_subset_input_pin_axis_to_default()
|
||||||
|
+hb_subset_preprocess()
|
||||||
|
|
||||||
|
|
||||||
Overview of changes leading to 5.3.1
|
Overview of changes leading to 5.3.1
|
||||||
Wednesday, October 19, 2022
|
Wednesday, October 19, 2022
|
||||||
====================================
|
====================================
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
AC_PREREQ([2.64])
|
AC_PREREQ([2.64])
|
||||||
AC_INIT([HarfBuzz],
|
AC_INIT([HarfBuzz],
|
||||||
[5.3.1],
|
[6.0.0],
|
||||||
[https://github.com/harfbuzz/harfbuzz/issues/new],
|
[https://github.com/harfbuzz/harfbuzz/issues/new],
|
||||||
[harfbuzz],
|
[harfbuzz],
|
||||||
[http://harfbuzz.org/])
|
[http://harfbuzz.org/])
|
||||||
|
|
|
@ -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="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="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-6-0-0" role="6.0.0"><title>Index of new symbols in 6.0.0</title><xi:include href="xml/api-index-6.0.0.xml"><xi:fallback /></xi:include></index>
|
||||||
<index id="api-index-5-3-0" role="5.3.0"><title>Index of new symbols in 5.3.0</title><xi:include href="xml/api-index-5.3.0.xml"><xi:fallback /></xi:include></index>
|
<index id="api-index-5-3-0" role="5.3.0"><title>Index of new symbols in 5.3.0</title><xi:include href="xml/api-index-5.3.0.xml"><xi:fallback /></xi:include></index>
|
||||||
<index id="api-index-5-0-0" role="5.0.0"><title>Index of new symbols in 5.0.0</title><xi:include href="xml/api-index-5.0.0.xml"><xi:fallback /></xi:include></index>
|
<index id="api-index-5-0-0" role="5.0.0"><title>Index of new symbols in 5.0.0</title><xi:include href="xml/api-index-5.0.0.xml"><xi:fallback /></xi:include></index>
|
||||||
<index id="api-index-4-4-0" role="4.4.0"><title>Index of new symbols in 4.4.0</title><xi:include href="xml/api-index-4.4.0.xml"><xi:fallback /></xi:include></index>
|
<index id="api-index-4-4-0" role="4.4.0"><title>Index of new symbols in 4.4.0</title><xi:include href="xml/api-index-4.4.0.xml"><xi:fallback /></xi:include></index>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
project('harfbuzz', 'c', 'cpp',
|
project('harfbuzz', 'c', 'cpp',
|
||||||
meson_version: '>= 0.55.0',
|
meson_version: '>= 0.55.0',
|
||||||
version: '5.3.1',
|
version: '6.0.0',
|
||||||
default_options: [
|
default_options: [
|
||||||
'cpp_rtti=false', # Just to support msvc, we are passing -fno-exceptions also anyway
|
'cpp_rtti=false', # Just to support msvc, we are passing -fno-exceptions also anyway
|
||||||
'cpp_std=c++11',
|
'cpp_std=c++11',
|
||||||
|
|
|
@ -408,7 +408,7 @@ hb_subset_input_get_user_data (const hb_subset_input_t *input,
|
||||||
*
|
*
|
||||||
* Return value: `true` if success, `false` otherwise
|
* Return value: `true` if success, `false` otherwise
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 6.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN hb_bool_t
|
HB_EXTERN hb_bool_t
|
||||||
hb_subset_input_pin_axis_to_default (hb_subset_input_t *input,
|
hb_subset_input_pin_axis_to_default (hb_subset_input_t *input,
|
||||||
|
@ -435,7 +435,7 @@ hb_subset_input_pin_axis_to_default (hb_subset_input_t *input,
|
||||||
*
|
*
|
||||||
* Return value: `true` if success, `false` otherwise
|
* Return value: `true` if success, `false` otherwise
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 6.0.0
|
||||||
**/
|
**/
|
||||||
HB_EXTERN hb_bool_t
|
HB_EXTERN hb_bool_t
|
||||||
hb_subset_input_pin_axis_location (hb_subset_input_t *input,
|
hb_subset_input_pin_axis_location (hb_subset_input_t *input,
|
||||||
|
@ -470,7 +470,7 @@ hb_subset_input_pin_axis_location (hb_subset_input_t *input,
|
||||||
*
|
*
|
||||||
* Returns: a new #hb_face_t.
|
* Returns: a new #hb_face_t.
|
||||||
*
|
*
|
||||||
* Since: REPLACEME
|
* Since: 6.0.0
|
||||||
**/
|
**/
|
||||||
|
|
||||||
HB_EXTERN hb_face_t *
|
HB_EXTERN hb_face_t *
|
||||||
|
|
|
@ -41,26 +41,26 @@ HB_BEGIN_DECLS
|
||||||
*
|
*
|
||||||
* The major component of the library version available at compile-time.
|
* The major component of the library version available at compile-time.
|
||||||
*/
|
*/
|
||||||
#define HB_VERSION_MAJOR 5
|
#define HB_VERSION_MAJOR 6
|
||||||
/**
|
/**
|
||||||
* HB_VERSION_MINOR:
|
* HB_VERSION_MINOR:
|
||||||
*
|
*
|
||||||
* The minor component of the library version available at compile-time.
|
* The minor component of the library version available at compile-time.
|
||||||
*/
|
*/
|
||||||
#define HB_VERSION_MINOR 3
|
#define HB_VERSION_MINOR 0
|
||||||
/**
|
/**
|
||||||
* HB_VERSION_MICRO:
|
* HB_VERSION_MICRO:
|
||||||
*
|
*
|
||||||
* The micro component of the library version available at compile-time.
|
* The micro component of the library version available at compile-time.
|
||||||
*/
|
*/
|
||||||
#define HB_VERSION_MICRO 1
|
#define HB_VERSION_MICRO 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HB_VERSION_STRING:
|
* HB_VERSION_STRING:
|
||||||
*
|
*
|
||||||
* A string literal containing the library version available at compile-time.
|
* A string literal containing the library version available at compile-time.
|
||||||
*/
|
*/
|
||||||
#define HB_VERSION_STRING "5.3.1"
|
#define HB_VERSION_STRING "6.0.0"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HB_VERSION_ATLEAST:
|
* HB_VERSION_ATLEAST:
|
||||||
|
|
Loading…
Reference in New Issue