FreeType — это библиотека разработки программного обеспечения, используемая для рендеринга текста на растровых изображениях , которая обеспечивает поддержку других операций, связанных со шрифтами. Механизм растеризации шрифтов FreeType — это бесплатное программное обеспечение с открытым исходным кодом , исходный код которого лицензирован по лицензии BSD-like и GPL . FreeType поддерживает ряд форматов шрифтов, включая TrueType , Type 1 и OpenType . [5]
FreeType rendering engine был запущен в 1995 году Дэвидом Тернером с целью предоставить поддержку шрифтов TrueType для операционной системы OS/2 , [1] включая интерпретатор для обработки байт-кода TrueType. Первоначально написанный на языке программирования Pascal , он был портирован в 1997 году Робертом Вильгельмом на C. [3] [6] [7]
FreeType 1 поддерживал только формат шрифтов TrueType, но включал расширение для поддержки функций текстовой разметки OpenType .
Версия 2.0 FreeType была полностью переписана, чтобы сделать ее более модульной. FreeType 2 принесла поддержку большего количества форматов шрифтов и усовершенствованный исходный код, который разработчики заявили, что он «проще и мощнее». [8] FreeType 2 не имеет обратной совместимости с FreeType 1, но разработчики заявили, что переход с FreeType 1 на FreeType 2 не представляет особых трудностей. [8] Однако, поскольку обработка текстовой разметки не была целью FreeType 2, функциональность текстовой разметки OpenType FreeType 1 была удалена в FreeType 2. Очень развитая форма функциональности текстовой разметки OpenType FreeType 1 используется в библиотеке текстовой разметки Pango . Проект HarfBuzz продолжает развивать эту функциональность с помощью полностью переписанной версии, предлагаемой как отдельная библиотека с менее ограничительной лицензией, чем лицензия Pango. [9]
В 1999 году проект Freetype был проинформирован Apple Incorporated о том, что FreeType нарушает патенты, связанные с хинтованием шрифтов TrueType . После этого Freetype был деактивирован по умолчанию или обошел патентные технологии. Поэтому несколько проектов с открытым исходным кодом, такие как FreeBSD или Linux , включили FreeType с отключенной или ухудшенной функциональностью хинтования шрифтов , чтобы избежать проблемы патентов на программное обеспечение, принадлежащих Apple Inc. [10]
С мая 2010 года все конфликтующие патенты на программное обеспечение, связанные с хинтованием шрифтов, истекли, [10] что позволило использовать хинт FreeType TrueType в открытом исходном коде. Многие операционные системы, которые отключали рендерер, теперь предоставляют пользователю возможность включить его. В Fedora freetype-freeworld был переключен из проприетарного репозитория yum в бесплатный репозиторий. [11]
С августа 2019 года истек срок действия всех конфликтующих патентов на программное обеспечение, связанных с цветовой фильтрацией ClearType [10] , что позволило FreeType использовать метод цветовой фильтрации ClearType в версии 2.10.3.
В 2013 году Adobe передала движок рендеринга Compact Font Format проекту FreeType, который интегрировал его и сделал его движком по умолчанию в версии 2.5. [12] [13]
FreeType используется в качестве рендерера шрифтов в Android , ChromeOS . [14] Apple использует FreeType в iOS [14] и macOS [15] рядом с Apple Advanced Typography . В 2007 году Sun Microsystems перешла от использования фирменного растеризатора шрифтов к использованию FreeType в комплекте разработки OpenJDK Java . [16] В Windows такие проекты, как gdipp [17] и MacType [18], стремятся переопределить системный рендерер с помощью FreeType. FreeType также используется в качестве рендерера шрифтов в ReactOS . [19]
Помимо использования в основных бесплатных настольных системах, FreeType использовался в качестве движка растеризации для некоторых современных видеоигр [ 20] [21] [22] и Opera для Wii [23] . Sony поставляет FreeType со своими консолями PlayStation 3 [24] PlayStation 4 [25] и PlayStation Vita [26] .
Хотя основное ядро ReactOS создано с нуля, оно имеет некоторые зависимости от существующего программного обеспечения и протоколов. Оно использует части Wine, сетевые технологии в виде lwIP, USB из Haiku, а также FreeType, Mesa3D и UniATA.