FreeType es una biblioteca de desarrollo de software que se utiliza para representar texto en mapas de bits y que proporciona soporte para otras operaciones relacionadas con las fuentes. El motor de rasterización de fuentes FreeType es un software libre y de código abierto con el código fuente con doble licencia, una licencia similar a la BSD y la GPL . FreeType admite varios formatos de fuentes, incluidos TrueType , Type 1 y OpenType . [5]
El motor de renderizado FreeType fue creado en 1995 por David Turner con la intención de proporcionar compatibilidad con fuentes TrueType para el sistema operativo OS/2, [ 1 ] incluyendo un intérprete para manejar el bytecode TrueType. Originalmente escrito en el lenguaje de programación Pascal , fue adaptado en 1997 por Robert Wilhelm a C. [3] [6] [7]
FreeType 1 solo admitía el formato de fuente TrueType, pero incluía una extensión para admitir funciones de diseño de texto OpenType .
La versión 2.0 de FreeType fue una reescritura completa para hacerlo más modular. FreeType 2 trajo soporte para más formatos de fuentes y un código fuente evolucionado que los desarrolladores afirmaron que era "más simple y más poderoso". [8] FreeType 2 no es compatible con versiones anteriores de FreeType 1, pero los desarrolladores afirmaron que pasar de FreeType 1 a FreeType 2 presenta pocas dificultades. [8] Sin embargo, como el procesamiento de diseño de texto no era un objetivo de FreeType 2, la funcionalidad de diseño de texto OpenType de FreeType 1 se eliminó en FreeType 2. Una forma muy evolucionada de la funcionalidad de diseño de texto OpenType de FreeType 1 se utiliza en la biblioteca de diseño de texto Pango . El proyecto HarfBuzz está desarrollando aún más esa funcionalidad con una reescritura completa que se ofrece como una biblioteca independiente con una licencia menos restrictiva que la de Pango. [9]
En 1999, el proyecto Freetype fue informado por Apple Incorporated de que FreeType estaba infringiendo patentes relacionadas con la función de sugerencias de fuentes TrueType . A raíz de eso, Freetype desactivó de forma predeterminada o eludió las tecnologías relacionadas con las patentes. Por lo tanto, varios proyectos de código abierto, como FreeBSD o Linux , incluyeron FreeType con la función de sugerencias de fuentes deshabilitada o degradada para evitar el problema de las patentes de software en poder de Apple Inc. [10]
Desde mayo de 2010, todas las patentes de software conflictivas relacionadas con el uso de sugerencias de fuentes han expirado [10] , lo que permite que el uso de sugerencias de fuentes TrueType de FreeType se pueda realizar en código abierto. Muchos de los sistemas operativos que deshabilitaban el renderizador ahora le dan al usuario la opción de habilitarlo. En Fedora, freetype-freeworld pasó del repositorio propietario yum al repositorio gratuito [11] .
Desde agosto de 2019, todas las patentes de software conflictivas relacionadas con el filtrado de color ClearType han expirado, [10] lo que permite a FreeType utilizar el método de filtrado de color ClearType en 2.10.3.
En 2013, Adobe donó un motor de renderizado de formato de fuente compacto al proyecto FreeType, que lo integró y lo convirtió en el predeterminado con la versión 2.5. [12] [13]
FreeType se utiliza como renderizador de fuentes en Android , ChromeOS . [14] Apple utiliza FreeType en iOS [14] y macOS [15] junto con Apple Advanced Typography . En 2007, Sun Microsystems pasó de utilizar un rasterizador de fuentes propietario a utilizar FreeType en el kit de desarrollo Java OpenJDK . [16] En Windows , proyectos como gdipp [17] y MacType [18] tienen como objetivo anular el renderizador del sistema con FreeType. FreeType también se utiliza como renderizador de fuentes en ReactOS . [19]
Además de ser utilizado por los principales sistemas de escritorio de software libre, FreeType se ha utilizado como motor de rasterización para algunos videojuegos modernos , [20] [21] [22] y Opera para Wii . [23] Sony incluye FreeType con sus consolas PlayStation 3 , [24] PlayStation 4 , [25] y PlayStation Vita [26] .
Si bien el núcleo principal de ReactOS está creado desde cero, tiene algunas dependencias de software y protocolos existentes. Utiliza partes de Wine, redes en forma de lwIP, USB de Haiku, así como FreeType, Mesa3D y UniATA.