FreeType

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
FreeType
DevelopersDavid Turner, Robert Wilhelm, Werner Lemberg[1][2] and FreeType contributors
Initial release1996; 30 years ago (1996)[3]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeSoftware development library: Font rasterization
    LicenseGNU General Public License / FreeType License
    Websitefreetype.org
    Lower case e, is, and w subpixel rendered with FreeType

    FreeType is a software development library used to render text onto bitmaps, and which provides support for other font-related operations. The FreeType font rasterization engine is free and open-source software with the source code dual-licensed under a BSD-like license and the GPL. FreeType supports a number of font formats, including TrueType, Type 1, and OpenType.[4]

    History

    [edit | edit source]

    The FreeType rendering engine was started in 1995 by David Turner with the intent to provide TrueType font support for the OS/2 operating system,[1] including an interpreter for handling TrueType bytecode. Originally written in the Pascal programming language, it was ported in 1997 by Robert Wilhelm to C.[3][5][6]

    FreeType 1 had support only for the TrueType font format, but it included an extension to support OpenType text layout features.

    Major rewrite 2.0

    [edit | edit source]

    Version 2.0 of FreeType was a complete rewrite to make it more modular. FreeType 2 brought support for more font formats and an evolved source code which the developers stated was "simpler and more powerful".[7] FreeType 2 is not backward-compatible with FreeType 1 but the developers stated that moving from FreeType 1 to FreeType 2 poses little difficulty.[7] As text layout processing was not an objective of FreeType 2, however, the OpenType text layout functionality of FreeType 1 was removed in FreeType 2. A very evolved form of the OpenType text layout functionality of FreeType 1 is used in the Pango text layout library. The HarfBuzz project is further evolving that functionality with a complete rewrite offered as a standalone library with a less restrictive license than Pango's license.[8]

    Patent conflicts

    [edit | edit source]

    In 1999, the Freetype project was informed by Apple Incorporated that FreeType was infringing patents related to TrueType font hinting. Following that, Freetype deactivated by default or worked around patent relating technologies. Therefore, several open source projects, such as FreeBSD or Linux, had FreeType included with font hinting functionality disabled or degraded to avoid the issue of software patents held by Apple Inc.[9]

    Since May 2010, all conflicting software patents related to font hinting have expired,[9] allowing FreeType's TrueType font hinter to be used in open source. Many of the operating systems which disabled the renderer now give the user the option to enable it. In Fedora, freetype-freeworld was switched from the proprietary yum repository to the free repository.[10]

    Since August 2019, all conflicting software patents related to ClearType color filtering have expired,[9] allowing FreeType to use ClearType color filtering method in 2.10.3.

    Compact Font Format engine donation

    [edit | edit source]

    In 2013 Adobe donated a Compact Font Format rendering engine to the FreeType project which integrated it and made it the default with version 2.5.[11][12]

    Users

    [edit | edit source]

    FreeType is used as a font renderer in Android, ChromeOS, OpenHarmony, HarmonyOS.[13][14] Apple uses FreeType in iOS[13] and macOS[15] next to Apple Advanced Typography. In 2007, Sun Microsystems switched from using a proprietary font rasterizer to using FreeType in the OpenJDK Java development kit.[16] On Windows, projects like gdipp[17] and MacType[18] aim to override the system renderer with FreeType. FreeType is also used as a font renderer in ReactOS.[19]

    As well as being used by the major free software desktop systems, FreeType has been used as a rasterization engine for some modern video games,[20][21][22] and Opera for the Wii.[23] Sony ships FreeType with its PlayStation 3,[24] PlayStation 4,[25] and PlayStation Vita[26] consoles.

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Games company Relic Entertainment has used FreeType for their games Dawn of War and Company of Heroes, as can be seen in the credits on the loading screens.
    21. ^ FreeType has also been implemented in the American Girl games for the PC such as A Treehouse of My Own and Julie Saves The Eagles.
    22. ^ Games company Bandai Namco Entertainment has also used FreeType for Ace Combat 7: Skies Unknown, as can be seen in the copyright section.
    23. ^ Opera 9 for the Wii console uses FreeType, as can be seen by looking at the "Third-party information" page which can be found on the Wii via: Internet Channel > Operations Guide > About > Opera 9 for Wii — Third-party information
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).
    • FreeType C++ Package