Name Description Size
config
freetype.h @section: preamble @title: Preamble @abstract: What FreeType is and isn't @description: FreeType is a library that provides access to glyphs in font files. It scales the glyph images and their metrics to a requested size, and it rasterizes the glyph images to produce pixel or subpixel alpha coverage bitmaps. Note that FreeType is _not_ a text layout engine. You have to use higher-level libraries like HarfBuzz, Pango, or ICU for that. Note also that FreeType does _not_ perform alpha blending or compositing the resulting bitmaps or pixmaps by itself. Use your favourite graphics library (for example, Cairo or Skia) to further process FreeType's output. 178794
ftadvanc.h @section: quick_advance @title: Quick retrieval of advance values @abstract: Retrieve horizontal and vertical advance values without processing glyph outlines, if possible. @description: This section contains functions to quickly extract advance values without handling glyph outlines, if possible. @order: FT_Get_Advance FT_Get_Advances 5470
ftbbox.h This component has a _single_ role: to compute exact outline bounding boxes. It is separated from the rest of the engine for various technical reasons. It may well be integrated in 'ftoutln' later. 2638
ftbdf.h @section: bdf_fonts @title: BDF and PCF Files @abstract: BDF and PCF specific API. @description: This section contains the declaration of functions specific to BDF and PCF fonts. 5322
ftbitmap.h @section: bitmap_handling @title: Bitmap Handling @abstract: Handling FT_Bitmap objects. @description: This section contains functions for handling @FT_Bitmap objects, automatically adjusting the target's bitmap buffer size as needed. Note that none of the functions changes the bitmap's 'flow' (as indicated by the sign of the `pitch` field in @FT_Bitmap). To set the flow, assign an appropriate positive or negative value to the `pitch` field of the target @FT_Bitmap object after calling @FT_Bitmap_Init but before calling any of the other functions described here. 9051
ftbzip2.h @section: bzip2 @title: BZIP2 Streams @abstract: Using bzip2-compressed font files. @description: In certain builds of the library, bzip2 compression recognition is automatically handled when calling @FT_New_Face or @FT_Open_Face. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a bzip2 compressed stream from it and re-open the face with it. The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance. This section contains the declaration of Bzip2-specific functions. 2786
ftcache.h 34179
ftchapters.h This file defines the structure of the FreeType reference. It is used by the python script that generates the HTML files. 2933
ftcid.h @section: cid_fonts @title: CID Fonts @abstract: CID-keyed font-specific API. @description: This section contains the declaration of CID-keyed font-specific functions. 4022
ftcolor.h @section: color_management @title: Glyph Color Management @abstract: Retrieving and manipulating OpenType's 'CPAL' table data. @description: The functions described here allow access and manipulation of color palette entries in OpenType's 'CPAL' tables. 50199
ftdriver.h @section: auto_hinter @title: The auto-hinter @abstract: Controlling the auto-hinting module. @description: While FreeType's auto-hinter doesn't expose API functions by itself, it is possible to control its behaviour with @FT_Property_Set and @FT_Property_Get. The following lists the available properties together with the necessary macros and structures. Note that the auto-hinter's module name is 'autofitter' for historical reasons. Available properties are @increase-x-height, @no-stem-darkening (experimental), @darkening-parameters (experimental), @glyph-to-script-map (experimental), @fallback-script (experimental), and @default-script (experimental), as documented in the @properties section. 47533
fterrdef.h @section: error_code_values @title: Error Code Values @abstract: All possible error codes returned by FreeType functions. @description: The list below is taken verbatim from the file `fterrdef.h` (loaded automatically by including `FT_FREETYPE_H`). The first argument of the `FT_ERROR_DEF_` macro is the error label; by default, the prefix `FT_Err_` gets added so that you get error names like `FT_Err_Cannot_Open_Resource`. The second argument is the error code, and the last argument an error string, which is not used by FreeType. Within your application you should **only** use error names and **never** its numeric values! The latter might (and actually do) change in forthcoming FreeType versions. Macro `FT_NOERRORDEF_` defines `FT_Err_Ok`, which is always zero. See the 'Error Enumerations' subsection how to automatically generate a list of error strings. 12559
fterrors.h @section: error_enumerations @title: Error Enumerations @abstract: How to handle errors and error strings. @description: The header file `fterrors.h` (which is automatically included by `freetype.h`) defines the handling of FreeType's enumeration constants. It can also be used to generate error message strings with a small macro trick explained below. **Error Formats** The configuration macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` can be defined in `ftoption.h` in order to make the higher byte indicate the module where the error has happened (this is not compatible with standard builds of FreeType~2, however). See the file `ftmoderr.h` for more details. **Error Message Strings** Error definitions are set up with special macros that allow client applications to build a table of error message strings. The strings are not included in a normal build of FreeType~2 to save space (most client applications do not use them). To do so, you have to define the following macros before including this file. ``` FT_ERROR_START_LIST ``` This macro is called before anything else to define the start of the error list. It is followed by several `FT_ERROR_DEF` calls. ``` FT_ERROR_DEF( e, v, s ) ``` This macro is called to define one single error. 'e' is the error code identifier (e.g., `Invalid_Argument`), 'v' is the error's numerical value, and 's' is the corresponding error string. ``` FT_ERROR_END_LIST ``` This macro ends the list. Additionally, you have to undefine `FTERRORS_H_` before #including this file. Here is a simple example. ``` #undef FTERRORS_H_ #define FT_ERRORDEF( e, v, s ) { e, s }, #define FT_ERROR_START_LIST { #define FT_ERROR_END_LIST { 0, NULL } }; const struct { int err_code; const char* err_msg; } ft_errors[] = #include <freetype/fterrors.h> ``` An alternative to using an array is a switch statement. ``` #undef FTERRORS_H_ #define FT_ERROR_START_LIST switch ( error_code ) { #define FT_ERRORDEF( e, v, s ) case v: return s; #define FT_ERROR_END_LIST } ``` If you use `FT_CONFIG_OPTION_USE_MODULE_ERRORS`, `error_code` should be replaced with `FT_ERROR_BASE(error_code)` in the last example. 9301
ftfntfmt.h @section: font_formats @title: Font Formats @abstract: Getting the font format. @description: The single function in this section can be used to get the font format. Note that this information is not needed normally; however, there are special cases (like in PDF devices) where it is important to differentiate, in spite of FreeType's uniform API. 2213
ftgasp.h @section: gasp_table @title: Gasp Table @abstract: Retrieving TrueType 'gasp' table entries. @description: The function @FT_Get_Gasp can be used to query a TrueType or OpenType font for specific entries in its 'gasp' table, if any. This is mainly useful when implementing native TrueType hinting with the bytecode interpreter to duplicate the Windows text rendering results. 4138
ftglyph.h This file contains the definition of several convenience functions that can be used by client applications to easily retrieve glyph bitmaps and outlines from a given face. These functions should be optional if you are writing a font server or text layout engine on top of FreeType. However, they are pretty handy for many other simple uses of the library. 20912
ftgxval.h gxvalid is derived from both gxlayout module and otvalid module. Development of gxlayout is supported by the Information-technology Promotion Agency(IPA), Japan. 10625
ftgzip.h @section: gzip @title: GZIP Streams @abstract: Using gzip-compressed font files. @description: In certain builds of the library, gzip compression recognition is automatically handled when calling @FT_New_Face or @FT_Open_Face. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it. The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance. This section contains the declaration of Gzip-specific functions. 4211
ftimage.h Note: A 'raster' is simply a scan-line converter, used to render `FT_Outline`s into `FT_Bitmap`s. 41833
ftincrem.h @section: incremental @title: Incremental Loading @abstract: Custom Glyph Loading. @description: This section contains various functions used to perform so-called 'incremental' glyph loading. This is a mode where all glyphs loaded from a given @FT_Face are provided by the client application. Apart from that, all other tables are loaded normally from the font file. This mode is useful when FreeType is used within another engine, e.g., a PostScript Imaging Processor. To enable this mode, you must use @FT_Open_Face, passing an @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an @FT_Incremental_Interface value. See the comments for @FT_Incremental_InterfaceRec for an example. 10696
ftlcdfil.h 11744
ftlist.h This file implements functions relative to list processing. Its data structures are defined in `freetype.h`. 7100
ftlogging.h @section: debugging_apis @title: External Debugging APIs @abstract: Public APIs to control the `FT_DEBUG_LOGGING` macro. @description: This section contains the declarations of public functions that enables fine control of what the `FT_DEBUG_LOGGING` macro outputs. 4130
ftlzw.h @section: lzw @title: LZW Streams @abstract: Using LZW-compressed font files. @description: In certain builds of the library, LZW compression recognition is automatically handled when calling @FT_New_Face or @FT_Open_Face. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a LZW stream from it and re-open the face with it. The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance. This section contains the declaration of LZW-specific functions. 2768
ftmac.h NOTE: Include this file after `FT_FREETYPE_H` and after any Mac-specific headers (because this header uses Mac types such as 'Handle', 'FSSpec', 'FSRef', etc.) 7771
ftmm.h @section: multiple_masters @title: Multiple Masters @abstract: How to manage Multiple Masters fonts. @description: The following types and functions are used to manage Multiple Master fonts, i.e., the selection of specific design instances by setting design axis coordinates. Besides Adobe MM fonts, the interface supports Apple's TrueType GX and OpenType variation fonts. Some of the routines only work with Adobe MM fonts, others will work with all three types. They are similar enough that a consistent interface makes sense. For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and OpenType variation fonts, it returns true. 23797
ftmodapi.h @section: module_management @title: Module Management @abstract: How to add, upgrade, remove, and control modules from FreeType. @description: The definitions below are used to manage modules within FreeType. Internal and external modules can be added, upgraded, and removed at runtime. For example, an alternative renderer or proprietary font driver can be registered and prioritized. Additionally, some module properties can also be controlled. Here is a list of existing values of the `module_name` field in the @FT_Module_Class structure. ``` autofitter bdf cff gxvalid otvalid pcf pfr psaux pshinter psnames raster1 sfnt smooth truetype type1 type42 t1cid winfonts ``` Note that the FreeType Cache sub-system is not a FreeType module. @order: FT_Module FT_Module_Constructor FT_Module_Destructor FT_Module_Requester FT_Module_Class FT_Add_Module FT_Get_Module FT_Remove_Module FT_Add_Default_Modules FT_FACE_DRIVER_NAME FT_Property_Set FT_Property_Get FT_Set_Default_Properties FT_New_Library FT_Done_Library FT_Reference_Library FT_Renderer FT_Renderer_Class FT_Get_Renderer FT_Set_Renderer FT_Set_Debug_Hook 22544
ftmoderr.h This file is used to define the FreeType module error codes. If the macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` in `ftoption.h` is set, the lower byte of an error value identifies the error code as usual. In addition, the higher byte identifies the module. For example, the error `FT_Err_Invalid_File_Format` has value 0x0003, the error `TT_Err_Invalid_File_Format` has value 0x1303, the error `T1_Err_Invalid_File_Format` has value 0x1403, etc. Note that `FT_Err_Ok`, `TT_Err_Ok`, etc. are always equal to zero, including the high byte. If `FT_CONFIG_OPTION_USE_MODULE_ERRORS` isn't set, the higher byte of an error value is set to zero. To hide the various `XXX_Err_` prefixes in the source code, FreeType provides some macros in `fttypes.h`. FT_ERR( err ) Add current error module prefix (as defined with the `FT_ERR_PREFIX` macro) to `err`. For example, in the BDF module the line ``` error = FT_ERR( Invalid_Outline ); ``` expands to ``` error = BDF_Err_Invalid_Outline; ``` For simplicity, you can always use `FT_Err_Ok` directly instead of `FT_ERR( Ok )`. FT_ERR_EQ( errcode, err ) FT_ERR_NEQ( errcode, err ) Compare error code `errcode` with the error `err` for equality and inequality, respectively. Example: ``` if ( FT_ERR_EQ( error, Invalid_Outline ) ) ... ``` Using this macro you don't have to think about error prefixes. Of course, if module errors are not active, the above example is the same as ``` if ( error == FT_Err_Invalid_Outline ) ... ``` FT_ERROR_BASE( errcode ) FT_ERROR_MODULE( errcode ) Get base error and module error code, respectively. It can also be used to create a module error message table easily with something like ``` #undef FTMODERR_H_ #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, #define FT_MODERR_START_LIST { #define FT_MODERR_END_LIST { 0, 0 } }; const struct { int mod_err_offset; const char* mod_err_msg } ft_mod_errors[] = #include <freetype/ftmoderr.h> ``` 6675
ftotval.h Warning: This module might be moved to a different library in the future to avoid a tight dependency between FreeType and the OpenType specification. 5346
ftoutln.h @section: outline_processing @title: Outline Processing @abstract: Functions to create, transform, and render vectorial glyph images. @description: This section contains routines used to create and destroy scalable glyph images known as 'outlines'. These can also be measured, transformed, and converted into bitmaps and pixmaps. @order: FT_Outline FT_Outline_New FT_Outline_Done FT_Outline_Copy FT_Outline_Translate FT_Outline_Transform FT_Outline_Embolden FT_Outline_EmboldenXY FT_Outline_Reverse FT_Outline_Check FT_Outline_Get_CBox FT_Outline_Get_BBox FT_Outline_Get_Bitmap FT_Outline_Render FT_Outline_Decompose FT_Outline_Funcs FT_Outline_MoveToFunc FT_Outline_LineToFunc FT_Outline_ConicToFunc FT_Outline_CubicToFunc FT_Orientation FT_Outline_Get_Orientation FT_OUTLINE_XXX 17402
ftparams.h @section: parameter_tags @title: Parameter Tags @abstract: Macros for driver property and font loading parameter tags. @description: This section contains macros for the @FT_Parameter structure that are used with various functions to activate some special functionality or different behaviour of various components of FreeType. 6041
ftpfr.h @section: pfr_fonts @title: PFR Fonts @abstract: PFR/TrueDoc-specific API. @description: This section contains the declaration of PFR-specific functions. 4908
ftrender.h @section: module_management 6625
ftsizes.h Typical application would normally not need to use these functions. However, they have been placed in a public API for the rare cases where they are needed. 4288
ftsnames.h @section: sfnt_names @title: SFNT Names @abstract: Access the names embedded in TrueType and OpenType files. @description: The TrueType and OpenType specifications allow the inclusion of a special names table ('name') in font files. This table contains textual (and internationalized) information regarding the font, like family name, copyright, version, etc. The definitions below are used to access them if available. Note that this has nothing to do with glyph names! 7730
ftstroke.h @section: glyph_stroker @title: Glyph Stroker @abstract: Generating bordered and stroked glyphs. @description: This component generates stroked outlines of a given vectorial glyph. It also allows you to retrieve the 'outside' and/or the 'inside' borders of the stroke. This can be useful to generate 'bordered' glyph, i.e., glyphs displayed with a colored (and anti-aliased) border around their shape. @order: FT_Stroker FT_Stroker_LineJoin FT_Stroker_LineCap FT_StrokerBorder FT_Outline_GetInsideBorder FT_Outline_GetOutsideBorder FT_Glyph_Stroke FT_Glyph_StrokeBorder FT_Stroker_New FT_Stroker_Set FT_Stroker_Rewind FT_Stroker_ParseOutline FT_Stroker_Done FT_Stroker_BeginSubPath FT_Stroker_EndSubPath FT_Stroker_LineTo FT_Stroker_ConicTo FT_Stroker_CubicTo FT_Stroker_GetBorderCounts FT_Stroker_ExportBorder FT_Stroker_GetCounts FT_Stroker_Export 21773
ftsynth.h / /************************************************************************ 4483
ftsystem.h @section: system_interface @title: System Interface @abstract: How FreeType manages memory and i/o. @description: This section contains various definitions related to memory management and i/o access. You need to understand this information if you want to use a custom memory manager or you own i/o streams. 8502
fttrigon.h @section: computations 7411
fttypes.h @section: basic_types @title: Basic Data Types @abstract: The basic data types defined by the library. @description: This section contains the basic data types defined by FreeType~2, ranging from simple scalar types to bitmap descriptors. More font-specific structures are defined in a different section. Note that FreeType does not use floating-point data types. Fractional values are represented by fixed-point integers, with lower bits storing the fractional part. @order: FT_Byte FT_Bytes FT_Char FT_Int FT_UInt FT_Int16 FT_UInt16 FT_Int32 FT_UInt32 FT_Int64 FT_UInt64 FT_Short FT_UShort FT_Long FT_ULong FT_Bool FT_Offset FT_PtrDist FT_String FT_Tag FT_Error FT_Fixed FT_Pointer FT_Pos FT_Vector FT_BBox FT_Matrix FT_FWord FT_UFWord FT_F2Dot14 FT_UnitVector FT_F26Dot6 FT_Data FT_MAKE_TAG FT_Generic FT_Generic_Finalizer FT_Bitmap FT_Pixel_Mode FT_Palette_Mode FT_Glyph_Format FT_IMAGE_TAG 14735
ftwinfnt.h @section: winfnt_fonts @title: Window FNT Files @abstract: Windows FNT-specific API. @description: This section contains the declaration of Windows FNT-specific functions. 7965
internal
otsvg.h @section: svg_fonts @title: OpenType SVG Fonts @abstract: OT-SVG API between FreeType and an external SVG rendering library. @description: This section describes the four hooks necessary to render SVG 'documents' that are contained in an OpenType font's 'SVG~' table. For more information on the implementation, see our standard hooks based on 'librsvg' in the [FreeType Demo Programs](https://gitlab.freedesktop.org/freetype/freetype-demos) repository. 10457
t1tables.h @section: type1_tables @title: Type 1 Tables @abstract: Type~1-specific font tables. @description: This section contains the definition of Type~1-specific tables, including structures related to other PostScript font formats. @order: PS_FontInfoRec PS_FontInfo PS_PrivateRec PS_Private CID_FaceDictRec CID_FaceDict CID_FaceInfoRec CID_FaceInfo FT_Has_PS_Glyph_Names FT_Get_PS_Font_Info FT_Get_PS_Font_Private FT_Get_PS_Font_Value T1_Blend_Flags T1_EncodingType PS_Dict_Keys 23188
ttnameid.h @section: truetype_tables 58769
tttables.h @section: truetype_tables @title: TrueType Tables @abstract: TrueType-specific table types and functions. @description: This section contains definitions of some basic tables specific to TrueType and OpenType as well as some routines used to access and process them. @order: TT_Header TT_HoriHeader TT_VertHeader TT_OS2 TT_Postscript TT_PCLT TT_MaxProfile FT_Sfnt_Tag FT_Get_Sfnt_Table FT_Load_Sfnt_Table FT_Sfnt_Table_Info FT_Get_CMap_Language_ID FT_Get_CMap_Format FT_PARAM_TAG_UNPATENTED_HINTING 25227
tttags.h used by "Keyboard.dfont" on legacy Mac OS X 5145