32#include FT_LCD_FILTER_H
33#include FT_INTERNAL_MEMORY_H
34#include FT_INTERNAL_GLYPH_LOADER_H
35#include FT_INTERNAL_DRIVER_H
36#include FT_INTERNAL_AUTOHINT_H
37#include FT_INTERNAL_SERVICE_H
38#include FT_INTERNAL_CALC_H
40#ifdef FT_CONFIG_OPTION_INCREMENTAL
41#include FT_INCREMENTAL_H
70#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) )
71#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) )
73#define FT_ABS( a ) ( (a) < 0 ? -(a) : (a) )
80#define FT_HYPOT( x, y ) \
83 x > y ? x + ( 3 * y >> 3 ) \
84 : y + ( 3 * x >> 3 ) )
87#define FT_PAD_FLOOR( x, n ) ( (x) & ~FT_TYPEOF( x )( (n) - 1 ) )
88#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + (n) / 2, n )
89#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + (n) - 1, n )
91#define FT_PIX_FLOOR( x ) ( (x) & ~FT_TYPEOF( x )63 )
92#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 )
93#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 )
97#define FT_PAD_ROUND_LONG( x, n ) FT_PAD_FLOOR( ADD_LONG( (x), (n) / 2 ), \
99#define FT_PAD_CEIL_LONG( x, n ) FT_PAD_FLOOR( ADD_LONG( (x), (n) - 1 ), \
101#define FT_PIX_ROUND_LONG( x ) FT_PIX_FLOOR( ADD_LONG( (x), 32 ) )
102#define FT_PIX_CEIL_LONG( x ) FT_PIX_FLOOR( ADD_LONG( (x), 63 ) )
104#define FT_PAD_ROUND_INT32( x, n ) FT_PAD_FLOOR( ADD_INT32( (x), (n) / 2 ), \
106#define FT_PAD_CEIL_INT32( x, n ) FT_PAD_FLOOR( ADD_INT32( (x), (n) - 1 ), \
108#define FT_PIX_ROUND_INT32( x ) FT_PIX_FLOOR( ADD_INT32( (x), 32 ) )
109#define FT_PIX_CEIL_INT32( x ) FT_PIX_FLOOR( ADD_INT32( (x), 63 ) )
116#define ft_isdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U )
118#define ft_isxdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U || \
119 ( (unsigned)(x) - 'a' ) < 6U || \
120 ( (unsigned)(x) - 'A' ) < 6U )
123#define ft_isupper( x ) ( ( (unsigned)(x) - 'A' ) < 26U )
124#define ft_islower( x ) ( ( (unsigned)(x) - 'a' ) < 26U )
126#define ft_isalpha( x ) ( ft_isupper( x ) || ft_islower( x ) )
127#define ft_isalnum( x ) ( ft_isdigit( x ) || ft_isalpha( x ) )
157#define FT_CMAP( x ) ( (FT_CMap)( x ) )
160#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id
161#define FT_CMAP_ENCODING_ID( x ) FT_CMAP( x )->charmap.encoding_id
162#define FT_CMAP_ENCODING( x ) FT_CMAP( x )->charmap.encoding
163#define FT_CMAP_FACE( x ) FT_CMAP( x )->charmap.face
176 FT_UInt32 char_code );
180 FT_UInt32 *achar_code );
186 FT_UInt32 variant_selector );
191 FT_UInt32 variant_selector );
194 (*FT_CMap_VariantListFunc)(
FT_CMap cmap,
198 (*FT_CMap_CharVariantListFunc)(
FT_CMap cmap,
200 FT_UInt32 char_code );
203 (*FT_CMap_VariantCharListFunc)(
FT_CMap cmap,
205 FT_UInt32 variant_selector );
229#define FT_DECLARE_CMAP_CLASS( class_ ) \
230 FT_CALLBACK_TABLE const FT_CMap_ClassRec class_;
232#define FT_DEFINE_CMAP_CLASS( \
243 variantchar_list_ ) \
244 FT_CALLBACK_TABLE_DEF \
245 const FT_CMap_ClassRec class_ = \
278#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
367#ifdef FT_CONFIG_OPTION_INCREMENTAL
374#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
376 FT_Bitmap_LcdFilterFunc lcd_filter_func;
423#define FT_GLYPH_OWN_BITMAP 0x1U
510#define FT_MODULE( x ) ( (FT_Module)(x) )
512#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz
513#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library
514#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory
517#define FT_MODULE_IS_DRIVER( x ) ( FT_MODULE_CLASS( x )->module_flags & \
518 FT_MODULE_FONT_DRIVER )
520#define FT_MODULE_IS_RENDERER( x ) ( FT_MODULE_CLASS( x )->module_flags & \
523#define FT_MODULE_IS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \
526#define FT_MODULE_IS_STYLER( x ) ( FT_MODULE_CLASS( x )->module_flags & \
529#define FT_DRIVER_IS_SCALABLE( x ) ( FT_MODULE_CLASS( x )->module_flags & \
530 FT_MODULE_DRIVER_SCALABLE )
532#define FT_DRIVER_USES_OUTLINES( x ) !( FT_MODULE_CLASS( x )->module_flags & \
533 FT_MODULE_DRIVER_NO_OUTLINES )
535#define FT_DRIVER_HAS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \
536 FT_MODULE_DRIVER_HAS_HINTER )
538#define FT_DRIVER_HINTS_LIGHTLY( x ) ( FT_MODULE_CLASS( x )->module_flags & \
539 FT_MODULE_DRIVER_HINTS_LIGHTLY )
567 const char* mod_name );
571 const char* service_id,
574#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
599#define FT_FACE( x ) ( (FT_Face)(x) )
600#define FT_SIZE( x ) ( (FT_Size)(x) )
601#define FT_SLOT( x ) ( (FT_GlyphSlot)(x) )
603#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver
604#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library
605#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory
606#define FT_FACE_STREAM( x ) FT_FACE( x )->stream
608#define FT_SIZE_FACE( x ) FT_SIZE( x )->face
609#define FT_SLOT_FACE( x ) FT_SLOT( x )->face
611#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph
612#define FT_FACE_SIZE( x ) FT_FACE( x )->size
660#define FT_REQUEST_WIDTH( req ) \
661 ( (req)->horiResolution \
662 ? ( (req)->width * (FT_Pos)(req)->horiResolution + 36 ) / 72 \
665#define FT_REQUEST_HEIGHT( req ) \
666 ( (req)->vertResolution \
667 ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \
737#define FT_RENDERER( x ) ( (FT_Renderer)(x) )
738#define FT_GLYPH( x ) ( (FT_Glyph)(x) )
739#define FT_BITMAP_GLYPH( x ) ( (FT_BitmapGlyph)(x) )
740#define FT_OUTLINE_GLYPH( x ) ( (FT_OutlineGlyph)(x) )
771#define FT_DRIVER( x ) ( (FT_Driver)(x) )
774#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz
912#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
914 FT_Bitmap_LcdFilterFunc lcd_filter_func;
948#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
989#ifndef FT_NO_DEFAULT_RASTER
1004#define FT_DEFINE_OUTLINE_FUNCS( \
1012 static const FT_Outline_Funcs class_ = \
1033#define FT_DEFINE_RASTER_FUNCS( \
1041 const FT_Raster_Funcs class_ = \
1062#define FT_DEFINE_GLYPH( \
1072 FT_CALLBACK_TABLE_DEF \
1073 const FT_Glyph_Class class_ = \
1104#define FT_DECLARE_RENDERER( class_ ) \
1105 FT_EXPORT_VAR( const FT_Renderer_Class ) class_;
1107#define FT_DEFINE_RENDERER( \
1124 FT_CALLBACK_TABLE_DEF \
1125 const FT_Renderer_Class class_ = \
1127 FT_DEFINE_ROOT_MODULE( flags_, \
1173#define FT_DECLARE_MODULE( class_ ) \
1175 const FT_Module_Class class_;
1177#define FT_DEFINE_ROOT_MODULE( \
1202#define FT_DEFINE_MODULE( \
1213 FT_CALLBACK_TABLE_DEF \
1214 const FT_Module_Class class_ = \
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
static LPCWSTR LPCWSTR module_name
FT_BEGIN_HEADER struct FT_Glyph_Metrics_ FT_Glyph_Metrics
enum FT_Render_Mode_ FT_Render_Mode
typedefFT_BEGIN_HEADER struct FT_Glyph_Class_ FT_Glyph_Class
#define FT_Raster_Render_Func
struct FT_RasterRec_ * FT_Raster
enum FT_Glyph_Format_ FT_Glyph_Format
FT_BEGIN_HEADER typedef signed long FT_Pos
FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS]
void(* FT_DebugHook_Func)(void *arg)
FT_UInt(* FT_CMap_CharNextFunc)(FT_CMap cmap, FT_UInt32 *achar_code)
struct FT_ModuleRec_ FT_ModuleRec
struct FT_Slot_InternalRec_ FT_GlyphSlot_InternalRec
FT_Match_Size(FT_Face face, FT_Size_Request req, FT_Bool ignore_width, FT_ULong *size_index)
struct FT_LibraryRec_ FT_LibraryRec
ft_synthesize_vertical_metrics(FT_Glyph_Metrics *metrics, FT_Pos advance)
FT_Select_Metrics(FT_Face face, FT_ULong strike_index)
FT_UInt(* FT_CMap_CharVarIndexFunc)(FT_CMap cmap, FT_CMap unicode_cmap, FT_UInt32 char_code, FT_UInt32 variant_selector)
ft_glyphslot_preset_bitmap(FT_GlyphSlot slot, FT_Render_Mode mode, const FT_Vector *origin)
ft_glyphslot_free_bitmap(FT_GlyphSlot slot)
struct FT_DriverRec_ FT_DriverRec
struct FT_Size_InternalRec_ FT_Size_InternalRec
FT_CMap_Done(FT_CMap cmap)
FT_New_GlyphSlot(FT_Face face, FT_GlyphSlot *aslot)
FT_UInt32 *(* FT_CMap_CharVariantListFunc)(FT_CMap cmap, FT_Memory mem, FT_UInt32 char_code)
FT_Request_Metrics(FT_Face face, FT_Size_Request req)
FT_Int(* FT_CMap_CharVarIsDefaultFunc)(FT_CMap cmap, FT_UInt32 char_code, FT_UInt32 variant_selector)
struct FT_CMap_ClassRec_ FT_CMap_ClassRec
ft_module_get_service(FT_Module module, const char *service_id, FT_Bool global)
FT_UInt(* FT_Face_GetGlyphNameIndexFunc)(FT_Face face, FT_String *glyph_name)
struct FT_CMapRec_ FT_CMapRec
FT_CMap_New(FT_CMap_Class clazz, FT_Pointer init_data, FT_CharMap charmap, FT_CMap *acmap)
FT_Render_Glyph_Internal(FT_Library library, FT_GlyphSlot slot, FT_Render_Mode render_mode)
ft_lcd_padding(FT_BBox *cbox, FT_GlyphSlot slot, FT_Render_Mode mode)
struct FT_CMapRec_ * FT_CMap
FT_Get_Module_Interface(FT_Library library, const char *mod_name)
FT_UInt32 *(* FT_CMap_VariantCharListFunc)(FT_CMap cmap, FT_Memory mem, FT_UInt32 variant_selector)
FT_Done_Memory(FT_Memory memory)
FT_UInt32 *(* FT_CMap_VariantListFunc)(FT_CMap cmap, FT_Memory mem)
struct FT_Face_InternalRec_ FT_Face_InternalRec
FT_Error(* FT_CMap_InitFunc)(FT_CMap cmap, FT_Pointer init_data)
FT_Done_GlyphSlot(FT_GlyphSlot slot)
struct FT_RendererRec_ FT_RendererRec
FT_Lookup_Renderer(FT_Library library, FT_Glyph_Format format, FT_ListNode *node)
ft_glyphslot_alloc_bitmap(FT_GlyphSlot slot, FT_ULong size)
ft_glyphslot_set_bitmap(FT_GlyphSlot slot, FT_Byte *buffer)
void(* FT_CMap_DoneFunc)(FT_CMap cmap)
const struct FT_CMap_ClassRec_ * FT_CMap_Class
FT_UInt(* FT_CMap_CharIndexFunc)(FT_CMap cmap, FT_UInt32 char_code)
FT_Error(* FT_Face_GetGlyphNameFunc)(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
FT_Error(* FT_Renderer_RenderFunc)(FT_Renderer renderer, FT_GlyphSlot slot, FT_Render_Mode mode, const FT_Vector *origin)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLenum GLuint GLint GLenum face
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
static char memory[1024 *256]
FT_CMap_CharNextFunc char_next
FT_CMap_CharVariantListFunc charvariant_list
FT_CMap_CharVarIndexFunc char_var_index
FT_CMap_VariantCharListFunc variantchar_list
FT_CMap_CharVarIsDefaultFunc char_var_default
FT_CMap_CharIndexFunc char_index
FT_CMap_VariantListFunc variant_list
FT_GlyphLoader glyph_loader
FT_Char no_stem_darkening
FT_Matrix transform_matrix
FT_Vector transform_delta
FT_ServiceCacheRec services
FT_Vector lcd_geometry[3]
FT_DebugHook_Func debug_hooks[4]
FT_Module modules[FT_MAX_MODULES]
FT_Renderer_RenderFunc render
FT_Renderer_Class * clazz
FT_Glyph_Class glyph_class
FT_Glyph_Format glyph_format
FT_Raster_Render_Func raster_render
FT_Size_Metrics autohint_metrics
FT_Render_Mode autohint_mode
FT_Bool glyph_transformed