After a year of development, FreeType 2.15.0 is released, a modular font engine providing a unified API for standardizing the processing and rendering of font data in various vector and raster formats. The project code is written in C and is distributed under a BSD-like FreeType license.
Among the changes:
- Support for the fifth edition of the ISO Open Font format (ISO/IEC 14496-22:2026) has been added, ported using AI from the HarfBuzz glyph layout library and other implementations. Unlike the fourth edition released in 2019, the new version of the Open Font format allows for more than 65,536 glyphs; it introduces a 'GLYF' table for outlines combining cubic and conic segments; a more compact version of the 'VARC' table is also proposed, allowing a 90% reduction in the size of variable fonts with hieroglyphs.
- In the rasterizer, which provides smoothing, dynamic memory allocation for large glyphs has significantly increased the rendering performance for glyphs larger than 40 ppem.
- An experimental driver for HVF (Hierarchical Variation Font) fonts has been added, provided by Apple and currently only operational on macOS.
- Support for ClearType text smoothing technology has been expanded in the TrueType format interpreter, improving the rendering quality of fonts such as 'Comic Sans MS', 'Segoe UI', 'Calibri', 'Corbel', 'Constantia', 'Malgun Gothic', and 'SimSun'. It facilitates the use of data from the gasp table (Grid-fitting and Scan-conversion Procedure) for smoothing and pixel grid alignment, enhances the emulation of ClearType horizontal hinting, and improves the processing of glyph rounding instructions (ROUND) and control value applications (CVT — Control Value Table).
- A port for the Plan 9 operating system has been added.
- Vulnerabilities addressed: CVE-2026-95512 — memory exhaustion and high CPU load when processing specially crafted CID fonts; CVE-2026-50811 — out-of-bounds read when using TT_Get_Var_Design and T_Get_Var_Design_Coordinates functions; CVE-2026-27171 — a vulnerability in outdated embedded code from zlib leading to infinite looping.
Source: opennet.ru
