The Linux Foundation is a non-profit consortium dedicated to fostering the growth of Linux.
Contents |
From http://freetype.sourceforge.net/freetype2/index.html
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.
Note that FreeType 2 is a font service and doesn't provide APIs to perform higher-level features, like text layout or graphics processing (e.g. colored text rendering, "hollowing", etc.) However, it greatly simplifies these tasks by providing a simple, easy to use and uniform interface to access the content of font files.
The following is a non-exhaustive list of features provided by FreeType 2:
FreeType 2 is written in industry-standard ANSI C and should compile easily with any compliant C compiler with no warnings.
Apart from a standard ANSI C library, FreeType 2 doesn't have any external dependencies and can be compiled and installed on its own on any kind of system.
Some parts of the TrueType specification are covered by patents owned by Apple Computer. A default build of the FreeType 2 sources will not use any of the patented techniques to render TrueType glyphs.
For more information, see: http://freetype.sourceforge.net/patents.html
This library is tracked on futures here - http://www.linuxbase.org/futures/candidates/freetype/index.html
According to Keith Packard,
There is a collection of papers documenting FreeType 2 at http://freetype.sourceforge.net/freetype2/documentation.html
API documentation can be found at http://freetype.sourceforge.net/freetype2/docs/reference/ft2-toc.html
There are no known test cases.
Raw data included here: FreeTypeData.txt
Any test suite should include all of the stable interfaces in the specification.
Validation and caching code should be excluded: According to an email from David Turner (freetype developer) the code for otvalid and gxvalid is experimental and the cache subsystem is considered to be "in beta."
According to http://freetype.sourceforge.net/freetype2/docs/design/design-2.html applications primarily use the base layer API. This is the library that should be added to the specification first. Research also shows the Glyph library is popular and should be considered in the future.
According to an email from David Turner (freetype developer) the API has been stable since v 2.1.5 which was released 9/2/2003. (Note that the API for the beta caching subsystem is not stable.)
| Base Layer | ||||
| FT_Set_Char_Size | 8 | FT_Set_Pixel_Sizes | 8 | |
| FT_Load_Glyph | 16 | FT_Load_Char | 0 | |
| FT_STYLE_FLAG_XXX | 0 | FT_LOAD_XXX | 0 | |
| FT_Set_Transform | 8 | FT_Render_Mode | 0 | |
| ft_render_mode_xxx | 0 | FT_Render_Glyph | 11 | |
| FT_Kerning_Mode | 0 | ft_kerning_default | 0 | |
| FT_Init_FreeType | 16 | ft_kerning_unfitted | 0 | |
| FT_Library_Version | 0 | ft_kerning_unscaled | 0 | |
| FT_Done_FreeType | 11 | FT_Get_Kerning | 1 | |
| FT_OPEN_XXX | 0 | FT_Get_Glyph_Name | 0 | |
| FT_Parameter | 0 | FT_Get_Postscript_Name | 5 | |
| FT_Open_Args | 0 | FT_Select_Charmap | 6 | |
| FT_New_Face | 17 | FT_Set_Charmap | 7 | |
| FT_New_Memory_Face | 0 | FT_Get_Charmap_Index | 1 | |
| FT_Open_Face | 2 | FT_Get_Char_Index | 9 | |
| FT_Attach_File | 0 | FT_Get_First_Char | 0 | |
| FT_Attach_Stream | 0 | FT_Get_Next_Char | 0 | |
| FT_Done_Face | 17 | FT_Get_Name_Index | 8 |
| Non Base Layer | |||
| FT_Activate_Size | 4 | ||
| FT_Add_Default_Modules | 1 | ||
| FT_Done_Glyph | 6 | ||
| FT_Done_Library | 1 | ||
| FT_Done_Size | 4 | ||
| FT_Get_BDF_Charset_ID | 4 | ||
| FT_Get_BDF_Property | 1 | ||
| FT_Get_Glyph | 8 | ||
| FT_Get_MM_Var | 1 | ||
| FT_Get_PS_Font_Info | 6 | ||
| FT_Get_Sfnt_Name | 8 | ||
| FT_Get_Sfnt_Name_Count | 7 | ||
| FT_Get_Sfnt_Table | 6 | ||
| FT_Get_X11_Font_Format | 4 | ||
| FT_Glyph_Copy | 1 | ||
| FT_Glyph_Get_CBox | 1 | ||
| FT_Glyph_Stroke | 1 | ||
| FT_Glyph_To_Bitmap | 3 | ||
| FT_Has_PS_Glyph_Names | 5 | ||
| FT_MulDiv | 1 | ||
| FT_MulFix | 4 | ||
| FT_New_Library | 1 | ||
| FT_New_Size | 6 | ||
| FT_Outline_Decompose | 5 | ||
| FT_Outline_Get_BBox | 4 | ||
| FT_Set_Var_Design_Coordin | 1 | ||
| FT_Stream_Pos | 4 | ||
| FT_Stream_Seek | 4 | ||
| FT_Stroker_Done | 1 | ||
| FT_Stroker_New | 1 | ||
| FT_Stroker_Set | 1 | ||
| FT_Vector_Transform | 7 |
Uncategorized information goes here