w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

freetype.h File Reference
#include <ft2build.h>
#include <FT_CONFIG_CONFIG_H>
#include <freetype/fttypes.h>
#include <freetype/fterrors.h>
Include dependency graph for freetype.h:

Go to the source code of this file.

Classes

struct  FT_Glyph_Metrics_
 
struct  FT_Bitmap_Size_
 
struct  FT_CharMapRec_
 
struct  FT_FaceRec_
 
struct  FT_Size_Metrics_
 
struct  FT_SizeRec_
 
struct  FT_GlyphSlotRec_
 
struct  FT_Parameter_
 
struct  FT_Open_Args_
 
struct  FT_Size_RequestRec_
 
struct  FT_LayerIterator_
 

Macros

#define FT_ENC_TAG(value, a, b, c, d)
 
#define ft_encoding_none   FT_ENCODING_NONE
 
#define ft_encoding_unicode   FT_ENCODING_UNICODE
 
#define ft_encoding_symbol   FT_ENCODING_MS_SYMBOL
 
#define ft_encoding_latin_1   FT_ENCODING_ADOBE_LATIN_1
 
#define ft_encoding_latin_2   FT_ENCODING_OLD_LATIN_2
 
#define ft_encoding_sjis   FT_ENCODING_SJIS
 
#define ft_encoding_gb2312   FT_ENCODING_PRC
 
#define ft_encoding_big5   FT_ENCODING_BIG5
 
#define ft_encoding_wansung   FT_ENCODING_WANSUNG
 
#define ft_encoding_johab   FT_ENCODING_JOHAB
 
#define ft_encoding_adobe_standard   FT_ENCODING_ADOBE_STANDARD
 
#define ft_encoding_adobe_expert   FT_ENCODING_ADOBE_EXPERT
 
#define ft_encoding_adobe_custom   FT_ENCODING_ADOBE_CUSTOM
 
#define ft_encoding_apple_roman   FT_ENCODING_APPLE_ROMAN
 
#define FT_FACE_FLAG_SCALABLE   ( 1L << 0 )
 
#define FT_FACE_FLAG_FIXED_SIZES   ( 1L << 1 )
 
#define FT_FACE_FLAG_FIXED_WIDTH   ( 1L << 2 )
 
#define FT_FACE_FLAG_SFNT   ( 1L << 3 )
 
#define FT_FACE_FLAG_HORIZONTAL   ( 1L << 4 )
 
#define FT_FACE_FLAG_VERTICAL   ( 1L << 5 )
 
#define FT_FACE_FLAG_KERNING   ( 1L << 6 )
 
#define FT_FACE_FLAG_FAST_GLYPHS   ( 1L << 7 )
 
#define FT_FACE_FLAG_MULTIPLE_MASTERS   ( 1L << 8 )
 
#define FT_FACE_FLAG_GLYPH_NAMES   ( 1L << 9 )
 
#define FT_FACE_FLAG_EXTERNAL_STREAM   ( 1L << 10 )
 
#define FT_FACE_FLAG_HINTER   ( 1L << 11 )
 
#define FT_FACE_FLAG_CID_KEYED   ( 1L << 12 )
 
#define FT_FACE_FLAG_TRICKY   ( 1L << 13 )
 
#define FT_FACE_FLAG_COLOR   ( 1L << 14 )
 
#define FT_FACE_FLAG_VARIATION   ( 1L << 15 )
 
#define FT_HAS_HORIZONTAL(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL ) )
 
#define FT_HAS_VERTICAL(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_VERTICAL ) )
 
#define FT_HAS_KERNING(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_KERNING ) )
 
#define FT_IS_SCALABLE(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_SCALABLE ) )
 
#define FT_IS_SFNT(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_SFNT ) )
 
#define FT_IS_FIXED_WIDTH(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) )
 
#define FT_HAS_FIXED_SIZES(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES ) )
 
#define FT_HAS_FAST_GLYPHS(face)   0
 
#define FT_HAS_GLYPH_NAMES(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) )
 
#define FT_HAS_MULTIPLE_MASTERS(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) )
 
#define FT_IS_NAMED_INSTANCE(face)    ( !!( (face)->face_index & 0x7FFF0000L ) )
 
#define FT_IS_VARIATION(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_VARIATION ) )
 
#define FT_IS_CID_KEYED(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_CID_KEYED ) )
 
#define FT_IS_TRICKY(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_TRICKY ) )
 
#define FT_HAS_COLOR(face)    ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) )
 
#define FT_STYLE_FLAG_ITALIC   ( 1 << 0 )
 
#define FT_STYLE_FLAG_BOLD   ( 1 << 1 )
 
#define FT_OPEN_MEMORY   0x1
 
#define FT_OPEN_STREAM   0x2
 
#define FT_OPEN_PATHNAME   0x4
 
#define FT_OPEN_DRIVER   0x8
 
#define FT_OPEN_PARAMS   0x10
 
#define ft_open_memory   FT_OPEN_MEMORY
 
#define ft_open_stream   FT_OPEN_STREAM
 
#define ft_open_pathname   FT_OPEN_PATHNAME
 
#define ft_open_driver   FT_OPEN_DRIVER
 
#define ft_open_params   FT_OPEN_PARAMS
 
#define FT_LOAD_DEFAULT   0x0
 
#define FT_LOAD_NO_SCALE   ( 1L << 0 )
 
#define FT_LOAD_NO_HINTING   ( 1L << 1 )
 
#define FT_LOAD_RENDER   ( 1L << 2 )
 
#define FT_LOAD_NO_BITMAP   ( 1L << 3 )
 
#define FT_LOAD_VERTICAL_LAYOUT   ( 1L << 4 )
 
#define FT_LOAD_FORCE_AUTOHINT   ( 1L << 5 )
 
#define FT_LOAD_CROP_BITMAP   ( 1L << 6 )
 
#define FT_LOAD_PEDANTIC   ( 1L << 7 )
 
#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH   ( 1L << 9 )
 
#define FT_LOAD_NO_RECURSE   ( 1L << 10 )
 
#define FT_LOAD_IGNORE_TRANSFORM   ( 1L << 11 )
 
#define FT_LOAD_MONOCHROME   ( 1L << 12 )
 
#define FT_LOAD_LINEAR_DESIGN   ( 1L << 13 )
 
#define FT_LOAD_NO_AUTOHINT   ( 1L << 15 )
 
#define FT_LOAD_COLOR   ( 1L << 20 )
 
#define FT_LOAD_COMPUTE_METRICS   ( 1L << 21 )
 
#define FT_LOAD_BITMAP_METRICS_ONLY   ( 1L << 22 )
 
#define FT_LOAD_ADVANCE_ONLY   ( 1L << 8 )
 
#define FT_LOAD_SBITS_ONLY   ( 1L << 14 )
 
#define FT_LOAD_TARGET_(x)   ( (FT_Int32)( (x) & 15 ) << 16 )
 
#define FT_LOAD_TARGET_NORMAL   FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
 
#define FT_LOAD_TARGET_LIGHT   FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
 
#define FT_LOAD_TARGET_MONO   FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
 
#define FT_LOAD_TARGET_LCD   FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
 
#define FT_LOAD_TARGET_LCD_V   FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
 
#define FT_LOAD_TARGET_MODE(x)   ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
 
#define ft_render_mode_normal   FT_RENDER_MODE_NORMAL
 
#define ft_render_mode_mono   FT_RENDER_MODE_MONO
 
#define ft_kerning_default   FT_KERNING_DEFAULT
 
#define ft_kerning_unfitted   FT_KERNING_UNFITTED
 
#define ft_kerning_unscaled   FT_KERNING_UNSCALED
 
#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS   1
 
#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES   2
 
#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID   4
 
#define FT_SUBGLYPH_FLAG_SCALE   8
 
#define FT_SUBGLYPH_FLAG_XY_SCALE   0x40
 
#define FT_SUBGLYPH_FLAG_2X2   0x80
 
#define FT_SUBGLYPH_FLAG_USE_MY_METRICS   0x200
 
#define FT_FSTYPE_INSTALLABLE_EMBEDDING   0x0000
 
#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING   0x0002
 
#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING   0x0004
 
#define FT_FSTYPE_EDITABLE_EMBEDDING   0x0008
 
#define FT_FSTYPE_NO_SUBSETTING   0x0100
 
#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY   0x0200
 
#define FREETYPE_MAJOR   2
 
#define FREETYPE_MINOR   10
 
#define FREETYPE_PATCH   4
 

Typedefs

typedef struct FT_Glyph_Metrics_ FT_Glyph_Metrics
 
typedef struct FT_Bitmap_Size_ FT_Bitmap_Size
 
typedef struct FT_LibraryRec_FT_Library
 
typedef struct FT_ModuleRec_FT_Module
 
typedef struct FT_DriverRec_FT_Driver
 
typedef struct FT_RendererRec_FT_Renderer
 
typedef struct FT_FaceRec_FT_Face
 
typedef struct FT_SizeRec_FT_Size
 
typedef struct FT_GlyphSlotRec_FT_GlyphSlot
 
typedef struct FT_CharMapRec_FT_CharMap
 
typedef enum FT_Encoding_ FT_Encoding
 
typedef struct FT_CharMapRec_ FT_CharMapRec
 
typedef struct FT_Face_InternalRec_FT_Face_Internal
 
typedef struct FT_FaceRec_ FT_FaceRec
 
typedef struct FT_Size_InternalRec_FT_Size_Internal
 
typedef struct FT_Size_Metrics_ FT_Size_Metrics
 
typedef struct FT_SizeRec_ FT_SizeRec
 
typedef struct FT_SubGlyphRec_FT_SubGlyph
 
typedef struct FT_Slot_InternalRec_FT_Slot_Internal
 
typedef struct FT_GlyphSlotRec_ FT_GlyphSlotRec
 
typedef struct FT_Parameter_ FT_Parameter
 
typedef struct FT_Open_Args_ FT_Open_Args
 
typedef enum FT_Size_Request_Type_ FT_Size_Request_Type
 
typedef struct FT_Size_RequestRec_ FT_Size_RequestRec
 
typedef struct FT_Size_RequestRec_FT_Size_Request
 
typedef enum FT_Render_Mode_ FT_Render_Mode
 
typedef enum FT_Kerning_Mode_ FT_Kerning_Mode
 
typedef struct FT_LayerIterator_ FT_LayerIterator
 

Enumerations

enum  FT_Encoding_ {
  FT_ENCODING_NONE = ( ( (FT_UInt32)(0) << 24 ) | ( (FT_UInt32)(0) << 16 ) | ( (FT_UInt32)(0) << 8 ) | (FT_UInt32)(0) ) , FT_ENCODING_MS_SYMBOL = ( ( (FT_UInt32)('s') << 24 ) | ( (FT_UInt32)('y') << 16 ) | ( (FT_UInt32)('m') << 8 ) | (FT_UInt32)('b') ) , FT_ENCODING_UNICODE = ( ( (FT_UInt32)('u') << 24 ) | ( (FT_UInt32)('n') << 16 ) | ( (FT_UInt32)('i') << 8 ) | (FT_UInt32)('c') ) , FT_ENCODING_SJIS = ( ( (FT_UInt32)('s') << 24 ) | ( (FT_UInt32)('j') << 16 ) | ( (FT_UInt32)('i') << 8 ) | (FT_UInt32)('s') ) ,
  FT_ENCODING_PRC = ( ( (FT_UInt32)('g') << 24 ) | ( (FT_UInt32)('b') << 16 ) | ( (FT_UInt32)(' ') << 8 ) | (FT_UInt32)(' ') ) , FT_ENCODING_BIG5 = ( ( (FT_UInt32)('b') << 24 ) | ( (FT_UInt32)('i') << 16 ) | ( (FT_UInt32)('g') << 8 ) | (FT_UInt32)('5') ) , FT_ENCODING_WANSUNG = ( ( (FT_UInt32)('w') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('n') << 8 ) | (FT_UInt32)('s') ) , FT_ENCODING_JOHAB = ( ( (FT_UInt32)('j') << 24 ) | ( (FT_UInt32)('o') << 16 ) | ( (FT_UInt32)('h') << 8 ) | (FT_UInt32)('a') ) ,
  FT_ENCODING_GB2312 = FT_ENCODING_PRC , FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS , FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC , FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5 ,
  FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG , FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB , FT_ENCODING_ADOBE_STANDARD = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('O') << 8 ) | (FT_UInt32)('B') ) , FT_ENCODING_ADOBE_EXPERT = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('B') << 8 ) | (FT_UInt32)('E') ) ,
  FT_ENCODING_ADOBE_CUSTOM = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('B') << 8 ) | (FT_UInt32)('C') ) , FT_ENCODING_ADOBE_LATIN_1 = ( ( (FT_UInt32)('l') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('t') << 8 ) | (FT_UInt32)('1') ) , FT_ENCODING_OLD_LATIN_2 = ( ( (FT_UInt32)('l') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('t') << 8 ) | (FT_UInt32)('2') ) , FT_ENCODING_APPLE_ROMAN = ( ( (FT_UInt32)('a') << 24 ) | ( (FT_UInt32)('r') << 16 ) | ( (FT_UInt32)('m') << 8 ) | (FT_UInt32)('n') ) ,
  FT_ENCODING_NONE = ( ( (FT_UInt32)(0) << 24 ) | ( (FT_UInt32)(0) << 16 ) | ( (FT_UInt32)(0) << 8 ) | (FT_UInt32)(0) ) , FT_ENCODING_MS_SYMBOL = ( ( (FT_UInt32)('s') << 24 ) | ( (FT_UInt32)('y') << 16 ) | ( (FT_UInt32)('m') << 8 ) | (FT_UInt32)('b') ) , FT_ENCODING_UNICODE = ( ( (FT_UInt32)('u') << 24 ) | ( (FT_UInt32)('n') << 16 ) | ( (FT_UInt32)('i') << 8 ) | (FT_UInt32)('c') ) , FT_ENCODING_SJIS = ( ( (FT_UInt32)('s') << 24 ) | ( (FT_UInt32)('j') << 16 ) | ( (FT_UInt32)('i') << 8 ) | (FT_UInt32)('s') ) ,
  FT_ENCODING_PRC = ( ( (FT_UInt32)('g') << 24 ) | ( (FT_UInt32)('b') << 16 ) | ( (FT_UInt32)(' ') << 8 ) | (FT_UInt32)(' ') ) , FT_ENCODING_BIG5 = ( ( (FT_UInt32)('b') << 24 ) | ( (FT_UInt32)('i') << 16 ) | ( (FT_UInt32)('g') << 8 ) | (FT_UInt32)('5') ) , FT_ENCODING_WANSUNG = ( ( (FT_UInt32)('w') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('n') << 8 ) | (FT_UInt32)('s') ) , FT_ENCODING_JOHAB = ( ( (FT_UInt32)('j') << 24 ) | ( (FT_UInt32)('o') << 16 ) | ( (FT_UInt32)('h') << 8 ) | (FT_UInt32)('a') ) ,
  FT_ENCODING_GB2312 = FT_ENCODING_PRC , FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS , FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC , FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5 ,
  FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG , FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB , FT_ENCODING_ADOBE_STANDARD = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('O') << 8 ) | (FT_UInt32)('B') ) , FT_ENCODING_ADOBE_EXPERT = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('B') << 8 ) | (FT_UInt32)('E') ) ,
  FT_ENCODING_ADOBE_CUSTOM = ( ( (FT_UInt32)('A') << 24 ) | ( (FT_UInt32)('D') << 16 ) | ( (FT_UInt32)('B') << 8 ) | (FT_UInt32)('C') ) , FT_ENCODING_ADOBE_LATIN_1 = ( ( (FT_UInt32)('l') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('t') << 8 ) | (FT_UInt32)('1') ) , FT_ENCODING_OLD_LATIN_2 = ( ( (FT_UInt32)('l') << 24 ) | ( (FT_UInt32)('a') << 16 ) | ( (FT_UInt32)('t') << 8 ) | (FT_UInt32)('2') ) , FT_ENCODING_APPLE_ROMAN = ( ( (FT_UInt32)('a') << 24 ) | ( (FT_UInt32)('r') << 16 ) | ( (FT_UInt32)('m') << 8 ) | (FT_UInt32)('n') )
}
 
enum  FT_Size_Request_Type_ {
  FT_SIZE_REQUEST_TYPE_NOMINAL , FT_SIZE_REQUEST_TYPE_REAL_DIM , FT_SIZE_REQUEST_TYPE_BBOX , FT_SIZE_REQUEST_TYPE_CELL ,
  FT_SIZE_REQUEST_TYPE_SCALES , FT_SIZE_REQUEST_TYPE_MAX , FT_SIZE_REQUEST_TYPE_NOMINAL , FT_SIZE_REQUEST_TYPE_REAL_DIM ,
  FT_SIZE_REQUEST_TYPE_BBOX , FT_SIZE_REQUEST_TYPE_CELL , FT_SIZE_REQUEST_TYPE_SCALES , FT_SIZE_REQUEST_TYPE_MAX
}
 
enum  FT_Render_Mode_ {
  FT_RENDER_MODE_NORMAL = 0 , FT_RENDER_MODE_LIGHT , FT_RENDER_MODE_MONO , FT_RENDER_MODE_LCD ,
  FT_RENDER_MODE_LCD_V , FT_RENDER_MODE_MAX , FT_RENDER_MODE_NORMAL = 0 , FT_RENDER_MODE_LIGHT ,
  FT_RENDER_MODE_MONO , FT_RENDER_MODE_LCD , FT_RENDER_MODE_LCD_V , FT_RENDER_MODE_MAX
}
 
enum  FT_Kerning_Mode_ {
  FT_KERNING_DEFAULT = 0 , FT_KERNING_UNFITTED , FT_KERNING_UNSCALED , FT_KERNING_DEFAULT = 0 ,
  FT_KERNING_UNFITTED , FT_KERNING_UNSCALED
}
 

Functions

 FT_Init_FreeType (FT_Library *alibrary)
 
 FT_Done_FreeType (FT_Library library)
 
 FT_New_Face (FT_Library library, const char *filepathname, FT_Long face_index, FT_Face *aface)
 
 FT_New_Memory_Face (FT_Library library, const FT_Byte *file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface)
 
 FT_Open_Face (FT_Library library, const FT_Open_Args *args, FT_Long face_index, FT_Face *aface)
 
 FT_Attach_File (FT_Face face, const char *filepathname)
 
 FT_Attach_Stream (FT_Face face, FT_Open_Args *parameters)
 
 FT_Reference_Face (FT_Face face)
 
 FT_Done_Face (FT_Face face)
 
 FT_Select_Size (FT_Face face, FT_Int strike_index)
 
 FT_Request_Size (FT_Face face, FT_Size_Request req)
 
 FT_Set_Char_Size (FT_Face face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution)
 
 FT_Set_Pixel_Sizes (FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height)
 
 FT_Load_Glyph (FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
 
 FT_Load_Char (FT_Face face, FT_ULong char_code, FT_Int32 load_flags)
 
 FT_Set_Transform (FT_Face face, FT_Matrix *matrix, FT_Vector *delta)
 
 FT_Render_Glyph (FT_GlyphSlot slot, FT_Render_Mode render_mode)
 
 FT_Get_Kerning (FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning)
 
 FT_Get_Track_Kerning (FT_Face face, FT_Fixed point_size, FT_Int degree, FT_Fixed *akerning)
 
 FT_Get_Glyph_Name (FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
 
 FT_Get_Postscript_Name (FT_Face face)
 
 FT_Select_Charmap (FT_Face face, FT_Encoding encoding)
 
 FT_Set_Charmap (FT_Face face, FT_CharMap charmap)
 
 FT_Get_Charmap_Index (FT_CharMap charmap)
 
 FT_Get_Char_Index (FT_Face face, FT_ULong charcode)
 
 FT_Get_First_Char (FT_Face face, FT_UInt *agindex)
 
 FT_Get_Next_Char (FT_Face face, FT_ULong char_code, FT_UInt *agindex)
 
 FT_Face_Properties (FT_Face face, FT_UInt num_properties, FT_Parameter *properties)
 
 FT_Get_Name_Index (FT_Face face, const FT_String *glyph_name)
 
 FT_Get_SubGlyph_Info (FT_GlyphSlot glyph, FT_UInt sub_index, FT_Int *p_index, FT_UInt *p_flags, FT_Int *p_arg1, FT_Int *p_arg2, FT_Matrix *p_transform)
 
 FT_Get_Color_Glyph_Layer (FT_Face face, FT_UInt base_glyph, FT_UInt *aglyph_index, FT_UInt *acolor_index, FT_LayerIterator *iterator)
 
 FT_Get_FSType_Flags (FT_Face face)
 
 FT_Face_GetCharVariantIndex (FT_Face face, FT_ULong charcode, FT_ULong variantSelector)
 
 FT_Face_GetCharVariantIsDefault (FT_Face face, FT_ULong charcode, FT_ULong variantSelector)
 
 FT_Face_GetVariantSelectors (FT_Face face)
 
 FT_Face_GetVariantsOfChar (FT_Face face, FT_ULong charcode)
 
 FT_Face_GetCharsOfVariant (FT_Face face, FT_ULong variantSelector)
 
 FT_MulDiv (FT_Long a, FT_Long b, FT_Long c)
 
 FT_MulFix (FT_Long a, FT_Long b)
 
 FT_DivFix (FT_Long a, FT_Long b)
 
 FT_RoundFix (FT_Fixed a)
 
 FT_CeilFix (FT_Fixed a)
 
 FT_FloorFix (FT_Fixed a)
 
 FT_Vector_Transform (FT_Vector *vector, const FT_Matrix *matrix)
 
 FT_Library_Version (FT_Library library, FT_Int *amajor, FT_Int *aminor, FT_Int *apatch)
 
 FT_Face_CheckTrueTypePatents (FT_Face face)
 
 FT_Face_SetUnpatentedHinting (FT_Face face, FT_Bool value)
 

Macro Definition Documentation

◆ FREETYPE_MAJOR

#define FREETYPE_MAJOR   2

Definition at line 4768 of file freetype.h.

◆ FREETYPE_MINOR

#define FREETYPE_MINOR   10

Definition at line 4769 of file freetype.h.

◆ FREETYPE_PATCH

#define FREETYPE_PATCH   4

Definition at line 4770 of file freetype.h.

◆ FT_ENC_TAG

#define FT_ENC_TAG (   value,
  a,
  b,
  c,
  d 
)
Value:
value = ( ( (FT_UInt32)(a) << 24 ) | \
( (FT_UInt32)(b) << 16 ) | \
( (FT_UInt32)(c) << 8 ) | \
(FT_UInt32)(d) )
#define b
Definition: jpegint.h:372
#define c(n)
Definition: gpos-common.c:150
#define a(n)
Definition: gpos-common.c:148
#define d(n)
Definition: gpos-common.c:151
Definition: obx.h:51

@macro: FT_ENC_TAG

@description: This macro converts four-letter tags into an unsigned long. It is used to define 'encoding' identifiers (see @FT_Encoding).

Note
: Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:
#define FT_ENC_TAG( value, a, b, c, d ) value

to get a simple enumeration without assigning special numbers.

Definition at line 590 of file freetype.h.

◆ ft_encoding_adobe_custom

#define ft_encoding_adobe_custom   FT_ENCODING_ADOBE_CUSTOM

Definition at line 788 of file freetype.h.

◆ ft_encoding_adobe_expert

#define ft_encoding_adobe_expert   FT_ENCODING_ADOBE_EXPERT

Definition at line 787 of file freetype.h.

◆ ft_encoding_adobe_standard

#define ft_encoding_adobe_standard   FT_ENCODING_ADOBE_STANDARD

Definition at line 786 of file freetype.h.

◆ ft_encoding_apple_roman

#define ft_encoding_apple_roman   FT_ENCODING_APPLE_ROMAN

Definition at line 789 of file freetype.h.

◆ ft_encoding_big5

#define ft_encoding_big5   FT_ENCODING_BIG5

Definition at line 782 of file freetype.h.

◆ ft_encoding_gb2312

#define ft_encoding_gb2312   FT_ENCODING_PRC

Definition at line 781 of file freetype.h.

◆ ft_encoding_johab

#define ft_encoding_johab   FT_ENCODING_JOHAB

Definition at line 784 of file freetype.h.

◆ ft_encoding_latin_1

#define ft_encoding_latin_1   FT_ENCODING_ADOBE_LATIN_1

Definition at line 778 of file freetype.h.

◆ ft_encoding_latin_2

#define ft_encoding_latin_2   FT_ENCODING_OLD_LATIN_2

Definition at line 779 of file freetype.h.

◆ ft_encoding_none

#define ft_encoding_none   FT_ENCODING_NONE

Definition at line 775 of file freetype.h.

◆ ft_encoding_sjis

#define ft_encoding_sjis   FT_ENCODING_SJIS

Definition at line 780 of file freetype.h.

◆ ft_encoding_symbol

#define ft_encoding_symbol   FT_ENCODING_MS_SYMBOL

Definition at line 777 of file freetype.h.

◆ ft_encoding_unicode

#define ft_encoding_unicode   FT_ENCODING_UNICODE

Definition at line 776 of file freetype.h.

◆ ft_encoding_wansung

#define ft_encoding_wansung   FT_ENCODING_WANSUNG

Definition at line 783 of file freetype.h.

◆ FT_FACE_FLAG_CID_KEYED

#define FT_FACE_FLAG_CID_KEYED   ( 1L << 12 )

Definition at line 1209 of file freetype.h.

◆ FT_FACE_FLAG_COLOR

#define FT_FACE_FLAG_COLOR   ( 1L << 14 )

Definition at line 1211 of file freetype.h.

◆ FT_FACE_FLAG_EXTERNAL_STREAM

#define FT_FACE_FLAG_EXTERNAL_STREAM   ( 1L << 10 )

Definition at line 1207 of file freetype.h.

◆ FT_FACE_FLAG_FAST_GLYPHS

#define FT_FACE_FLAG_FAST_GLYPHS   ( 1L << 7 )

Definition at line 1204 of file freetype.h.

◆ FT_FACE_FLAG_FIXED_SIZES

#define FT_FACE_FLAG_FIXED_SIZES   ( 1L << 1 )

Definition at line 1198 of file freetype.h.

◆ FT_FACE_FLAG_FIXED_WIDTH

#define FT_FACE_FLAG_FIXED_WIDTH   ( 1L << 2 )

Definition at line 1199 of file freetype.h.

◆ FT_FACE_FLAG_GLYPH_NAMES

#define FT_FACE_FLAG_GLYPH_NAMES   ( 1L << 9 )

Definition at line 1206 of file freetype.h.

◆ FT_FACE_FLAG_HINTER

#define FT_FACE_FLAG_HINTER   ( 1L << 11 )

Definition at line 1208 of file freetype.h.

◆ FT_FACE_FLAG_HORIZONTAL

#define FT_FACE_FLAG_HORIZONTAL   ( 1L << 4 )

Definition at line 1201 of file freetype.h.

◆ FT_FACE_FLAG_KERNING

#define FT_FACE_FLAG_KERNING   ( 1L << 6 )

Definition at line 1203 of file freetype.h.

◆ FT_FACE_FLAG_MULTIPLE_MASTERS

#define FT_FACE_FLAG_MULTIPLE_MASTERS   ( 1L << 8 )

Definition at line 1205 of file freetype.h.

◆ FT_FACE_FLAG_SCALABLE

#define FT_FACE_FLAG_SCALABLE   ( 1L << 0 )

Definition at line 1197 of file freetype.h.

◆ FT_FACE_FLAG_SFNT

#define FT_FACE_FLAG_SFNT   ( 1L << 3 )

Definition at line 1200 of file freetype.h.

◆ FT_FACE_FLAG_TRICKY

#define FT_FACE_FLAG_TRICKY   ( 1L << 13 )

Definition at line 1210 of file freetype.h.

◆ FT_FACE_FLAG_VARIATION

#define FT_FACE_FLAG_VARIATION   ( 1L << 15 )

Definition at line 1212 of file freetype.h.

◆ FT_FACE_FLAG_VERTICAL

#define FT_FACE_FLAG_VERTICAL   ( 1L << 5 )

Definition at line 1202 of file freetype.h.

◆ FT_FSTYPE_BITMAP_EMBEDDING_ONLY

#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY   0x0200

Definition at line 4245 of file freetype.h.

◆ FT_FSTYPE_EDITABLE_EMBEDDING

#define FT_FSTYPE_EDITABLE_EMBEDDING   0x0008

Definition at line 4243 of file freetype.h.

◆ FT_FSTYPE_INSTALLABLE_EMBEDDING

#define FT_FSTYPE_INSTALLABLE_EMBEDDING   0x0000

Definition at line 4240 of file freetype.h.

◆ FT_FSTYPE_NO_SUBSETTING

#define FT_FSTYPE_NO_SUBSETTING   0x0100

Definition at line 4244 of file freetype.h.

◆ FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING

#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING   0x0004

Definition at line 4242 of file freetype.h.

◆ FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING

#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING   0x0002

Definition at line 4241 of file freetype.h.

◆ FT_HAS_COLOR

#define FT_HAS_COLOR (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) )

@macro: FT_HAS_COLOR

@description: A macro that returns true whenever a face object contains tables for color glyphs.

Since
: 2.5.1

Definition at line 1449 of file freetype.h.

◆ FT_HAS_FAST_GLYPHS

#define FT_HAS_FAST_GLYPHS (   face)    0

@macro: FT_HAS_FAST_GLYPHS

@description: Deprecated.

Definition at line 1333 of file freetype.h.

◆ FT_HAS_FIXED_SIZES

#define FT_HAS_FIXED_SIZES (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES ) )

@macro: FT_HAS_FIXED_SIZES

@description: A macro that returns true whenever a face object contains some embedded bitmaps. See the available_sizes field of the @FT_FaceRec structure.

Definition at line 1320 of file freetype.h.

◆ FT_HAS_GLYPH_NAMES

#define FT_HAS_GLYPH_NAMES (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) )

@macro: FT_HAS_GLYPH_NAMES

@description: A macro that returns true whenever a face object contains some glyph names that can be accessed through @FT_Get_Glyph_Name.

Definition at line 1346 of file freetype.h.

◆ FT_HAS_HORIZONTAL

#define FT_HAS_HORIZONTAL (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL ) )

@macro: FT_HAS_HORIZONTAL

@description: A macro that returns true whenever a face object contains horizontal metrics (this is true for all font formats though).

@also: @FT_HAS_VERTICAL can be used to check for vertical metrics.

Definition at line 1228 of file freetype.h.

◆ FT_HAS_KERNING

#define FT_HAS_KERNING (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_KERNING ) )

@macro: FT_HAS_KERNING

@description: A macro that returns true whenever a face object contains kerning data that can be accessed with @FT_Get_Kerning.

Definition at line 1256 of file freetype.h.

◆ FT_HAS_MULTIPLE_MASTERS

#define FT_HAS_MULTIPLE_MASTERS (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) )

@macro: FT_HAS_MULTIPLE_MASTERS

@description: A macro that returns true whenever a face object contains some multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H are then available to choose the exact design you want.

Definition at line 1361 of file freetype.h.

◆ FT_HAS_VERTICAL

#define FT_HAS_VERTICAL (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_VERTICAL ) )

@macro: FT_HAS_VERTICAL

@description: A macro that returns true whenever a face object contains real vertical metrics (and not only synthesized ones).

Definition at line 1242 of file freetype.h.

◆ FT_IS_CID_KEYED

#define FT_IS_CID_KEYED (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_CID_KEYED ) )

@macro: FT_IS_CID_KEYED

@description: A macro that returns true whenever a face object contains a CID-keyed font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more details.

If this macro is true, all functions defined in @FT_CID_H are available.

Definition at line 1418 of file freetype.h.

◆ FT_IS_FIXED_WIDTH

#define FT_IS_FIXED_WIDTH (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) )

@macro: FT_IS_FIXED_WIDTH

@description: A macro that returns true whenever a face object contains a font face that contains fixed-width (or 'monospace', 'fixed-pitch', etc.) glyphs.

Definition at line 1305 of file freetype.h.

◆ FT_IS_NAMED_INSTANCE

#define FT_IS_NAMED_INSTANCE (   face)     ( !!( (face)->face_index & 0x7FFF0000L ) )

@macro: FT_IS_NAMED_INSTANCE

@description: A macro that returns true whenever a face object is a named instance of a GX or OpenType variation font.

[Since 2.9] Changing the design coordinates with @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does not influence the return value of this macro (only @FT_Set_Named_Instance does that).

Since
: 2.7

Definition at line 1383 of file freetype.h.

◆ FT_IS_SCALABLE

#define FT_IS_SCALABLE (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_SCALABLE ) )

@macro: FT_IS_SCALABLE

@description: A macro that returns true whenever a face object contains a scalable font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, and PFR font formats).

Definition at line 1271 of file freetype.h.

◆ FT_IS_SFNT

#define FT_IS_SFNT (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_SFNT ) )

@macro: FT_IS_SFNT

@description: A macro that returns true whenever a face object contains a font whose format is based on the SFNT storage scheme. This usually means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap fonts.

If this macro is true, all functions defined in @FT_SFNT_NAMES_H and @FT_TRUETYPE_TABLES_H are available.

Definition at line 1290 of file freetype.h.

◆ FT_IS_TRICKY

#define FT_IS_TRICKY (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_TRICKY ) )

@macro: FT_IS_TRICKY

@description: A macro that returns true whenever a face represents a 'tricky' font. See the discussion of @FT_FACE_FLAG_TRICKY for more details.

Definition at line 1432 of file freetype.h.

◆ FT_IS_VARIATION

#define FT_IS_VARIATION (   face)     ( !!( (face)->face_flags & FT_FACE_FLAG_VARIATION ) )

@macro: FT_IS_VARIATION

@description: A macro that returns true whenever a face object has been altered by @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates, or @FT_Set_Var_Blend_Coordinates.

Since
: 2.9

Definition at line 1401 of file freetype.h.

◆ ft_kerning_default

#define ft_kerning_default   FT_KERNING_DEFAULT

Definition at line 3415 of file freetype.h.

◆ ft_kerning_unfitted

#define ft_kerning_unfitted   FT_KERNING_UNFITTED

Definition at line 3416 of file freetype.h.

◆ ft_kerning_unscaled

#define ft_kerning_unscaled   FT_KERNING_UNSCALED

Definition at line 3417 of file freetype.h.

◆ FT_LOAD_ADVANCE_ONLY

#define FT_LOAD_ADVANCE_ONLY   ( 1L << 8 )

Definition at line 3044 of file freetype.h.

◆ FT_LOAD_BITMAP_METRICS_ONLY

#define FT_LOAD_BITMAP_METRICS_ONLY   ( 1L << 22 )

Definition at line 3039 of file freetype.h.

◆ FT_LOAD_COLOR

#define FT_LOAD_COLOR   ( 1L << 20 )

Definition at line 3037 of file freetype.h.

◆ FT_LOAD_COMPUTE_METRICS

#define FT_LOAD_COMPUTE_METRICS   ( 1L << 21 )

Definition at line 3038 of file freetype.h.

◆ FT_LOAD_CROP_BITMAP

#define FT_LOAD_CROP_BITMAP   ( 1L << 6 )

Definition at line 3028 of file freetype.h.

◆ FT_LOAD_DEFAULT

◆ FT_LOAD_FORCE_AUTOHINT

#define FT_LOAD_FORCE_AUTOHINT   ( 1L << 5 )

Definition at line 3027 of file freetype.h.

◆ FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH

#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH   ( 1L << 9 )

Definition at line 3030 of file freetype.h.

◆ FT_LOAD_IGNORE_TRANSFORM

#define FT_LOAD_IGNORE_TRANSFORM   ( 1L << 11 )

Definition at line 3032 of file freetype.h.

◆ FT_LOAD_LINEAR_DESIGN

#define FT_LOAD_LINEAR_DESIGN   ( 1L << 13 )

Definition at line 3034 of file freetype.h.

◆ FT_LOAD_MONOCHROME

#define FT_LOAD_MONOCHROME   ( 1L << 12 )

Definition at line 3033 of file freetype.h.

◆ FT_LOAD_NO_AUTOHINT

#define FT_LOAD_NO_AUTOHINT   ( 1L << 15 )

Definition at line 3035 of file freetype.h.

◆ FT_LOAD_NO_BITMAP

#define FT_LOAD_NO_BITMAP   ( 1L << 3 )

Definition at line 3025 of file freetype.h.

◆ FT_LOAD_NO_HINTING

#define FT_LOAD_NO_HINTING   ( 1L << 1 )

Definition at line 3023 of file freetype.h.

◆ FT_LOAD_NO_RECURSE

#define FT_LOAD_NO_RECURSE   ( 1L << 10 )

Definition at line 3031 of file freetype.h.

◆ FT_LOAD_NO_SCALE

#define FT_LOAD_NO_SCALE   ( 1L << 0 )

Definition at line 3022 of file freetype.h.

◆ FT_LOAD_PEDANTIC

#define FT_LOAD_PEDANTIC   ( 1L << 7 )

Definition at line 3029 of file freetype.h.

◆ FT_LOAD_RENDER

#define FT_LOAD_RENDER   ( 1L << 2 )

Definition at line 3024 of file freetype.h.

◆ FT_LOAD_SBITS_ONLY

#define FT_LOAD_SBITS_ONLY   ( 1L << 14 )

Definition at line 3045 of file freetype.h.

◆ FT_LOAD_TARGET_

#define FT_LOAD_TARGET_ (   x)    ( (FT_Int32)( (x) & 15 ) << 16 )

Definition at line 3135 of file freetype.h.

◆ FT_LOAD_TARGET_LCD

#define FT_LOAD_TARGET_LCD   FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )

Definition at line 3140 of file freetype.h.

◆ FT_LOAD_TARGET_LCD_V

#define FT_LOAD_TARGET_LCD_V   FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )

Definition at line 3141 of file freetype.h.

◆ FT_LOAD_TARGET_LIGHT

#define FT_LOAD_TARGET_LIGHT   FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )

Definition at line 3138 of file freetype.h.

◆ FT_LOAD_TARGET_MODE

#define FT_LOAD_TARGET_MODE (   x)    ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )

@macro: FT_LOAD_TARGET_MODE

@description: Return the @FT_Render_Mode corresponding to a given @FT_LOAD_TARGET_XXX value.

Definition at line 3154 of file freetype.h.

◆ FT_LOAD_TARGET_MONO

#define FT_LOAD_TARGET_MONO   FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )

Definition at line 3139 of file freetype.h.

◆ FT_LOAD_TARGET_NORMAL

#define FT_LOAD_TARGET_NORMAL   FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )

Definition at line 3137 of file freetype.h.

◆ FT_LOAD_VERTICAL_LAYOUT

#define FT_LOAD_VERTICAL_LAYOUT   ( 1L << 4 )

Definition at line 3026 of file freetype.h.

◆ FT_OPEN_DRIVER

#define FT_OPEN_DRIVER   0x8

Definition at line 2006 of file freetype.h.

◆ ft_open_driver

#define ft_open_driver   FT_OPEN_DRIVER

Definition at line 2015 of file freetype.h.

◆ FT_OPEN_MEMORY

#define FT_OPEN_MEMORY   0x1

Definition at line 2003 of file freetype.h.

◆ ft_open_memory

#define ft_open_memory   FT_OPEN_MEMORY

Definition at line 2012 of file freetype.h.

◆ FT_OPEN_PARAMS

#define FT_OPEN_PARAMS   0x10

Definition at line 2007 of file freetype.h.

◆ ft_open_params

#define ft_open_params   FT_OPEN_PARAMS

Definition at line 2016 of file freetype.h.

◆ FT_OPEN_PATHNAME

#define FT_OPEN_PATHNAME   0x4

Definition at line 2005 of file freetype.h.

◆ ft_open_pathname

#define ft_open_pathname   FT_OPEN_PATHNAME

Definition at line 2014 of file freetype.h.

◆ FT_OPEN_STREAM

#define FT_OPEN_STREAM   0x2

Definition at line 2004 of file freetype.h.

◆ ft_open_stream

#define ft_open_stream   FT_OPEN_STREAM

Definition at line 2013 of file freetype.h.

◆ ft_render_mode_mono

#define ft_render_mode_mono   FT_RENDER_MODE_MONO

Definition at line 3263 of file freetype.h.

◆ ft_render_mode_normal

#define ft_render_mode_normal   FT_RENDER_MODE_NORMAL

Definition at line 3262 of file freetype.h.

◆ FT_STYLE_FLAG_BOLD

#define FT_STYLE_FLAG_BOLD   ( 1 << 1 )

Definition at line 1476 of file freetype.h.

◆ FT_STYLE_FLAG_ITALIC

#define FT_STYLE_FLAG_ITALIC   ( 1 << 0 )

Definition at line 1475 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_2X2

#define FT_SUBGLYPH_FLAG_2X2   0x80

Definition at line 3959 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS

#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS   1

Definition at line 3954 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES

#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES   2

Definition at line 3955 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID

#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID   4

Definition at line 3956 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_SCALE

#define FT_SUBGLYPH_FLAG_SCALE   8

Definition at line 3957 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_USE_MY_METRICS

#define FT_SUBGLYPH_FLAG_USE_MY_METRICS   0x200

Definition at line 3960 of file freetype.h.

◆ FT_SUBGLYPH_FLAG_XY_SCALE

#define FT_SUBGLYPH_FLAG_XY_SCALE   0x40

Definition at line 3958 of file freetype.h.

Typedef Documentation

◆ FT_Bitmap_Size

◆ FT_CharMap

typedef struct FT_CharMapRec_* FT_CharMap

@type: FT_CharMap

@description: A handle to a character map (usually abbreviated to 'charmap'). A charmap is used to translate character codes in a given encoding into glyph indexes for its parent's face. Some font formats may provide several charmaps per font.

Each face object owns zero or more charmaps, but only one of them can be 'active', providing the data used by @FT_Get_Char_Index or @FT_Load_Char.

The list of available charmaps in a face is available through the face->num_charmaps and face->charmaps fields of @FT_FaceRec.

The currently active charmap is available as face->charmap. You should call @FT_Set_Charmap to change it.

Note
: When a new face is created (either through @FT_New_Face or @FT_Open_Face), the library looks for a Unicode charmap within the list and automatically activates it. If there is no Unicode charmap, FreeType doesn't set an 'active' charmap.

@also: See @FT_CharMapRec for the publicly accessible fields of a given character map.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 566 of file freetype.h.

◆ FT_CharMapRec

◆ FT_Driver

typedef struct FT_DriverRec_* FT_Driver

@type: FT_Driver

@description: A handle to a given FreeType font driver object. A font driver is a module capable of creating faces from font files.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 431 of file freetype.h.

◆ FT_Encoding

◆ FT_Face

◆ FT_Face_Internal

@type: FT_Face_Internal

@description: An opaque handle to an FT_Face_InternalRec structure that models the private data of a given @FT_Face object.

This structure might change between releases of FreeType~2 and is not generally available to client applications.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 848 of file freetype.h.

◆ FT_FaceRec

◆ FT_Glyph_Metrics

◆ FT_GlyphSlot

typedef struct FT_GlyphSlotRec_* FT_GlyphSlot

@type: FT_GlyphSlot

@description: A handle to a given 'glyph slot'. A slot is a container that can hold any of the glyphs contained in its parent face.

In other words, each time you call @FT_Load_Glyph or @FT_Load_Char, the slot's content is erased by the new glyph data, i.e., the glyph's metrics, its image (bitmap or outline), and other control information.

@also: See @FT_GlyphSlotRec for the publicly accessible glyph fields.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 532 of file freetype.h.

◆ FT_GlyphSlotRec

◆ FT_Kerning_Mode

◆ FT_LayerIterator

◆ FT_Library

typedef struct FT_LibraryRec_* FT_Library

@type: FT_Library

@description: A handle to a FreeType library instance. Each 'library' is completely independent from the others; it is the 'root' of a set of objects like fonts, faces, sizes, etc.

It also embeds a memory manager (see @FT_Memory), as well as a scan-line converter object (see @FT_Raster).

[Since 2.5.6] In multi-threaded applications it is easiest to use one FT_Library object per thread. In case this is too cumbersome, a single FT_Library object across threads is possible also, as long as a mutex lock is used around @FT_New_Face and @FT_Done_Face.

Note
: Library objects are normally created by @FT_Init_FreeType, and destroyed with @FT_Done_FreeType. If you need reference-counting (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 399 of file freetype.h.

◆ FT_Module

◆ FT_Open_Args

◆ FT_Parameter

◆ FT_Render_Mode

◆ FT_Renderer

typedef struct FT_RendererRec_* FT_Renderer

@type: FT_Renderer

@description: A handle to a given FreeType renderer. A renderer is a module in charge of converting a glyph's outline image to a bitmap. It supports a single glyph image format, and one or more target surface depths.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 444 of file freetype.h.

◆ FT_Size

typedef struct FT_SizeRec_* FT_Size

@type: FT_Size

@description: A handle to an object that models a face scaled to a given character size.

Note
: An @FT_Face has one active @FT_Size object that is used by functions like @FT_Load_Glyph to determine the scaling transformation that in turn is used to load and hint glyphs and metrics.

You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size or even @FT_Select_Size to change the content (i.e., the scaling values) of the active @FT_Size.

You can use @FT_New_Size to create additional size objects for a given @FT_Face, but they won't be used by other functions until you activate it through @FT_Activate_Size. Only one size can be activated at any given time per face.

@also: See @FT_SizeRec for the publicly accessible fields of a given size object.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 513 of file freetype.h.

◆ FT_Size_Internal

@type: FT_Size_Internal

@description: An opaque handle to an FT_Size_InternalRec structure, used to model private data of a given @FT_Size object.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 1488 of file freetype.h.

◆ FT_Size_Metrics

◆ FT_Size_Request

◆ FT_Size_Request_Type

◆ FT_Size_RequestRec

◆ FT_SizeRec

◆ FT_Slot_Internal

@type: FT_Slot_Internal

@description: An opaque handle to an FT_Slot_InternalRec structure, used to model private data of a given @FT_GlyphSlot object.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 1670 of file freetype.h.

◆ FT_SubGlyph

Enumeration Type Documentation

◆ FT_Encoding_

Enumerator
FT_ENCODING_NONE 
FT_ENCODING_MS_SYMBOL 
FT_ENCODING_UNICODE 
FT_ENCODING_SJIS 
FT_ENCODING_PRC 
FT_ENCODING_BIG5 
FT_ENCODING_WANSUNG 
FT_ENCODING_JOHAB 
FT_ENCODING_GB2312 
FT_ENCODING_MS_SJIS 
FT_ENCODING_MS_GB2312 
FT_ENCODING_MS_BIG5 
FT_ENCODING_MS_WANSUNG 
FT_ENCODING_MS_JOHAB 
FT_ENCODING_ADOBE_STANDARD 
FT_ENCODING_ADOBE_EXPERT 
FT_ENCODING_ADOBE_CUSTOM 
FT_ENCODING_ADOBE_LATIN_1 
FT_ENCODING_OLD_LATIN_2 
FT_ENCODING_APPLE_ROMAN 
FT_ENCODING_NONE 
FT_ENCODING_MS_SYMBOL 
FT_ENCODING_UNICODE 
FT_ENCODING_SJIS 
FT_ENCODING_PRC 
FT_ENCODING_BIG5 
FT_ENCODING_WANSUNG 
FT_ENCODING_JOHAB 
FT_ENCODING_GB2312 
FT_ENCODING_MS_SJIS 
FT_ENCODING_MS_GB2312 
FT_ENCODING_MS_BIG5 
FT_ENCODING_MS_WANSUNG 
FT_ENCODING_MS_JOHAB 
FT_ENCODING_ADOBE_STANDARD 
FT_ENCODING_ADOBE_EXPERT 
FT_ENCODING_ADOBE_CUSTOM 
FT_ENCODING_ADOBE_LATIN_1 
FT_ENCODING_OLD_LATIN_2 
FT_ENCODING_APPLE_ROMAN 

Definition at line 740 of file freetype.h.

◆ FT_Kerning_Mode_

Enumerator
FT_KERNING_DEFAULT 
FT_KERNING_UNFITTED 
FT_KERNING_UNSCALED 
FT_KERNING_DEFAULT 
FT_KERNING_UNFITTED 
FT_KERNING_UNSCALED 

Definition at line 3404 of file freetype.h.

◆ FT_Render_Mode_

Enumerator
FT_RENDER_MODE_NORMAL 
FT_RENDER_MODE_LIGHT 
FT_RENDER_MODE_MONO 
FT_RENDER_MODE_LCD 
FT_RENDER_MODE_LCD_V 
FT_RENDER_MODE_MAX 
FT_RENDER_MODE_NORMAL 
FT_RENDER_MODE_LIGHT 
FT_RENDER_MODE_MONO 
FT_RENDER_MODE_LCD 
FT_RENDER_MODE_LCD_V 
FT_RENDER_MODE_MAX 

Definition at line 3247 of file freetype.h.

◆ FT_Size_Request_Type_

Enumerator
FT_SIZE_REQUEST_TYPE_NOMINAL 
FT_SIZE_REQUEST_TYPE_REAL_DIM 
FT_SIZE_REQUEST_TYPE_BBOX 
FT_SIZE_REQUEST_TYPE_CELL 
FT_SIZE_REQUEST_TYPE_SCALES 
FT_SIZE_REQUEST_TYPE_MAX 
FT_SIZE_REQUEST_TYPE_NOMINAL 
FT_SIZE_REQUEST_TYPE_REAL_DIM 
FT_SIZE_REQUEST_TYPE_BBOX 
FT_SIZE_REQUEST_TYPE_CELL 
FT_SIZE_REQUEST_TYPE_SCALES 
FT_SIZE_REQUEST_TYPE_MAX 

Definition at line 2550 of file freetype.h.

Function Documentation

◆ FT_Attach_File()

FT_Attach_File ( FT_Face  face,
const char *  filepathname 
)

@function: FT_Attach_File

@description: Call @FT_Attach_Stream to attach a file.

@inout: face :: The target face object.

@input: filepathname :: The pathname.

Returns
: FreeType error code. 0~means success.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 2703 of file ftobjs.c.

References face, FT_Attach_Stream(), FT_OPEN_PATHNAME, FT_THROW, NULL, and open.

Referenced by XeTeXFontInst::initialize().

◆ FT_Attach_Stream()

FT_Attach_Stream ( FT_Face  face,
FT_Open_Args parameters 
)

@function: FT_Attach_Stream

@description: 'Attach' data to a face object. Normally, this is used to read additional information for the face object. For example, you can attach an AFM file that comes with a Type~1 font to get the kerning values and other metrics.

@inout: face :: The target face object.

@input: parameters :: A pointer to @FT_Open_Args that must be filled by the caller.

Returns
: FreeType error code. 0~means success.
Note
: The meaning of the 'attach' (i.e., what really happens when the new file is read) is not fixed by FreeType itself. It really depends on the font format (and thus the font driver).

Client applications are expected to know what they are doing when invoking this function. Most drivers simply do not implement file or stream attachments.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 2725 of file ftobjs.c.

References FT_Driver_ClassRec_::attach_file, FT_DriverRec_::clazz, FT_FaceRec_::driver, error, Exit(), face, FT_BOOL, FT_ERR, FT_OPEN_STREAM, FT_Stream_Free(), FT_Stream_New(), FT_THROW, FT_ModuleRec_::library, parameters, and FT_DriverRec_::root.

◆ FT_CeilFix()

FT_CeilFix ( FT_Fixed  a)

@function: FT_CeilFix

@description: Compute the smallest following integer of a 16.16 fixed number.

@input: a :: The number for which the ceiling function is to be computed.

Returns
: a rounded towards plus infinity.
Note
: The function uses wrap-around arithmetic.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 96 of file ftcalc.c.

References a, and ADD_LONG.

◆ FT_DivFix()

FT_DivFix ( FT_Long  a,
FT_Long  b 
)

@function: FT_DivFix

@description: Compute (a*0x10000)/b with maximum accuracy. Its main use is to divide a given value by a 16.16 fixed-point factor.

@input: a :: The numerator.

b :: The denominator. Use a 16.16 factor here.

Returns
: The result of (a*0x10000)/b.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 607 of file ftcalc.c.

References a, b, FT_Add64(), ft_div64by32(), FT_MOVE_SIGN, FT_Int64_::hi, FT_Int64_::lo, NEG_LONG, q, s, and temp.

Referenced by af_glyph_hints_align_strong_points(), af_iup_interp(), af_latin_hints_compute_edges(), af_loader_compute_darkening(), af_loader_embolden_glyph_in_slot(), af_loader_load_glyph(), cf2_blues_init(), cf2_checkTransform(), cf2_computeDarkening(), cf2_font_setup(), cf2_getBlueMetrics(), cf2_glyphpath_computeIntersection(), cf2_hintmap_adjustHints(), cf2_interpT2CharString(), cff_blend_build_vector(), cff_face_init(), cff_parse_fixed_dynamic(), cff_parse_real(), cid_parse_font_matrix(), compute_glyph_metrics(), FT_Request_Metrics(), FT_Select_Metrics(), FT_Stroker_ConicTo(), FT_Stroker_CubicTo(), ft_stroker_inside(), ft_stroker_outside(), FT_Tan(), mm_axis_unmap(), pfr_get_metrics(), PS_Conv_ToFixed(), psh_globals_new(), psh_glyph_find_strong_points(), psh_glyph_interpolate_other_points(), t1_decoder_parse_metrics(), t1_parse_font_matrix(), t42_parse_font_matrix(), and tt_size_reset().

◆ FT_Done_Face()

◆ FT_Done_FreeType()

FT_Done_FreeType ( FT_Library  library)

@function: FT_Done_FreeType

@description: Destroy a given FreeType library object and all of its children, including resources, drivers, faces, sizes, etc.

@input: library :: A handle to the target library object.

Returns
: FreeType error code. 0~means success.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 235 of file ftinit.c.

References FT_Done_Library(), FT_Done_Memory(), FT_Err_Ok, FT_THROW, library, and FT_LibraryRec_::memory.

Referenced by _cairo_ft_unscaled_font_map_destroy(), close_files_and_terminate(), DecodeArgs(), ExecuteTest(), Fatal(), FcFreeTypeQuery(), FcFreeTypeQueryAll(), main(), FontEngine::~FontEngine(), and SplashFTFontEngine::~SplashFTFontEngine().

◆ FT_Face_CheckTrueTypePatents()

FT_Face_CheckTrueTypePatents ( FT_Face  face)

@function: FT_Face_CheckTrueTypePatents

@description: Deprecated, does nothing.

@input: face :: A face handle.

Returns
: Always returns false.
Note
: Since May 2010, TrueType hinting is no longer patented.
Since
: 2.3.5

ftpatent.c

FreeType API for checking patented TrueType bytecode instructions (body). Obsolete, retained for backward compatibility.

Copyright (C) 2007-2020 by David Turner.

This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 30 of file ftpatent.c.

References face, FALSE, and FT_UNUSED.

◆ FT_Face_GetCharsOfVariant()

FT_Face_GetCharsOfVariant ( FT_Face  face,
FT_ULong  variantSelector 
)

@function: FT_Face_GetCharsOfVariant

@description: Return a zero-terminated list of Unicode character codes found for the specified variation selector.

@input: face :: A handle to the source face object.

variantSelector :: The variation selector code point in Unicode.

Returns
: A list of all the code points that are specified by this selector (both default and non-default codes are returned) or NULL if there is no valid cmap or the variation selector is invalid.
Note
: The last item in the array is~0; the array is owned by the @FT_Face object but can be overwritten or released on the next call to a FreeType function.
Since
: 2.3.6
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4047 of file ftobjs.c.

References FT_CMapRec_::clazz, face, find_variant_selector_charmap(), FT_CMAP, FT_FACE_MEMORY, FT_TRACE1, NULL, check-static-inits::result, and FT_CMap_ClassRec_::variantchar_list.

◆ FT_Face_GetCharVariantIndex()

◆ FT_Face_GetCharVariantIsDefault()

FT_Face_GetCharVariantIsDefault ( FT_Face  face,
FT_ULong  charcode,
FT_ULong  variantSelector 
)

@function: FT_Face_GetCharVariantIsDefault

@description: Check whether this variation of this Unicode character is the one to be found in the charmap.

@input: face :: A handle to the source face object.

charcode :: The character codepoint in Unicode.

variantSelector :: The Unicode codepoint of the variation selector.

Returns
: 1~if found in the standard (Unicode) cmap, 0~if found in the variation selector cmap, or -1 if it is not a variation.
Note
: This function is only meaningful if the font has a variation selector cmap subtable.
Since
: 2.3.6
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3943 of file ftobjs.c.

References FT_CMap_ClassRec_::char_var_default, FT_CMapRec_::clazz, face, find_variant_selector_charmap(), FT_CMAP, FT_TRACE1, and check-static-inits::result.

◆ FT_Face_GetVariantSelectors()

FT_Face_GetVariantSelectors ( FT_Face  face)

@function: FT_Face_GetVariantSelectors

@description: Return a zero-terminated list of Unicode variation selectors found in the font.

@input: face :: A handle to the source face object.

Returns
: A pointer to an array of selector code points, or NULL if there is no valid variation selector cmap subtable.
Note
: The last item in the array is~0; the array is owned by the @FT_Face object but can be overwritten or released on the next call to a FreeType function.
Since
: 2.3.6
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3986 of file ftobjs.c.

References FT_CMapRec_::clazz, face, find_variant_selector_charmap(), FT_CMAP, FT_FACE_MEMORY, NULL, check-static-inits::result, and FT_CMap_ClassRec_::variant_list.

◆ FT_Face_GetVariantsOfChar()

FT_Face_GetVariantsOfChar ( FT_Face  face,
FT_ULong  charcode 
)

@function: FT_Face_GetVariantsOfChar

@description: Return a zero-terminated list of Unicode variation selectors found for the specified character code.

@input: face :: A handle to the source face object.

charcode :: The character codepoint in Unicode.

Returns
: A pointer to an array of variation selector code points that are active for the given character, or NULL if the corresponding list is empty.
Note
: The last item in the array is~0; the array is owned by the @FT_Face object but can be overwritten or released on the next call to a FreeType function.
Since
: 2.3.6
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4013 of file ftobjs.c.

References FT_CMap_ClassRec_::charvariant_list, FT_CMapRec_::clazz, face, find_variant_selector_charmap(), FT_CMAP, FT_FACE_MEMORY, FT_TRACE1, NULL, and check-static-inits::result.

◆ FT_Face_Properties()

◆ FT_Face_SetUnpatentedHinting()

FT_Face_SetUnpatentedHinting ( FT_Face  face,
FT_Bool  value 
)

@function: FT_Face_SetUnpatentedHinting

@description: Deprecated, does nothing.

@input: face :: A face handle.

value :: New boolean setting.

Returns
: Always returns false.
Note
: Since May 2010, TrueType hinting is no longer patented.
Since
: 2.3.5
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 41 of file ftpatent.c.

References face, FALSE, and FT_UNUSED.

◆ FT_FloorFix()

FT_FloorFix ( FT_Fixed  a)

@function: FT_FloorFix

@description: Compute the largest previous integer of a 16.16 fixed number.

@input: a :: The number for which the floor function is to be computed.

Returns
: a rounded towards minus infinity.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 105 of file ftcalc.c.

References a.

◆ FT_Get_Char_Index()

FT_Get_Char_Index ( FT_Face  face,
FT_ULong  charcode 
)

@function: FT_Get_Char_Index

@description: Return the glyph index of a given character code. This function uses the currently selected charmap to do the mapping.

@input: face :: A handle to the source face object.

charcode :: The character code.

Returns
: The glyph index. 0~means 'undefined character code'.
Note
: If you use FreeType to manipulate the contents of font files directly, be aware that the glyph index returned by this function doesn't always correspond to the internal indices used within the file. This is done to ensure that value~0 always corresponds to the 'missing glyph'. If the first glyph is not named '.notdef', then for Type~1 and Type~42 fonts, '.notdef' will be moved into the glyph ID~0 position, and whatever was there will be moved to the position '.notdef' had. For Type~1 fonts, if there is no '.notdef' glyph at all, then one will be created at index~0 and whatever was there will be moved to the last index – Type~42 fonts are considered invalid under this condition.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3731 of file ftobjs.c.

References FT_FaceRec_::charmap, cmap, face, FT_CMAP, FT_TRACE1, FT_FaceRec_::num_glyphs, and check-static-inits::result.

Referenced by _cairo_ft_ucs4_to_index(), _get_glyph(), af_face_globals_compute_style_coverage(), af_shaper_get_cluster(), FontEngine::charIndex(), CairoFreeTypeFont::create(), FcFreeTypeCharIndex(), FcFreeTypeCharSet(), FTC_CMapCache_Lookup(), LoadFT(), XeTeXFontInst::mapCharToGlyph(), readttf(), T1_Read_PFM(), TTFget_first_glyphs(), TTFget_subfont(), and TTFprocess().

◆ FT_Get_Charmap_Index()

FT_Get_Charmap_Index ( FT_CharMap  charmap)

@function: FT_Get_Charmap_Index

@description: Retrieve index of a given charmap.

@input: charmap :: A handle to a charmap.

Returns
: The index into the array of character maps within the face to which charmap belongs. If an error occurs, -1 is returned.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3597 of file ftobjs.c.

References face, FT_ASSERT, i, and FT_FaceRec_::num_charmaps.

◆ FT_Get_Color_Glyph_Layer()

◆ FT_Get_First_Char()

FT_Get_First_Char ( FT_Face  face,
FT_UInt agindex 
)

@function: FT_Get_First_Char

@description: Return the first character code in the current charmap of a given face, together with its corresponding glyph index.

@input: face :: A handle to the source face object.

@output: agindex :: Glyph index of first character code. 0~if charmap is empty.

Returns
: The charmap's first character code.
Note
: You should use this function together with @FT_Get_Next_Char to parse all character codes available in a given charmap. The code should look like this:
FT_ULong charcode;
FT_UInt gindex;
charcode = FT_Get_First_Char( face, &gindex );
while ( gindex != 0 )
{
... do something with (charcode,gindex) pair ...
charcode = FT_Get_Next_Char( face, charcode, &gindex );
}
FT_Get_First_Char(FT_Face face, FT_UInt *agindex)
Definition: ftobjs.c:3760
FT_Get_Next_Char(FT_Face face, FT_ULong char_code, FT_UInt *agindex)
Definition: ftobjs.c:3785
unsigned long FT_ULong
Definition: fttypes.h:253
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Face face
Definition: cffdrivr.c:659

Be aware that character codes can have values up to 0xFFFFFFFF; this might happen for non-Unicode or malformed cmaps. However, even with regular Unicode encoding, so-called 'last resort fonts' (using SFNT cmap format 13, see function @FT_Get_CMap_Format) normally have entries for all Unicode characters up to 0x1FFFFF, which can cause a lot of iterations.

Note that *agindex is set to~0 if the charmap is empty. The result itself can be~0 in two cases: if the charmap is empty or if the value~0 is the first valid character code.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3760 of file ftobjs.c.

References FT_FaceRec_::charmap, face, FT_Get_Char_Index(), FT_Get_Next_Char(), FT_FaceRec_::num_glyphs, and check-static-inits::result.

Referenced by _cairo_ft_index_to_ucs4(), FontEngine::buildGidToCharCodeMap(), FontEngine::createCustomToUnicodeMap(), FcFreeTypeCharSet(), FcFreeTypeSpacing(), FontEngine::getFirstChar(), XeTeXFontInst::getFirstCharCode(), and XeTeXFontInst::getLastCharCode().

◆ FT_Get_FSType_Flags()

FT_Get_FSType_Flags ( FT_Face  face)

@function: FT_Get_FSType_Flags

@description: Return the fsType flags for a font.

@input: face :: A handle to the source face object.

Returns
: The fsType flags, see @FT_FSTYPE_XXX.
Note
: Use this function rather than directly reading the fs_type field in the @PS_FontInfoRec structure, which is only guaranteed to return the correct results for Type~1 fonts.
Since
: 2.3.8

ftfstype.c

FreeType utility file to access FSType data (body).

Copyright (C) 2008-2020 by David Turner, Robert Wilhelm, and Werner Lemberg.

This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 27 of file ftfstype.c.

References face, PS_FontExtraRec_::fs_type, FT_FACE_FIND_SERVICE, FT_Get_Sfnt_Table(), FT_SFNT_OS2, NULL, os2, and os2::version.

◆ FT_Get_Glyph_Name()

FT_Get_Glyph_Name ( FT_Face  face,
FT_UInt  glyph_index,
FT_Pointer  buffer,
FT_UInt  buffer_max 
)

@function: FT_Get_Glyph_Name

@description: Retrieve the ASCII name of a given glyph in a face. This only works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1.

@input: face :: A handle to a source face object.

glyph_index :: The glyph index.

buffer_max :: The maximum number of bytes available in the buffer.

@output: buffer :: A pointer to a target buffer where the name is copied to.

Returns
: FreeType error code. 0~means success.
Note
: An error is returned if the face doesn't provide glyph names or if the glyph index is invalid. In all cases of failure, the first byte of buffer is set to~0 to indicate an empty name.

The glyph name is truncated to fit within the buffer if it is too long. The returned string is always zero-terminated.

Be aware that FreeType reorders glyph indices internally so that glyph index~0 always corresponds to the 'missing glyph' (called '.notdef').

This function always returns an error if the config macro FT_CONFIG_OPTION_NO_GLYPH_NAMES is not defined in ftoption.h.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4110 of file ftobjs.c.

References error, face, FT_FACE_LOOKUP_SERVICE, FT_HAS_GLYPH_NAMES, FT_THROW, glyph_index, and FT_FaceRec_::num_glyphs.

Referenced by _cairo_index_to_glyph_name(), _get_glyph_name(), FontEngine::getGlyphName(), XeTeXFontInst::getGlyphName(), readttf(), tt_check_single_notdef(), TTFget_first_glyphs(), and TTFsearch_PS_name().

◆ FT_Get_Kerning()

FT_Get_Kerning ( FT_Face  face,
FT_UInt  left_glyph,
FT_UInt  right_glyph,
FT_UInt  kern_mode,
FT_Vector akerning 
)

@function: FT_Get_Kerning

@description: Return the kerning vector between two glyphs of the same face.

@input: face :: A handle to a source face object.

left_glyph :: The index of the left glyph in the kern pair.

right_glyph :: The index of the right glyph in the kern pair.

kern_mode :: See @FT_Kerning_Mode for more information. Determines the scale and dimension of the returned kerning vector.

@output: akerning :: The kerning vector. This is either in font units, fractional pixels (26.6 format), or pixels for scalable formats, and in pixels for fixed-sizes formats.

Returns
: FreeType error code. 0~means success.
Note
: Only horizontal layouts (left-to-right & right-to-left) are supported by this method. Other layouts, or more sophisticated kernings, are out of the scope of this API function – they can be implemented through format-specific interfaces.

Kerning for OpenType fonts implemented in a 'GPOS' table is not supported; use @FT_HAS_KERNING to find out whether a font has data that can be extracted with FT_Get_Kerning.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3411 of file ftobjs.c.

References FT_DriverRec_::clazz, FT_FaceRec_::driver, error, face, FT_Err_Ok, FT_KERNING_UNFITTED, FT_KERNING_UNSCALED, FT_MulDiv(), FT_MulFix(), FT_PIX_ROUND, FT_Pos, FT_THROW, FT_TRACE5, FT_Driver_ClassRec_::get_kerning, left_glyph, FT_SizeRec_::metrics, orig_y, right_glyph, FT_FaceRec_::size, FT_Size_Metrics_::x_ppem, FT_Size_Metrics_::x_scale, FT_Size_Metrics_::y_ppem, and FT_Size_Metrics_::y_scale.

Referenced by _get_glyph_h_kerning(), FT_Get_PFR_Kerning(), and readttf_kern().

◆ FT_Get_Name_Index()

FT_Get_Name_Index ( FT_Face  face,
const FT_String glyph_name 
)

@function: FT_Get_Name_Index

@description: Return the glyph index of a given glyph name.

@input: face :: A handle to the source face object.

glyph_name :: The glyph name.

Returns
: The glyph index. 0~means 'undefined character code'.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4082 of file ftobjs.c.

References face, FT_FACE_LOOKUP_SERVICE, FT_HAS_GLYPH_NAMES, and check-static-inits::result.

Referenced by FontEngine::charIndex(), CairoFreeTypeFont::create(), LoadFT(), SplashFTFontFile::loadType1Font(), and XeTeXFontInst::mapGlyphToIndex().

◆ FT_Get_Next_Char()

FT_Get_Next_Char ( FT_Face  face,
FT_ULong  char_code,
FT_UInt agindex 
)

@function: FT_Get_Next_Char

@description: Return the next character code in the current charmap of a given face following the value char_code, as well as the corresponding glyph index.

@input: face :: A handle to the source face object.

char_code :: The starting character code.

@output: agindex :: Glyph index of next character code. 0~if charmap is empty.

Returns
: The charmap's next character code.
Note
: You should use this function with @FT_Get_First_Char to walk over all character codes available in a given charmap. See the note for that function for a simple code example.

Note that *agindex is set to~0 when there are no more codes in the charmap.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3785 of file ftobjs.c.

References FT_FaceRec_::charmap, cmap, face, FT_CMAP, FT_FaceRec_::num_glyphs, and check-static-inits::result.

Referenced by _cairo_ft_index_to_ucs4(), af_face_globals_compute_style_coverage(), FontEngine::buildGidToCharCodeMap(), FontEngine::createCustomToUnicodeMap(), FcFreeTypeCharSet(), FcFreeTypeSpacing(), XeTeXFontInst::getLastCharCode(), and FontEngine::getNextChar().

◆ FT_Get_Postscript_Name()

FT_Get_Postscript_Name ( FT_Face  face)

@function: FT_Get_Postscript_Name

@description: Retrieve the ASCII PostScript name of a given face, if available. This only works with PostScript, TrueType, and OpenType fonts.

@input: face :: A handle to the source face object.

Returns
: A pointer to the face's PostScript name. NULL if unavailable.
Note
: The returned pointer is owned by the face and is destroyed with it.

For variation fonts, this string changes if you select a different instance, and you have to call FT_Get_PostScript_Name again to retrieve it. FreeType follows Adobe TechNote #5902, 'Generating PostScript Names for Fonts Using OpenType Font Variations'.

https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html

[Since 2.9] Special PostScript names for named instances are only returned if the named instance is set with @FT_Set_Named_Instance (and the font has corresponding entries in its 'fvar' table). If @FT_IS_VARIATION returns true, the algorithmically derived PostScript name is provided, not looking up special entries for named instances.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4147 of file ftobjs.c.

References Exit(), face, FT_FACE_LOOKUP_SERVICE, NULL, and check-static-inits::result.

Referenced by FcFreeTypeQueryFaceInternal(), getFileNameFromCTFont(), and XeTeXFontMgr_FC::readNames().

◆ FT_Get_SubGlyph_Info()

FT_Get_SubGlyph_Info ( FT_GlyphSlot  glyph,
FT_UInt  sub_index,
FT_Int p_index,
FT_UInt p_flags,
FT_Int p_arg1,
FT_Int p_arg2,
FT_Matrix p_transform 
)

@function: FT_Get_SubGlyph_Info

@description: Retrieve a description of a given subglyph. Only use it if glyph->format is @FT_GLYPH_FORMAT_COMPOSITE; an error is returned otherwise.

@input: glyph :: The source glyph slot.

sub_index :: The index of the subglyph. Must be less than glyph->num_subglyphs.

@output: p_index :: The glyph index of the subglyph.

p_flags :: The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX.

p_arg1 :: The subglyph's first argument (if any).

p_arg2 :: The subglyph's second argument (if any).

p_transform :: The subglyph transformation (if any).

Returns
: FreeType error code. 0~means success.
Note
: The values of *p_arg1, *p_arg2, and *p_transform must be interpreted depending on the flags returned in *p_flags. See the OpenType specification for details.

https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 5501 of file ftobjs.c.

References FT_SubGlyphRec_::arg1, FT_SubGlyphRec_::arg2, error, FT_SubGlyphRec_::flags, FT_ERR, FT_Err_Ok, FT_GLYPH_FORMAT_COMPOSITE, FT_SubGlyphRec_::index, and FT_SubGlyphRec_::transform.

◆ FT_Get_Track_Kerning()

FT_Get_Track_Kerning ( FT_Face  face,
FT_Fixed  point_size,
FT_Int  degree,
FT_Fixed akerning 
)

@function: FT_Get_Track_Kerning

@description: Return the track kerning for a given face object at a given size.

@input: face :: A handle to a source face object.

point_size :: The point size in 16.16 fractional points.

degree :: The degree of tightness. Increasingly negative values represent tighter track kerning, while increasingly positive values represent looser track kerning. Value zero means no track kerning.

@output: akerning :: The kerning in 16.16 fractional points, to be uniformly applied between all glyphs.

Returns
: FreeType error code. 0~means success.
Note
: Currently, only the Type~1 font driver supports track kerning, using data from AFM files (if attached with @FT_Attach_File or @FT_Attach_Stream).

Only very few AFM files come with track kerning data; please refer to Adobe's AFM specification for more details.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3490 of file ftobjs.c.

References degree, error, face, FT_Err_Ok, FT_FACE_FIND_SERVICE, FT_THROW, and point_size.

◆ FT_Init_FreeType()

FT_Init_FreeType ( FT_Library alibrary)

@function: FT_Init_FreeType

@description: Initialize a new FreeType library object. The set of modules that are registered by this function is determined at build time.

@output: alibrary :: A handle to a new library object.

Returns
: FreeType error code. 0~means success.
Note
: In case you want to provide your own memory allocating routines, use @FT_New_Library instead, followed by a call to @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module) and @FT_Set_Default_Properties.

See the documentation of @FT_Library and @FT_Face for multi-threading issues.

If you need reference-counting (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library.

If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is set, this function reads the FREETYPE_PROPERTIES environment variable to control driver properties. See section @properties for more.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/ftdriver.h, /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/ftdriver.h.

Definition at line 199 of file ftinit.c.

References error, FT_Add_Default_Modules(), FT_Done_Memory(), FT_ERROR, FT_New_Library(), FT_New_Memory(), FT_Set_Default_Properties(), and FT_THROW.

Referenced by _cairo_ft_unscaled_font_map_create(), CairoOutputDev::CairoOutputDev(), DecodeArgs(), ExecuteTest(), FcFreeTypeQuery(), FcFreeTypeQueryAll(), FontEngine::FontEngine(), FTopen(), getFileNameFromCTFont(), SplashFTFontEngine::init(), InitFT(), XeTeXFontMgr_FC::initialize(), XeTeXFontInst::initialize(), initversionstring(), main(), and ship_out().

◆ FT_Library_Version()

FT_Library_Version ( FT_Library  library,
FT_Int amajor,
FT_Int aminor,
FT_Int apatch 
)

@function: FT_Library_Version

@description: Return the version of the FreeType library being used. This is useful when dynamically linking to the library, since one cannot use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH.

@input: library :: A source library handle.

@output: amajor :: The major version number.

aminor :: The minor version number.

apatch :: The patch version number.

Note
: The reason why this function takes a library argument is because certain programs implement library initialization in a custom way that doesn't use @FT_Init_FreeType.

In such cases, the library version might not be available before the library object has been created.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 5322 of file ftobjs.c.

References library, major, minor, FT_LibraryRec_::version_major, FT_LibraryRec_::version_minor, and FT_LibraryRec_::version_patch.

Referenced by CairoFontEngine::CairoFontEngine(), DecodeArgs(), InitFT(), initversionstring(), SplashFTFontEngine::SplashFTFontEngine(), and FontEngine::version().

◆ FT_Load_Char()

FT_Load_Char ( FT_Face  face,
FT_ULong  char_code,
FT_Int32  load_flags 
)

@function: FT_Load_Char

@description: Load a glyph into the glyph slot of a face object, accessed by its character code.

@inout: face :: A handle to a target face object where the glyph is loaded.

@input: char_code :: The glyph's character code, according to the current charmap used in the face.

load_flags :: A flag indicating what to load for this glyph. The @FT_LOAD_XXX constants can be used to control the glyph loading process (e.g., whether the outline should be scaled, whether to load bitmaps or not, whether to hint the outline, etc).

Returns
: FreeType error code. 0~means success.
Note
: This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph.

Many fonts contain glyphs that can't be loaded by this function since its glyph indices are not listed in any of the font's charmaps.

If no active cmap is set up (i.e., face->charmap is zero), the call to @FT_Get_Char_Index is omitted, and the function behaves identically to @FT_Load_Glyph.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 1099 of file ftobjs.c.

References char_code, FT_FaceRec_::charmap, face, FT_Get_Char_Index(), FT_Load_Glyph(), FT_THROW, and glyph_index.

◆ FT_Load_Glyph()

FT_Load_Glyph ( FT_Face  face,
FT_UInt  glyph_index,
FT_Int32  load_flags 
)

@function: FT_Load_Glyph

@description: Load a glyph into the glyph slot of a face object.

@inout: face :: A handle to the target face object where the glyph is loaded.

@input: glyph_index :: The index of the glyph in the font file. For CID-keyed fonts (either in PS or in CFF format) this argument specifies the CID value.

load_flags :: A flag indicating what to load for this glyph. The @FT_LOAD_XXX constants can be used to control the glyph loading process (e.g., whether the outline should be scaled, whether to load bitmaps or not, whether to hint the outline, etc).

Returns
: FreeType error code. 0~means success.
Note
: The loaded glyph may be transformed. See @FT_Set_Transform for the details.

For subsetted CID-keyed fonts, FT_Err_Invalid_Argument is returned for invalid CID values (this is, for CID values that don't have a corresponding glyph in the font). See the discussion of the @FT_FACE_FLAG_CID_KEYED flag for more details.

If you receive FT_Err_Glyph_Too_Big, try getting the glyph outline at EM size, then scale it manually and fill it as a graphics operation.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/ftoutln.h, /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/ftoutln.h.

Definition at line 796 of file ftobjs.c.

References FT_LibraryRec_::auto_hinter, FT_ModuleRec_::clazz, FT_RendererRec_::clazz, FT_DriverRec_::clazz, TT_FaceRec_::cvt_program_size, FT_FaceRec_::driver, error, Exit(), face, FALSE, TT_FaceRec_::font_program_size, FT_Bool, FT_BOOL, FT_DRIVER_HAS_HINTER, FT_DRIVER_HINTS_LIGHTLY, FT_Get_Font_Format(), FT_GLYPH_FORMAT_BITMAP, FT_GLYPH_FORMAT_COMPOSITE, FT_GLYPH_FORMAT_OUTLINE, ft_glyphslot_clear(), ft_glyphslot_grid_fit_metrics(), ft_glyphslot_preset_bitmap(), FT_HAS_FIXED_SIZES, FT_HINTING_ADOBE, FT_IS_SCALABLE, FT_IS_SFNT, FT_IS_TRICKY, FT_LOAD_BITMAP_METRICS_ONLY, FT_LOAD_FORCE_AUTOHINT, FT_LOAD_IGNORE_TRANSFORM, FT_LOAD_LINEAR_DESIGN, FT_LOAD_MONOCHROME, FT_LOAD_NO_AUTOHINT, FT_LOAD_NO_BITMAP, FT_LOAD_NO_HINTING, FT_LOAD_NO_RECURSE, FT_LOAD_NO_SCALE, FT_LOAD_RENDER, FT_LOAD_SBITS_ONLY, FT_LOAD_TARGET_MODE, FT_LOAD_VERTICAL_LAYOUT, ft_lookup_glyph_renderer(), FT_MulDiv(), FT_Outline_Check(), FT_Outline_Transform(), FT_Outline_Translate(), FT_Render_Glyph(), FT_RENDER_MODE_LIGHT, FT_RENDER_MODE_MONO, FT_RENDER_MODE_NORMAL, ft_strstr, FT_THROW, FT_TRACE5, FT_Vector_Transform(), FT_FaceRec_::glyph, glyph_index, FT_FaceRec_::internal, FT_ModuleRec_::library, library, FT_AutoHinter_InterfaceRec_::load_glyph, FT_Driver_ClassRec_::load_glyph, TT_FaceRec_::max_profile, TT_MaxProfile_::maxSizeOfInstructions, FT_SizeRec_::metrics, mode, FT_Module_Class_::module_interface, NULL, TT_FaceRec_::num_locations, FT_DriverRec_::root, FT_FaceRec_::size, slot, FT_Face_InternalRec_::transform_flags, FT_Renderer_Class_::transform_glyph, FT_Face_InternalRec_::transform_matrix, TRUE, FT_Matrix_::xx, and FT_Matrix_::yx.

Referenced by _cairo_ft_scaled_glyph_load_glyph(), _get_glyph_contour_point(), _get_glyph_extents(), _get_glyph_v_origin(), af_latin_metrics_init_blues(), af_latin_metrics_init_widths(), af_loader_load_glyph(), FcFreeTypeCharSet(), FT_Get_Advances(), ftc_basic_family_load_bitmap(), ftc_basic_family_load_glyph(), SplashFTFont::getGlyphAdvance(), GnomeFontInstance::getGlyphAdvance(), XeTeXFontInst::getGlyphBounds(), SplashFTFont::getGlyphPath(), GnomeFontInstance::getGlyphPoint(), FontEngine::getHAdvance(), FontEngine::getVAdvance(), gxv_ctlPoint_validate(), gxv_prop_zero_advance_validate(), LoadFT(), LoadTrueTypeChar(), SplashFTFont::makeGlyph(), pdf_kanji_out(), readttf(), TestFace(), and trace_outline().

◆ FT_MulDiv()

◆ FT_MulFix()

FT_MulFix ( FT_Long  a,
FT_Long  b 
)

@function: FT_MulFix

@description: Compute (a*b)/0x10000 with maximum accuracy. Its main use is to multiply a given value by a 16.16 fixed-point factor.

@input: a :: The first multiplier.

b :: The second multiplier. Use a 16.16 factor here whenever possible (see note below).

Returns
: The result of (a*b)/0x10000.
Note
: This function has been optimized for the case where the absolute value of a is less than 2048, and b is a 16.16 scaling factor. As this happens mainly when scaling from notional units to fractional pixels in FreeType, it resulted in noticeable speed improvements between versions 2.x and 1.x.

As a conclusion, always try to place a 16.16 factor as the second argument of this function; this can make a great difference.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 508 of file ftcalc.c.

References a, b, FT_MOVE_SIGN, NEG_LONG, and s.

Referenced by af_glyph_hints_align_strong_points(), af_glyph_hints_reload(), af_iup_interp(), af_latin_hints_compute_blue_edges(), af_latin_hints_compute_edges(), af_latin_metrics_scale_dim(), af_loader_compute_darkening(), af_loader_embolden_glyph_in_slot(), af_loader_load_glyph(), cf2_blues_init(), cf2_computeDarkening(), cf2_doBlend(), cf2_glyphpath_computeIntersection(), cf2_glyphpath_computeOffset(), cf2_glyphpath_hintPoint(), cf2_hint_init(), cf2_hintmap_insertHint(), cf2_hintmap_map(), cf2_interpT2CharString(), cff_blend_build_vector(), cff_slot_load(), cid_slot_load_glyph(), compute_glyph_metrics(), FT_Get_Kerning(), FT_GlyphSlot_Embolden(), FT_Outline_EmboldenXY(), ft_recompute_scaled_metrics(), FT_Request_Metrics(), ft_stroke_border_arcto(), ft_stroker_outside(), FT_Vector_Transform(), load_truetype_glyph(), pfr_glyph_load_rec(), pfr_slot_load(), ps_hints_apply(), psh_blues_scale_zones(), psh_globals_scale_widths(), psh_glyph_interpolate_normal_points(), psh_glyph_interpolate_other_points(), psh_glyph_interpolate_strong_points(), psh_hint_align(), T1_Load_Glyph(), t1_set_mm_blend(), TT_Load_Glyph(), TT_Process_Composite_Component(), TT_Process_Simple_Glyph(), and tt_size_reset().

◆ FT_New_Face()

FT_New_Face ( FT_Library  library,
const char *  filepathname,
FT_Long  face_index,
FT_Face aface 
)

@function: FT_New_Face

@description: Call @FT_Open_Face to open a font by its pathname.

@inout: library :: A handle to the library resource.

@input: pathname :: A path to the font file.

face_index :: See @FT_Open_Face for a detailed description of this parameter.

@output: aface :: A handle to a new face object. If face_index is greater than or equal to zero, it must be non-NULL.

Returns
: FreeType error code. 0~means success.
Note
: Use @FT_Done_Face to destroy the created @FT_Face object (along with its slot and sizes).
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 1468 of file ftobjs.c.

References args, ft_open_face_internal(), FT_OPEN_PATHNAME, FT_THROW, library, and NULL.

Referenced by _cairo_ft_unscaled_font_lock_face(), _ft_new_face_uncached(), ExecuteTest(), FcFreeTypeQuery(), FcFreeTypeQueryAll(), FTopen(), getFileNameFromCTFont(), GnomeFontInstance::GnomeFontInstance(), InitFT(), XeTeXFontInst::initialize(), SplashFTFontFile::loadCIDFont(), SplashFTFontFile::loadTrueTypeFont(), SplashFTFontFile::loadType1Font(), main(), pdf_locate_font(), XeTeXFontMgr_FC::readNames(), and FontEngine::setFont().

◆ FT_New_Memory_Face()

FT_New_Memory_Face ( FT_Library  library,
const FT_Byte file_base,
FT_Long  file_size,
FT_Long  face_index,
FT_Face aface 
)

@function: FT_New_Memory_Face

@description: Call @FT_Open_Face to open a font that has been loaded into memory.

@inout: library :: A handle to the library resource.

@input: file_base :: A pointer to the beginning of the font data.

file_size :: The size of the memory chunk used by the font data.

face_index :: See @FT_Open_Face for a detailed description of this parameter.

@output: aface :: A handle to a new face object. If face_index is greater than or equal to zero, it must be non-NULL.

Returns
: FreeType error code. 0~means success.
Note
: You must not deallocate the memory before calling @FT_Done_Face.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 1493 of file ftobjs.c.

References args, file_size(), ft_open_face_internal(), FT_OPEN_MEMORY, FT_THROW, library, and NULL.

Referenced by _ft_new_face_uncached(), SplashFTFontFile::loadCIDFont(), SplashFTFontFile::loadTrueTypeFont(), and SplashFTFontFile::loadType1Font().

◆ FT_Open_Face()

◆ FT_Reference_Face()

FT_Reference_Face ( FT_Face  face)

@function: FT_Reference_Face

@description: A counter gets initialized to~1 at the time an @FT_Face structure is created. This function increments the counter. @FT_Done_Face then only destroys a face if the counter is~1, otherwise it simply decrements the counter.

This function helps in managing life-cycles of structures that reference @FT_Face objects.

@input: face :: A handle to a target face object.

Returns
: FreeType error code. 0~means success.
Since
: 2.4.2
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 2769 of file ftobjs.c.

References face, FT_Err_Ok, FT_THROW, FT_FaceRec_::internal, and FT_Face_InternalRec_::refcount.

◆ FT_Render_Glyph()

FT_Render_Glyph ( FT_GlyphSlot  slot,
FT_Render_Mode  render_mode 
)

@function: FT_Render_Glyph

@description: Convert a given glyph image to a bitmap. It does so by inspecting the glyph image format, finding the relevant renderer, and invoking it.

@inout: slot :: A handle to the glyph slot containing the image to convert.

@input: render_mode :: The render mode used to render the glyph image into a bitmap. See @FT_Render_Mode for a list of possible values.

If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph with flag @FT_LOAD_COLOR makes FT_Render_Glyph provide a default blending of colored glyph layers associated with the current glyph slot (provided the font contains such layers) instead of rendering the glyph slot's outline. This is an experimental feature; see @FT_LOAD_COLOR for more information.

Returns
: FreeType error code. 0~means success.
Note
: To get meaningful results, font scaling values must be set with functions like @FT_Set_Char_Size before calling FT_Render_Glyph.

When FreeType outputs a bitmap of a glyph, it really outputs an alpha coverage map. If a pixel is completely covered by a filled-in outline, the bitmap contains 0xFF at that pixel, meaning that 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% black (or 0% bright). If a pixel is only 50% covered (value 0x80), the pixel is made 50% black (50% bright or a middle shade of grey). 0% covered means 0% black (100% bright or white).

On high-DPI screens like on smartphones and tablets, the pixels are so small that their chance of being completely covered and therefore completely black are fairly good. On the low-DPI screens, however, the situation is different. The pixels are too large for most of the details of a glyph and shades of gray are the norm rather than the exception.

This is relevant because all our screens have a second problem: they are not linear. 1~+~1 is not~2. Twice the value does not result in twice the brightness. When a pixel is only 50% covered, the coverage map says 50% black, and this translates to a pixel value of 128 when you use 8~bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma~2.2 screens. Due to their non-linearity, they dwell longer in the darks and only a pixel value of about 186 results in 50% brightness – 128 ends up too dark on both bright and dark backgrounds. The net result is that dark text looks burnt-out, pixely and blotchy on bright background, bright text too frail on dark backgrounds, and colored text on colored background (for example, red on green) seems to have dark halos or 'dirt' around it. The situation is especially ugly for diagonal stems like in 'w' glyph shapes where the quality of FreeType's anti-aliasing depends on the correct display of grays. On high-DPI screens where smaller, fully black pixels reign supreme, this doesn't matter, but on our low-DPI screens with all the gray shades, it does. 0% and 100% brightness are the same things in linear and non-linear space, just all the shades in-between aren't.

The blending function for placing text over a background is

dst = alpha * src + (1 - alpha) * dst ,
static enum alpha_handling alpha
Definition: pngtopnm.c:70

which is known as the OVER operator.

To correctly composite an antialiased pixel of a glyph onto a surface,

  1. take the foreground and background colors (e.g., in sRGB space) and apply gamma to get them in a linear space,
  2. use OVER to blend the two linear colors using the glyph pixel as the alpha value (remember, the glyph bitmap is an alpha coverage bitmap), and
  3. apply inverse gamma to the blended pixel and write it back to the image.

Internal testing at Adobe found that a target inverse gamma of~1.8 for step~3 gives good results across a wide range of displays with an sRGB gamma curve or a similar one.

This process can cost performance. There is an approximation that does not need to know about the background color; see https://bel.fi/alankila/lcd/ and https://bel.fi/alankila/lcd/alpcor.html for details.

ATTENTION: Linear blending is even more important when dealing with subpixel-rendered glyphs to prevent color-fringing! A subpixel-rendered glyph must first be filtered with a filter that gives equal weight to the three color primaries and does not exceed a sum of 0x100, see section @lcd_rendering. Then the only difference to gray linear blending is that subpixel-rendered linear blending is done 3~times per pixel: red foreground subpixel to red background subpixel and so on for green and blue.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 4796 of file ftobjs.c.

References FT_FACE_LIBRARY, FT_Render_Glyph_Internal(), FT_THROW, library, and slot.

Referenced by _render_glyph_bitmap(), _render_glyph_outline(), SplashFTFont::makeGlyph(), TestFace(), and TTFprocess().

◆ FT_Request_Size()

FT_Request_Size ( FT_Face  face,
FT_Size_Request  req 
)

@function: FT_Request_Size

@description: Resize the scale of the active @FT_Size object in a face.

@inout: face :: A handle to a target face object.

@input: req :: A pointer to a @FT_Size_RequestRec.

Returns
: FreeType error code. 0~means success.
Note
: Although drivers may select the bitmap strike matching the request, you should not rely on this if you intend to select a particular bitmap strike. Use @FT_Select_Size instead in that case.

The relation between the requested size and the resulting glyph size is dependent entirely on how the size is defined in the source face. The font designer chooses the final size of each glyph relative to this size. For more information refer to 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'.

Contrary to @FT_Set_Char_Size, this function doesn't have special code to normalize zero-valued widths, heights, or resolutions (which lead to errors in most cases).

Don't use this function if you are using the FreeType cache API.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3256 of file ftobjs.c.

References FT_Size_InternalRec_::autohint_metrics, FT_ModuleRec_::clazz, FT_DriverRec_::clazz, FT_FaceRec_::driver, error, face, FT_Err_Ok, FT_HAS_FIXED_SIZES, FT_IS_SCALABLE, FT_Match_Size(), FT_Request_Metrics(), FT_Select_Size(), FT_SIZE_REQUEST_TYPE_MAX, FT_THROW, FT_TRACE5, FT_SizeRec_::internal, FT_SizeRec_::metrics, FT_Module_Class_::module_name, FT_Driver_ClassRec_::request_size, FT_DriverRec_::root, FT_FaceRec_::size, and FT_Size_Metrics_::x_scale.

Referenced by T42_Size_Request().

◆ FT_RoundFix()

FT_RoundFix ( FT_Fixed  a)

@function: FT_RoundFix

@description: Round a 16.16 fixed number.

@input: a :: The number to be rounded.

Returns
: a rounded to the nearest 16.16 fixed integer, halfway cases away from zero.
Note
: The function uses wrap-around arithmetic.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 87 of file ftcalc.c.

References a, and ADD_LONG.

Referenced by cff_parse_font_bbox(), and ps_parser_load_field().

◆ FT_Select_Charmap()

FT_Select_Charmap ( FT_Face  face,
FT_Encoding  encoding 
)

@function: FT_Select_Charmap

@description: Select a given charmap by its encoding tag (as listed in freetype.h).

@inout: face :: A handle to the source face object.

@input: encoding :: A handle to the selected encoding.

Returns
: FreeType error code. 0~means success.
Note
: This function returns an error if no charmap in the face corresponds to the encoding queried here.

Because many fonts contain more than a single cmap for Unicode encoding, this function has some special code to select the one that covers Unicode best ('best' in the sense that a UCS-4 cmap is preferred to a UCS-2 cmap). It is thus preferable to @FT_Set_Charmap in this case.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3521 of file ftobjs.c.

References FT_FaceRec_::charmap, FT_FaceRec_::charmaps, cur, face, find_unicode_charmap(), FT_ENCODING_NONE, FT_ENCODING_UNICODE, FT_Err_Ok, FT_THROW, limit, and FT_FaceRec_::num_charmaps.

Referenced by af_face_globals_compute_style_coverage(), af_latin_metrics_init(), FontEngine::createCustomToUnicodeMap(), FcFreeTypeCharIndex(), FcFreeTypeCharSet(), FcFreeTypeSpacing(), InitFT(), FontEngine::setCustomCharMap(), and FontEngine::setUnicodeCharMap().

◆ FT_Select_Size()

FT_Select_Size ( FT_Face  face,
FT_Int  strike_index 
)

@function: FT_Select_Size

@description: Select a bitmap strike. To be more precise, this function sets the scaling factors of the active @FT_Size object in a face so that bitmaps from this particular strike are taken by @FT_Load_Glyph and friends.

@inout: face :: A handle to a target face object.

@input: strike_index :: The index of the bitmap strike in the available_sizes field of @FT_FaceRec structure.

Returns
: FreeType error code. 0~means success.
Note
: For bitmaps embedded in outline fonts it is common that only a subset of the available glyphs at a given ppem value is available. FreeType silently uses outlines if there is no bitmap for a given glyph index.

For GX and OpenType variation fonts, a bitmap strike makes sense only if the default instance is active (this is, no glyph variation takes place); otherwise, FreeType simply ignores bitmap strikes. The same is true for all named instances that are different from the default instance.

Don't use this function if you are using the FreeType cache API.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3202 of file ftobjs.c.

References FT_ModuleRec_::clazz, FT_DriverRec_::clazz, FT_FaceRec_::driver, error, face, FT_Err_Ok, FT_HAS_FIXED_SIZES, FT_Select_Metrics(), FT_THROW, FT_TRACE5, FT_SizeRec_::metrics, FT_Module_Class_::module_name, FT_FaceRec_::num_fixed_sizes, FT_DriverRec_::root, FT_Driver_ClassRec_::select_size, and FT_FaceRec_::size.

Referenced by FcFreeTypeSpacing(), and T42_Size_Select().

◆ FT_Set_Char_Size()

FT_Set_Char_Size ( FT_Face  face,
FT_F26Dot6  char_width,
FT_F26Dot6  char_height,
FT_UInt  horz_resolution,
FT_UInt  vert_resolution 
)

@function: FT_Set_Char_Size

@description: Call @FT_Request_Size to request the nominal size (in points).

@inout: face :: A handle to a target face object.

@input: char_width :: The nominal width, in 26.6 fractional points.

char_height :: The nominal height, in 26.6 fractional points.

horz_resolution :: The horizontal resolution in dpi.

vert_resolution :: The vertical resolution in dpi.

Returns
: FreeType error code. 0~means success.
Note
: While this function allows fractional points as input values, the resulting ppem value for the given resolution is always rounded to the nearest integer.

If either the character width or height is zero, it is set equal to the other value.

If either the horizontal or vertical resolution is zero, it is set equal to the other value.

A character width or height smaller than 1pt is set to 1pt; if both resolution values are zero, they are set to 72dpi.

Don't use this function if you are using the FreeType cache API.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3331 of file ftobjs.c.

References char_height, char_width, face, FT_Request_Size(), FT_SIZE_REQUEST_TYPE_NOMINAL, FT_Size_RequestRec_::height, FT_Size_RequestRec_::horiResolution, FT_Size_RequestRec_::type, FT_Size_RequestRec_::vertResolution, and FT_Size_RequestRec_::width.

Referenced by _cairo_ft_unscaled_font_set_scale(), ftc_scaler_lookup_size(), FTopen(), GnomeFontInstance::GnomeFontInstance(), InitFT(), and TestFace().

◆ FT_Set_Charmap()

FT_Set_Charmap ( FT_Face  face,
FT_CharMap  charmap 
)

@function: FT_Set_Charmap

@description: Select a given charmap for character code to glyph index mapping.

@inout: face :: A handle to the source face object.

@input: charmap :: A handle to the selected charmap.

Returns
: FreeType error code. 0~means success.
Note
: This function returns an error if the charmap is not part of the face (i.e., if it is not listed in the face->charmaps table).

It also fails if an OpenType type~14 charmap is selected (which doesn't map character codes to glyph indices at all).

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3564 of file ftobjs.c.

References FT_FaceRec_::charmap, FT_FaceRec_::charmaps, cur, face, FT_Err_Ok, FT_Get_CMap_Format(), FT_THROW, limit, and FT_FaceRec_::num_charmaps.

Referenced by af_face_globals_compute_style_coverage(), af_latin_metrics_init(), FontEngine::createCustomToUnicodeMap(), FTC_CMapCache_Lookup(), FTopen(), FontEngine::setCharMap(), and T1_Read_PFM().

◆ FT_Set_Pixel_Sizes()

FT_Set_Pixel_Sizes ( FT_Face  face,
FT_UInt  pixel_width,
FT_UInt  pixel_height 
)

@function: FT_Set_Pixel_Sizes

@description: Call @FT_Request_Size to request the nominal size (in pixels).

@inout: face :: A handle to the target face object.

@input: pixel_width :: The nominal width, in pixels.

pixel_height :: The nominal height, in pixels.

Returns
: FreeType error code. 0~means success.
Note
: You should not rely on the resulting glyphs matching or being constrained to this pixel size. Refer to @FT_Request_Size to understand how requested sizes relate to actual sizes.

Don't use this function if you are using the FreeType cache API.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 3373 of file ftobjs.c.

References face, FT_Request_Size(), FT_SIZE_REQUEST_TYPE_NOMINAL, FT_Size_RequestRec_::height, FT_Size_RequestRec_::horiResolution, FT_Size_RequestRec_::type, FT_Size_RequestRec_::vertResolution, and FT_Size_RequestRec_::width.

Referenced by ftc_scaler_lookup_size(), and SplashFTFont::SplashFTFont().

◆ FT_Set_Transform()

FT_Set_Transform ( FT_Face  face,
FT_Matrix matrix,
FT_Vector delta 
)

@function: FT_Set_Transform

@description: Set the transformation that is applied to glyph images when they are loaded into a glyph slot through @FT_Load_Glyph.

@inout: face :: A handle to the source face object.

@input: matrix :: A pointer to the transformation's 2x2 matrix. Use NULL for the identity matrix. delta :: A pointer to the translation vector. Use NULL for the null vector.

Note
: This function is provided as a convenience, but keep in mind that @FT_Matrix coefficients are only 16.16 fixed point values, which can limit the accuracy of the results. Using floating-point computations to perform the transform directly in client code instead will always yield better numbers.

The transformation is only applied to scalable image formats after the glyph has been loaded. It means that hinting is unaltered by the transformation and is performed on the character size given in the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes.

Note that this also transforms the face.glyph.advance field, but not the values in face.glyph.metrics.

Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 689 of file ftobjs.c.

References delta, face, FT_FaceRec_::internal, matrix(), and FT_Face_InternalRec_::transform_flags.

Referenced by _cairo_ft_unscaled_font_set_scale(), SplashFTFont::getGlyphAdvance(), SplashFTFont::getGlyphPath(), InitFT(), and SplashFTFont::makeGlyph().

◆ FT_Vector_Transform()

FT_Vector_Transform ( FT_Vector vector,
const FT_Matrix matrix 
)

@function: FT_Vector_Transform

@description: Transform a single vector through a 2x2 matrix.

@inout: vector :: The target vector to transform.

@input: matrix :: A pointer to the source 2x2 matrix.

Note
: The result is undefined if either vector or matrix is invalid.
Examples
/dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ktx/libs/freetype/include/freetype/freetype.h, and /dev/shm/warix/file_cache/windows/misc/w32tex-src.tar.xz/ptx/libs/freetype/include/freetype/freetype.h.

Definition at line 683 of file ftoutln.c.

References FT_MulFix(), FT_Pos, and matrix().

Referenced by _cairo_ft_scaled_glyph_vertical_layout_bearing_fix(), af_loader_load_glyph(), FT_Glyph_Transform(), and FT_Load_Glyph().