diff --git a/docs/CHANGES b/docs/CHANGES index 1df876200..377faa3a6 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -4,7 +4,7 @@ CHANGES BETWEEN 2.13.3 and 2.14.0 (2025-Mmm-DD) - A new configuration macro `FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC` is available to load the HarfBuzz library dynamically (in addition - to the standard static and dynamic linking modes); cmake, meson + to the standard static and dynamic linking modes); cmake, meson, and autotools support have been updated accordingly. Using this new feature makes it possible to avoid the circular dependency between HarfBuzz and FreeType. @@ -36,11 +36,11 @@ CHANGES BETWEEN 2.13.3 and 2.14.0 (2025-Mmm-DD) The central algorithm and the foundation of this feature was Craig White's GSoC 2023 project. - - Bitmap-only TrueType fonts now ignore FT_LOAD_NO_BITMAP flag and - proceed loading bitmaps instead of giving an error. This behavior - is documented and implemented for other bitmap-only fonts. The - flag was always meant to suppress the bitmap strikes in favor of - outlines, not to ban them completely. + - Bitmap-only TrueType fonts now ignore the `FT_LOAD_NO_BITMAP` flag + and proceed loading bitmaps instead of giving an error. This + behavior is documented and implemented for other bitmap-only + fonts. The flag was always meant to suppress the bitmap strikes + in favor of outlines, not to ban them completely. II. IMPORTANT BUG FIXES @@ -54,15 +54,15 @@ CHANGES BETWEEN 2.13.3 and 2.14.0 (2025-Mmm-DD) - `FT_Set_Var_Design_Coordinates` and `FT_Set_MM_Blend_Coordinates` now set the `FT_FACE_FLAG_VARIATION` bit in the `face_flag` field - of `FT_Face` (i.e., the macro `FT_IS_VARIATION` will return true) - also if any of the provided coordinates is different from the - face's default value for the corresponding axis, that is, the set - up face is not at its default position. + of `FT_Face` (i.e., the macro `FT_IS_VARIATION` returns true) also + if any of the provided coordinates is different from the face's + default value for the corresponding axis, that is, the set up face + is not at its default position. - `FT_Load_Sfnt_Table` can now also load a font's table directory. - - The TrueType instruction interpreter was optimized to produce 15% - gain in the glyph loading speed. + - The TrueType instruction interpreter was optimized to produce a + 15% gain in the glyph loading speed. - Handling of Variation Fonts is now considerably faster, thanks to contributions by Behdad Esfahbod. @@ -77,6 +77,10 @@ CHANGES BETWEEN 2.13.3 and 2.14.0 (2025-Mmm-DD) configuration option is active) is now about 3.5 times faster than before. + - Support for the (currently undocumented) 'flip' graphic type in + the 'sbix' SFNT table as used in the `Apple Color Emoji.ttc` font + (code provided by Andrew Murray). + - `ftmulti` can now scroll through named instances and gracefully show static fonts. diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h index 81f1b42b5..618e8d91b 100644 --- a/include/freetype/ftmm.h +++ b/include/freetype/ftmm.h @@ -439,8 +439,8 @@ FT_BEGIN_HEADER * * [Since 2.9] If `num_coords` is larger than zero, this function sets * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. + * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this + * bit flag gets unset. */ FT_EXPORT( FT_Error ) FT_Set_MM_Design_Coordinates( FT_Face face, @@ -486,11 +486,11 @@ FT_BEGIN_HEADER * * [Since 2.9] If `num_coords` is larger than zero, this function sets * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. + * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this + * bit flag gets unset. * * [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit - * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION will return + * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns * true) if any of the provided coordinates is different from the face's * default value for the corresponding axis, that is, the set up face is * not at its default position. @@ -578,11 +578,11 @@ FT_BEGIN_HEADER * * [Since 2.9] If `num_coords` is larger than zero, this function sets * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. + * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this + * bit flag gets unset. * * [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit - * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION will return + * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns * true) if any of the provided coordinates is different from the face's * default value for the corresponding axis, that is, the set up face is * not at its default position. @@ -695,8 +695,8 @@ FT_BEGIN_HEADER * * If `len` is larger than zero, this function sets the * @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e., - * @FT_IS_VARIATION will return true). If `len` is zero, this bit flag - * is unset and the weight vector array is reset to the default values. + * @FT_IS_VARIATION returns true). If `len` is zero, this bit flag is + * unset and the weight vector array is reset to the default values. * * The Adobe documentation also states that the values in the * `WeightVector` array must total 1.0 +/-~0.001. In practice this does diff --git a/include/freetype/internal/ftcalc.h b/include/freetype/internal/ftcalc.h index 4317ffdf6..c6a79fb7e 100644 --- a/include/freetype/internal/ftcalc.h +++ b/include/freetype/internal/ftcalc.h @@ -189,7 +189,7 @@ FT_BEGIN_HEADER : "a"(a), "d"(b) : "%ecx", "cc" ); -#elif defined( _MSC_VER) +#elif defined( _MSC_VER ) __asm { diff --git a/include/freetype/internal/tttypes.h b/include/freetype/internal/tttypes.h index dba8eadde..8f1769a19 100644 --- a/include/freetype/internal/tttypes.h +++ b/include/freetype/internal/tttypes.h @@ -930,8 +930,8 @@ FT_BEGIN_HEADER * resolution and scaling independent parts of a TrueType font resource. * * @note: - * The TT_Face structure is also used as a 'parent class' for the - * OpenType-CFF class (T2_Face). + * The TT_Face structure is also used for CFF support; see file + * `cffotypes.h`. */ typedef struct TT_FaceRec_* TT_Face; diff --git a/src/autofit/afadjust.c b/src/autofit/afadjust.c index 3d6f8484a..c13e0dca6 100644 --- a/src/autofit/afadjust.c +++ b/src/autofit/afadjust.c @@ -1198,7 +1198,7 @@ be contradictory entries for glyphs not in the cmap. A possible solution might be to specially mark pairs of related lowercase and uppercase characters in the adjustment database that have diacritics - on different vertical sides (for example, U+0122 'Ģ' and U+0123 'ģ'). + on different vertical sides (for example, U+0122 'Ģ' and U+0123 'ģ'). The auto-hinter could then perform a topological analysis to do the right thing. */ diff --git a/src/sdf/ftbsdf.c b/src/sdf/ftbsdf.c index de98b3d58..2870c043f 100644 --- a/src/sdf/ftbsdf.c +++ b/src/sdf/ftbsdf.c @@ -849,9 +849,9 @@ FT_Int width ) { #if USE_SQUARED_DISTANCES - FT_16D16 edge_threshold = ONE / 4; + FT_16D16 edge_threshold = ONE / 4; #else - FT_16D16 edge_threshold = ONE / 2; + FT_16D16 edge_threshold = ONE / 2; #endif ED* to_check; FT_16D16 dist; diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index 267dcfe9c..db06eaba9 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -3169,7 +3169,7 @@ FT_UInt num_coords, FT_Fixed* coords ) { - FT_Error error = FT_Err_Ok; + FT_Error error; error = tt_set_mm_blend( (TT_Face)face, num_coords, coords, 1 );