Après un an de développement, la version FreeType 2.15.0 est présentée, un moteur de polices modulaire qui fournit une API unique pour unifier le traitement et l'affichage des données de police dans divers formats vectoriels et matriciels. Le code du projet est écrit en C et distribué sous la licence BSD-like FreeType.
Parmi les changements :
- Ajout du support de la cinquième révision du format de police ISO Open Font (ISO/IEC 14496-22:2026), porté grâce à l'IA depuis la bibliothèque de composition de glyphes HarfBuzz et d'autres implémentations. Contrairement à la quatrième révision, publiée en 2019, la nouvelle version du format Open Font permet de contenir plus de 65536 glyphes ; une table « GLYF » a été ajoutée pour les contours, combinant des segments cubiques et coniques ; une version plus compacte de la table « VARC » a été proposée, permettant de réduire de 90 % la taille des polices variables avec des idéogrammes.
- Dans le rasteriseur, assurant le lissage, la performance de rendu des glyphes de plus de 40 ppem a été considérablement améliorée grâce à l'allocation dynamique de mémoire pour de grands glyphes.
- Un pilote expérimental pour les polices HVF (Hierarchical Variation Font), fourni par Apple et fonctionnant pour l'instant uniquement sous macOS, a été ajouté.
- Dans l'interpréteur du format TrueType, le support de la technologie de lissage de texte ClearType a été élargi, améliorant la qualité de rendu de polices telles que ‘Comic Sans MS’, ‘Segoe UI’, ‘Calibri’, ‘Corbel’, ‘Constantia’, ‘Malgun Gothic’ et ‘SimSun’. L'utilisation des données de la table gasp (Grid-fitting and Scan-conversion Procedure) pour le lissage et l'alignement sur la grille de pixels a été assurée, améliorant l'émulation du hachurage horizontal ClearType, ainsi que le traitement des instructions de rounding de glyphes (ROUND) et de l'application des valeurs de contrôle (CVT - Control Value Table).
- Un port pour le système d'exploitation Plan 9 a été ajouté.
- Des vulnérabilités ont été corrigées : CVE-2026-95512 - épuisement de la mémoire et forte charge sur le CPU lors du traitement de polices spécialement conçues au format CID ; CVE-2026-50811 - lecture hors de la mémoire tampon lors de l'utilisation des fonctions TT_Get_Var_Design et T_Get_Var_Design_Coordinates ; CVE-2026-27171 - vulnérabilité dans l'ancien code intégré de zlib, entraînant une boucle infinie.
Source : opennet.ru
