diff -ruN freetype-2.10.0/builds/aros/closeengine.c freetype-2.10.0.aros/builds/aros/closeengine.c
--- freetype-2.10.0/builds/aros/closeengine.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/closeengine.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,30 @@
+/*
+ * Based on the code from the ft2.library from MorphOS, the ttf.library by
+ * Richard Griffith and the type1.library by Amish S. Dave
+ */
+
+#include <aros/libcall.h>
+#include <diskfont/glyph.h>
+
+#include "ftglyphengine.h"
+
+//#define DEBUG 1
+#include <aros/debug.h>
+
+#include LC_LIBDEFS_FILE
+
+AROS_LH1(void, CloseEngine,
+	 AROS_LHA(struct GlyphEngine *, ge, A0),
+	 LIBBASETYPEPTR, LIBBASE, 6, FreeType2
+)
+{
+    AROS_LIBFUNC_INIT
+
+    D(bug("LIB_CloseEngine engine 0x%lx\n", ge));
+
+    FreeGE((FT_GlyphEngine *)ge);
+
+    return;
+    
+    AROS_LIBFUNC_EXIT
+}
diff -ruN freetype-2.10.0/builds/aros/freetype2.conf freetype-2.10.0.aros/builds/aros/freetype2.conf
--- freetype-2.10.0/builds/aros/freetype2.conf	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/freetype2.conf	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,142 @@
+##begin config
+basename FreeType2
+version 6.1
+date 15.03.2019
+##end config
+##begin cdef
+
+#include <diskfont/glyph.h>
+#include <utility/tagitem.h>
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_GLYPH_H
+#include FT_IMAGE_H
+#include FT_SYSTEM_H
+#include FT_TYPES_H
+#include FT_CACHE_H
+#include FT_CACHE_IMAGE_H
+#include FT_CACHE_SMALL_BITMAPS_H
+#include FT_CACHE_CHARMAP_H
+#include FT_TRIGONOMETRY_H
+#include FT_MODULE_H
+#include FT_LIST_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_SFNT_NAMES_H
+
+##end cdef
+## begin functionlist
+# Make room for bullet.library API
+struct GlyphEngine * OpenEngine() ()
+void CloseEngine(struct GlyphEngine *ge) (A0)
+ULONG SetInfoA(struct GlyphEngine *ge, struct TagItem *tags) (A0,A1)
+ULONG ObtainInfoA(struct GlyphEngine *ge, struct TagItem *tags) (A0,A1)
+ULONG ReleaseInfoA(struct GlyphEngine *ge, struct TagItem *tags) (A0,A1)
+.skip 5
+FT_Error FT_Init_FreeType(FT_Library *alibrary)
+FT_Error FT_Done_FreeType(FT_Library library)
+void FT_Library_Version(FT_Library library, FT_Int *amajor, FT_Int *aminor, FT_Int *apatch)
+FT_Error FT_New_Face(FT_Library library, const char *pathname, FT_Long face_index, FT_Face *aface)
+FT_Error FT_Done_Face(FT_Face face)
+FT_Error FT_New_Memory_Face(FT_Library library, const FT_Byte *file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface)
+FT_Error FT_Open_Face(FT_Library library, const FT_Open_Args *args, FT_Long face_index, FT_Face *aface)
+FT_Error FT_Attach_File(FT_Face face, const char *filepathname)
+FT_Error FT_Attach_Stream(FT_Face face, FT_Open_Args *parameters)
+FT_Error FT_Set_Char_Size(FT_Face face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution)
+FT_Error FT_Set_Pixel_Sizes(FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height)
+void FT_Set_Transform(FT_Face face, FT_Matrix *matrix, FT_Vector *delta)
+FT_Error FT_Load_Glyph(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
+FT_UInt FT_Get_Char_Index(FT_Face face, FT_ULong charcode)
+FT_UInt FT_Get_Name_Index(FT_Face face, FT_String *glyph_name)
+FT_Error FT_Load_Char(FT_Face face, FT_ULong char_code, FT_Int32 load_flags)
+FT_Error FT_Render_Glyph(FT_GlyphSlot slot, FT_Render_Mode render_mode)
+FT_Error FT_Get_Kerning(FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning)
+FT_Error FT_Get_Glyph_Name(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
+const char *FT_Get_Postscript_Name(FT_Face face)
+FT_Error FT_Select_Charmap(FT_Face face, FT_Encoding encoding)
+FT_Error FT_Set_Charmap(FT_Face face, FT_CharMap charmap)
+FT_ULong FT_Get_First_Char(FT_Face face, FT_UInt *agindex)
+FT_ULong FT_Get_Next_Char(FT_Face face, FT_ULong charcode, FT_UInt *agindex)
+FT_Error FT_Get_Glyph(FT_GlyphSlot slot, FT_Glyph *aglyph)
+FT_Error FT_Glyph_Copy(FT_Glyph source, FT_Glyph *target)
+FT_Error FT_Glyph_Transform(FT_Glyph glyph, FT_Matrix *matrix, FT_Vector *delta)
+void FT_Glyph_Get_CBox(FT_Glyph glyph, FT_UInt bbox_mode, FT_BBox *acbox)
+FT_Error FT_Glyph_To_Bitmap(FT_Glyph *the_glyph, FT_Render_Mode render_mode, FT_Vector *origin, FT_Bool destroy)
+void FT_Done_Glyph(FT_Glyph glyph)
+FT_Error FT_New_Size(FT_Face face, FT_Size *asize)
+FT_Error FT_Done_Size(FT_Size size)
+FT_Error FT_Activate_Size(FT_Size size)
+FT_Error FTC_Manager_New(FT_Library library, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *amanager)
+FT_Error FTC_Manager_LookupFace(FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface)
+FT_Error FTC_Manager_LookupSize(FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize)
+void FTC_Node_Unref(FTC_Node node, FTC_Manager manager)
+FT_Error FTC_ImageCache_New(FTC_Manager manager, FTC_ImageCache *acache)
+FT_Error FTC_ImageCache_Lookup(FTC_ImageCache cache, FTC_ImageType type, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode)
+FT_Error FTC_SBitCache_New(FTC_Manager manager, FTC_SBitCache *acache)
+FT_Error FTC_SBitCache_Lookup(FTC_SBitCache cache, FTC_ImageType type, FT_UInt gindex, FTC_SBit *ansbit, FTC_Node *anode)
+.skip 2
+void FTC_Manager_Done(FTC_Manager manager)
+void FTC_Manager_Reset(FTC_Manager manager)
+FT_Error FTC_CMapCache_New(FTC_Manager manager, FTC_CMapCache *acache)
+FT_UInt FTC_CMapCache_Lookup(FTC_CMapCache cache, FTC_FaceID face_id, FT_Int cmap_index, FT_UInt32 char_code)
+.skip 3
+FT_Long FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
+FT_Long FT_MulFix(FT_Long a, FT_Long b)
+FT_Long FT_DivFix(FT_Long a, FT_Long b)
+FT_Fixed FT_RoundFix(FT_Fixed a)
+FT_Fixed FT_CeilFix(FT_Fixed a)
+FT_Fixed FT_FloorFix(FT_Fixed a)
+void FT_Vector_Transform(FT_Vector *vector, const FT_Matrix *matrix)
+void FT_Matrix_Multiply(const FT_Matrix *a, FT_Matrix *b)
+FT_Error FT_Matrix_Invert(FT_Matrix *matrix)
+FT_Fixed FT_Sin(FT_Angle angle)
+FT_Fixed FT_Cos(FT_Angle angle)
+FT_Fixed FT_Tan(FT_Angle angle)
+FT_Angle FT_Atan2(FT_Fixed dx, FT_Fixed dy)
+FT_Angle FT_Angle_Diff(FT_Angle angle1, FT_Angle angle2)
+void FT_Vector_Unit(FT_Vector *vec, FT_Angle angle)
+void FT_Vector_Rotate(FT_Vector *vec, FT_Angle angle)
+FT_Fixed FT_Vector_Length(FT_Vector *vec)
+# #FT_Vector_Normalize
+void FT_Vector_Polarize(FT_Vector *vec, FT_Fixed *length, FT_Angle *angle)
+void FT_Vector_From_Polar(FT_Vector *vec, FT_Fixed length, FT_Angle angle)
+void FT_List_Add(FT_List list, FT_ListNode node)
+void FT_List_Insert(FT_List list, FT_ListNode node)
+FT_ListNode FT_List_Find(FT_List list, void *data)
+void FT_List_Remove(FT_List list, FT_ListNode node)
+void FT_List_Up(FT_List list, FT_ListNode node)
+FT_Error FT_List_Iterate(FT_List list, FT_List_Iterator iterator, void *user)
+void FT_List_Finalize(FT_List list, FT_List_Destructor destroy, FT_Memory memory, void *user)
+FT_Error FT_Outline_New(FT_Library library, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline)
+# #FT_Error FT_Outline_New_Internal(FT_Memory memory, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline)
+.skip 1
+FT_Error FT_Outline_Done(FT_Library library, FT_Outline *outline)
+# #FT_Error FT_Outline_Done_Internal(FT_Memory memory, FT_Outline *outline)
+.skip 1
+FT_Error FT_Outline_Copy(FT_Outline *source, FT_Outline *target)
+void FT_Outline_Translate(FT_Outline *outline, FT_Pos xOffset, FT_Pos yOffset)
+void FT_Outline_Transform(FT_Outline *outline, FT_Matrix *matrix)
+void FT_Outline_Reverse(FT_Outline *outline)
+FT_Error FT_Outline_Check(FT_Outline *outline)
+void FT_Outline_Get_CBox(FT_Outline *outline, FT_BBox *acbox)
+FT_Error FT_Outline_Get_BBox(FT_Outline *outline, FT_BBox *abbox)
+FT_Error FT_Outline_Get_Bitmap(FT_Library library, FT_Outline *outline, FT_Bitmap *abitmap)
+FT_Error FT_Outline_Render(FT_Library library, FT_Outline *outline, FT_Raster_Params *params)
+FT_Error FT_Outline_Decompose(FT_Outline *outline, const FT_Outline_Funcs *func_interface, void *user)
+FT_Error FT_Add_Module(FT_Library library, const FT_Module_Class *clazz)
+FT_Module FT_Get_Module(FT_Library library, const char *module_name)
+FT_Error FT_Remove_Module(FT_Library library, FT_Module module)
+FT_Error FT_New_Library(FT_Memory memory, FT_Library *alibrary)
+FT_Error FT_Done_Library(FT_Library library)
+void FT_Set_Debug_Hook(FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook)
+void FT_Add_Default_Modules(FT_Library library)
+FT_Renderer FT_Get_Renderer(FT_Library library, FT_Glyph_Format format)
+FT_Error FT_Set_Renderer(FT_Library library, FT_Renderer renderer, FT_UInt num_params, FT_Parameter *parameters)
+FT_Error FT_Stream_OpenGzip(FT_Stream stream, FT_Stream source)
+void *FT_Get_Sfnt_Table(FT_Face face, FT_Sfnt_Tag tag)
+FT_Error FT_Get_Sfnt_Name(FT_Face face, FT_UInt idx, FT_SfntName *aname )
+FT_UInt FT_Get_Sfnt_Name_Count(FT_Face face)
+FT_Error FT_Load_Sfnt_Table( FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
+FT_Error FT_Select_Size(FT_Face face, FT_Int strike_index)
+const char* FT_Get_X11_Font_Format(FT_Face  face)
+## end functionlist
diff -ruN freetype-2.10.0/builds/aros/ftglyphengine.c freetype-2.10.0.aros/builds/aros/ftglyphengine.c
--- freetype-2.10.0/builds/aros/ftglyphengine.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/ftglyphengine.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,110 @@
+/*
+ * Based on the code from the ft2.library from MorphOS and the ttf.library by
+ * Richard Griffith
+ */
+#include "ftglyphengine.h"
+
+//#define DEBUG 1
+#include <aros/debug.h>
+#include <exec/memory.h>
+#include <diskfont/oterrors.h>
+#include <libraries/codesets.h>
+
+#include <proto/codesets.h>
+#include <proto/exec.h>
+#include <proto/dos.h>
+
+int set_last_error(FT_GlyphEngine *ge,int error)
+{
+    ge->last_error=error;
+    return(error);
+}
+
+void set_default_codepage(FT_GlyphEngine *ge)
+{
+    struct Library *CodesetsBase;
+    struct codeset *sys_codeset;
+    
+    int i;
+
+    for(i=0;i<256;++i)
+	ge->codepage[i]=i;
+
+    D(bug("getting codepage environment var\n"));
+
+    if (GetVar("ftcodepage", (STRPTR)&ge->codepage, 512,
+	   LV_VAR | GVF_BINARY_VAR | GVF_DONT_NULL_TERM) == 512)
+	return;
+
+    CodesetsBase = OpenLibrary("codesets.library", 0);
+    if (!CodesetsBase)
+        return;
+
+    sys_codeset = CodesetsFindA(NULL, NULL);
+    if (sys_codeset) {
+        for (i = 0; i < 256; i++)
+	    ge->codepage[i] = sys_codeset->table[i].ucs4;
+    }
+    
+    CloseLibrary(CodesetsBase);
+}
+
+/* close down and dispose of GlyphEngine */
+void FreeGE(FT_GlyphEngine *ge)
+{
+    if(ge==NULL) return;
+    
+    if(ge->face_established)
+	FT_Done_Face( ge->face );
+
+    FT_Done_Library( ge->engine );
+
+    FreeVec(ge);
+}
+
+/* initialize and setup the GlyphEngine structure */
+FT_GlyphEngine *AllocGE(void)
+{
+    FT_GlyphEngine *ge;
+    FT_Error  error;
+
+    D(bug("Allocating new glyph engine\n"));
+
+    ge=AllocVec(sizeof(FT_GlyphEngine),MEMF_PUBLIC | MEMF_CLEAR);
+
+    D(bug(" at 0x%lx\n",ge));
+
+    if(ge!=NULL)
+    {
+	set_last_error(ge,OTERR_Success);
+
+	D(bug("FT_Init_FreeType( 0x%lx ) ...\n",&ge->engine));
+
+	if ((error = FT_Init_FreeType( &ge->engine ) ))
+	{
+	    D(bug("Error initializing engine, code = %ld.\n",
+		  (LONG) error ));
+
+	    FreeVec(ge);
+	    ge=NULL;
+	}
+	else
+	{
+	    /* pre-inits */
+	    ge->shear_matrix.xx = 0x10000;
+	    ge->shear_matrix.yy = 0x10000;
+	    ge->rotate_matrix = ge->shear_matrix;
+	    ge->matrix = ge->shear_matrix;
+
+	    ge->cmap_index=NO_CMAP_SET;
+
+	    D(bug("Setting default codepage\n"));
+
+	    set_default_codepage(ge);
+	}
+
+	D(bug("Returning new glyph engine 0x%lx\n",ge));
+    }
+
+    return(ge);
+}
diff -ruN freetype-2.10.0/builds/aros/ftglyphengine.h freetype-2.10.0.aros/builds/aros/ftglyphengine.h
--- freetype-2.10.0/builds/aros/ftglyphengine.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/ftglyphengine.h	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,112 @@
+#ifndef _FT_AROS_FTGLYPHENGINE_H
+#define _FT_AROS_FTGLYPHENGINE_H
+
+#include <exec/libraries.h>
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_IMAGE_H
+#include FT_RENDER_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_OUTLINE_H
+
+#define OT_Spec1_FontFile	(OT_Spec1  | OT_Indirect)
+#define OT_Spec2_DefCodePage    (OT_Level1 | 0x102)
+#define OT_Spec2_CodePage       (OT_Level1 | OT_Indirect | 0x102)
+#define OT_Spec3_AFMFile	(OT_Level1 | OT_Indirect | 0x103)
+#define OT_Spec4_Metric		(OT_Level1 | 0x104)
+#define OT_Spec5_BBox		(OT_Level1 | 0x105)
+#define OT_Spec6_FaceNum	(OT_Level1 | 0x106)			// index for .ttc files
+#define OT_Spec7_BMSize		(OT_Level1 | 0x107)			// embbeded bitmap size
+									// 0 == scalable
+#define OT_GlyphMap8Bit_Old	(OT_Level1 | 0x108)
+#define OT_Spec9_Hinter		(OT_Level1 | 0x109)
+
+// Values for OT_Spec4_Metric
+#define METRIC_GLOBALBBOX	0	// default
+#define METRIC_RAW_EM		1
+#define METRIC_ASCEND		2
+#define METRIC_TYPOASCEND	3
+#define METRIC_USWINASCEND	4
+#define METRIC_CUSTOMBBOX	5
+#define METRIC_BMSIZE		6
+
+// Values for OT_Spec9_Hinter
+#define HINTER_DEFAULT		0	// default: postscript hinter for PS,
+					// truetype hinter for TT if bytecode interpreter
+					// is compiled in, autohinter for all other cases.
+#define HINTER_FORCEAUTO	1	// Use autohinter instead of PS or TT hinter.
+#define HINTER_NONE		2	// Use NO hinter (may speed up things, but bad results).
+					// Default for bitmap fonts.
+
+struct FT_GlyphEngine_ {
+    /* diskfont standard */
+    struct Library		*gle_Library;	/* should be our lib base */
+
+    char			*gle_Name;	/* library name "freetype" */
+
+    /* freetype.library specific - private data */
+
+    /* freetype specific entites */
+    FT_Library			engine;
+
+    FT_Face			face;
+    FT_CharMap			char_map;
+
+    /* freetype.library current request/state */
+    int				last_error;
+    int				face_established;
+    char			ft_filename[256];
+    char			base_filename[256];
+    char			afm_filename[256];
+    //char			bold_filename[256];
+    //char			italic_filename[256];
+    //char			bold_italic_filename[256];
+    int				face_num;
+    
+    unsigned long		cmap_index;
+    unsigned long		requested_cmap;
+    unsigned short		platform, encoding;
+    int				request_char;
+    int				request_char2;
+    int				glyph_code;
+
+    int				instance_changed;
+    int				point_size;
+    int				corrected_upem;
+    int				metric_source;
+    int				metric_custom;
+    int				xres, yres;
+    int				hinted;
+
+    FT_Fixed			hold_sin, hold_cos;
+
+    int				do_rotate;
+    FT_Matrix			rotate_matrix;
+
+    int				do_shear;
+    FT_Matrix			shear_matrix;
+
+    FT_Matrix			matrix;
+
+    //	int			do_embold;
+    //	int			embold_x, embold_y;
+
+    //	int			bold_sig, italic_sig;
+
+    unsigned short int		codepage[256];
+
+    struct GlyphMap		*GMap;
+};
+
+typedef struct FT_GlyphEngine_ FT_GlyphEngine ;
+
+int set_last_error(FT_GlyphEngine *, int);
+void set_default_codepage(FT_GlyphEngine *);
+void FreeGE(FT_GlyphEngine *);
+FT_GlyphEngine *AllocGE(void);
+
+/* flag that we need to pick an encoding table */
+#define NO_CMAP_SET 0xFFFFFFFF
+
+#endif /*_FT_AROS_FTGLYPHENGINE_H*/
diff -ruN freetype-2.10.0/builds/aros/glyph.c freetype-2.10.0.aros/builds/aros/glyph.c
--- freetype-2.10.0/builds/aros/glyph.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/glyph.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,531 @@
+/*
+ * Based on the code from the ft2.library from MorphOS and the ttf.library by
+ * Richard Griffith
+ */
+#include "ftglyphengine.h"
+#include "glyph.h"
+
+//#define DEBUG 1
+#include <aros/debug.h>
+#include <diskfont/oterrors.h>
+#include <diskfont/glyph.h>
+#include <exec/memory.h>
+
+/* convert freetype FT_F26Dot6 to Amiga FIXED */
+#define F266toFX(x)  (((x)<<10))
+
+/* convert freetype FT_F26Dot6 to Integer */
+//#define F266Round(x) (((x)+32>>6))
+//#define F266Floor(x) (((x)>>6))
+//#define F266Ceil(x)  ((((x)+63)>>6))
+#define F266Round(x) ((((x)+0x10000000+32)>>6)-0x00400000)
+#define F266Floor(x) ((((x)+0x10000000)>>6)-0x00400000)
+#define F266Ceil(x)  ((((x)+0x10000000+63)>>6)-0x00400000)
+
+void set_transform(FT_GlyphEngine *ge)
+{
+    if (ge->do_shear)
+    {
+	if (ge->do_rotate)
+	{
+	    ge->matrix = ge->shear_matrix;
+	    FT_Matrix_Multiply(&ge->rotate_matrix, &ge->matrix);
+	    FT_Set_Transform(ge->face, &ge->matrix, NULL);
+	}
+	else
+	    FT_Set_Transform(ge->face, &ge->shear_matrix, NULL);
+    }
+    else if (ge->do_rotate)
+	FT_Set_Transform(ge->face, &ge->rotate_matrix, NULL);
+    else
+	FT_Set_Transform(ge->face, NULL, NULL);
+}
+
+
+int char_to_glyph(FT_GlyphEngine *ge,int charcode)
+{
+    return FT_Get_Char_Index(ge->face, charcode & 0xffffff00 ? charcode : ge->codepage[charcode]);
+}
+
+
+int UnicodeToGlyphIndex(FT_GlyphEngine *ge)
+{
+    ge->glyph_code = FT_Get_Char_Index(ge->face,
+				       ge->request_char & 0xffffff00 ? ge->request_char : ge->codepage[ge->request_char]);
+    D(bug("Unicode(%d)=index(%d)=%d\n", ge->request_char,
+	  ge->request_char & 0xffffff00 ? ge->request_char : ge->codepage[ge->request_char],
+	  ge->glyph_code));
+
+    return ge->glyph_code;
+}
+
+
+int SetInstance(FT_GlyphEngine *ge)
+{
+    FT_Error error;
+    long yMin, yMax, alt_point, a, d;
+
+    /* set instance characteristics */
+    error = FT_Set_Char_Size( ge->face, 0, ge->point_size * 64, ge->xres, ge->yres );
+    if (error)
+    {
+	D(bug("Could not set resolution.\n"));
+	return set_last_error(ge,OTERR_Failure);
+    }
+
+    D(bug("units_per_EM %d metric source %d\n", ge->face->units_per_EM, ge->metric_source));
+
+    ge->corrected_upem = ge->face->units_per_EM;
+
+    /* adjust point size according to chosen metric source
+     * each has pros and cons, so user gets to decide
+     */
+    if(ge->metric_source==METRIC_RAW_EM)
+    {
+	/* (nearly) raw em */
+	alt_point = ge->point_size - 1;
+	ge->corrected_upem = ge->face->units_per_EM;
+    }
+    else
+    {
+	TT_OS2 *os2 = NULL;
+	
+	if (ge->metric_source == METRIC_TYPOASCEND ||
+	    ge->metric_source == METRIC_USWINASCEND)
+	{
+	    os2 = FT_Get_Sfnt_Table(ge->face, ft_sfnt_os2);
+	    if (!os2)
+	    {
+		D(bug("No os2 table\n"));
+		ge->metric_source = METRIC_GLOBALBBOX;
+	    }
+	}
+
+	switch(ge->metric_source)
+	{
+	case METRIC_ASCEND: /* Horizontal Header */
+	    yMax = ge->face->ascender;
+	    yMin = ge->face->descender;
+	    break;
+
+	case METRIC_TYPOASCEND: /* Typo */
+	    yMax = os2->sTypoAscender;
+	    yMin = os2->sTypoDescender;
+	    break;
+
+	case METRIC_USWINASCEND: /* usWin */
+	    yMax = os2->usWinAscent;
+	    yMin = os2->usWinDescent;
+	    break;
+
+	case METRIC_CUSTOMBBOX:	/* custom bbox */
+	    yMin=(WORD)ge->metric_custom;
+	    yMax=ge->metric_custom >> 16;
+	    break;
+
+	case METRIC_BMSIZE:
+	    yMin=0;
+	    yMax=ge->face->height;
+	    break;
+	    
+	default:
+	case METRIC_GLOBALBBOX:	/* global bbox */
+	    yMin=ge->face->bbox.yMin;
+	    yMax=ge->face->bbox.yMax;
+	    break;
+	}
+
+	D(bug("yMin %d yMax %d\n", yMin, yMax));
+
+	/* normalize, provide defaults for bad fonts */
+	if(yMax==0)
+	{
+	    /* not set, default */
+	    yMin=ge->face->bbox.yMin;
+	    yMax=ge->face->bbox.yMax;
+	}
+	if(yMin>0)
+	    yMin = -yMin;
+
+	D(bug("yMin %d yMax %d\n", yMin, yMax));
+
+	/* split min/max to whole units on each side of baseline */
+	ge->corrected_upem = yMax-yMin;
+
+	D(bug("corrected_upem %d\n", ge->corrected_upem));
+
+	alt_point = (ge->face->units_per_EM * ge->point_size) / (yMax-yMin);
+
+	a= alt_point * yMax / (yMax-yMin);
+	d= alt_point * (0-yMin) / (yMax-yMin);
+	alt_point = alt_point - (alt_point - a - d);
+    }
+
+    D(bug("alt_point %d\n", alt_point));
+
+    error = FT_Set_Pixel_Sizes(ge->face, alt_point, 0);
+    if (error)
+    {
+	D(bug("Could not set point size.\n"));
+	return set_last_error(ge,OTERR_Failure);
+    }
+
+    //FT_Get_Instance_Metrics(ge->instance, &ge->imetrics );
+
+    set_transform(ge);
+
+    ge->instance_changed=FALSE;
+
+    //FT_Select_Charmap(ge->face, ft_encoding_unicode);
+    //ChooseEncoding(ge);
+
+    return set_last_error(ge,OTERR_Success);
+}
+
+/* render a glyph into GMap of engine
+   caller in expected to have allocated GMap space (but not bitmap)
+ */
+void RenderGlyph(FT_GlyphEngine *ge, int glyph_8bits)
+{
+    FT_Error error;
+    FT_Vector offset;
+    FT_Glyph_Metrics *metrics;
+    FT_Bitmap bitmap;
+    FT_Raster_Params params;
+    FT_BBox bbox;
+    struct GlyphMap *GMap = ge->GMap;
+
+    /* these two values indicate no glyph rendered */
+    GMap->glm_Width = 0;
+    GMap->glm_BitMap = NULL;
+
+    D(bug("RenderGlyph(%d, %d, %d)\n", ge->request_char, ge->glyph_code, glyph_8bits));
+
+    error = FT_Load_Glyph(ge->face,
+			  ge->glyph_code,
+			  FT_LOAD_NO_BITMAP);
+    /*TTLOAD_SCALE_GLYPH); */ /* test disable hinting */
+
+    if(error || ge->face->glyph->format != ft_glyph_format_outline)
+    {
+	D(bug("Error loading glyph %ld  code = %ld.\n",
+	      (LONG)ge->request_char, (LONG)error ));
+	return;
+    }
+
+    FT_Outline_Get_CBox(&ge->face->glyph->outline, &bbox);
+
+    metrics = &ge->face->glyph->metrics;
+
+    /* how big is glyph */
+    bitmap.width = F266Ceil(bbox.xMax) - F266Floor(bbox.xMin);
+    bitmap.rows  = F266Ceil(bbox.yMax) - F266Floor(bbox.yMin);
+
+    D(bug("BBox %f %f %f %f bitmap %d×%d\n",
+	  bbox.xMin/64.0, bbox.yMin/64.0, bbox.xMax/64.0, bbox.yMax/64.0,
+	  bitmap.width, bitmap.rows));
+
+    if (glyph_8bits)
+    {
+	bitmap.pixel_mode = FT_PIXEL_MODE_GRAY;
+	bitmap.pitch = bitmap.width;
+	bitmap.num_grays = 256;
+	params.flags = FT_RASTER_FLAG_AA;
+    }
+    else
+    {
+	/* adjust bitmap to 4 byte (32 bit) alignment for width */
+	bitmap.width = (bitmap.width + 31) & ~31;
+	bitmap.pixel_mode = FT_PIXEL_MODE_MONO;
+	bitmap.pitch = bitmap.width >> 3; /* byte count */
+	params.flags = FT_RASTER_FLAG_DEFAULT;
+    }
+
+    /*bitmap.bitmap= AllocPooled(ge->GlyphPool,(ULONG)bitmap.size); */
+    
+    /* stegerg: Always add 1 to allocation size to prevent debugging tools
+                to warn about AllocVec(0) calls */
+		
+    bitmap.buffer = AllocVec(bitmap.rows*bitmap.pitch+1, MEMF_PUBLIC | MEMF_CLEAR);
+
+    if (bitmap.buffer == NULL)
+    {
+	D(bug("bitmap allocation for %ld bytes failed\n", bitmap.rows*bitmap.pitch));
+	return;
+    }
+
+    offset.x = -F266Floor(bbox.xMin) << 6;
+    offset.y = -F266Floor(bbox.yMin) << 6;
+
+    FT_Outline_Translate(&ge->face->glyph->outline, offset.x, offset.y);
+
+    params.target = &bitmap;
+
+    error = FT_Outline_Render(ge->engine, &ge->face->glyph->outline, &params);
+    if(error)
+    {
+	D(bug("Error rendering glyph %ld  code = %ld.\n",
+	      (LONG)ge->request_char, (LONG) error ));
+	FreeVec(bitmap.buffer);
+	return;
+    }
+
+    GMap->glm_BMModulo    = bitmap.pitch;
+    GMap->glm_BMRows      = bitmap.rows;
+    GMap->glm_BlackLeft   = 0;
+    GMap->glm_BlackTop    = 0;
+    GMap->glm_BlackWidth  = F266Ceil(bbox.xMax) - F266Floor(bbox.xMin);
+    GMap->glm_BlackHeight = bitmap.rows;
+    GMap->glm_XOrigin     = F266toFX(-bbox.xMin);
+    GMap->glm_YOrigin     = F266toFX(bbox.yMax);
+    GMap->glm_X0          = offset.x >> 6;//F266Ceil(-bbox.xMin);
+    GMap->glm_Y0          = F266Ceil(bbox.yMax);
+    GMap->glm_X1          = F266Ceil(ge->face->glyph->advance.x - bbox.xMin);
+    GMap->glm_Y1          = F266Ceil(-ge->face->glyph->advance.y + bbox.yMax);
+
+#if 0
+    if (GMap->glm_X0 < 0)
+    {
+	D(bug("####### X0 < 0\n"));
+	GMap->glm_X0 = 0;
+    }
+    if (GMap->glm_X0 > GMap->glm_BlackWidth)
+    {
+	D(bug("####### X0 > W\n"));
+	GMap->glm_X0 = GMap->glm_BlackWidth;
+    }
+    if (GMap->glm_Y0 >= GMap->glm_BlackHeight)
+    {
+	D(bug("####### Y0 > H\n"));
+	GMap->glm_Y0 = GMap->glm_BlackHeight -1;
+	GMap->glm_Y1 = GMap->glm_BlackHeight -1;
+    }
+    if (GMap->glm_Y0 < 0)
+    {
+	D(bug("####### Y0 < 0\n"));
+	GMap->glm_Y0 = 0;
+    }
+#endif
+
+    /* horizontal pixels per EM square as 16.16 */
+    GMap->glm_Width =
+	(metrics->horiAdvance << 10) /
+	(( ge->face->size->metrics.x_ppem
+	   * ge->corrected_upem)
+	 / ge->face->units_per_EM);
+
+
+    GMap->glm_BitMap      = bitmap.buffer;
+
+#if 0
+    D(bug("render glyph %ld to %ld\n",(LONG)ge->glyph_code,(LONG)ge->request_char));
+
+    //D(bug("  bbox.xMin=%lx  ",(LONG)ge->metrics.bbox.xMin));
+    //D(bug("bbox.yMin=%lx  ",(LONG)ge->metrics.bbox.yMin));
+    //D(bug("bbox.xMax=%lx  ",(LONG)ge->metrics.bbox.xMax));
+    //D(bug("bbox.yMax=%lx\n",(LONG)ge->metrics.bbox.yMax));
+
+    D(bug("   horiBearingX=%lx  ",(LONG)metrics->horiBearingX));
+    D(bug("horiBearingY=%lx\n",(LONG)metrics->horiBearingY));
+    
+    D(bug("   vertBearingX=%lx  ",(LONG)metrics->vertBearingX));
+    D(bug("vertBearingY=%lx\n",(LONG)metrics->vertBearingY));
+
+    D(bug("   horiAdvance=%lx  ",(LONG)metrics->horiAdvance));
+    D(bug("vertAdvance=%lx\n",(LONG)metrics->vertAdvance));
+#endif
+#if 1
+    D(bug(" glm_BMModulo    = %lx\n",(LONG)GMap->glm_BMModulo));
+    D(bug(" glm_BMRows      = %lx\n",(LONG)GMap->glm_BMRows));
+    D(bug(" glm_BlackLeft   = %lx\n",(LONG)GMap->glm_BlackLeft));
+    D(bug(" glm_BlackTop    = %lx\n",(LONG)GMap->glm_BlackTop));
+    D(bug(" glm_BlackWidth  = %lx\n",(LONG)GMap->glm_BlackWidth));
+    D(bug(" glm_BlackHeight = %lx\n",(LONG)GMap->glm_BlackHeight));
+    
+    D(bug(" glm_XOrigin     = %lx\n",(LONG)GMap->glm_XOrigin));
+    D(bug(" glm_YOrigin     = %lx\n",(LONG)GMap->glm_YOrigin));
+    D(bug(" glm_X0          = %lx\n",(LONG)GMap->glm_X0));
+    D(bug(" glm_Y0          = %lx\n",(LONG)GMap->glm_Y0));
+
+    D(bug(" glm_X1          = %lx\n",(LONG)GMap->glm_X1));
+    D(bug(" glm_Y1          = %lx\n",(LONG)GMap->glm_Y1));
+    D(bug(" glm_Width       = %lx\n",(LONG)GMap->glm_Width));
+#endif
+}
+
+
+/* given an Amiga character, return a filled in GlyphMap */
+struct GlyphMap *GetGlyph(FT_GlyphEngine *ge, int glyph_8bits)
+{
+    if (ge->instance_changed)
+    {
+	/* reset everything first */
+	if(SetInstance(ge)!=OTERR_Success)
+	    return NULL;
+    }
+
+    /*if(ge->cmap_index==NO_CMAP_SET)
+     {
+     //if(ChooseEncoding(ge)!=0)
+     return NULL;
+     }*/
+
+#if 0
+    if(ge->request_char>255) {			/* out of range */
+	XeroGlyph(ge);
+	return ge->GMap;
+    }
+#endif
+
+    UnicodeToGlyphIndex(ge);
+    if(ge->glyph_code)
+    {	/* has code, try to render */
+	/* first, get a GlyphMap structure to fill in */
+	ge->GMap=AllocVec((ULONG)sizeof(struct GlyphMap),
+			  MEMF_PUBLIC | MEMF_CLEAR);
+	if(ge->GMap)
+	    RenderGlyph(ge, glyph_8bits);
+    }
+    else
+    {
+	set_last_error(ge,OTERR_UnknownGlyph);
+	return NULL;
+    }
+
+    /* odd ball glyph (includes SPACE, arrrgghhh) mimic bullet */
+    if (ge->GMap->glm_Width == 0)
+    {
+	set_last_error(ge,OTERR_UnknownGlyph);
+	FreeVec(ge->GMap);
+	ge->GMap = NULL;
+	return NULL;
+    }
+
+    return ge->GMap;
+}
+
+/* muck which has to do with opening a face */
+static int OpenFace(FT_GlyphEngine *ge, char *new_ft_filename)
+{
+    FT_Error error;
+
+    ge->instance_changed=TRUE;	/* instance needs to be changed */
+
+    if(ge->face_established)
+    {
+	/* we have an existing face, if same file keep it */
+	if(stricmp(ge->ft_filename,new_ft_filename)==0)
+	    return set_last_error(ge,OTERR_Success);
+
+	/* it is different, free the old one first */
+	FT_Done_Face( ge->face );
+	//ge->KernPairs = -1;
+    }
+
+    ge->face_established=FALSE;
+
+    strcpy(ge->ft_filename,new_ft_filename);
+    D(bug("OpenFace %ls.\n",ge->ft_filename));
+
+    error = FT_New_Face(ge->engine, ge->ft_filename, ge->face_num, &ge->face);
+    if (error)
+    {
+	D(bug("Error while opening %s, error code = %lx.\n",
+	      ge->ft_filename, (LONG)error));
+	return set_last_error(ge,OTERR_BadFace);
+    }
+
+    if (ge->afm_filename[0])
+    {
+	error = FT_Attach_File(ge->face, ge->afm_filename);
+	if (error)
+	{
+	    D(bug("Error %d while attaching %s\n", error, ge->afm_filename));
+	    FT_Done_Face(ge->face);
+	    return set_last_error(ge,OTERR_BadFace);
+	}
+    }
+
+    ge->face_established=TRUE;
+
+    return set_last_error(ge,OTERR_Success);
+}
+
+void switch_family(FT_GlyphEngine *engine)
+{
+#if 0
+    int pick_bi;
+    
+    /* switch files for family support if needed */
+    pick_bi=engine->bold_sig + engine->italic_sig;
+
+    switch(pick_bi)
+    {
+    case 0: /* normal */
+	/* make sure we are set to base name */
+	if(strcmp(engine->base_filename,engine->ft_filename))
+	{
+	    OpenFace(engine,engine->base_filename);
+	    D(bug("switch_family: revert to base\n"));
+	}
+	break;
+	
+    case 1:	/* just italic */
+	if(strlen(engine->italic_filename))
+	{
+	    if(strcmp(engine->italic_filename,engine->ft_filename))
+	    {
+		OpenFace(engine,engine->italic_filename);
+		D(bug("switch_family: set italic\n"));
+	    }
+	    engine->do_shear=0;
+	}
+	break;
+	
+    case 2: /* just bold */
+	if(strlen(engine->bold_filename))
+	{
+	    if(strcmp(engine->bold_filename,engine->ft_filename))
+	    {
+		OpenFace(engine,engine->bold_filename);
+		D(bug("switch_family: set bold\n"));
+	    }
+	    engine->do_embold=0;
+	}
+	break;
+	
+    case 3: /* bold and italic */
+	if(strlen(engine->bold_italic_filename))
+	{
+	    if(strcmp(engine->bold_italic_filename,engine->ft_filename))
+	    {
+		OpenFace(engine,engine->bold_italic_filename);
+		D(bug("switch_family: set bold italic\n"));
+	    }
+	    engine->do_shear=0;
+	    engine->do_embold=0;
+	}
+	else
+	{ /* no file, choose other as basis? */
+	    /* we have a bold, use it and keep transform */
+	    if(strlen(engine->bold_filename))
+	    {
+		if(strcmp(engine->bold_filename,engine->ft_filename))
+		{
+		    OpenFace(engine,engine->bold_filename);
+		    D(bug("switch_family: set bold, algo italic\n"));
+		}
+		engine->do_embold=0;
+	    }
+	}
+	break;
+    }
+#endif
+
+    /* just incase we slip through */
+    if(engine->face_established==FALSE)
+	OpenFace(engine,engine->base_filename);
+
+    return;
+}
+
diff -ruN freetype-2.10.0/builds/aros/glyph.h freetype-2.10.0.aros/builds/aros/glyph.h
--- freetype-2.10.0/builds/aros/glyph.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/glyph.h	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,13 @@
+#ifndef _FT_AROS_GLYPH_H
+#define _FT_AROS_GLYPH_H
+
+#include "ftglyphengine.h"
+
+void set_transform(FT_GlyphEngine *);
+int char_to_glyph(FT_GlyphEngine *, int);
+int UnicodeToGlyphIndex(FT_GlyphEngine *);
+int SetInstance(FT_GlyphEngine *);
+void RenderGlyph(FT_GlyphEngine *, int);
+void switch_family(FT_GlyphEngine *);
+
+#endif /*_FT_AROS_GLYPH_H*/
diff -ruN freetype-2.10.0/builds/aros/kerning.c freetype-2.10.0.aros/builds/aros/kerning.c
--- freetype-2.10.0/builds/aros/kerning.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/kerning.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,170 @@
+/*
+ * Based on the code from the ft2.library from MorphOS and the ttf.library by
+ * Richard Griffith
+ */
+#include "kerning.h"
+#include "glyph.h"
+
+//#define DEBUG 1
+#include <aros/debug.h>
+#include <exec/memory.h>
+#include <diskfont/oterrors.h>
+#include <diskfont/glyph.h>
+
+#include <proto/exec.h>
+#include <proto/alib.h>
+
+void FreeWidthList(FT_GlyphEngine *ge,struct MinList *list)
+{
+    struct GlyphWidthEntry *work_node, *next_node;
+
+    //D(bug("FreeWidthList at %lx\n",list));
+    if (list == NULL)
+	return;
+
+    work_node = (struct GlyphWidthEntry *)(list->mlh_Head);
+    while ((next_node =
+	   (struct GlyphWidthEntry *)(work_node->gwe_Node.mln_Succ)))
+    {
+	FreeMem(work_node, sizeof(struct GlyphWidthEntry));
+	work_node = next_node;
+    }
+    FreeMem(list, sizeof(struct MinList));
+}
+
+
+struct MinList *GetWidthList(FT_GlyphEngine *ge)
+{
+    struct MinList *gw;
+    struct GlyphWidthEntry *node;
+    ULONG howwide;
+    int hold_start, c_start, c_stop, i, j;
+    ULONG units_per_em;
+    FT_Glyph_Metrics *metrics;
+
+    if (ge->instance_changed)
+    {
+	/* reset everything first */
+	if(SetInstance(ge)!=OTERR_Success)
+	    return NULL;
+    }
+    /*if(ge->cmap_index==NO_CMAP_SET)
+     {
+     //if(ChooseEncoding(ge)!=0)
+     return(NULL);
+     }*/
+
+    gw = (struct MinList *) AllocMem(sizeof(struct MinList), MEMF_CLEAR);
+
+    if(gw==NULL)
+    {
+	D(bug("GetWidthList - AllocMem for list failed\n"));
+	set_last_error(ge,OTERR_NoMemory);
+	return NULL;
+    }
+    NewList((struct List *)gw);
+
+#if 0
+    units_per_em=ge->properties.header->Units_Per_EM;
+    int yMin,yMax;
+
+    yMin=ge->properties.header->yMin; if(yMin>0) yMin = 0-yMin;
+    yMax=ge->properties.header->yMax;
+    units_per_em=yMax-yMin;
+#endif
+
+    units_per_em = ge->corrected_upem;
+
+    hold_start=ge->request_char;
+    c_start=ge->request_char;
+    c_stop=ge->request_char2;
+    if(c_start>c_stop)
+    {
+	/* just in case */
+	c_start=ge->request_char2;
+	c_stop=ge->request_char;
+    }
+    D(bug("GetWidthList - from %ld to %ld\n",c_start,c_stop));
+
+    for(i=c_start;i<=c_stop;i++)
+    {
+	ge->request_char=i;
+	j=UnicodeToGlyphIndex(ge);
+
+	if(j==0)
+	{
+	    D(bug("GetWidthList - no glyph %ld i=%ld p=%ld e=%ld\n"
+		  ,i, ge->cmap_index,ge->platform, ge->encoding));
+	    continue;
+	}
+
+	if(FT_Load_Glyph(ge->face,j,FT_LOAD_DEFAULT))
+	{
+	    D(bug("Error loading glyph %ld.\n",(LONG)j));
+	    howwide=0;
+	}
+	else
+	{
+	    //FT_Get_Glyph_Metrics( ge->glyph, &ge->metrics );
+	    metrics = &ge->face->glyph->metrics;
+
+    	#if 0	    
+	    howwide=((metrics->horiAdvance)<<16)/units_per_em;
+	#else
+    	    howwide = (metrics->horiAdvance << 10) /
+	    	      (( ge->face->size->metrics.x_ppem * units_per_em) / ge->face->units_per_EM);
+	#endif
+	}
+
+	node = AllocMem(sizeof(struct GlyphWidthEntry), MEMF_CLEAR);
+	if(node==NULL)
+	{
+	    D(bug("GetWidthList - AllocMem for %ld failed\n",i));
+	    FreeWidthList(ge,gw);
+	    set_last_error(ge,OTERR_NoMemory);
+	    ge->request_char=hold_start;
+	    return NULL;
+	}
+
+	node->gwe_Code = i;	/* amiga char */
+	/* character advance, as fraction of em width */
+	node->gwe_Width = howwide;
+
+	//		D(bug("GetWidthList - glyph %ld width %lx\n",
+	//			node->gwe_Code,	node->gwe_Width	));
+
+	AddTail( (struct List *)gw, (struct Node *)node );
+    }
+
+    ge->request_char=hold_start;
+    return gw;
+}
+
+
+int get_kerning_dir(FT_GlyphEngine *ge)
+{
+    //FT_Kern_Subtable *k;
+    //FT_Kern_0_Pair   *p;	/* a table of nPairs 'pairs' */
+    
+    //int i,kern_value;
+    FT_Vector kerning;
+    FT_UShort l,r;		/* left and right indexes */
+
+    /* instance change may be irrelevant, but just in case */
+    if (ge->instance_changed)
+    {
+	/* reset everything first */
+	if(SetInstance(ge)!=OTERR_Success)
+	    return 0;
+    }
+
+    /* get left and right glyph indexes */
+    l=char_to_glyph(ge,ge->request_char);
+    r=char_to_glyph(ge,ge->request_char2);
+    if(l==0 || r==0) return(0);	/* no chance */
+
+    if (FT_Get_Kerning(ge->face, l, r, ft_kerning_unscaled, &kerning))
+	return 0;
+
+    return (-kerning.x << 16) / ge->corrected_upem;
+}
diff -ruN freetype-2.10.0/builds/aros/kerning.h freetype-2.10.0.aros/builds/aros/kerning.h
--- freetype-2.10.0/builds/aros/kerning.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/kerning.h	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,12 @@
+#ifndef _FT_AROS_KERNING_H
+#define _FT_AROS_KERNING_H
+
+#include "ftglyphengine.h"
+
+#include <exec/lists.h>
+
+void FreeWidthList(FT_GlyphEngine *, struct MinList *);
+struct MinList *GetWidthList(FT_GlyphEngine *);
+int get_kerning_dir(FT_GlyphEngine *);
+
+#endif /*_FT_AROS_KERNING_H*/
diff -ruN freetype-2.10.0/builds/aros/obtaininfoa.c freetype-2.10.0.aros/builds/aros/obtaininfoa.c
--- freetype-2.10.0/builds/aros/obtaininfoa.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/obtaininfoa.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,150 @@
+/*
+ * Based on the code from the ft2.library from MorphOS, the ttf.library by
+ * Richard Griffith and the type1.library by Amish S. Dave
+ */
+#include "ftglyphengine.h"
+#include "glyph.h"
+#include "kerning.h"
+
+#include <proto/utility.h>
+#include <aros/debug.h>
+#include <exec/memory.h>
+#include <utility/tagitem.h>
+#include <diskfont/oterrors.h>
+#include <diskfont/diskfonttag.h>
+#include <diskfont/glyph.h>
+
+#include LC_LIBDEFS_FILE
+
+/* given an Amiga character, return a filled in GlyphMap */
+static struct GlyphMap *GetGlyph(FT_GlyphEngine *ge, int glyph_8bits)
+{
+    if (ge->instance_changed)
+    {
+	/* reset everything first */
+	if(SetInstance(ge)!=OTERR_Success)
+	    return NULL;
+    }
+
+    /*if(ge->cmap_index==NO_CMAP_SET)
+     {
+     //if(ChooseEncoding(ge)!=0)
+     return(NULL);
+     }*/
+
+    UnicodeToGlyphIndex(ge);
+    if(ge->glyph_code)
+    {	/* has code, try to render */
+	/* first, get a GlyphMap structure to fill in */
+	ge->GMap=AllocVec((ULONG)sizeof(struct GlyphMap),
+			  MEMF_PUBLIC | MEMF_CLEAR);
+	if(ge->GMap)
+	    RenderGlyph(ge, glyph_8bits);
+    }
+    else
+    {
+	set_last_error(ge,OTERR_UnknownGlyph);
+	return NULL;
+    }
+
+    /* odd ball glyph (includes SPACE, arrrgghhh) mimic bullet */
+    if (ge->GMap->glm_Width == 0)
+    {
+	set_last_error(ge,OTERR_UnknownGlyph);
+	FreeVec(ge->GMap);
+	ge->GMap = NULL;
+	return NULL;
+    }
+
+    return ge->GMap;
+}
+
+/**
+ * ObtainInfoA
+ **/
+AROS_LH2(ULONG, ObtainInfoA,
+	 AROS_LHA(struct GlyphEngine *, ge, A0),
+	 AROS_LHA(struct TagItem *, tags, A1),
+	 LIBBASETYPEPTR, LIBBASE, 8, FreeType2
+)
+{
+    AROS_LIBFUNC_INIT
+
+    FT_GlyphEngine *engine=(FT_GlyphEngine *)ge;
+    struct GlyphMap **gm_p;
+    struct MinList **gw_p;
+    Tag   otagtag;
+    IPTR otagdata;
+    struct TagItem *tstate;
+    struct TagItem *tag;
+
+    ULONG rc = 0;
+
+    D(bug("ObtainInfoA engine = 0x%lx tags = 0x%lx\n",engine,tags));
+
+    /* establish the correct face */
+    switch_family(engine);
+
+    /* can't do anything without a face */
+    if (engine->face_established==FALSE)
+	return OTERR_Failure;
+
+    tstate = tags;
+    while ((tag = NextTagItem(&tstate)))
+    {
+	otagtag  = tag->ti_Tag;
+	otagdata = tag->ti_Data;
+
+	switch (otagtag)
+	{
+	case OT_GlyphMap:
+	    D(bug("Obtain: OT_GlyphMap  Data=%lx\n", otagdata));
+
+	    gm_p = (struct GlyphMap **)otagdata;
+
+	    if((*gm_p = GetGlyph(engine, FALSE))==NULL)
+	    {
+		D(bug("Could not obtain GlyphMap\n"));
+		rc = (ULONG) engine->last_error;
+	    }
+	    break;
+
+	case OT_GlyphMap8Bits:
+	case OT_GlyphMap8Bit_Old:
+	    D(bug("Obtain: OT_GlyphMap8Bit  Data=%lx\n", otagdata));
+
+	    gm_p = (struct GlyphMap **)otagdata;
+
+	    if((*gm_p = GetGlyph(engine, TRUE))==NULL)
+            {
+                D(bug("Could not obtain GlyphMap8Bit\n"));
+		rc = (ULONG) engine->last_error;
+            }
+	    break;
+
+	case OT_WidthList:
+	    D(bug("Obtain: OT_WidthList  Data=%lx\n", otagdata));
+
+	    gw_p = (struct MinList  **)otagdata;
+
+	    if((*gw_p = GetWidthList(engine))==NULL)
+		rc = (ULONG) engine->last_error;
+	    break;
+
+	case OT_TextKernPair:
+	case OT_DesignKernPair:
+	    D(bug("Obtain: KernPair Data=%lx\n", otagdata));
+	    *((ULONG *)otagdata)=get_kerning_dir(engine);
+	    break;
+
+	default:
+	    D(bug("Unanswered Obtain: Tag=%lx  Data=%lx\n",(LONG)otagtag, otagdata));
+	    rc=OTERR_UnknownTag;
+	    break;
+	}
+    }
+
+    return rc;
+    
+    AROS_LIBFUNC_EXIT
+}
diff -ruN freetype-2.10.0/builds/aros/openengine.c freetype-2.10.0.aros/builds/aros/openengine.c
--- freetype-2.10.0/builds/aros/openengine.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/openengine.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,41 @@
+/*
+ * Based on the code from the ft2.library from MorphOS, the ttf.library by
+ * Richard Griffith and the type1.library by Amish S. Dave
+ */
+#include "ftglyphengine.h"
+
+#include <aros/debug.h>
+#include <aros/symbolsets.h>
+#include <aros/libcall.h>
+
+#include <proto/exec.h>
+
+#include LC_LIBDEFS_FILE
+
+AROS_LH0(struct GlyphEngine *, OpenEngine,
+	 LIBBASETYPEPTR, LIBBASE, 5, FreeType2
+)
+{
+    AROS_LIBFUNC_INIT
+
+    static UBYTE *EngineName = "freetype2";
+    FT_GlyphEngine *ge=NULL;
+
+    D(bug("OpenEngine libbase = 0x%lx\n", LIBBASE));
+
+    if((ge = AllocGE()))
+    {
+	ge->gle_Library = (struct Library *)LIBBASE;
+	ge->gle_Name = EngineName;
+
+	D(bug(" returning FT_GlyphEngine 0x%lx\n",ge));
+
+	return (struct GlyphEngine *)ge;
+    }
+
+    D(bug(" return NULL\n"));
+    return NULL;
+    
+    AROS_LIBFUNC_EXIT
+}
+
diff -ruN freetype-2.10.0/builds/aros/releaseinfoa.c freetype-2.10.0.aros/builds/aros/releaseinfoa.c
--- freetype-2.10.0/builds/aros/releaseinfoa.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/releaseinfoa.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,67 @@
+/*
+ * Based on the code from the ft2.library from MorphOS, the ttf.library by
+ * Richard Griffith and the type1.library by Amish S. Dave
+ */
+#include "ftglyphengine.h"
+#include "kerning.h"
+
+#include <aros/libcall.h>
+#include <proto/utility.h>
+#include <aros/debug.h>
+#include <utility/tagitem.h>
+#include <diskfont/glyph.h>
+#include <diskfont/diskfonttag.h>
+
+#include LC_LIBDEFS_FILE
+
+/* ReleaseInfoA, release allocated memory from ObtainInfo */
+AROS_LH2(ULONG, ReleaseInfoA,
+	 AROS_LHA(struct GlyphEngine *, ge, A0),
+	 AROS_LHA(struct TagItem *, tags, A1),
+	 LIBBASETYPEPTR, LIBBASE, 9, FreeType2
+)
+{
+    AROS_LIBFUNC_INIT
+
+    FT_GlyphEngine *engine = (FT_GlyphEngine *)ge;
+    Tag   otagtag;
+    IPTR otagdata;
+
+    struct TagItem *tstate;
+    struct TagItem *tag;
+    struct GlyphMap *GMap;
+
+    D(bug("ReleaseInfoA engine = 0x%lx tags = 0x%lx\n",engine,tags));
+
+    tstate = tags;
+    while ((tag = NextTagItem(&tstate)))
+    {
+	otagtag  = tag->ti_Tag;
+	otagdata = tag->ti_Data;
+
+	switch (otagtag)
+	{
+	case OT_GlyphMap:
+	case OT_GlyphMap8Bits:
+	case OT_GlyphMap8Bit_Old:
+	    //D(bug("Release: OT_GlyphMap  Data=%lx\n", otagdata));
+	    GMap=(struct GlyphMap *)otagdata;
+	    if(GMap->glm_BitMap) FreeVec(GMap->glm_BitMap);
+	    FreeVec(GMap);
+	    break;
+
+	case OT_WidthList:
+	    //D(bug("Release: OT_WidthList  Data=%lx\n", otagdata));
+	    FreeWidthList(engine,(struct MinList  *)otagdata);
+	    break;
+
+	default: /* ??? */
+	    D(bug("Unknown Release: Tag=%lx  Data=%lx\n",(LONG)otagtag, otagdata));
+	    break;
+	}
+    }
+    
+    return 0;
+    
+    AROS_LIBFUNC_EXIT
+}
diff -ruN freetype-2.10.0/builds/aros/setinfoa.c freetype-2.10.0.aros/builds/aros/setinfoa.c
--- freetype-2.10.0/builds/aros/setinfoa.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/setinfoa.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,256 @@
+/*
+ * Based on the code from the ft2.library from MorphOS, the ttf.library by
+ * Richard Griffith and the type1.library by Amish S. Dave
+ */
+#include "ftglyphengine.h"
+#include "glyph.h"
+
+#include <aros/libcall.h>
+#include <proto/utility.h>
+#include <aros/debug.h>
+#include <utility/tagitem.h>
+#include <diskfont/oterrors.h>
+#include <diskfont/diskfonttag.h>
+#include <diskfont/glyph.h>
+
+#include LC_LIBDEFS_FILE
+
+/* scantags, from SetInfoA, looking for the ones we care about
+   just ignore anything we don't recognize for now              */
+
+static void scantags(FT_GlyphEngine *ge, struct TagItem *tags)
+{
+    Tag   otagtag;
+    IPTR otagdata;
+    struct TagItem *tstate;
+    struct TagItem *tag;
+    int temp, temp2;
+
+    tstate = tags;
+    while ((tag = NextTagItem(&tstate)))
+    {
+	otagtag  = tag->ti_Tag;
+	otagdata = tag->ti_Data;
+
+	switch (otagtag)
+	{
+	    /* OT_Spec1 = the filename of the ft file */
+	case OT_Spec1_FontFile:
+	    D(bug("SetInfo: Tag=OT_Spec1 ft file=%ls\n",otagdata));
+	    /*			if(OpenFace(ge,(char *)otagdata)) return; */
+	    strcpy(ge->base_filename,(char *)otagdata);
+	    /* clear all other names */
+	    ge->afm_filename[0] = '\0';
+            switch_family(ge);
+	    break;
+
+	case OT_Spec2_DefCodePage:	/* direct = use default */
+	    D(bug("SetInfo: Tag=OT_Spec2 Default Code Page\n"));
+	    set_default_codepage(ge);
+	    break;
+
+	case OT_Spec2_CodePage:
+	    D(bug("SetInfo: Tag=OT_Spec2 Custom Code Page\n"));
+	    CopyMem((char *)otagdata,ge->codepage,sizeof(ge->codepage));
+	    break;
+
+	case OT_Spec3_AFMFile:
+	    strcpy(ge->afm_filename,(char *)otagdata);
+	    break;
+
+	    /* OT_Spec4 = metric source */
+	case OT_Spec4_Metric:
+	    D(bug("SetInfo: Tag=OT_Spec4 Metric Source=%lx\n",otagdata));
+	    temp=(ULONG)otagdata;
+	    if(ge->metric_source!=temp)
+	    {
+		ge->metric_source = temp;
+		ge->instance_changed=TRUE;
+	    }
+	    break;
+
+	    /* OT_Spec5 = custom metrics */
+	case OT_Spec5_BBox:
+	    D(bug("SetInfo: Tag=OT_Spec5 Custom Metrics=%lx\n",otagdata));
+	    temp=(ULONG)otagdata;
+	    if(ge->metric_custom!=temp)
+	    {
+		ge->metric_custom = temp;
+		ge->instance_changed=TRUE;
+	    }
+	    break;
+
+	case OT_Spec6_FaceNum:
+	    D(bug("SetInfo: Tag=OT_Spec6_FaceNum\n"));
+	    ge->face_num = otagdata;
+	    break;
+
+	case OT_Spec7_BMSize:
+	    break;
+
+	case OT_Spec9_Hinter:
+	    break;
+
+	case OT_SymbolSet: /* index to charmap encodings */
+	    D(bug("SetInfo: Tag=OT_SymbolSet cmap=%lx\n",otagdata));
+	    ge->requested_cmap = (ULONG)otagdata;
+	    ge->cmap_index=NO_CMAP_SET;
+	    break;
+
+	    /* some programs specify point and DPI with every glyph
+	     * request, so check if they really changed before setting
+	     * instance_changed. (Note: OpenFace ALWAYS sets it.) */
+	case OT_PointHeight:
+	    D(bug("SetInfo: Tag=OT_PointHeight size=%lx\n",otagdata));
+	    temp = ((ULONG)otagdata) >> 16;
+	    if(ge->point_size != temp)
+	    {
+		ge->point_size = temp;
+		ge->instance_changed=TRUE;
+	    }
+	    break;
+
+	case OT_DeviceDPI:
+	    temp = ((ULONG)otagdata) >> 16;
+	    temp2 = ((ULONG)otagdata) & 0xffff;
+	    D(bug("SetInfo: Tag=OT_DeviceDPI xres=%ld yres=%ld\n",temp,temp2));
+	    if((temp!=ge->xres) || (temp2!=ge->yres))
+	    {
+		ge->xres = temp;
+		ge->yres = temp2;
+		ge->instance_changed=TRUE;
+	    }
+	    break;
+
+	case OT_RotateSin:	/* by spec set SIN then COS */
+	    D(bug("SetInfo: Tag=OT_RotateSin sin=%lx\n",otagdata));
+	    ge->hold_sin = ((ULONG)otagdata);
+	    break;
+
+	case OT_RotateCos:	/* process both SIN and COS */
+	    D(bug("SetInfo: Tag=OT_RotateCos cos=%lx\n",otagdata));
+	    ge->hold_cos = ((ULONG)otagdata);
+	    /* sin=0.0 cos=1.0 is no rotation */
+	    if(ge->hold_sin==0 && ge->hold_cos==0x10000)
+		ge->do_rotate=0;
+	    else
+	    {
+		/* argh! counter clockwise rotation
+		 * swapped .xy and .yx to match bullet.
+		 * hmmm, shear is clockwise...arrggghhh! */
+		ge->do_rotate=1;
+		ge->rotate_matrix.xx = ge->hold_cos;
+		ge->rotate_matrix.xy = -ge->hold_sin;
+		ge->rotate_matrix.yx = ge->hold_sin;
+		ge->rotate_matrix.yy = ge->hold_cos;
+	    }
+	    set_transform(ge);
+	    break;
+
+	case OT_ShearSin:	/* by spec set SIN then COS */
+	    D(bug("SetInfo: Tag=OT_ShearSin sin=%lx\n",otagdata));
+	    ge->hold_sin = ((ULONG)otagdata);
+	    break;
+
+	case OT_ShearCos:
+	    D(bug("SetInfo: Tag=OT_ShearCos cos=%lx\n",otagdata));
+	    ge->hold_cos = ((ULONG)otagdata);
+	    /* sin=0.0 cos=1.0 is no shear */
+	    if(ge->hold_sin==0 && ge->hold_cos==0x10000)
+	    {
+		ge->do_shear=0;
+		//					ge->italic_sig=0;
+	    }
+	    else
+	    {
+		ge->do_shear=1;
+		//					ge->italic_sig=1;
+		if(ge->hold_cos)
+		    temp=FT_MulDiv(ge->hold_sin,
+				   0x10000,ge->hold_cos);
+		else	temp=0;
+		ge->shear_matrix.xx = 1<<16;
+		ge->shear_matrix.xy = temp;
+		ge->shear_matrix.yx = 0;
+		ge->shear_matrix.yy = 1<<16;
+	    }
+	    set_transform(ge);
+	    break;
+
+#if 0
+	case OT_EmboldenX:
+	    D(bug("SetInfo: Tag=OT_EmboldenX data=%lx\n",otagdata));
+	    ge->do_embold=0;
+	    ge->bold_sig=0;
+	    ge->embold_x = (ULONG)otagdata;
+	    if(ge->embold_x || ge->embold_y)
+	    {
+		ge->do_embold=1;
+		ge->bold_sig=2;
+	    }
+	    break;
+
+	case OT_EmboldenY:
+	    D(bug("SetInfo: Tag=OT_EmboldenY data=%lx\n",otagdata));
+	    ge->do_embold=0;
+	    ge->bold_sig=0;
+	    ge->embold_y = (ULONG)otagdata;
+	    if(ge->embold_x || ge->embold_y)
+	    {
+		ge->do_embold=1;
+		ge->bold_sig=2;
+	    }
+	    break;
+#endif
+#if 0
+	    Diskfont Bold signature
+	    <Set: Tag=8000000E  Data=E75
+	    <Set: Tag=8000000F  Data=99E
+		
+	    Diskfont Italic signature
+	    <Set: Tag=8000000A  Data=4690
+	    <Set: Tag=8000000B  Data=F615
+#endif
+
+	case OT_GlyphCode:
+	    D(bug("SetInfo: Tag=OT_GlyphCode data=%lx\n",otagdata));
+	    ge->request_char = (ULONG)otagdata;
+	    break;
+
+	case OT_GlyphCode2:
+	    D(bug("SetInfo: Tag=OT_GlyphCode2 data=%lx\n",otagdata));
+	    ge->request_char2 = (ULONG)otagdata;
+	    break;
+
+	case OT_OTagList: /* a tag of tags? */
+	    D(bug("SetInfo: Tag=OT_OTagList data=%lx\n",otagdata));
+	    if (otagdata)
+		scantags(ge, (struct TagItem *)otagdata);
+	    break;
+
+	default:
+	    D(bug("Ignored Set: Tag=%lx  Data=%lx\n",(LONG)otagtag, otagdata));
+	    break;
+	}
+    }
+}
+
+/* SetInfoA, store request into our engine structure.         */
+AROS_LH2(ULONG, SetInfoA,
+	 AROS_LHA(struct GlyphEngine *, ge, A0),
+	 AROS_LHA(struct TagItem *, tags, A1),
+	 LIBBASETYPEPTR, LIBBASE, 7, FreeType2
+)
+{
+    AROS_LIBFUNC_INIT
+
+    FT_GlyphEngine *engine = (FT_GlyphEngine *)ge
+    D(bug("LIB_SetInfoA libbase = 0x%lx engine = 0x%lx tags = 0x%lx\n",FTBase,engine,tags));
+
+    set_last_error(engine,OTERR_Success);
+    scantags(engine, tags);
+    
+    return (ULONG)(engine->last_error);
+    
+    AROS_LIBFUNC_EXIT
+}
diff -ruN freetype-2.10.0/builds/aros/src/base/ftsystem.c freetype-2.10.0.aros/builds/aros/src/base/ftsystem.c
--- freetype-2.10.0/builds/aros/src/base/ftsystem.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/src/base/ftsystem.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,360 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftsystem.c                                                             */
+/*                                                                         */
+/*    ANSI-specific FreeType low-level system interface (body).            */
+/*                                                                         */
+/*  Copyright 1996-2018 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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* This file contains the default interface used by FreeType to access   */
+  /* low-level, i.e. memory management, i/o access as well as thread       */
+  /* synchronisation.  It can be replaced by user-specific routines if     */
+  /* necessary.                                                            */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_CONFIG_CONFIG_H
+#include FT_INTERNAL_DEBUG_H
+#include FT_SYSTEM_H
+#include FT_ERRORS_H
+#include FT_TYPES_H
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <exec/types.h>
+#include <exec/memory.h>
+#include <dos/dos.h>
+#include <proto/exec.h>
+#include <proto/dos.h>
+
+#define DEBUG 1
+#include <aros/debug.h>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /*                       MEMORY MANAGEMENT INTERFACE                     */
+  /*                                                                       */
+  /*************************************************************************/
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* It is not necessary to do any error checking for the                  */
+  /* allocation-related functions.  This will be done by the higher level  */
+  /* routines like FT_Alloc() or FT_Realloc().                             */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ft_alloc                                                           */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The memory allocation function.                                    */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    memory :: A pointer to the memory object.                          */
+  /*                                                                       */
+  /*    size   :: The requested size in bytes.                             */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    The address of newly allocated block.                              */
+  /*                                                                       */
+  FT_CALLBACK_DEF( void* )
+  ft_alloc( FT_Memory  memory,
+            long       size )
+  {
+    ULONG memsize = size + sizeof(ULONG);
+    void* retval;
+    APTR MemPool = (APTR)memory->user;
+
+    D(bug("Entering ft_alloc(memory=%x,size=%ld)\n", memory, size));
+    
+    retval = AllocPooled(MemPool, memsize);
+
+    D(bug("Allocated retval=%x\n", (void*)retval));
+
+    *((ULONG *)retval) = memsize;
+    
+    D(bug("Leaving ft_alloc retval=%x\n", (void*)((ULONG*)retval + 1)));
+
+    return (void*)((ULONG*)retval + 1);
+  }
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ft_free                                                            */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The memory release function.                                       */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    memory  :: A pointer to the memory object.                         */
+  /*                                                                       */
+  /*    block   :: The address of block in memory to be freed.             */
+  /*                                                                       */
+  FT_CALLBACK_DEF( void )
+  ft_free( FT_Memory  memory,
+           void*      block )
+  {
+    APTR mem = (APTR)((char*)block - sizeof(ULONG));
+    APTR MemPool = (APTR)memory->user;
+
+    D(bug("Entering ft_free(memory=%x, block=%x)\n", memory, block));
+      
+    FreePooled( MemPool, mem, *((ULONG*)mem) );
+
+    D(bug("Leaving ft_free\n"));
+  }
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ft_realloc                                                         */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The memory reallocation function.                                  */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    memory   :: A pointer to the memory object.                        */
+  /*                                                                       */
+  /*    cur_size :: The current size of the allocated memory block.        */
+  /*                                                                       */
+  /*    new_size :: The newly requested size in bytes.                     */
+  /*                                                                       */
+  /*    block    :: The current address of the block in memory.            */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    The address of the reallocated memory block.                       */
+  /*                                                                       */
+  FT_CALLBACK_DEF( void* )
+  ft_realloc( FT_Memory  memory,
+              long       cur_size,
+              long       new_size,
+              void*      block )
+  {
+    void* retval;
+
+    D(bug("Entering ft_free(memory=%x, cur_size=%ld, new_size=%ld, block=%x)\n",
+	  memory, cur_size, new_size, block));
+
+    if ((retval = ft_alloc( memory, new_size )) != NULL)
+    {
+        CopyMem( block, retval, cur_size );
+        ft_free( memory, block );
+    }
+
+    D(bug("Leaving ft_free retval=%x\n", retval));
+
+    return retval;
+  }
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /*                     RESOURCE MANAGEMENT INTERFACE                     */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
+  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
+  /* messages during execution.                                            */
+  /*                                                                       */
+#undef  FT_COMPONENT
+#define FT_COMPONENT  trace_io
+
+  /* We use the macro STREAM_FILE for convenience to extract the       */
+  /* system-specific stream handle from a given FreeType stream object */
+#define STREAM_FILE( stream )  ( (BPTR)stream->descriptor.pointer )
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ft_ansi_stream_close                                               */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The function to close a stream.                                    */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    stream :: A pointer to the stream object.                          */
+  /*                                                                       */
+  FT_CALLBACK_DEF( void )
+  ft_ansi_stream_close( FT_Stream  stream )
+  {
+    D(bug("Entering ft_ansi_stream_close(stream=%x)\n", stream));
+    
+    Close( STREAM_FILE( stream ) );
+
+    stream->descriptor.pointer = NULL;
+    stream->size               = 0;
+    stream->base               = 0;
+
+    D(bug("Entering ft_ansi_stream_close\n"));
+  }
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ft_ansi_stream_io                                                  */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The function to open a stream.                                     */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    stream :: A pointer to the stream object.                          */
+  /*                                                                       */
+  /*    offset :: The position in the data stream to start reading.        */
+  /*                                                                       */
+  /*    buffer :: The address of buffer to store the read data.            */
+  /*                                                                       */
+  /*    count  :: The number of bytes to read from the stream.             */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    The number of bytes actually read.                                 */
+  /*                                                                       */
+  FT_CALLBACK_DEF( unsigned long )
+  ft_ansi_stream_io( FT_Stream       stream,
+                     unsigned long   offset,
+                     unsigned char*  buffer,
+                     unsigned long   count )
+  {
+    BPTR file;
+    unsigned long actcount;
+    
+    D(bug("Entering ft_ansi_stream_io(stream=%x,offset=%ld,buffer=%x,count=%ld)\n",
+	  stream, offset, buffer, count));
+
+    file = STREAM_FILE( stream );
+
+    Seek( file, offset, OFFSET_BEGINNING );
+    if (count>0)
+      actcount = (unsigned long)Read( file, buffer, count );
+    else
+      actcount = 0;
+    
+    D(bug("Leaving ft_ansi_stream_io actcount=%ld",actcount));
+    
+    return actcount;
+  }
+
+
+  /* documentation is in ftobjs.h */
+
+  FT_EXPORT_DEF( FT_Error )
+  FT_Stream_Open( FT_Stream    stream,
+                  const char*  filepathname )
+  {
+    BPTR file;
+
+    if ( !stream )
+      return FT_Err_Invalid_Stream_Handle;
+
+    file = Open( filepathname, MODE_OLDFILE );
+    if ( !file )
+    {
+      FT_ERROR(( "FT_Stream_Open:" ));
+      FT_ERROR(( " could not open `%s'\n", filepathname ));
+
+      return FT_Err_Cannot_Open_Resource;
+    }
+
+    Seek( file, 0, OFFSET_END );
+    stream->size = Seek( file, 0, OFFSET_BEGINNING );
+
+    stream->descriptor.pointer = (APTR)file;
+    stream->pathname.pointer   = (char*)filepathname;
+    stream->pos                = 0;
+
+    stream->read  = ft_ansi_stream_io;
+    stream->close = ft_ansi_stream_close;
+
+    FT_TRACE1(( "FT_Stream_Open:" ));
+    FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
+                filepathname, stream->size ));
+
+    return FT_Err_Ok;
+  }
+
+
+#ifdef FT_DEBUG_MEMORY
+
+  extern FT_Int
+  ft_mem_debug_init( FT_Memory  memory );
+
+  extern void
+  ft_mem_debug_done( FT_Memory  memory );
+
+#endif
+
+
+  /* documentation is in ftobjs.h */
+
+  FT_EXPORT_DEF( FT_Memory )
+  FT_New_Memory( void )
+  {
+    FT_Memory  memory;
+    APTR MemPool;
+
+    D(bug("Entering FT_New_Memory\n"));
+      
+    MemPool = CreatePool(MEMF_ANY, 2048, 256);
+    if (MemPool)
+    {
+      memory = (FT_Memory)AllocPooled( MemPool, sizeof ( *memory ) );
+      if ( memory )
+      {
+        memory->user    = (void*)MemPool;
+        memory->alloc   = ft_alloc;
+        memory->realloc = ft_realloc;
+        memory->free    = ft_free;
+#ifdef FT_DEBUG_MEMORY
+        ft_mem_debug_init( memory );
+#endif
+      }
+    }
+    else
+      memory=NULL;
+
+    D(bug("Leaving FT_New_Memory memory=%x\n", memory));
+
+    return memory;
+  }
+
+
+  /* documentation is in ftobjs.h */
+
+  FT_EXPORT_DEF( void )
+  FT_Done_Memory( FT_Memory  memory )
+  {
+#ifdef FT_DEBUG_MEMORY
+    ft_mem_debug_done( memory );
+#endif
+    DeletePool((APTR)memory->user);
+  }
+
+
+/* END */
diff -ruN freetype-2.10.0/builds/aros/tagcall.c freetype-2.10.0.aros/builds/aros/tagcall.c
--- freetype-2.10.0/builds/aros/tagcall.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/aros/tagcall.c	2019-04-10 15:33:37.277921936 +0200
@@ -0,0 +1,30 @@
+#define NO_INLINE_STDARG
+#include <proto/freetype2.h>
+#include <diskfont/glyph.h>
+
+ULONG SetInfo (struct GlyphEngine *glyphEngine, Tag tag1, ...)
+{
+    AROS_SLOWSTACKTAGS_PRE(tag1)
+
+    retval = SetInfoA(glyphEngine, AROS_SLOWSTACKTAGS_ARG(tag1));
+    
+    AROS_SLOWSTACKTAGS_POST
+}
+
+ULONG ReleaseInfo (struct GlyphEngine *glyphEngine, Tag tag1, ...)
+{
+    AROS_SLOWSTACKTAGS_PRE(tag1)
+
+    retval = ReleaseInfoA(glyphEngine, AROS_SLOWSTACKTAGS_ARG(tag1));
+    
+    AROS_SLOWSTACKTAGS_POST
+}
+
+ULONG ObtainInfo (struct GlyphEngine *glyphEngine, Tag tag1, ...)
+{
+    AROS_SLOWSTACKTAGS_PRE(tag1)
+	
+    retval = ObtainInfoA(glyphEngine, AROS_SLOWSTACKTAGS_ARG(tag1));
+    
+    AROS_SLOWSTACKTAGS_POST
+}
diff -ruN freetype-2.10.0/builds/windows/vc2005/freetype.sln freetype-2.10.0.aros/builds/windows/vc2005/freetype.sln
--- freetype-2.10.0/builds/windows/vc2005/freetype.sln	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2005/freetype.sln	2019-04-10 15:33:37.269921886 +0200
@@ -0,0 +1,31 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		LIB Debug Multithreaded|Win32 = LIB Debug Multithreaded|Win32
+		LIB Debug Singlethreaded|Win32 = LIB Debug Singlethreaded|Win32
+		LIB Debug|Win32 = LIB Debug|Win32
+		LIB Release Multithreaded|Win32 = LIB Release Multithreaded|Win32
+		LIB Release Singlethreaded|Win32 = LIB Release Singlethreaded|Win32
+		LIB Release|Win32 = LIB Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug|Win32.ActiveCfg = Debug|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug|Win32.Build.0 = Debug|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release|Win32.ActiveCfg = Release|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff -ruN freetype-2.10.0/builds/windows/vc2005/freetype.vcproj freetype-2.10.0.aros/builds/windows/vc2005/freetype.vcproj
--- freetype-2.10.0/builds/windows/vc2005/freetype.vcproj	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2005/freetype.vcproj	2019-04-10 15:33:37.269921886 +0200
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject ProjectType="Visual C++" Version="8.00" Name="freetype" ProjectGUID="{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" TargetFrameworkVersion="131072">
+  <Platforms>
+    <Platform Name="Win32" />
+  </Platforms>
+  <ToolFiles>
+  </ToolFiles>
+  <Configurations>
+    <Configuration Name="Release|Win32" OutputDirectory=".\..\..\..\objs\release" IntermediateDirectory=".\..\..\..\objs\release" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\release/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\release/" ObjectFile=".\..\..\..\objs\release/" ProgramDataBaseFileName=".\..\..\..\objs\release/" WarningLevel="4" DebugInformationFormat="0" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+    <Configuration Name="Release Multithreaded|Win32" OutputDirectory=".\..\..\..\objs\release_mt" IntermediateDirectory=".\..\..\..\objs\release_mt" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\release_mt/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\release_mt/" ObjectFile=".\..\..\..\objs\release_mt/" ProgramDataBaseFileName=".\..\..\..\objs\release_mt/" WarningLevel="4" DebugInformationFormat="0" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+    <Configuration Name="Release Singlethreaded|Win32" OutputDirectory=".\..\..\..\objs\release_st" IntermediateDirectory=".\..\..\..\objs\release_st" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\release_st/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\release_st/" ObjectFile=".\..\..\..\objs\release_st/" ProgramDataBaseFileName=".\..\..\..\objs\release_st/" WarningLevel="4" DebugInformationFormat="0" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291ST.lib" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+    <Configuration Name="Debug|Win32" OutputDirectory=".\..\..\..\objs\debug" IntermediateDirectory=".\..\..\..\objs\debug" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY" BasicRuntimeChecks="3" RuntimeLibrary="3" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\debug/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\debug/" ObjectFile=".\..\..\..\objs\debug/" ProgramDataBaseFileName=".\..\..\..\objs\debug/" WarningLevel="4" DebugInformationFormat="3" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+    <Configuration Name="Debug Singlethreaded|Win32" OutputDirectory=".\..\..\..\objs\debug_st" IntermediateDirectory=".\..\..\..\objs\debug_st" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY" BasicRuntimeChecks="3" RuntimeLibrary="1" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\debug_st/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\debug_st/" ObjectFile=".\..\..\..\objs\debug_st/" ProgramDataBaseFileName=".\..\..\..\objs\debug_st/" WarningLevel="4" DebugInformationFormat="3" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+    <Configuration Name="Debug Multithreaded|Win32" OutputDirectory=".\..\..\..\objs\debug_mt" IntermediateDirectory=".\..\..\..\objs\debug_mt" ConfigurationType="4" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2">
+      <Tool Name="VCPreBuildEventTool" />
+      <Tool Name="VCCustomBuildTool" />
+      <Tool Name="VCXMLDataGeneratorTool" />
+      <Tool Name="VCWebServiceProxyGeneratorTool" />
+      <Tool Name="VCMIDLTool" />
+      <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\include" PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;_CRT_SECURE_NO_DEPRECATE" GeneratePreprocessedFile="0" BasicRuntimeChecks="3" RuntimeLibrary="1" DisableLanguageExtensions="true" PrecompiledHeaderFile=".\..\..\..\objs\debug_mt/freetype.pch" AssemblerListingLocation=".\..\..\..\objs\debug_mt/" ObjectFile=".\..\..\..\objs\debug_mt/" ProgramDataBaseFileName=".\..\..\..\objs\debug_mt/" WarningLevel="4" DebugInformationFormat="3" CompileAs="0" />
+      <Tool Name="VCManagedResourceCompilerTool" />
+      <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
+      <Tool Name="VCPreLinkEventTool" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype291MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCALinkTool" />
+      <Tool Name="VCXDCMakeTool" />
+      <Tool Name="VCBscMakeTool" />
+      <Tool Name="VCFxCopTool" />
+      <Tool Name="VCPostBuildEventTool" />
+    </Configuration>
+  </Configurations>
+  <References>
+  </References>
+  <Files>
+    <Filter Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+      <File RelativePath="..\..\..\src\autofit\autofit.c">
+      </File>
+      <File RelativePath="..\..\..\src\bdf\bdf.c">
+      </File>
+      <File RelativePath="..\..\..\src\cff\cff.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftbase.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftbitmap.c">
+      </File>
+      <File RelativePath="..\..\..\src\cache\ftcache.c">
+      </File>
+      <File RelativePath="..\ftdebug.c">
+        <FileConfiguration>
+          <Tool Name="VCCLCompilerTool" DisableLanguageExtensions="false" />
+        </FileConfiguration>
+      </File>
+      <File RelativePath="..\..\..\src\base\ftfstype.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftgasp.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftglyph.c">
+      </File>
+      <File RelativePath="..\..\..\src\gzip\ftgzip.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftinit.c">
+      </File>
+      <File RelativePath="..\..\..\src\lzw\ftlzw.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftstroke.c">
+      </File>
+      <File RelativePath="..\..\..\src\base\ftsystem.c">
+      </File>
+      <File RelativePath="..\..\..\src\smooth\smooth.c">
+      </File>
+      <Filter Name="FT_MODULES">
+        <File RelativePath="..\..\..\src\base\ftbdf.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftbbox.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftcid.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftmm.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftpfr.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftsynth.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\fttype1.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftwinfnt.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftgxval.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftotval.c">
+        </File>
+        <File RelativePath="..\..\..\src\base\ftpatent.c">
+        </File>
+        <File RelativePath="..\..\..\src\pcf\pcf.c">
+        </File>
+        <File RelativePath="..\..\..\src\pfr\pfr.c">
+        </File>
+        <File RelativePath="..\..\..\src\psaux\psaux.c">
+        </File>
+        <File RelativePath="..\..\..\src\pshinter\pshinter.c">
+        </File>
+        <File RelativePath="..\..\..\src\psnames\psmodule.c">
+        </File>
+        <File RelativePath="..\..\..\src\raster\raster.c">
+        </File>
+        <File RelativePath="..\..\..\src\sfnt\sfnt.c">
+        </File>
+        <File RelativePath="..\..\..\src\truetype\truetype.c">
+        </File>
+        <File RelativePath="..\..\..\src\type1\type1.c">
+        </File>
+        <File RelativePath="..\..\..\src\cid\type1cid.c">
+        </File>
+        <File RelativePath="..\..\..\src\type42\type42.c">
+        </File>
+        <File RelativePath="..\..\..\src\winfonts\winfnt.c">
+        </File>
+      </Filter>
+    </Filter>
+    <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl">
+      <File RelativePath="..\..\..\include\ft2build.h">
+      </File>
+      <File RelativePath="..\..\..\include\freetype\config\ftconfig.h">
+      </File>
+      <File RelativePath="..\..\..\include\freetype\config\ftheader.h">
+      </File>
+      <File RelativePath="..\..\..\include\freetype\config\ftmodule.h">
+      </File>
+      <File RelativePath="..\..\..\include\freetype\config\ftoption.h">
+      </File>
+      <File RelativePath="..\..\..\include\freetype\config\ftstdlib.h">
+      </File>
+    </Filter>
+  </Files>
+  <Globals>
+  </Globals>
+</VisualStudioProject>
diff -ruN freetype-2.10.0/builds/windows/vc2005/index.html freetype-2.10.0.aros/builds/windows/vc2005/index.html
--- freetype-2.10.0/builds/windows/vc2005/index.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2005/index.html	2019-04-10 15:33:37.269921886 +0200
@@ -0,0 +1,37 @@
+<html>
+<header>
+<title>
+  FreeType&nbsp;2 Project Files for VS.NET&nbsp;2005
+</title>
+
+<body>
+<h1>
+  FreeType&nbsp;2 Project Files for VS.NET&nbsp;2005
+</h1>
+
+<p>This directory contains project files for Visual C++, named
+<tt>freetype.vcproj</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
+compiles the following libraries from the FreeType 2.9.1 sources:</p>
+
+<ul>
+  <pre>
+    freetype291.lib     - release build; single threaded
+    freetype291_D.lib   - debug build;   single threaded
+    freetype291MT.lib   - release build; multi-threaded
+    freetype291MT_D.lib - debug build;   multi-threaded</pre>
+</ul>
+
+<p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP
+archives are already stored this way, so no further action is required.  If
+you use some <tt>.tar.*z</tt> archives, be sure to configure your extracting
+tool to convert the line endings.  For example, with <a
+href="http://www.winzip.com">WinZip</a>, you should activate the <em>TAR
+file smart CR/LF Conversion</em> option.  Alternatively, you may consider
+using the <tt>unix2dos</tt> or <tt>u2d</tt> utilities that are floating
+around, which specifically deal with this particular problem.
+
+<p>Build directories are placed in the top-level <tt>objs</tt>
+directory.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/builds/windows/vc2008/freetype.sln freetype-2.10.0.aros/builds/windows/vc2008/freetype.sln
--- freetype-2.10.0/builds/windows/vc2008/freetype.sln	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2008/freetype.sln	2019-04-10 15:33:37.241921710 +0200
@@ -0,0 +1,31 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		LIB Debug Multithreaded|Win32 = LIB Debug Multithreaded|Win32
+		LIB Debug Singlethreaded|Win32 = LIB Debug Singlethreaded|Win32
+		LIB Debug|Win32 = LIB Debug|Win32
+		LIB Release Multithreaded|Win32 = LIB Release Multithreaded|Win32
+		LIB Release Singlethreaded|Win32 = LIB Release Singlethreaded|Win32
+		LIB Release|Win32 = LIB Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug|Win32.ActiveCfg = Debug|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Debug|Win32.Build.0 = Debug|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release|Win32.ActiveCfg = Release|Win32
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.LIB Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff -ruN freetype-2.10.0/builds/windows/vc2008/freetype.vcproj freetype-2.10.0.aros/builds/windows/vc2008/freetype.vcproj
--- freetype-2.10.0/builds/windows/vc2008/freetype.vcproj	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2008/freetype.vcproj	2019-04-10 15:33:37.241921710 +0200
@@ -0,0 +1,668 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="freetype"
+	ProjectGUID="{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory=".\..\..\..\objs\release"
+			IntermediateDirectory=".\..\..\..\objs\release"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\release/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\release/"
+				ObjectFile=".\..\..\..\objs\release/"
+				ProgramDataBaseFileName=".\..\..\..\objs\release/"
+				WarningLevel="4"
+				DebugInformationFormat="0"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291.lib"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release Multithreaded|Win32"
+			OutputDirectory=".\..\..\..\objs\release_mt"
+			IntermediateDirectory=".\..\..\..\objs\release_mt"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
+				StringPooling="true"
+				RuntimeLibrary="0"
+				EnableFunctionLevelLinking="true"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\release_mt/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\release_mt/"
+				ObjectFile=".\..\..\..\objs\release_mt/"
+				ProgramDataBaseFileName=".\..\..\..\objs\release_mt/"
+				WarningLevel="4"
+				DebugInformationFormat="0"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291MT.lib"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release Singlethreaded|Win32"
+			OutputDirectory=".\..\..\..\objs\release_st"
+			IntermediateDirectory=".\..\..\..\objs\release_st"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
+				StringPooling="true"
+				RuntimeLibrary="0"
+				EnableFunctionLevelLinking="true"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\release_st/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\release_st/"
+				ObjectFile=".\..\..\..\objs\release_st/"
+				ProgramDataBaseFileName=".\..\..\..\objs\release_st/"
+				WarningLevel="4"
+				DebugInformationFormat="0"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291ST.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory=".\..\..\..\objs\debug"
+			IntermediateDirectory=".\..\..\..\objs\debug"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\debug/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\debug/"
+				ObjectFile=".\..\..\..\objs\debug/"
+				ProgramDataBaseFileName=".\..\..\..\objs\debug/"
+				WarningLevel="4"
+				DebugInformationFormat="3"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291_D.lib"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug Singlethreaded|Win32"
+			OutputDirectory=".\..\..\..\objs\debug_st"
+			IntermediateDirectory=".\..\..\..\objs\debug_st"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\debug_st/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\debug_st/"
+				ObjectFile=".\..\..\..\objs\debug_st/"
+				ProgramDataBaseFileName=".\..\..\..\objs\debug_st/"
+				WarningLevel="4"
+				DebugInformationFormat="3"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291ST_D.lib"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug Multithreaded|Win32"
+			OutputDirectory=".\..\..\..\objs\debug_mt"
+			IntermediateDirectory=".\..\..\..\objs\debug_mt"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\include"
+				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;_CRT_SECURE_NO_DEPRECATE"
+				GeneratePreprocessedFile="0"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				DisableLanguageExtensions="true"
+				PrecompiledHeaderFile=".\..\..\..\objs\debug_mt/freetype.pch"
+				AssemblerListingLocation=".\..\..\..\objs\debug_mt/"
+				ObjectFile=".\..\..\..\objs\debug_mt/"
+				ProgramDataBaseFileName=".\..\..\..\objs\debug_mt/"
+				WarningLevel="4"
+				DebugInformationFormat="3"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype291MT_D.lib"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+			>
+			<File
+				RelativePath="..\..\..\src\autofit\autofit.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\bdf\bdf.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\cff\cff.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftbase.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftbitmap.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\cache\ftcache.c"
+				>
+			</File>
+			<File
+				RelativePath="..\ftdebug.c"
+				>
+				<FileConfiguration>
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="false"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftfstype.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftgasp.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftglyph.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\gzip\ftgzip.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftinit.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\lzw\ftlzw.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftstroke.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\base\ftsystem.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\smooth\smooth.c"
+				>
+			</File>
+			<Filter
+				Name="FT_MODULES"
+				>
+				<File
+					RelativePath="..\..\..\src\base\ftbbox.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftbdf.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftcid.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftmm.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftpfr.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftsynth.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\fttype1.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftwinfnt.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftgxval.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftotval.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\base\ftpatent.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\pcf\pcf.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\pfr\pfr.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\psaux\psaux.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\pshinter\pshinter.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\psnames\psmodule.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\raster\raster.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\sfnt\sfnt.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\truetype\truetype.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\type1\type1.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\cid\type1cid.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\type42\type42.c"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\src\winfonts\winfnt.c"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl"
+			>
+			<File
+				RelativePath="..\..\..\include\ft2build.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\include\freetype\config\ftconfig.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\include\freetype\config\ftheader.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\include\freetype\config\ftmodule.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\include\freetype\config\ftoption.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\include\freetype\config\ftstdlib.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff -ruN freetype-2.10.0/builds/windows/vc2008/index.html freetype-2.10.0.aros/builds/windows/vc2008/index.html
--- freetype-2.10.0/builds/windows/vc2008/index.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/builds/windows/vc2008/index.html	2019-04-10 15:33:37.241921710 +0200
@@ -0,0 +1,37 @@
+<html>
+<header>
+<title>
+  FreeType&nbsp;2 Project Files for VS.NET&nbsp;2008
+</title>
+
+<body>
+<h1>
+  FreeType&nbsp;2 Project Files for VS.NET&nbsp;2008
+</h1>
+
+<p>This directory contains project files for Visual C++, named
+<tt>freetype.vcproj</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
+compiles the following libraries from the FreeType 2.9.1 sources:</p>
+
+<ul>
+  <pre>
+    freetype291.lib     - release build; single threaded
+    freetype291_D.lib   - debug build;   single threaded
+    freetype291MT.lib   - release build; multi-threaded
+    freetype291MT_D.lib - debug build;   multi-threaded</pre>
+</ul>
+
+<p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP
+archives are already stored this way, so no further action is required.  If
+you use some <tt>.tar.*z</tt> archives, be sure to configure your extracting
+tool to convert the line endings.  For example, with <a
+href="http://www.winzip.com">WinZip</a>, you should activate the <em>TAR
+file smart CR/LF Conversion</em> option.  Alternatively, you may consider
+using the <tt>unix2dos</tt> or <tt>u2d</tt> utilities that are floating
+around, which specifically deal with this particular problem.
+
+<p>Build directories are placed in the top-level <tt>objs</tt>
+directory.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-auto_hinter.html freetype-2.10.0.aros/docs/reference/ft2-auto_hinter.html
--- freetype-2.10.0/docs/reference/ft2-auto_hinter.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-auto_hinter.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="auto_hinter">The auto-hinter</h1>
+
+<p>While FreeType's auto-hinter doesn't expose API functions by itself, it is possible to control its behaviour with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>. The following lists the available properties together with the necessary macros and structures.</p>
+<p>Note that the auto-hinter's module name is &lsquo;autofitter&rsquo; for historical reasons.</p>
+<p>Available properties are <a href="ft2-properties.html#increase-x-height">increase-x-height</a>, <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a> (experimental), <a href="ft2-properties.html#darkening-parameters">darkening-parameters</a> (experimental), <a href="ft2-properties.html#warping">warping</a> (experimental), <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a> (experimental), <a href="ft2-properties.html#fallback-script">fallback-script</a> (experimental), and <a href="ft2-properties.html#default-script">default-script</a> (experimental), as documented in the &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; section.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-base_interface.html freetype-2.10.0.aros/docs/reference/ft2-base_interface.html
--- freetype-2.10.0/docs/reference/ft2-base_interface.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-base_interface.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,3229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="base_interface">Base Interface</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Library">FT_Library</a></td><td><a href="#FT_GlyphSlotRec">FT_GlyphSlotRec</a></td><td><a href="#FT_LOAD_NO_AUTOHINT">FT_LOAD_NO_AUTOHINT</a></td></tr>
+<tr><td><a href="#FT_Face">FT_Face</a></td><td><a href="#FT_Glyph_Metrics">FT_Glyph_Metrics</a></td><td><a href="#FT_LOAD_COLOR">FT_LOAD_COLOR</a></td></tr>
+<tr><td><a href="#FT_Size">FT_Size</a></td><td><a href="#FT_SubGlyph">FT_SubGlyph</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_GlyphSlot">FT_GlyphSlot</a></td><td>&nbsp;</td><td><a href="#FT_LOAD_VERTICAL_LAYOUT">FT_LOAD_VERTICAL_LAYOUT</a></td></tr>
+<tr><td><a href="#FT_CharMap">FT_CharMap</a></td><td><a href="#FT_Bitmap_Size">FT_Bitmap_Size</a></td><td><a href="#FT_LOAD_IGNORE_TRANSFORM">FT_LOAD_IGNORE_TRANSFORM</a></td></tr>
+<tr><td><a href="#FT_Encoding">FT_Encoding</a></td><td>&nbsp;</td><td><a href="#FT_LOAD_FORCE_AUTOHINT">FT_LOAD_FORCE_AUTOHINT</a></td></tr>
+<tr><td><a href="#FT_ENC_TAG">FT_ENC_TAG</a></td><td><a href="#FT_Init_FreeType">FT_Init_FreeType</a></td><td><a href="#FT_LOAD_NO_RECURSE">FT_LOAD_NO_RECURSE</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Done_FreeType">FT_Done_FreeType</a></td><td><a href="#FT_LOAD_PEDANTIC">FT_LOAD_PEDANTIC</a></td></tr>
+<tr><td><a href="#FT_FaceRec">FT_FaceRec</a></td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_New_Face">FT_New_Face</a></td><td><a href="#FT_LOAD_TARGET_NORMAL">FT_LOAD_TARGET_NORMAL</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</a></td><td><a href="#FT_Done_Face">FT_Done_Face</a></td><td><a href="#FT_LOAD_TARGET_LIGHT">FT_LOAD_TARGET_LIGHT</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</a></td><td><a href="#FT_Reference_Face">FT_Reference_Face</a></td><td><a href="#FT_LOAD_TARGET_MONO">FT_LOAD_TARGET_MONO</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</a></td><td><a href="#FT_New_Memory_Face">FT_New_Memory_Face</a></td><td><a href="#FT_LOAD_TARGET_LCD">FT_LOAD_TARGET_LCD</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</a></td><td><a href="#FT_Face_Properties">FT_Face_Properties</a></td><td><a href="#FT_LOAD_TARGET_LCD_V">FT_LOAD_TARGET_LCD_V</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</a></td><td><a href="#FT_Open_Face">FT_Open_Face</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</a></td><td><a href="#FT_Open_Args">FT_Open_Args</a></td><td><a href="#FT_LOAD_TARGET_MODE">FT_LOAD_TARGET_MODE</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</a></td><td><a href="#FT_Parameter">FT_Parameter</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</a></td><td><a href="#FT_Attach_File">FT_Attach_File</a></td><td><a href="#FT_Render_Glyph">FT_Render_Glyph</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</a></td><td><a href="#FT_Attach_Stream">FT_Attach_Stream</a></td><td><a href="#FT_Render_Mode">FT_Render_Mode</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</a></td><td>&nbsp;</td><td><a href="#FT_Get_Kerning">FT_Get_Kerning</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</a></td><td><a href="#FT_Set_Char_Size">FT_Set_Char_Size</a></td><td><a href="#FT_Kerning_Mode">FT_Kerning_Mode</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_VARIATION">FT_FACE_FLAG_VARIATION</a></td><td><a href="#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a></td><td><a href="#FT_Get_Track_Kerning">FT_Get_Track_Kerning</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</a></td><td><a href="#FT_Request_Size">FT_Request_Size</a></td><td><a href="#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_EXTERNAL_STREAM">FT_FACE_FLAG_EXTERNAL_STREAM</a></td><td><a href="#FT_Select_Size">FT_Select_Size</a></td><td><a href="#FT_Get_Postscript_Name">FT_Get_Postscript_Name</a></td></tr>
+<tr><td><a href="#FT_FACE_FLAG_HINTER">FT_FACE_FLAG_HINTER</a></td><td><a href="#FT_Size_Request_Type">FT_Size_Request_Type</a></td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Size_RequestRec">FT_Size_RequestRec</a></td><td><a href="#FT_CharMapRec">FT_CharMapRec</a></td></tr>
+<tr><td><a href="#FT_HAS_HORIZONTAL">FT_HAS_HORIZONTAL</a></td><td><a href="#FT_Size_Request">FT_Size_Request</a></td><td><a href="#FT_Select_Charmap">FT_Select_Charmap</a></td></tr>
+<tr><td><a href="#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a></td><td><a href="#FT_Set_Transform">FT_Set_Transform</a></td><td><a href="#FT_Set_Charmap">FT_Set_Charmap</a></td></tr>
+<tr><td><a href="#FT_HAS_KERNING">FT_HAS_KERNING</a></td><td><a href="#FT_Load_Glyph">FT_Load_Glyph</a></td><td><a href="#FT_Get_Charmap_Index">FT_Get_Charmap_Index</a></td></tr>
+<tr><td><a href="#FT_HAS_FIXED_SIZES">FT_HAS_FIXED_SIZES</a></td><td><a href="#FT_Get_Char_Index">FT_Get_Char_Index</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a></td><td><a href="#FT_Get_First_Char">FT_Get_First_Char</a></td><td><a href="#FT_Get_FSType_Flags">FT_Get_FSType_Flags</a></td></tr>
+<tr><td><a href="#FT_HAS_COLOR">FT_HAS_COLOR</a></td><td><a href="#FT_Get_Next_Char">FT_Get_Next_Char</a></td><td><a href="#FT_Get_SubGlyph_Info">FT_Get_SubGlyph_Info</a></td></tr>
+<tr><td><a href="#FT_HAS_MULTIPLE_MASTERS">FT_HAS_MULTIPLE_MASTERS</a></td><td><a href="#FT_Get_Name_Index">FT_Get_Name_Index</a></td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Load_Char">FT_Load_Char</a></td><td><a href="#FT_Face_Internal">FT_Face_Internal</a></td></tr>
+<tr><td><a href="#FT_IS_SFNT">FT_IS_SFNT</a></td><td>&nbsp;</td><td><a href="#FT_Size_Internal">FT_Size_Internal</a></td></tr>
+<tr><td><a href="#FT_IS_SCALABLE">FT_IS_SCALABLE</a></td><td><a href="#FT_OPEN_MEMORY">FT_OPEN_MEMORY</a></td><td><a href="#FT_Slot_Internal">FT_Slot_Internal</a></td></tr>
+<tr><td><a href="#FT_IS_FIXED_WIDTH">FT_IS_FIXED_WIDTH</a></td><td><a href="#FT_OPEN_STREAM">FT_OPEN_STREAM</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a></td><td><a href="#FT_OPEN_PATHNAME">FT_OPEN_PATHNAME</a></td><td><a href="#FT_FACE_FLAG_XXX">FT_FACE_FLAG_XXX</a></td></tr>
+<tr><td><a href="#FT_IS_TRICKY">FT_IS_TRICKY</a></td><td><a href="#FT_OPEN_DRIVER">FT_OPEN_DRIVER</a></td><td><a href="#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</a></td></tr>
+<tr><td><a href="#FT_IS_NAMED_INSTANCE">FT_IS_NAMED_INSTANCE</a></td><td><a href="#FT_OPEN_PARAMS">FT_OPEN_PARAMS</a></td><td><a href="#FT_OPEN_XXX">FT_OPEN_XXX</a></td></tr>
+<tr><td><a href="#FT_IS_VARIATION">FT_IS_VARIATION</a></td><td>&nbsp;</td><td><a href="#FT_LOAD_XXX">FT_LOAD_XXX</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_LOAD_DEFAULT">FT_LOAD_DEFAULT</a></td><td><a href="#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a></td></tr>
+<tr><td><a href="#FT_STYLE_FLAG_BOLD">FT_STYLE_FLAG_BOLD</a></td><td><a href="#FT_LOAD_RENDER">FT_LOAD_RENDER</a></td><td><a href="#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</a></td></tr>
+<tr><td><a href="#FT_STYLE_FLAG_ITALIC">FT_STYLE_FLAG_ITALIC</a></td><td><a href="#FT_LOAD_MONOCHROME">FT_LOAD_MONOCHROME</a></td><td><a href="#FT_FSTYPE_XXX">FT_FSTYPE_XXX</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_LOAD_LINEAR_DESIGN">FT_LOAD_LINEAR_DESIGN</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_SizeRec">FT_SizeRec</a></td><td><a href="#FT_LOAD_NO_SCALE">FT_LOAD_NO_SCALE</a></td><td><a href="#FT_HAS_FAST_GLYPHS">FT_HAS_FAST_GLYPHS</a></td></tr>
+<tr><td><a href="#FT_Size_Metrics">FT_Size_Metrics</a></td><td><a href="#FT_LOAD_NO_HINTING">FT_LOAD_NO_HINTING</a></td><td></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_LOAD_NO_BITMAP">FT_LOAD_NO_BITMAP</a></td><td></td></tr>
+</table>
+
+
+<p>This section describes the most important public high-level API functions of FreeType&nbsp;2.</p>
+
+<div class="section">
+<h3 id="FT_Library">FT_Library</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_LibraryRec_  *<b>FT_Library</b>;
+</pre>
+
+<p>A handle to a FreeType library instance. Each &lsquo;library&rsquo; is completely independent from the others; it is the &lsquo;root&rsquo; of a set of objects like fonts, faces, sizes, etc.</p>
+<p>It also embeds a memory manager (see <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>), as well as a scan-line converter object (see <a href="ft2-raster.html#FT_Raster">FT_Raster</a>).</p>
+<p>In multi-threaded applications it is easiest to use one &lsquo;FT_Library&rsquo; object per thread. In case this is too cumbersome, a single &lsquo;FT_Library&rsquo; object across threads is possible also (since FreeType version 2.5.6), as long as a mutex lock is used around <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> and <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+
+<h4>note</h4>
+<p>Library objects are normally created by <a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a>, and destroyed with <a href="ft2-base_interface.html#FT_Done_FreeType">FT_Done_FreeType</a>. If you need reference-counting (cf. <a href="ft2-module_management.html#FT_Reference_Library">FT_Reference_Library</a>), use <a href="ft2-module_management.html#FT_New_Library">FT_New_Library</a> and <a href="ft2-module_management.html#FT_Done_Library">FT_Done_Library</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face">FT_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_FaceRec_*  <b>FT_Face</b>;
+</pre>
+
+<p>A handle to a typographic face object. A face object models a given typeface, in a given style.</p>
+
+<h4>note</h4>
+<p>A face object also owns a single <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a> object, as well as one or more <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects.</p>
+<p>Use <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> or <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> to create a new face object from a given filepath or a custom input stream.</p>
+<p>Use <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a> to destroy it (along with its slot and sizes).</p>
+<p>An &lsquo;FT_Face&rsquo; object can only be safely used from one thread at a time. Similarly, creation and destruction of &lsquo;FT_Face&rsquo; with the same <a href="ft2-base_interface.html#FT_Library">FT_Library</a> object can only be done from one thread at a time. On the other hand, functions like <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> and its siblings are thread-safe and do not need the lock to be held as long as the same &lsquo;FT_Face&rsquo; object is not used from multiple threads at the same time.</p>
+
+<h4>also</h4>
+<p>See <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> for the publicly accessible fields of a given face object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size">FT_Size</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SizeRec_*  <b>FT_Size</b>;
+</pre>
+
+<p>A handle to an object that models a face scaled to a given character size.</p>
+
+<h4>note</h4>
+<p>An <a href="ft2-base_interface.html#FT_Face">FT_Face</a> has one <i>active</i> <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object that is used by functions like <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> to determine the scaling transformation that in turn is used to load and hint glyphs and metrics.</p>
+<p>You can use <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a>, <a href="ft2-base_interface.html#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a>, <a href="ft2-base_interface.html#FT_Request_Size">FT_Request_Size</a> or even <a href="ft2-base_interface.html#FT_Select_Size">FT_Select_Size</a> to change the content (i.e., the scaling values) of the active <a href="ft2-base_interface.html#FT_Size">FT_Size</a>.</p>
+<p>You can use <a href="ft2-sizes_management.html#FT_New_Size">FT_New_Size</a> to create additional size objects for a given <a href="ft2-base_interface.html#FT_Face">FT_Face</a>, but they won't be used by other functions until you activate it through <a href="ft2-sizes_management.html#FT_Activate_Size">FT_Activate_Size</a>. Only one size can be activated at any given time per face.</p>
+
+<h4>also</h4>
+<p>See <a href="ft2-base_interface.html#FT_SizeRec">FT_SizeRec</a> for the publicly accessible fields of a given size object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GlyphSlot">FT_GlyphSlot</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_GlyphSlotRec_*  <b>FT_GlyphSlot</b>;
+</pre>
+
+<p>A handle to a given &lsquo;glyph slot&rsquo;. A slot is a container that can hold any of the glyphs contained in its parent face.</p>
+<p>In other words, each time you call <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> or <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>, 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.</p>
+
+<h4>also</h4>
+<p>See <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> for the publicly accessible glyph fields.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CharMap">FT_CharMap</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_CharMapRec_*  <b>FT_CharMap</b>;
+</pre>
+
+<p>A handle to a character map (usually abbreviated to &lsquo;charmap&rsquo;). 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.</p>
+<p>Each face object owns zero or more charmaps, but only one of them can be &lsquo;active&rsquo;, providing the data used by <a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a> or <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>.</p>
+<p>The list of available charmaps in a face is available through the &lsquo;face-&gt;num_charmaps&rsquo; and &lsquo;face-&gt;charmaps&rsquo; fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a>.</p>
+<p>The currently active charmap is available as &lsquo;face-&gt;charmap&rsquo;. You should call <a href="ft2-base_interface.html#FT_Set_Charmap">FT_Set_Charmap</a> to change it.</p>
+
+<h4>note</h4>
+<p>When a new face is created (either through <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> or <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>), 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 &lsquo;active&rsquo; charmap.</p>
+
+<h4>also</h4>
+<p>See <a href="ft2-base_interface.html#FT_CharMapRec">FT_CharMapRec</a> for the publicly accessible fields of a given character map.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Encoding">FT_Encoding</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Encoding_
+  {
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_NONE">FT_ENCODING_NONE</a>, 0, 0, 0, 0 ),
+
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_MS_SYMBOL">FT_ENCODING_MS_SYMBOL</a>, 's', 'y', 'm', 'b' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_UNICODE">FT_ENCODING_UNICODE</a>,   'u', 'n', 'i', 'c' ),
+
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_SJIS">FT_ENCODING_SJIS</a>,    's', 'j', 'i', 's' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_PRC">FT_ENCODING_PRC</a>,     'g', 'b', ' ', ' ' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_BIG5">FT_ENCODING_BIG5</a>,    'b', 'i', 'g', '5' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_WANSUNG">FT_ENCODING_WANSUNG</a>, 'w', 'a', 'n', 's' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_JOHAB">FT_ENCODING_JOHAB</a>,   'j', 'o', 'h', 'a' ),
+
+    /* for backward compatibility */
+    FT_ENCODING_GB2312     = <a href="ft2-base_interface.html#FT_ENCODING_PRC">FT_ENCODING_PRC</a>,
+    <a href="ft2-base_interface.html#FT_ENCODING_MS_SJIS">FT_ENCODING_MS_SJIS</a>    = <a href="ft2-base_interface.html#FT_ENCODING_SJIS">FT_ENCODING_SJIS</a>,
+    <a href="ft2-base_interface.html#FT_ENCODING_MS_GB2312">FT_ENCODING_MS_GB2312</a>  = <a href="ft2-base_interface.html#FT_ENCODING_PRC">FT_ENCODING_PRC</a>,
+    <a href="ft2-base_interface.html#FT_ENCODING_MS_BIG5">FT_ENCODING_MS_BIG5</a>    = <a href="ft2-base_interface.html#FT_ENCODING_BIG5">FT_ENCODING_BIG5</a>,
+    <a href="ft2-base_interface.html#FT_ENCODING_MS_WANSUNG">FT_ENCODING_MS_WANSUNG</a> = <a href="ft2-base_interface.html#FT_ENCODING_WANSUNG">FT_ENCODING_WANSUNG</a>,
+    <a href="ft2-base_interface.html#FT_ENCODING_MS_JOHAB">FT_ENCODING_MS_JOHAB</a>   = <a href="ft2-base_interface.html#FT_ENCODING_JOHAB">FT_ENCODING_JOHAB</a>,
+
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_STANDARD">FT_ENCODING_ADOBE_STANDARD</a>, 'A', 'D', 'O', 'B' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_EXPERT">FT_ENCODING_ADOBE_EXPERT</a>,   'A', 'D', 'B', 'E' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_CUSTOM">FT_ENCODING_ADOBE_CUSTOM</a>,   'A', 'D', 'B', 'C' ),
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_LATIN_1">FT_ENCODING_ADOBE_LATIN_1</a>,  'l', 'a', 't', '1' ),
+
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_OLD_LATIN_2">FT_ENCODING_OLD_LATIN_2</a>, 'l', 'a', 't', '2' ),
+
+    <a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a>( <a href="ft2-base_interface.html#FT_ENCODING_APPLE_ROMAN">FT_ENCODING_APPLE_ROMAN</a>, 'a', 'r', 'm', 'n' )
+
+  } <b>FT_Encoding</b>;
+
+
+  /* these constants are deprecated; use the corresponding `<b>FT_Encoding</b>' */
+  /* values instead                                                      */
+#define ft_encoding_none            <a href="ft2-base_interface.html#FT_ENCODING_NONE">FT_ENCODING_NONE</a>
+#define ft_encoding_unicode         <a href="ft2-base_interface.html#FT_ENCODING_UNICODE">FT_ENCODING_UNICODE</a>
+#define ft_encoding_symbol          <a href="ft2-base_interface.html#FT_ENCODING_MS_SYMBOL">FT_ENCODING_MS_SYMBOL</a>
+#define ft_encoding_latin_1         <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_LATIN_1">FT_ENCODING_ADOBE_LATIN_1</a>
+#define ft_encoding_latin_2         <a href="ft2-base_interface.html#FT_ENCODING_OLD_LATIN_2">FT_ENCODING_OLD_LATIN_2</a>
+#define ft_encoding_sjis            <a href="ft2-base_interface.html#FT_ENCODING_SJIS">FT_ENCODING_SJIS</a>
+#define ft_encoding_gb2312          <a href="ft2-base_interface.html#FT_ENCODING_PRC">FT_ENCODING_PRC</a>
+#define ft_encoding_big5            <a href="ft2-base_interface.html#FT_ENCODING_BIG5">FT_ENCODING_BIG5</a>
+#define ft_encoding_wansung         <a href="ft2-base_interface.html#FT_ENCODING_WANSUNG">FT_ENCODING_WANSUNG</a>
+#define ft_encoding_johab           <a href="ft2-base_interface.html#FT_ENCODING_JOHAB">FT_ENCODING_JOHAB</a>
+
+#define ft_encoding_adobe_standard  <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_STANDARD">FT_ENCODING_ADOBE_STANDARD</a>
+#define ft_encoding_adobe_expert    <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_EXPERT">FT_ENCODING_ADOBE_EXPERT</a>
+#define ft_encoding_adobe_custom    <a href="ft2-base_interface.html#FT_ENCODING_ADOBE_CUSTOM">FT_ENCODING_ADOBE_CUSTOM</a>
+#define ft_encoding_apple_roman     <a href="ft2-base_interface.html#FT_ENCODING_APPLE_ROMAN">FT_ENCODING_APPLE_ROMAN</a>
+</pre>
+
+<p>An enumeration to specify character sets supported by charmaps. Used in the <a href="ft2-base_interface.html#FT_Select_Charmap">FT_Select_Charmap</a> API function.</p>
+
+<h4>note</h4>
+<p>Despite the name, this enumeration lists specific character repertories (i.e., charsets), and not text encoding methods (e.g., UTF-8, UTF-16, etc.).</p>
+<p>Other encodings might be defined in the future.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_ENCODING_NONE">FT_ENCODING_NONE</td><td class="desc">
+<p>The encoding value&nbsp;0 is reserved.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_UNICODE">FT_ENCODING_UNICODE</td><td class="desc">
+<p>The Unicode character set. This value covers all versions of the Unicode repertoire, including ASCII and Latin-1. Most fonts include a Unicode charmap, but not all of them.</p>
+<p>For example, if you want to access Unicode value U+1F028 (and the font contains it), use value 0x1F028 as the input value for <a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_SYMBOL">FT_ENCODING_MS_SYMBOL</td><td class="desc">
+<p>Microsoft Symbol encoding, used to encode mathematical symbols and wingdings. For more information, see &lsquo;<a href="https://www.microsoft.com/typography/otspec/recom.htm">https://www.microsoft.com/typography/otspec/recom.htm</a>&rsquo;, &lsquo;<a href="http://www.kostis.net/charsets/symbol.htm">http://www.kostis.net/charsets/symbol.htm</a>&rsquo;, and &lsquo;<a href="http://www.kostis.net/charsets/wingding.htm">http://www.kostis.net/charsets/wingding.htm</a>&rsquo;.</p>
+<p>This encoding uses character codes from the PUA (Private Unicode Area) in the range U+F020-U+F0FF.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_SJIS">FT_ENCODING_SJIS</td><td class="desc">
+<p>Shift JIS encoding for Japanese. More info at &lsquo;<a href="https://en.wikipedia.org/wiki/Shift_JIS">https://en.wikipedia.org/wiki/Shift_JIS</a>&rsquo;. See note on multi-byte encodings below.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_PRC">FT_ENCODING_PRC</td><td class="desc">
+<p>Corresponds to encoding systems mainly for Simplified Chinese as used in People's Republic of China (PRC). The encoding layout is based on GB&nbsp;2312 and its supersets GBK and GB&nbsp;18030.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_BIG5">FT_ENCODING_BIG5</td><td class="desc">
+<p>Corresponds to an encoding system for Traditional Chinese as used in Taiwan and Hong Kong.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_WANSUNG">FT_ENCODING_WANSUNG</td><td class="desc">
+<p>Corresponds to the Korean encoding system known as Extended Wansung (MS Windows code page 949). For more information see &lsquo;<a href="https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt">https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt</a>&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_JOHAB">FT_ENCODING_JOHAB</td><td class="desc">
+<p>The Korean standard character set (KS&nbsp;C 5601-1992), which corresponds to MS Windows code page 1361. This character set includes all possible Hangul character combinations.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_ADOBE_LATIN_1">FT_ENCODING_ADOBE_LATIN_1</td><td class="desc">
+<p>Corresponds to a Latin-1 encoding as defined in a Type&nbsp;1 PostScript font. It is limited to 256 character codes.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_ADOBE_STANDARD">FT_ENCODING_ADOBE_STANDARD</td><td class="desc">
+<p>Adobe Standard encoding, as found in Type&nbsp;1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_ADOBE_EXPERT">FT_ENCODING_ADOBE_EXPERT</td><td class="desc">
+<p>Adobe Expert encoding, as found in Type&nbsp;1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_ADOBE_CUSTOM">FT_ENCODING_ADOBE_CUSTOM</td><td class="desc">
+<p>Corresponds to a custom encoding, as found in Type&nbsp;1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_APPLE_ROMAN">FT_ENCODING_APPLE_ROMAN</td><td class="desc">
+<p>Apple roman encoding. Many TrueType and OpenType fonts contain a charmap for this 8-bit encoding, since older versions of Mac OS are able to use it.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_OLD_LATIN_2">FT_ENCODING_OLD_LATIN_2</td><td class="desc">
+<p>This value is deprecated and was neither used nor reported by FreeType. Don't use or test for it.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_SJIS">FT_ENCODING_MS_SJIS</td><td class="desc">
+<p>Same as FT_ENCODING_SJIS. Deprecated.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_GB2312">FT_ENCODING_MS_GB2312</td><td class="desc">
+<p>Same as FT_ENCODING_PRC. Deprecated.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_BIG5">FT_ENCODING_MS_BIG5</td><td class="desc">
+<p>Same as FT_ENCODING_BIG5. Deprecated.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_WANSUNG">FT_ENCODING_MS_WANSUNG</td><td class="desc">
+<p>Same as FT_ENCODING_WANSUNG. Deprecated.</p>
+</td></tr>
+<tr><td class="val" id="FT_ENCODING_MS_JOHAB">FT_ENCODING_MS_JOHAB</td><td class="desc">
+<p>Same as FT_ENCODING_JOHAB. Deprecated.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>By default, FreeType enables a Unicode charmap and tags it with FT_ENCODING_UNICODE when it is either provided or can be generated from PostScript glyph name dictionaries in the font file. All other encodings are considered legacy and tagged only if explicitly defined in the font file. Otherwise, FT_ENCODING_NONE is used.</p>
+<p>FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap is neither Unicode nor ISO-8859-1 (otherwise it is set to FT_ENCODING_UNICODE). Use <a href="ft2-bdf_fonts.html#FT_Get_BDF_Charset_ID">FT_Get_BDF_Charset_ID</a> to find out which encoding is really present. If, for example, the &lsquo;cs_registry&rsquo; field is &lsquo;KOI8&rsquo; and the &lsquo;cs_encoding&rsquo; field is &lsquo;R&rsquo;, the font is encoded in KOI8-R.</p>
+<p>FT_ENCODING_NONE is always set (with a single exception) by the winfonts driver. Use <a href="ft2-winfnt_fonts.html#FT_Get_WinFNT_Header">FT_Get_WinFNT_Header</a> and examine the &lsquo;charset&rsquo; field of the <a href="ft2-winfnt_fonts.html#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a> structure to find out which encoding is really present. For example, <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1251</a> (204) means Windows code page 1251 (for Russian).</p>
+<p>FT_ENCODING_NONE is set if &lsquo;platform_id&rsquo; is <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a> and &lsquo;encoding_id&rsquo; is not &lsquo;TT_MAC_ID_ROMAN&rsquo; (otherwise it is set to FT_ENCODING_APPLE_ROMAN).</p>
+<p>If &lsquo;platform_id&rsquo; is <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a>, use the function <a href="ft2-truetype_tables.html#FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</a> to query the Mac language ID that may be needed to be able to distinguish Apple encoding variants. See</p>
+<p><a href="https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt">https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt</a></p>
+<p>to get an idea how to do that. Basically, if the language ID is&nbsp;0, don't use it, otherwise subtract 1 from the language ID. Then examine &lsquo;encoding_id&rsquo;. If, for example, &lsquo;encoding_id&rsquo; is &lsquo;TT_MAC_ID_ROMAN&rsquo; and the language ID (minus&nbsp;1) is &lsquo;TT_MAC_LANGID_GREEK&rsquo;, it is the Greek encoding, not Roman. &lsquo;TT_MAC_ID_ARABIC&rsquo; with &lsquo;TT_MAC_LANGID_FARSI&rsquo; means the Farsi variant the Arabic encoding.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ENC_TAG">FT_ENC_TAG</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#ifndef <b>FT_ENC_TAG</b>
+#define <b>FT_ENC_TAG</b>( value, a, b, c, d )         \
+          value = ( ( (<a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>)(a) &lt;&lt; 24 ) |  \
+                    ( (<a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>)(b) &lt;&lt; 16 ) |  \
+                    ( (<a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>)(c) &lt;&lt;  8 ) |  \
+                      (<a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>)(d)         )
+
+#endif /* <b>FT_ENC_TAG</b> */
+</pre>
+
+<p>This macro converts four-letter tags into an unsigned long. It is used to define &lsquo;encoding&rsquo; identifiers (see <a href="ft2-base_interface.html#FT_Encoding">FT_Encoding</a>).</p>
+
+<h4>note</h4>
+<p>Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:</p>
+<pre class="colored">
+  #define FT_ENC_TAG( value, a, b, c, d )  value
+</pre>
+<p>to get a simple enumeration without assigning special numbers.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FaceRec">FT_FaceRec</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_FaceRec_
+  {
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>           num_faces;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>           face_index;
+
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>           face_flags;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>           style_flags;
+
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>           num_glyphs;
+
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*        family_name;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*        style_name;
+
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>            num_fixed_sizes;
+    <a href="ft2-base_interface.html#FT_Bitmap_Size">FT_Bitmap_Size</a>*   available_sizes;
+
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>            num_charmaps;
+    <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>*       charmaps;
+
+    <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a>        generic;
+
+    /*# The following member variables (down to `underline_thickness') */
+    /*# are only relevant to scalable outlines; cf. @<a href="ft2-base_interface.html#FT_Bitmap_Size">FT_Bitmap_Size</a>    */
+    /*# for bitmap fonts.                                              */
+    <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>           bbox;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>         units_per_EM;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          ascender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          descender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          height;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          max_advance_width;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          max_advance_height;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          underline_position;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>          underline_thickness;
+
+    <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>      glyph;
+    <a href="ft2-base_interface.html#FT_Size">FT_Size</a>           size;
+    <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>        charmap;
+
+    /*@private begin */
+
+    <a href="ft2-module_management.html#FT_Driver">FT_Driver</a>         driver;
+    <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>         memory;
+    <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>         stream;
+
+    <a href="ft2-list_processing.html#FT_ListRec">FT_ListRec</a>        sizes_list;
+
+    <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a>        autohint;   /* face-specific auto-hinter data */
+    <span class="keyword">void</span>*             extensions; /* unused                         */
+
+    <a href="ft2-base_interface.html#FT_Face_Internal">FT_Face_Internal</a>  internal;
+
+    /*@private end */
+
+  } <b>FT_FaceRec</b>;
+</pre>
+
+<p>FreeType root face class structure. A face object models a typeface in a font file.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="num_faces">num_faces</td><td class="desc">
+<p>The number of faces in the font file. Some font formats can have multiple faces in a single font file.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>This field holds two different values. Bits 0-15 are the index of the face in the font file (starting with value&nbsp;0). They are set to&nbsp;0 if there is only one face in the font file.</p>
+<p>[Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation fonts only, holding the named instance index for the current face index (starting with value&nbsp;1; value&nbsp;0 indicates font access without a named instance). For non-variation fonts, bits 16-30 are ignored. If we have the third named instance of face&nbsp;4, say, &lsquo;face_index&rsquo; is set to 0x00030004.</p>
+<p>Bit 31 is always zero (this is, &lsquo;face_index&rsquo; is always a positive value).</p>
+<p>[Since 2.9] Changing the design coordinates with <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> or <a href="ft2-multiple_masters.html#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a> does not influence the named instance index value (only <a href="ft2-multiple_masters.html#FT_Set_Named_Instance">FT_Set_Named_Instance</a> does that).</p>
+</td></tr>
+<tr><td class="val" id="face_flags">face_flags</td><td class="desc">
+<p>A set of bit flags that give important information about the face; see <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_XXX</a> for the details.</p>
+</td></tr>
+<tr><td class="val" id="style_flags">style_flags</td><td class="desc">
+<p>The lower 16&nbsp;bits contain a set of bit flags indicating the style of the face; see <a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</a> for the details.</p>
+<p>[Since 2.6.1] Bits 16-30 hold the number of named instances available for the current face if we have a GX or OpenType variation (sub)font. Bit 31 is always zero (this is, &lsquo;style_flags&rsquo; is always a positive value). Note that a variation font has always at least one named instance, namely the default instance.</p>
+</td></tr>
+<tr><td class="val" id="num_glyphs">num_glyphs</td><td class="desc">
+<p>The number of glyphs in the face. If the face is scalable and has sbits (see &lsquo;num_fixed_sizes&rsquo;), it is set to the number of outline glyphs.</p>
+<p>For CID-keyed fonts (not in an SFNT wrapper) this value gives the highest CID used in the font.</p>
+</td></tr>
+<tr><td class="val" id="family_name">family_name</td><td class="desc">
+<p>The face's family name. This is an ASCII string, usually in English, that describes the typeface's family (like &lsquo;Times New Roman&rsquo;, &lsquo;Bodoni&rsquo;, &lsquo;Garamond&rsquo;, etc). This is a least common denominator used to list fonts. Some formats (TrueType &amp; OpenType) provide localized and Unicode versions of this string. Applications should use the format specific interface to access them. Can be NULL (e.g., in fonts embedded in a PDF file).</p>
+<p>In case the font doesn't provide a specific family name entry, FreeType tries to synthesize one, deriving it from other name entries.</p>
+</td></tr>
+<tr><td class="val" id="style_name">style_name</td><td class="desc">
+<p>The face's style name. This is an ASCII string, usually in English, that describes the typeface's style (like &lsquo;Italic&rsquo;, &lsquo;Bold&rsquo;, &lsquo;Condensed&rsquo;, etc). Not all font formats provide a style name, so this field is optional, and can be set to NULL. As for &lsquo;family_name&rsquo;, some formats provide localized and Unicode versions of this string. Applications should use the format specific interface to access them.</p>
+</td></tr>
+<tr><td class="val" id="num_fixed_sizes">num_fixed_sizes</td><td class="desc">
+<p>The number of bitmap strikes in the face. Even if the face is scalable, there might still be bitmap strikes, which are called &lsquo;sbits&rsquo; in that case.</p>
+</td></tr>
+<tr><td class="val" id="available_sizes">available_sizes</td><td class="desc">
+<p>An array of <a href="ft2-base_interface.html#FT_Bitmap_Size">FT_Bitmap_Size</a> for all bitmap strikes in the face. It is set to NULL if there is no bitmap strike.</p>
+<p>Note that FreeType tries to sanitize the strike data since they are sometimes sloppy or incorrect, but this can easily fail.</p>
+</td></tr>
+<tr><td class="val" id="num_charmaps">num_charmaps</td><td class="desc">
+<p>The number of charmaps in the face.</p>
+</td></tr>
+<tr><td class="val" id="charmaps">charmaps</td><td class="desc">
+<p>An array of the charmaps of the face.</p>
+</td></tr>
+<tr><td class="val" id="generic">generic</td><td class="desc">
+<p>A field reserved for client uses. See the <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a> type description.</p>
+</td></tr>
+<tr><td class="val" id="bbox">bbox</td><td class="desc">
+<p>The font bounding box. Coordinates are expressed in font units (see &lsquo;units_per_EM&rsquo;). The box is large enough to contain any glyph from the font. Thus, &lsquo;bbox.yMax&rsquo; can be seen as the &lsquo;maximum ascender&rsquo;, and &lsquo;bbox.yMin&rsquo; as the &lsquo;minimum descender&rsquo;. Only relevant for scalable formats.</p>
+<p>Note that the bounding box might be off by (at least) one pixel for hinted fonts. See <a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a> for further discussion.</p>
+</td></tr>
+<tr><td class="val" id="units_per_EM">units_per_EM</td><td class="desc">
+<p>The number of font units per EM square for this face. This is typically 2048 for TrueType fonts, and 1000 for Type&nbsp;1 fonts. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="ascender">ascender</td><td class="desc">
+<p>The typographic ascender of the face, expressed in font units. For font formats not having this information, it is set to &lsquo;bbox.yMax&rsquo;. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="descender">descender</td><td class="desc">
+<p>The typographic descender of the face, expressed in font units. For font formats not having this information, it is set to &lsquo;bbox.yMin&rsquo;. Note that this field is negative for values below the baseline. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>This value is the vertical distance between two consecutive baselines, expressed in font units. It is always positive. Only relevant for scalable formats.</p>
+<p>If you want the global glyph height, use &lsquo;ascender - descender&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="max_advance_width">max_advance_width</td><td class="desc">
+<p>The maximum advance width, in font units, for all glyphs in this face. This can be used to make word wrapping computations faster. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="max_advance_height">max_advance_height</td><td class="desc">
+<p>The maximum advance height, in font units, for all glyphs in this face. This is only relevant for vertical layouts, and is set to &lsquo;height&rsquo; for fonts that do not provide vertical metrics. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="underline_position">underline_position</td><td class="desc">
+<p>The position, in font units, of the underline line for this face. It is the center of the underlining stem. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="underline_thickness">underline_thickness</td><td class="desc">
+<p>The thickness, in font units, of the underline for this face. Only relevant for scalable formats.</p>
+</td></tr>
+<tr><td class="val" id="glyph">glyph</td><td class="desc">
+<p>The face's associated glyph slot(s).</p>
+</td></tr>
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>The current active size for this face.</p>
+</td></tr>
+<tr><td class="val" id="charmap">charmap</td><td class="desc">
+<p>The current active charmap for this face.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Fields may be changed after a call to <a href="ft2-base_interface.html#FT_Attach_File">FT_Attach_File</a> or <a href="ft2-base_interface.html#FT_Attach_Stream">FT_Attach_Stream</a>.</p>
+<p>For an OpenType variation font, the values of the following fields can change after a call to <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> (and friends) if the font contains an &lsquo;MVAR&rsquo; table: &lsquo;ascender&rsquo;, &lsquo;descender&rsquo;, &lsquo;height&rsquo;, &lsquo;underline_position&rsquo;, and &lsquo;underline_thickness&rsquo;.</p>
+<p>Especially for TrueType fonts see also the documentation for <a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_HORIZONTAL">FT_HAS_HORIZONTAL</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_HORIZONTAL</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains horizontal metrics (this is true for all font formats though).</p>
+
+<h4>also</h4>
+<p><a href="ft2-base_interface.html#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a> can be used to check for vertical metrics.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_VERTICAL">FT_HAS_VERTICAL</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_VERTICAL</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains real vertical metrics (and not only synthesized ones).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_KERNING">FT_HAS_KERNING</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_KERNING</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains kerning data that can be accessed with <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_FIXED_SIZES">FT_HAS_FIXED_SIZES</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_FIXED_SIZES</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains some embedded bitmaps. See the &lsquo;available_sizes&rsquo; field of the <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_GLYPH_NAMES</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains some glyph names that can be accessed through <a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_COLOR">FT_HAS_COLOR</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_COLOR</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains tables for color glyphs.</p>
+
+<h4>since</h4>
+<p>2.5.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_MULTIPLE_MASTERS">FT_HAS_MULTIPLE_MASTERS</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_MULTIPLE_MASTERS</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains some multiple masters. The functions provided by <a href="ft2-header_file_macros.html#FT_MULTIPLE_MASTERS_H">FT_MULTIPLE_MASTERS_H</a> are then available to choose the exact design you want.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_SFNT">FT_IS_SFNT</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_SFNT</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</a> )
+</pre>
+
+<p>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.</p>
+<p>If this macro is true, all functions defined in <a href="ft2-header_file_macros.html#FT_SFNT_NAMES_H">FT_SFNT_NAMES_H</a> and <a href="ft2-header_file_macros.html#FT_TRUETYPE_TABLES_H">FT_TRUETYPE_TABLES_H</a> are available.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_SCALABLE">FT_IS_SCALABLE</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_SCALABLE</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains a scalable font face (true for TrueType, Type&nbsp;1, Type&nbsp;42, CID, OpenType/CFF, and PFR font formats).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_FIXED_WIDTH">FT_IS_FIXED_WIDTH</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_FIXED_WIDTH</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains a font face that contains fixed-width (or &lsquo;monospace&rsquo;, &lsquo;fixed-pitch&rsquo;, etc.) glyphs.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_CID_KEYED">FT_IS_CID_KEYED</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_CID_KEYED</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object contains a CID-keyed font. See the discussion of <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a> for more details.</p>
+<p>If this macro is true, all functions defined in <a href="ft2-header_file_macros.html#FT_CID_H">FT_CID_H</a> are available.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_TRICKY">FT_IS_TRICKY</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_TRICKY</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</a> )
+</pre>
+
+<p>A macro that returns true whenever a face represents a &lsquo;tricky&rsquo; font. See the discussion of <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_TRICKY</a> for more details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_NAMED_INSTANCE">FT_IS_NAMED_INSTANCE</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_NAMED_INSTANCE</b>( face ) \
+          ( (face)-&gt;face_index &amp; 0x7FFF0000L )
+</pre>
+
+<p>A macro that returns true whenever a face object is a named instance of a GX or OpenType variation font.</p>
+<p>[Since 2.9] Changing the design coordinates with <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> or <a href="ft2-multiple_masters.html#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a> does not influence the return value of this macro (only <a href="ft2-multiple_masters.html#FT_Set_Named_Instance">FT_Set_Named_Instance</a> does that).</p>
+
+<h4>since</h4>
+<p>2.7</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IS_VARIATION">FT_IS_VARIATION</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_IS_VARIATION</b>( face ) \
+          ( (face)-&gt;face_flags &amp; <a href="ft2-base_interface.html#FT_FACE_FLAG_VARIATION">FT_FACE_FLAG_VARIATION</a> )
+</pre>
+
+<p>A macro that returns true whenever a face object has been altered by <a href="ft2-multiple_masters.html#FT_Set_MM_Design_Coordinates">FT_Set_MM_Design_Coordinates</a>, <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a>, or <a href="ft2-multiple_masters.html#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a>.</p>
+
+<h4>since</h4>
+<p>2.9</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SizeRec">FT_SizeRec</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_SizeRec_
+  {
+    <a href="ft2-base_interface.html#FT_Face">FT_Face</a>           face;      /* parent face object              */
+    <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a>        generic;   /* generic pointer for client uses */
+    <a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a>   metrics;   /* size metrics                    */
+    <a href="ft2-base_interface.html#FT_Size_Internal">FT_Size_Internal</a>  internal;
+
+  } <b>FT_SizeRec</b>;
+</pre>
+
+<p>FreeType root size class structure. A size object models a face object at a given size.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>Handle to the parent face object.</p>
+</td></tr>
+<tr><td class="val" id="generic">generic</td><td class="desc">
+<p>A typeless pointer, unused by the FreeType library or any of its drivers. It can be used by client applications to link their own data to each size object.</p>
+</td></tr>
+<tr><td class="val" id="metrics">metrics</td><td class="desc">
+<p>Metrics for this size object. This field is read-only.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size_Metrics">FT_Size_Metrics</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Size_Metrics_
+  {
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  x_ppem;      /* horizontal pixels per EM               */
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  y_ppem;      /* vertical pixels per EM                 */
+
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   x_scale;     /* scaling values used to convert font    */
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   y_scale;     /* units to 26.6 fractional pixels        */
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>     ascender;    /* ascender in 26.6 frac. pixels          */
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>     descender;   /* descender in 26.6 frac. pixels         */
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>     height;      /* text height in 26.6 frac. pixels       */
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>     max_advance; /* max horizontal advance, in 26.6 pixels */
+
+  } <b>FT_Size_Metrics</b>;
+</pre>
+
+<p>The size metrics structure gives the metrics of a size object.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="x_ppem">x_ppem</td><td class="desc">
+<p>The width of the scaled EM square in pixels, hence the term &lsquo;ppem&rsquo; (pixels per EM). It is also referred to as &lsquo;nominal width&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="y_ppem">y_ppem</td><td class="desc">
+<p>The height of the scaled EM square in pixels, hence the term &lsquo;ppem&rsquo; (pixels per EM). It is also referred to as &lsquo;nominal height&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="x_scale">x_scale</td><td class="desc">
+<p>A 16.16 fractional scaling value to convert horizontal metrics from font units to 26.6 fractional pixels. Only relevant for scalable font formats.</p>
+</td></tr>
+<tr><td class="val" id="y_scale">y_scale</td><td class="desc">
+<p>A 16.16 fractional scaling value to convert vertical metrics from font units to 26.6 fractional pixels. Only relevant for scalable font formats.</p>
+</td></tr>
+<tr><td class="val" id="ascender">ascender</td><td class="desc">
+<p>The ascender in 26.6 fractional pixels, rounded up to an integer value. See <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> for the details.</p>
+</td></tr>
+<tr><td class="val" id="descender">descender</td><td class="desc">
+<p>The descender in 26.6 fractional pixels, rounded down to an integer value. See <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> for the details.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The height in 26.6 fractional pixels, rounded to an integer value. See <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> for the details.</p>
+</td></tr>
+<tr><td class="val" id="max_advance">max_advance</td><td class="desc">
+<p>The maximum advance width in 26.6 fractional pixels, rounded to an integer value. See <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> for the details.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The scaling values, if relevant, are determined first during a size changing operation. The remaining fields are then set by the driver. For scalable formats, they are usually set to scaled values of the corresponding fields in <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a>. Some values like ascender or descender are rounded for historical reasons; more precise values (for outline fonts) can be derived by scaling the corresponding <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> values manually, with code similar to the following.</p>
+<pre class="colored">
+  scaled_ascender = FT_MulFix( face-&gt;ascender,
+                               size_metrics-&gt;y_scale );
+</pre>
+<p>Note that due to glyph hinting and the selected rendering mode these values are usually not exact; consequently, they must be treated as unreliable with an error margin of at least one pixel!</p>
+<p>Indeed, the only way to get the exact metrics is to render <i>all</i> glyphs. As this would be a definite performance hit, it is up to client applications to perform such computations.</p>
+<p>The &lsquo;FT_Size_Metrics&rsquo; structure is valid for bitmap fonts also.</p>
+<p><b>TrueType</b> <b>fonts</b> <b>with</b> <b>native</b> <b>bytecode</b> <b>hinting</b></p>
+<p>All applications that handle TrueType fonts with native hinting must be aware that TTFs expect different rounding of vertical font dimensions. The application has to cater for this, especially if it wants to rely on a TTF's vertical data (for example, to properly align box characters vertically).</p>
+<p>Only the application knows <i>in</i> <i>advance</i> that it is going to use native hinting for TTFs! FreeType, on the other hand, selects the hinting mode not at the time of creating an <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object but much later, namely while calling <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+<p>Here is some pseudo code that illustrates a possible solution.</p>
+<pre class="colored">
+  font_format = FT_Get_Font_Format( face );
+
+  if ( !strcmp( font_format, "TrueType" ) &amp;&amp;
+       do_native_bytecode_hinting         )
+  {
+    ascender  = ROUND( FT_MulFix( face-&gt;ascender,
+                                  size_metrics-&gt;y_scale ) );
+    descender = ROUND( FT_MulFix( face-&gt;descender,
+                                  size_metrics-&gt;y_scale ) );
+  }
+  else
+  {
+    ascender  = size_metrics-&gt;ascender;
+    descender = size_metrics-&gt;descender;
+  }
+
+  height      = size_metrics-&gt;height;
+  max_advance = size_metrics-&gt;max_advance;
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GlyphSlotRec">FT_GlyphSlotRec</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_GlyphSlotRec_
+  {
+    <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library;
+    <a href="ft2-base_interface.html#FT_Face">FT_Face</a>           face;
+    <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>      next;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>           reserved;       /* retained for binary compatibility */
+    <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a>        generic;
+
+    <a href="ft2-base_interface.html#FT_Glyph_Metrics">FT_Glyph_Metrics</a>  metrics;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>          linearHoriAdvance;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>          linearVertAdvance;
+    <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>         advance;
+
+    <a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a>   format;
+
+    <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>         bitmap;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>            bitmap_left;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>            bitmap_top;
+
+    <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>        outline;
+
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>           num_subglyphs;
+    <a href="ft2-base_interface.html#FT_SubGlyph">FT_SubGlyph</a>       subglyphs;
+
+    <span class="keyword">void</span>*             control_data;
+    <span class="keyword">long</span>              control_len;
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>            lsb_delta;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>            rsb_delta;
+
+    <span class="keyword">void</span>*             other;
+
+    <a href="ft2-base_interface.html#FT_Slot_Internal">FT_Slot_Internal</a>  internal;
+
+  } <b>FT_GlyphSlotRec</b>;
+</pre>
+
+<p>FreeType root glyph slot class structure. A glyph slot is a container where individual glyphs can be loaded, be they in outline or bitmap format.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the FreeType library instance this slot belongs to.</p>
+</td></tr>
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the parent face object.</p>
+</td></tr>
+<tr><td class="val" id="next">next</td><td class="desc">
+<p>In some cases (like some font tools), several glyph slots per face object can be a good thing. As this is rare, the glyph slots are listed through a direct, single-linked list using its &lsquo;next&rsquo; field.</p>
+</td></tr>
+<tr><td class="val" id="generic">generic</td><td class="desc">
+<p>A typeless pointer unused by the FreeType library or any of its drivers. It can be used by client applications to link their own data to each glyph slot object.</p>
+</td></tr>
+<tr><td class="val" id="metrics">metrics</td><td class="desc">
+<p>The metrics of the last loaded glyph in the slot. The returned values depend on the last load flags (see the <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> API function) and can be expressed either in 26.6 fractional pixels or font units.</p>
+<p>Note that even when the glyph image is transformed, the metrics are not.</p>
+</td></tr>
+<tr><td class="val" id="linearHoriAdvance">linearHoriAdvance</td><td class="desc">
+<p>The advance width of the unhinted glyph. Its value is expressed in 16.16 fractional pixels, unless <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_LINEAR_DESIGN</a> is set when loading the glyph. This field can be important to perform correct WYSIWYG layout. Only relevant for outline glyphs.</p>
+</td></tr>
+<tr><td class="val" id="linearVertAdvance">linearVertAdvance</td><td class="desc">
+<p>The advance height of the unhinted glyph. Its value is expressed in 16.16 fractional pixels, unless <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_LINEAR_DESIGN</a> is set when loading the glyph. This field can be important to perform correct WYSIWYG layout. Only relevant for outline glyphs.</p>
+</td></tr>
+<tr><td class="val" id="advance">advance</td><td class="desc">
+<p>This shorthand is, depending on <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_IGNORE_TRANSFORM</a>, the transformed (hinted) advance width for the glyph, in 26.6 fractional pixel format. As specified with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_VERTICAL_LAYOUT</a>, it uses either the &lsquo;horiAdvance&rsquo; or the &lsquo;vertAdvance&rsquo; value of &lsquo;metrics&rsquo; field.</p>
+</td></tr>
+<tr><td class="val" id="format">format</td><td class="desc">
+<p>This field indicates the format of the image contained in the glyph slot. Typically <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_BITMAP</a>, <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a>, or <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_COMPOSITE</a>, but other values are possible.</p>
+</td></tr>
+<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
+<p>This field is used as a bitmap descriptor. Note that the address and content of the bitmap buffer can change between calls of <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> and a few other functions.</p>
+</td></tr>
+<tr><td class="val" id="bitmap_left">bitmap_left</td><td class="desc">
+<p>The bitmap's left bearing expressed in integer pixels.</p>
+</td></tr>
+<tr><td class="val" id="bitmap_top">bitmap_top</td><td class="desc">
+<p>The bitmap's top bearing expressed in integer pixels. This is the distance from the baseline to the top-most glyph scanline, upwards y&nbsp;coordinates being <b>positive</b>.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The outline descriptor for the current glyph image if its format is <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a>. Once a glyph is loaded, &lsquo;outline&rsquo; can be transformed, distorted, emboldened, etc. However, it must not be freed.</p>
+</td></tr>
+<tr><td class="val" id="num_subglyphs">num_subglyphs</td><td class="desc">
+<p>The number of subglyphs in a composite glyph. This field is only valid for the composite glyph format that should normally only be loaded with the <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_RECURSE</a> flag.</p>
+</td></tr>
+<tr><td class="val" id="subglyphs">subglyphs</td><td class="desc">
+<p>An array of subglyph descriptors for composite glyphs. There are &lsquo;num_subglyphs&rsquo; elements in there. Currently internal to FreeType.</p>
+</td></tr>
+<tr><td class="val" id="control_data">control_data</td><td class="desc">
+<p>Certain font drivers can also return the control data for a given glyph image (e.g. TrueType bytecode, Type&nbsp;1 charstrings, etc.). This field is a pointer to such data; it is currently internal to FreeType.</p>
+</td></tr>
+<tr><td class="val" id="control_len">control_len</td><td class="desc">
+<p>This is the length in bytes of the control data. Currently internal to FreeType.</p>
+</td></tr>
+<tr><td class="val" id="other">other</td><td class="desc">
+<p>Reserved.</p>
+</td></tr>
+<tr><td class="val" id="lsb_delta">lsb_delta</td><td class="desc">
+<p>The difference between hinted and unhinted left side bearing while auto-hinting is active. Zero otherwise.</p>
+</td></tr>
+<tr><td class="val" id="rsb_delta">rsb_delta</td><td class="desc">
+<p>The difference between hinted and unhinted right side bearing while auto-hinting is active. Zero otherwise.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>If <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> is called with default flags (see <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_DEFAULT</a>) the glyph image is loaded in the glyph slot in its native format (e.g., an outline glyph for TrueType and Type&nbsp;1 formats). [Since 2.9] The prospective bitmap metrics are calculated according to <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a> and other flags even for the outline glyph, even if <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a> is not set.</p>
+<p>This image can later be converted into a bitmap by calling <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>. This function searches the current renderer for the native image's format, then invokes it.</p>
+<p>The renderer is in charge of transforming the native image through the slot's face transformation fields, then converting it into a bitmap that is returned in &lsquo;slot-&gt;bitmap&rsquo;.</p>
+<p>Note that &lsquo;slot-&gt;bitmap_left&rsquo; and &lsquo;slot-&gt;bitmap_top&rsquo; are also used to specify the position of the bitmap relative to the current pen position (e.g., coordinates (0,0) on the baseline). Of course, &lsquo;slot-&gt;format&rsquo; is also changed to <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_BITMAP</a>.</p>
+<p>Here is a small pseudo code fragment that shows how to use &lsquo;lsb_delta&rsquo; and &lsquo;rsb_delta&rsquo; to do fractional positioning of glyphs:</p>
+<pre class="colored">
+  FT_GlyphSlot  slot     = face-&gt;glyph;
+  FT_Pos        origin_x = 0;
+
+
+  for all glyphs do
+    &lt;load glyph with `FT_Load_Glyph'&gt;
+
+    FT_Outline_Translate( slot-&gt;outline, origin_x &amp; 63, 0 );
+
+    &lt;save glyph image, or render glyph, or ...&gt;
+
+    &lt;compute kern between current and next glyph
+     and add it to `origin_x'&gt;
+
+    origin_x += slot-&gt;advance.x;
+    origin_x += slot-&gt;rsb_delta - slot-&gt;lsb_delta;
+  endfor
+</pre>
+<p>Here is another small pseudo code fragment that shows how to use &lsquo;lsb_delta&rsquo; and &lsquo;rsb_delta&rsquo; to improve integer positioning of glyphs:</p>
+<pre class="colored">
+  FT_GlyphSlot  slot           = face-&gt;glyph;
+  FT_Pos        origin_x       = 0;
+  FT_Pos        prev_rsb_delta = 0;
+
+
+  for all glyphs do
+    &lt;compute kern between current and previous glyph
+     and add it to `origin_x'&gt;
+
+    &lt;load glyph with `FT_Load_Glyph'&gt;
+
+    if ( prev_rsb_delta - slot-&gt;lsb_delta &gt;  32 )
+      origin_x -= 64;
+    else if ( prev_rsb_delta - slot-&gt;lsb_delta &lt; -31 )
+      origin_x += 64;
+
+    prev_rsb_delta = slot-&gt;rsb_delta;
+
+    &lt;save glyph image, or render glyph, or ...&gt;
+
+    origin_x += slot-&gt;advance.x;
+  endfor
+</pre>
+<p>If you use strong auto-hinting, you <b>must</b> apply these delta values! Otherwise you will experience far too large inter-glyph spacing at small rendering sizes in most cases. Note that it doesn't harm to use the above code for other hinting modes also, since the delta values are zero then.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Metrics">FT_Glyph_Metrics</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Glyph_Metrics_
+  {
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  width;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  height;
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  horiBearingX;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  horiBearingY;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  horiAdvance;
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  vertBearingX;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  vertBearingY;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  vertAdvance;
+
+  } <b>FT_Glyph_Metrics</b>;
+</pre>
+
+<p>A structure to model the metrics of a single glyph. The values are expressed in 26.6 fractional pixel format; if the flag <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a> has been used while loading the glyph, values are expressed in font units instead.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The glyph's width.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The glyph's height.</p>
+</td></tr>
+<tr><td class="val" id="horiBearingX">horiBearingX</td><td class="desc">
+<p>Left side bearing for horizontal layout.</p>
+</td></tr>
+<tr><td class="val" id="horiBearingY">horiBearingY</td><td class="desc">
+<p>Top side bearing for horizontal layout.</p>
+</td></tr>
+<tr><td class="val" id="horiAdvance">horiAdvance</td><td class="desc">
+<p>Advance width for horizontal layout.</p>
+</td></tr>
+<tr><td class="val" id="vertBearingX">vertBearingX</td><td class="desc">
+<p>Left side bearing for vertical layout.</p>
+</td></tr>
+<tr><td class="val" id="vertBearingY">vertBearingY</td><td class="desc">
+<p>Top side bearing for vertical layout. Larger positive values mean further below the vertical glyph origin.</p>
+</td></tr>
+<tr><td class="val" id="vertAdvance">vertAdvance</td><td class="desc">
+<p>Advance height for vertical layout. Positive values mean the glyph has a positive advance downward.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>If not disabled with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a>, the values represent dimensions of the hinted glyph (in case hinting is applicable).</p>
+<p>Stroking a glyph with an outside border does not increase &lsquo;horiAdvance&rsquo; or &lsquo;vertAdvance&rsquo;; you have to manually adjust these values to account for the added width and height.</p>
+<p>FreeType doesn't use the &lsquo;VORG&rsquo; table data for CFF fonts because it doesn't have an interface to quickly retrieve the glyph height. The y&nbsp;coordinate of the vertical origin can be simply computed as &lsquo;vertBearingY + height&rsquo; after loading a glyph.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SubGlyph">FT_SubGlyph</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SubGlyphRec_*  <b>FT_SubGlyph</b>;
+</pre>
+
+<p>The subglyph structure is an internal object used to describe subglyphs (for example, in the case of composites).</p>
+
+<h4>note</h4>
+<p>The subglyph implementation is not part of the high-level API, hence the forward structure declaration.</p>
+<p>You can however retrieve subglyph information with <a href="ft2-base_interface.html#FT_Get_SubGlyph_Info">FT_Get_SubGlyph_Info</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap_Size">FT_Bitmap_Size</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Bitmap_Size_
+  {
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>  height;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>  width;
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>    size;
+
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>    x_ppem;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>    y_ppem;
+
+  } <b>FT_Bitmap_Size</b>;
+</pre>
+
+<p>This structure models the metrics of a bitmap strike (i.e., a set of glyphs for a given point size and resolution) in a bitmap font. It is used for the &lsquo;available_sizes&rsquo; field of <a href="ft2-base_interface.html#FT_Face">FT_Face</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The vertical distance, in pixels, between two consecutive baselines. It is always positive.</p>
+</td></tr>
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The average width, in pixels, of all glyphs in the strike.</p>
+</td></tr>
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>The nominal size of the strike in 26.6 fractional points. This field is not very useful.</p>
+</td></tr>
+<tr><td class="val" id="x_ppem">x_ppem</td><td class="desc">
+<p>The horizontal ppem (nominal width) in 26.6 fractional pixels.</p>
+</td></tr>
+<tr><td class="val" id="y_ppem">y_ppem</td><td class="desc">
+<p>The vertical ppem (nominal height) in 26.6 fractional pixels.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Windows FNT: The nominal size given in a FNT font is not reliable. If the driver finds it incorrect, it sets &lsquo;size&rsquo; to some calculated values, and &lsquo;x_ppem&rsquo; and &lsquo;y_ppem&rsquo; to the pixel width and height given in the font, respectively.</p>
+<p>TrueType embedded bitmaps: &lsquo;size&rsquo;, &lsquo;width&rsquo;, and &lsquo;height&rsquo; values are not contained in the bitmap strike itself. They are computed from the global font parameters.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Init_FreeType">FT_Init_FreeType</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Init_FreeType</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  *alibrary );
+</pre>
+
+<p>Initialize a new FreeType library object. The set of modules that are registered by this function is determined at build time.</p>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="alibrary">alibrary</td><td class="desc">
+<p>A handle to a new library object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>In case you want to provide your own memory allocating routines, use <a href="ft2-module_management.html#FT_New_Library">FT_New_Library</a> instead, followed by a call to <a href="ft2-module_management.html#FT_Add_Default_Modules">FT_Add_Default_Modules</a> (or a series of calls to <a href="ft2-module_management.html#FT_Add_Module">FT_Add_Module</a>) and <a href="ft2-module_management.html#FT_Set_Default_Properties">FT_Set_Default_Properties</a>.</p>
+<p>See the documentation of <a href="ft2-base_interface.html#FT_Library">FT_Library</a> and <a href="ft2-base_interface.html#FT_Face">FT_Face</a> for multi-threading issues.</p>
+<p>If you need reference-counting (cf. <a href="ft2-module_management.html#FT_Reference_Library">FT_Reference_Library</a>), use <a href="ft2-module_management.html#FT_New_Library">FT_New_Library</a> and <a href="ft2-module_management.html#FT_Done_Library">FT_Done_Library</a>.</p>
+<p>If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is set, this function reads the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable to control driver properties. See section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; for more.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_FreeType">FT_Done_FreeType</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Done_FreeType</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>Destroy a given FreeType library object and all of its children, including resources, drivers, faces, sizes, etc.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the target library object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_New_Face">FT_New_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Face</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+               <span class="keyword">const</span> <span class="keyword">char</span>*  filepathname,
+               <a href="ft2-basic_types.html#FT_Long">FT_Long</a>      face_index,
+               <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     *aface );
+</pre>
+
+<p>Call <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> to open a font by its pathname.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="pathname">pathname</td><td class="desc">
+<p>A path to the font file.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>See <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> for a detailed description of this parameter.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object. If &lsquo;face_index&rsquo; is greater than or equal to zero, it must be non-NULL.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Use <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a> to destroy the created <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object (along with its slot and sizes).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_Face">FT_Done_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Done_Face</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Discard a given face object, as well as all of its child slots and sizes.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>See the discussion of reference counters in the description of <a href="ft2-base_interface.html#FT_Reference_Face">FT_Reference_Face</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Reference_Face">FT_Reference_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Reference_Face</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>A counter gets initialized to&nbsp;1 at the time an <a href="ft2-base_interface.html#FT_Face">FT_Face</a> structure is created. This function increments the counter. <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a> then only destroys a face if the counter is&nbsp;1, otherwise it simply decrements the counter.</p>
+<p>This function helps in managing life-cycles of structures that reference <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>since</h4>
+<p>2.4.2</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_New_Memory_Face">FT_New_Memory_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Memory_Face</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>      library,
+                      <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  file_base,
+                      <a href="ft2-basic_types.html#FT_Long">FT_Long</a>         file_size,
+                      <a href="ft2-basic_types.html#FT_Long">FT_Long</a>         face_index,
+                      <a href="ft2-base_interface.html#FT_Face">FT_Face</a>        *aface );
+</pre>
+
+<p>Call <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> to open a font that has been loaded into memory.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="file_base">file_base</td><td class="desc">
+<p>A pointer to the beginning of the font data.</p>
+</td></tr>
+<tr><td class="val" id="file_size">file_size</td><td class="desc">
+<p>The size of the memory chunk used by the font data.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>See <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> for a detailed description of this parameter.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object. If &lsquo;face_index&rsquo; is greater than or equal to zero, it must be non-NULL.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You must not deallocate the memory before calling <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_Properties">FT_Face_Properties</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Face_Properties</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>        face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>        num_properties,
+                      <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a>*  properties );
+</pre>
+
+<p>Set or override certain (library or module-wide) properties on a face-by-face basis. Useful for finer-grained control and avoiding locks on shared structures (threads can modify their own faces as they see fit).</p>
+<p>Contrary to <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a>, this function uses <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> so that you can pass multiple properties to the target face in one call. Note that only a subset of the available properties can be controlled.</p>
+<p>* <a href="ft2-parameter_tags.html#FT_PARAM_TAG_STEM_DARKENING">FT_PARAM_TAG_STEM_DARKENING</a> (stem darkening, corresponding to the property &lsquo;no-stem-darkening&rsquo; provided by the &lsquo;autofit&rsquo;, &lsquo;cff&rsquo;, &lsquo;type1&rsquo;, and &lsquo;t1cid&rsquo; modules; see <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a>).</p>
+<p>* <a href="ft2-parameter_tags.html#FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a> (LCD filter weights, corresponding to function <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</a>).</p>
+<p>* <a href="ft2-parameter_tags.html#FT_PARAM_TAG_RANDOM_SEED">FT_PARAM_TAG_RANDOM_SEED</a> (seed value for the CFF, Type&nbsp;1, and CID &lsquo;random&rsquo; operator, corresponding to the &lsquo;random-seed&rsquo; property provided by the &lsquo;cff&rsquo;, &lsquo;type1&rsquo;, and &lsquo;t1cid&rsquo; modules; see <a href="ft2-properties.html#random-seed">random-seed</a>).</p>
+<p>Pass NULL as &lsquo;data&rsquo; in <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> for a given tag to reset the option and use the library or module default again.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="num_properties">num_properties</td><td class="desc">
+<p>The number of properties that follow.</p>
+</td></tr>
+<tr><td class="val" id="properties">properties</td><td class="desc">
+<p>A handle to an <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> array with &lsquo;num_properties&rsquo; elements.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Here an example that sets three properties. You must define FT_CONFIG_OPTION_SUBPIXEL_RENDERING to make the LCD filter examples work.</p>
+<pre class="colored">
+  FT_Parameter         property1;
+  FT_Bool              darken_stems = 1;
+
+  FT_Parameter         property2;
+  FT_LcdFiveTapFilter  custom_weight =
+                         { 0x11, 0x44, 0x56, 0x44, 0x11 };
+
+  FT_Parameter         property3;
+  FT_Int32             random_seed = 314159265;
+
+  FT_Parameter         properties[3] = { property1,
+                                         property2,
+                                         property3 };
+
+
+  property1.tag  = FT_PARAM_TAG_STEM_DARKENING;
+  property1.data = &amp;darken_stems;
+
+  property2.tag  = FT_PARAM_TAG_LCD_FILTER_WEIGHTS;
+  property2.data = custom_weight;
+
+  property3.tag  = FT_PARAM_TAG_RANDOM_SEED;
+  property3.data = &amp;random_seed;
+
+  FT_Face_Properties( face, 3, properties );
+</pre>
+<p>The next example resets a single property to its default value.</p>
+<pre class="colored">
+  FT_Parameter  property;
+
+
+  property.tag  = FT_PARAM_TAG_LCD_FILTER_WEIGHTS;
+  property.data = NULL;
+
+  FT_Face_Properties( face, 1, &amp;property );
+</pre>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Open_Face">FT_Open_Face</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Open_Face</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>           library,
+                <span class="keyword">const</span> <a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a>*  args,
+                <a href="ft2-basic_types.html#FT_Long">FT_Long</a>              face_index,
+                <a href="ft2-base_interface.html#FT_Face">FT_Face</a>             *aface );
+</pre>
+
+<p>Create a face object from a given resource described by <a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a>.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="args">args</td><td class="desc">
+<p>A pointer to an &lsquo;FT_Open_Args&rsquo; structure that must be filled by the caller.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>This field holds two different values. Bits 0-15 are the index of the face in the font file (starting with value&nbsp;0). Set it to&nbsp;0 if there is only one face in the font file.</p>
+<p>[Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation fonts only, specifying the named instance index for the current face index (starting with value&nbsp;1; value&nbsp;0 makes FreeType ignore named instances). For non-variation fonts, bits 16-30 are ignored. Assuming that you want to access the third named instance in face&nbsp;4, &lsquo;face_index&rsquo; should be set to 0x00030004. If you want to access face&nbsp;4 without variation handling, simply set &lsquo;face_index&rsquo; to value&nbsp;4.</p>
+<p>&lsquo;FT_Open_Face&rsquo; and its siblings can be used to quickly check whether the font format of a given font resource is supported by FreeType. In general, if the &lsquo;face_index&rsquo; argument is negative, the function's return value is&nbsp;0 if the font format is recognized, or non-zero otherwise. The function allocates a more or less empty face handle in &lsquo;*aface&rsquo; (if &lsquo;aface&rsquo; isn't NULL); the only two useful fields in this special case are &lsquo;face-&gt;num_faces&rsquo; and &lsquo;face-&gt;style_flags&rsquo;. For any negative value of &lsquo;face_index&rsquo;, &lsquo;face-&gt;num_faces&rsquo; gives the number of faces within the font file. For the negative value &lsquo;-(N+1)&rsquo; (with &lsquo;N&rsquo; a non-negative 16-bit value), bits 16-30 in &lsquo;face-&gt;style_flags&rsquo; give the number of named instances in face &lsquo;N&rsquo; if we have a variation font (or zero otherwise). After examination, the returned <a href="ft2-base_interface.html#FT_Face">FT_Face</a> structure should be deallocated with a call to <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object. If &lsquo;face_index&rsquo; is greater than or equal to zero, it must be non-NULL.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Unlike FreeType 1.x, this function automatically creates a glyph slot for the face object that can be accessed directly through &lsquo;face-&gt;glyph&rsquo;.</p>
+<p>Each new face object created with this function also owns a default <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object, accessible as &lsquo;face-&gt;size&rsquo;.</p>
+<p>One <a href="ft2-base_interface.html#FT_Library">FT_Library</a> instance can have multiple face objects, this is, <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> and its siblings can be called multiple times using the same &lsquo;library&rsquo; argument.</p>
+<p>See the discussion of reference counters in the description of <a href="ft2-base_interface.html#FT_Reference_Face">FT_Reference_Face</a>.</p>
+<p>To loop over all faces, use code similar to the following snippet (omitting the error handling).</p>
+<pre class="colored">
+  ...
+  FT_Face  face;
+  FT_Long  i, num_faces;
+
+
+  error = FT_Open_Face( library, args, -1, &amp;face );
+  if ( error ) { ... }
+
+  num_faces = face-&gt;num_faces;
+  FT_Done_Face( face );
+
+  for ( i = 0; i &lt; num_faces; i++ )
+  {
+    ...
+    error = FT_Open_Face( library, args, i, &amp;face );
+    ...
+    FT_Done_Face( face );
+    ...
+  }
+</pre>
+<p>To loop over all valid values for &lsquo;face_index&rsquo;, use something similar to the following snippet, again without error handling. The code accesses all faces immediately (thus only a single call of &lsquo;FT_Open_Face&rsquo; within the do-loop), with and without named instances.</p>
+<pre class="colored">
+  ...
+  FT_Face  face;
+
+  FT_Long  num_faces     = 0;
+  FT_Long  num_instances = 0;
+
+  FT_Long  face_idx     = 0;
+  FT_Long  instance_idx = 0;
+
+
+  do
+  {
+    FT_Long  id = ( instance_idx &lt;&lt; 16 ) + face_idx;
+
+
+    error = FT_Open_Face( library, args, id, &amp;face );
+    if ( error ) { ... }
+
+    num_faces     = face-&gt;num_faces;
+    num_instances = face-&gt;style_flags &gt;&gt; 16;
+
+    ...
+
+    FT_Done_Face( face );
+
+    if ( instance_idx &lt; num_instances )
+      instance_idx++;
+    else
+    {
+      face_idx++;
+      instance_idx = 0;
+    }
+
+  } while ( face_idx &lt; num_faces )
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Open_Args">FT_Open_Args</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Open_Args_
+  {
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>         flags;
+    <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  memory_base;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>         memory_size;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*      pathname;
+    <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>       stream;
+    <a href="ft2-module_management.html#FT_Module">FT_Module</a>       driver;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          num_params;
+    <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a>*   params;
+
+  } <b>FT_Open_Args</b>;
+</pre>
+
+<p>A structure to indicate how to open a new font file or stream. A pointer to such a structure can be used as a parameter for the functions <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> and <a href="ft2-base_interface.html#FT_Attach_Stream">FT_Attach_Stream</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="flags">flags</td><td class="desc">
+<p>A set of bit flags indicating how to use the structure.</p>
+</td></tr>
+<tr><td class="val" id="memory_base">memory_base</td><td class="desc">
+<p>The first byte of the file in memory.</p>
+</td></tr>
+<tr><td class="val" id="memory_size">memory_size</td><td class="desc">
+<p>The size in bytes of the file in memory.</p>
+</td></tr>
+<tr><td class="val" id="pathname">pathname</td><td class="desc">
+<p>A pointer to an 8-bit file pathname.</p>
+</td></tr>
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>A handle to a source stream object.</p>
+</td></tr>
+<tr><td class="val" id="driver">driver</td><td class="desc">
+<p>This field is exclusively used by <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>; it simply specifies the font driver to use for opening the face. If set to NULL, FreeType tries to load the face with each one of the drivers in its list.</p>
+</td></tr>
+<tr><td class="val" id="num_params">num_params</td><td class="desc">
+<p>The number of extra parameters.</p>
+</td></tr>
+<tr><td class="val" id="params">params</td><td class="desc">
+<p>Extra parameters passed to the font driver when opening a new face.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The stream type is determined by the contents of &lsquo;flags&rsquo; that are tested in the following order by <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>:</p>
+<p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_MEMORY</a> bit is set, assume that this is a memory file of &lsquo;memory_size&rsquo; bytes, located at &lsquo;memory_address&rsquo;. The data are not copied, and the client is responsible for releasing and destroying them <i>after</i> the corresponding call to <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+<p>Otherwise, if the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_STREAM</a> bit is set, assume that a custom input stream &lsquo;stream&rsquo; is used.</p>
+<p>Otherwise, if the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_PATHNAME</a> bit is set, assume that this is a normal file and use &lsquo;pathname&rsquo; to open it.</p>
+<p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_DRIVER</a> bit is set, <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> only tries to open the file with the driver whose handler is in &lsquo;driver&rsquo;.</p>
+<p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_PARAMS</a> bit is set, the parameters given by &lsquo;num_params&rsquo; and &lsquo;params&rsquo; is used. They are ignored otherwise.</p>
+<p>Ideally, both the &lsquo;pathname&rsquo; and &lsquo;params&rsquo; fields should be tagged as &lsquo;const&rsquo;; this is missing for API backward compatibility. In other words, applications should treat them as read-only.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Parameter">FT_Parameter</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Parameter_
+  {
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>    tag;
+    <a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a>  data;
+
+  } <b>FT_Parameter</b>;
+</pre>
+
+<p>A simple structure to pass more or less generic parameters to <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> and <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="tag">tag</td><td class="desc">
+<p>A four-byte identification tag.</p>
+</td></tr>
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>A pointer to the parameter data.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The ID and function of parameters are driver-specific. See section &lsquo;<a href="ft2-parameter_tags.html#parameter_tags">Parameter Tags</a>&rsquo; for more information.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Attach_File">FT_Attach_File</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Attach_File</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face,
+                  <span class="keyword">const</span> <span class="keyword">char</span>*  filepathname );
+</pre>
+
+<p>Call <a href="ft2-base_interface.html#FT_Attach_Stream">FT_Attach_Stream</a> to attach a file.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>The target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="filepathname">filepathname</td><td class="desc">
+<p>The pathname.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Attach_Stream">FT_Attach_Stream</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Attach_Stream</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>        face,
+                    <a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a>*  parameters );
+</pre>
+
+<p>&lsquo;Attach&rsquo; 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&nbsp;1 font to get the kerning values and other metrics.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>The target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="parameters">parameters</td><td class="desc">
+<p>A pointer to <a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a> that must be filled by the caller.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The meaning of the &lsquo;attach&rsquo; (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).</p>
+<p>Client applications are expected to know what they are doing when invoking this function. Most drivers simply do not implement file or stream attachments.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Char_Size">FT_Set_Char_Size</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Char_Size</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                    <a href="ft2-basic_types.html#FT_F26Dot6">FT_F26Dot6</a>  char_width,
+                    <a href="ft2-basic_types.html#FT_F26Dot6">FT_F26Dot6</a>  char_height,
+                    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     horz_resolution,
+                    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     vert_resolution );
+</pre>
+
+<p>Call <a href="ft2-base_interface.html#FT_Request_Size">FT_Request_Size</a> to request the nominal size (in points).</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="char_width">char_width</td><td class="desc">
+<p>The nominal width, in 26.6 fractional points.</p>
+</td></tr>
+<tr><td class="val" id="char_height">char_height</td><td class="desc">
+<p>The nominal height, in 26.6 fractional points.</p>
+</td></tr>
+<tr><td class="val" id="horz_resolution">horz_resolution</td><td class="desc">
+<p>The horizontal resolution in dpi.</p>
+</td></tr>
+<tr><td class="val" id="vert_resolution">vert_resolution</td><td class="desc">
+<p>The vertical resolution in dpi.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>While this function allows fractional points as input values, the resulting ppem value for the given resolution is always rounded to the nearest integer.</p>
+<p>If either the character width or height is zero, it is set equal to the other value.</p>
+<p>If either the horizontal or vertical resolution is zero, it is set equal to the other value.</p>
+<p>A character width or height smaller than 1pt is set to 1pt; if both resolution values are zero, they are set to 72dpi.</p>
+<p>Don't use this function if you are using the FreeType cache API.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Pixel_Sizes</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  pixel_width,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  pixel_height );
+</pre>
+
+<p>Call <a href="ft2-base_interface.html#FT_Request_Size">FT_Request_Size</a> to request the nominal size (in pixels).</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="pixel_width">pixel_width</td><td class="desc">
+<p>The nominal width, in pixels.</p>
+</td></tr>
+<tr><td class="val" id="pixel_height">pixel_height</td><td class="desc">
+<p>The nominal height, in pixels.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should not rely on the resulting glyphs matching or being constrained to this pixel size. Refer to <a href="ft2-base_interface.html#FT_Request_Size">FT_Request_Size</a> to understand how requested sizes relate to actual sizes.</p>
+<p>Don't use this function if you are using the FreeType cache API.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Request_Size">FT_Request_Size</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Request_Size</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>          face,
+                   <a href="ft2-base_interface.html#FT_Size_Request">FT_Size_Request</a>  req );
+</pre>
+
+<p>Resize the scale of the active <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object in a face.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="req">req</td><td class="desc">
+<p>A pointer to a <a href="ft2-base_interface.html#FT_Size_RequestRec">FT_Size_RequestRec</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>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 <a href="ft2-base_interface.html#FT_Select_Size">FT_Select_Size</a> instead in that case.</p>
+<p>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 &lsquo;<a href="https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html">https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html</a>&rsquo;.</p>
+<p>Contrary to <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a>, this function doesn't have special code to normalize zero-valued widths, heights, or resolutions (which lead to errors in most cases).</p>
+<p>Don't use this function if you are using the FreeType cache API.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Select_Size">FT_Select_Size</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Select_Size</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face,
+                  <a href="ft2-basic_types.html#FT_Int">FT_Int</a>   strike_index );
+</pre>
+
+<p>Select a bitmap strike. To be more precise, this function sets the scaling factors of the active <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object in a face so that bitmaps from this particular strike are taken by <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> and friends.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="strike_index">strike_index</td><td class="desc">
+<p>The index of the bitmap strike in the &lsquo;available_sizes&rsquo; field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> structure.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>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.</p>
+<p>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.</p>
+<p>Don't use this function if you are using the FreeType cache API.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size_Request_Type">FT_Size_Request_Type</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Size_Request_Type_
+  {
+    <a href="ft2-base_interface.html#FT_SIZE_REQUEST_TYPE_NOMINAL">FT_SIZE_REQUEST_TYPE_NOMINAL</a>,
+    <a href="ft2-base_interface.html#FT_SIZE_REQUEST_TYPE_REAL_DIM">FT_SIZE_REQUEST_TYPE_REAL_DIM</a>,
+    <a href="ft2-base_interface.html#FT_SIZE_REQUEST_TYPE_BBOX">FT_SIZE_REQUEST_TYPE_BBOX</a>,
+    <a href="ft2-base_interface.html#FT_SIZE_REQUEST_TYPE_CELL">FT_SIZE_REQUEST_TYPE_CELL</a>,
+    <a href="ft2-base_interface.html#FT_SIZE_REQUEST_TYPE_SCALES">FT_SIZE_REQUEST_TYPE_SCALES</a>,
+
+    FT_SIZE_REQUEST_TYPE_MAX
+
+  } <b>FT_Size_Request_Type</b>;
+</pre>
+
+<p>An enumeration type that lists the supported size request types, i.e., what input size (in font units) maps to the requested output size (in pixels, as computed from the arguments of <a href="ft2-base_interface.html#FT_Size_Request">FT_Size_Request</a>).</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_SIZE_REQUEST_TYPE_NOMINAL">FT_SIZE_REQUEST_TYPE_NOMINAL</td><td class="desc">
+<p>The nominal size. The &lsquo;units_per_EM&rsquo; field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> is used to determine both scaling values.</p>
+<p>This is the standard scaling found in most applications. In particular, use this size request type for TrueType fonts if they provide optical scaling or something similar. Note, however, that &lsquo;units_per_EM&rsquo; is a rather abstract value which bears no relation to the actual size of the glyphs in a font.</p>
+</td></tr>
+<tr><td class="val" id="FT_SIZE_REQUEST_TYPE_REAL_DIM">FT_SIZE_REQUEST_TYPE_REAL_DIM</td><td class="desc">
+<p>The real dimension. The sum of the &lsquo;ascender&rsquo; and (minus of) the &lsquo;descender&rsquo; fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> is used to determine both scaling values.</p>
+</td></tr>
+<tr><td class="val" id="FT_SIZE_REQUEST_TYPE_BBOX">FT_SIZE_REQUEST_TYPE_BBOX</td><td class="desc">
+<p>The font bounding box. The width and height of the &lsquo;bbox&rsquo; field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> are used to determine the horizontal and vertical scaling value, respectively.</p>
+</td></tr>
+<tr><td class="val" id="FT_SIZE_REQUEST_TYPE_CELL">FT_SIZE_REQUEST_TYPE_CELL</td><td class="desc">
+<p>The &lsquo;max_advance_width&rsquo; field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> is used to determine the horizontal scaling value; the vertical scaling value is determined the same way as <a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_REAL_DIM</a> does. Finally, both scaling values are set to the smaller one. This type is useful if you want to specify the font size for, say, a window of a given dimension and 80x24 cells.</p>
+</td></tr>
+<tr><td class="val" id="FT_SIZE_REQUEST_TYPE_SCALES">FT_SIZE_REQUEST_TYPE_SCALES</td><td class="desc">
+<p>Specify the scaling values directly.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The above descriptions only apply to scalable formats. For bitmap formats, the behaviour is up to the driver.</p>
+<p>See the note section of <a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a> if you wonder how size requesting relates to scaling values.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size_RequestRec">FT_Size_RequestRec</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Size_RequestRec_
+  {
+    <a href="ft2-base_interface.html#FT_Size_Request_Type">FT_Size_Request_Type</a>  type;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>               width;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>               height;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>               horiResolution;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>               vertResolution;
+
+  } <b>FT_Size_RequestRec</b>;
+</pre>
+
+<p>A structure to model a size request.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="type">type</td><td class="desc">
+<p>See <a href="ft2-base_interface.html#FT_Size_Request_Type">FT_Size_Request_Type</a>.</p>
+</td></tr>
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The desired width, given as a 26.6 fractional point value (with 72pt = 1in).</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The desired height, given as a 26.6 fractional point value (with 72pt = 1in).</p>
+</td></tr>
+<tr><td class="val" id="horiResolution">horiResolution</td><td class="desc">
+<p>The horizontal resolution (dpi, i.e., pixels per inch). If set to zero, &lsquo;width&rsquo; is treated as a 26.6 fractional <b>pixel</b> value, which gets internally rounded to an integer.</p>
+</td></tr>
+<tr><td class="val" id="vertResolution">vertResolution</td><td class="desc">
+<p>The vertical resolution (dpi, i.e., pixels per inch). If set to zero, &lsquo;height&rsquo; is treated as a 26.6 fractional <b>pixel</b> value, which gets internally rounded to an integer.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>If &lsquo;width&rsquo; is zero, the horizontal scaling value is set equal to the vertical scaling value, and vice versa.</p>
+<p>If &lsquo;type&rsquo; is FT_SIZE_REQUEST_TYPE_SCALES, &lsquo;width&rsquo; and &lsquo;height&rsquo; are interpreted directly as 16.16 fractional scaling values, without any further modification, and both &lsquo;horiResolution&rsquo; and &lsquo;vertResolution&rsquo; are ignored.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size_Request">FT_Size_Request</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Size_RequestRec_  *<b>FT_Size_Request</b>;
+</pre>
+
+<p>A handle to a size request structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Transform">FT_Set_Transform</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Set_Transform</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                    <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*  matrix,
+                    <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  delta );
+</pre>
+
+<p>Set the transformation that is applied to glyph images when they are loaded into a glyph slot through <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to the transformation's 2x2 matrix. Use NULL for the identity matrix.</p>
+</td></tr>
+<tr><td class="val" id="delta">delta</td><td class="desc">
+<p>A pointer to the translation vector. Use NULL for the null vector.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>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 <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> or <a href="ft2-base_interface.html#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a>.</p>
+<p>Note that this also transforms the &lsquo;face.glyph.advance&rsquo; field, but <b>not</b> the values in &lsquo;face.glyph.metrics&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Load_Glyph">FT_Load_Glyph</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Load_Glyph</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   glyph_index,
+                 <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>  load_flags );
+</pre>
+
+<p>Load a glyph into the glyph slot of a face object.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the target face object where the glyph is loaded.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
+<p>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.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>A flag indicating what to load for this glyph. The <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_XXX</a> 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).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The loaded glyph may be transformed. See <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a> for the details.</p>
+<p>For subsetted CID-keyed fonts, &lsquo;FT_Err_Invalid_Argument&rsquo; 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 <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a> flag for more details.</p>
+<p>If you receive &lsquo;FT_Err_Glyph_Too_Big&rsquo;, try getting the glyph outline at EM size, then scale it manually and fill it as a graphics operation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Char_Index">FT_Get_Char_Index</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
+  <b>FT_Get_Char_Index</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                     <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  charcode );
+</pre>
+
+<p>Return the glyph index of a given character code. This function uses the currently selected charmap to do the mapping.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="charcode">charcode</td><td class="desc">
+<p>The character code.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The glyph index. 0&nbsp;means &lsquo;undefined character code&rsquo;.</p>
+
+<h4>note</h4>
+<p>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&nbsp;0 always corresponds to the &lsquo;missing glyph&rsquo;. If the first glyph is not named &lsquo;.notdef&rsquo;, then for Type&nbsp;1 and Type&nbsp;42 fonts, &lsquo;.notdef&rsquo; will be moved into the glyph ID&nbsp;0 position, and whatever was there will be moved to the position &lsquo;.notdef&rsquo; had. For Type&nbsp;1 fonts, if there is no &lsquo;.notdef&rsquo; glyph at all, then one will be created at index&nbsp;0 and whatever was there will be moved to the last index -- Type&nbsp;42 fonts are considered invalid under this condition.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_First_Char">FT_Get_First_Char</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a> )
+  <b>FT_Get_First_Char</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  *agindex );
+</pre>
+
+<p>Return the first character code in the current charmap of a given face, together with its corresponding glyph index.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="agindex">agindex</td><td class="desc">
+<p>Glyph index of first character code. 0&nbsp;if charmap is empty.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The charmap's first character code.</p>
+
+<h4>note</h4>
+<p>You should use this function together with <a href="ft2-base_interface.html#FT_Get_Next_Char">FT_Get_Next_Char</a> to parse all character codes available in a given charmap. The code should look like this:</p>
+<pre class="colored">
+  FT_ULong  charcode;
+  FT_UInt   gindex;
+
+
+  charcode = FT_Get_First_Char( face, &amp;gindex );
+  while ( gindex != 0 )
+  {
+    ... do something with (charcode,gindex) pair ...
+
+    charcode = FT_Get_Next_Char( face, charcode, &amp;gindex );
+  }
+</pre>
+<p>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 &lsquo;last resort fonts&rsquo; (using SFNT cmap format 13, see function <a href="ft2-truetype_tables.html#FT_Get_CMap_Format">FT_Get_CMap_Format</a>) normally have entries for all Unicode characters up to 0x1FFFFF, which can cause *a lot* of iterations.</p>
+<p>Note that &lsquo;*agindex&rsquo; is set to&nbsp;0 if the charmap is empty. The result itself can be&nbsp;0 in two cases: if the charmap is empty or if the value&nbsp;0 is the first valid character code.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Next_Char">FT_Get_Next_Char</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a> )
+  <b>FT_Get_Next_Char</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   char_code,
+                    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   *agindex );
+</pre>
+
+<p>Return the next character code in the current charmap of a given face following the value &lsquo;char_code&rsquo;, as well as the corresponding glyph index.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="char_code">char_code</td><td class="desc">
+<p>The starting character code.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="agindex">agindex</td><td class="desc">
+<p>Glyph index of next character code. 0&nbsp;if charmap is empty.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The charmap's next character code.</p>
+
+<h4>note</h4>
+<p>You should use this function with <a href="ft2-base_interface.html#FT_Get_First_Char">FT_Get_First_Char</a> to walk over all character codes available in a given charmap. See the note for that function for a simple code example.</p>
+<p>Note that &lsquo;*agindex&rsquo; is set to&nbsp;0 when there are no more codes in the charmap.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Name_Index">FT_Get_Name_Index</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
+  <b>FT_Get_Name_Index</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                     <a href="ft2-basic_types.html#FT_String">FT_String</a>*  glyph_name );
+</pre>
+
+<p>Return the glyph index of a given glyph name.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="glyph_name">glyph_name</td><td class="desc">
+<p>The glyph name.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The glyph index. 0&nbsp;means &lsquo;undefined character code&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Load_Char">FT_Load_Char</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Load_Char</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  char_code,
+                <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>  load_flags );
+</pre>
+
+<p>Load a glyph into the glyph slot of a face object, accessed by its character code.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a target face object where the glyph is loaded.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="char_code">char_code</td><td class="desc">
+<p>The glyph's character code, according to the current charmap used in the face.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>A flag indicating what to load for this glyph. The <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_XXX</a> 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).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function simply calls <a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a> and <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+<p>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.</p>
+<p>If no active cmap is set up (i.e., &lsquo;face-&gt;charmap&rsquo; is zero), the call to <a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a> is omitted, and the function behaves identically to <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LOAD_TARGET_MODE">FT_LOAD_TARGET_MODE</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_LOAD_TARGET_MODE</b>( x )  ( (<a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a>)( ( (x) &gt;&gt; 16 ) &amp; 15 ) )
+</pre>
+
+<p>Return the <a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a> corresponding to a given <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a> value.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Render_Glyph">FT_Render_Glyph</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Render_Glyph</b>( <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>    slot,
+                   <a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a>  render_mode );
+</pre>
+
+<p>Convert a given glyph image to a bitmap. It does so by inspecting the glyph image format, finding the relevant renderer, and invoking it.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="slot">slot</td><td class="desc">
+<p>A handle to the glyph slot containing the image to convert.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="render_mode">render_mode</td><td class="desc">
+<p>The render mode used to render the glyph image into a bitmap. See <a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a> for a list of possible values.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>To get meaningful results, font scaling values must be set with functions like <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> before calling &lsquo;FT_Render_Glyph&rsquo;.</p>
+<p>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).</p>
+<p>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.</p>
+<p>This is relevant because all our screens have a second problem: they are not linear. 1&nbsp;+&nbsp;1 is not&nbsp;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&nbsp;bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma&nbsp;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 &lsquo;dirt&rsquo; around it. The situation is especially ugly for diagonal stems like in &lsquo;w&rsquo; 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.</p>
+<p>The blending function for placing text over a background is</p>
+<pre class="colored">
+  dst = alpha * src + (1 - alpha) * dst    ,
+</pre>
+<p>which is known as the OVER operator.</p>
+<p>To correctly composite an antialiased pixel of a glyph onto a surface,</p>
+<p>1. take the foreground and background colors (e.g., in sRGB space) and apply gamma to get them in a linear space,</p>
+<p>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</p>
+<p>3. apply inverse gamma to the blended pixel and write it back to the image.</p>
+<p>Internal testing at Adobe found that a target inverse gamma of&nbsp;1.8 for step&nbsp;3 gives good results across a wide range of displays with an sRGB gamma curve or a similar one.</p>
+<p>This process can cost performance. There is an approximation that does not need to know about the background color; see <a href="https://bel.fi/alankila/lcd/">https://bel.fi/alankila/lcd/</a> and <a href="https://bel.fi/alankila/lcd/alpcor.html">https://bel.fi/alankila/lcd/alpcor.html</a> for details.</p>
+<p><b>ATTENTION</b>: 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 &lsquo;<a href="ft2-lcd_filtering.html#lcd_filtering">LCD Filtering</a>&rsquo;. Then the only difference to gray linear blending is that subpixel-rendered linear blending is done 3&nbsp;times per pixel: red foreground subpixel to red background subpixel and so on for green and blue.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Render_Mode">FT_Render_Mode</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Render_Mode_
+  {
+    <a href="ft2-base_interface.html#FT_RENDER_MODE_NORMAL">FT_RENDER_MODE_NORMAL</a> = 0,
+    <a href="ft2-base_interface.html#FT_RENDER_MODE_LIGHT">FT_RENDER_MODE_LIGHT</a>,
+    <a href="ft2-base_interface.html#FT_RENDER_MODE_MONO">FT_RENDER_MODE_MONO</a>,
+    <a href="ft2-base_interface.html#FT_RENDER_MODE_LCD">FT_RENDER_MODE_LCD</a>,
+    <a href="ft2-base_interface.html#FT_RENDER_MODE_LCD_V">FT_RENDER_MODE_LCD_V</a>,
+
+    FT_RENDER_MODE_MAX
+
+  } <b>FT_Render_Mode</b>;
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_Render_Mode</b>' values instead                       */
+#define ft_render_mode_normal  <a href="ft2-base_interface.html#FT_RENDER_MODE_NORMAL">FT_RENDER_MODE_NORMAL</a>
+#define ft_render_mode_mono    <a href="ft2-base_interface.html#FT_RENDER_MODE_MONO">FT_RENDER_MODE_MONO</a>
+</pre>
+
+<p>Render modes supported by FreeType&nbsp;2. Each mode corresponds to a specific type of scanline conversion performed on the outline.</p>
+<p>For bitmap fonts and embedded bitmaps the &lsquo;bitmap-&gt;pixel_mode&rsquo; field in the <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> structure gives the format of the returned bitmap.</p>
+<p>All modes except <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_MONO</a> use 256 levels of opacity, indicating pixel coverage. Use linear alpha blending and gamma correction to correctly render non-monochrome glyph bitmaps onto a surface; see <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_RENDER_MODE_NORMAL">FT_RENDER_MODE_NORMAL</td><td class="desc">
+<p>Default render mode; it corresponds to 8-bit anti-aliased bitmaps.</p>
+</td></tr>
+<tr><td class="val" id="FT_RENDER_MODE_LIGHT">FT_RENDER_MODE_LIGHT</td><td class="desc">
+<p>This is equivalent to <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_NORMAL</a>. It is only defined as a separate value because render modes are also used indirectly to define hinting algorithm selectors. See <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a> for details.</p>
+</td></tr>
+<tr><td class="val" id="FT_RENDER_MODE_MONO">FT_RENDER_MODE_MONO</td><td class="desc">
+<p>This mode corresponds to 1-bit bitmaps (with 2&nbsp;levels of opacity).</p>
+</td></tr>
+<tr><td class="val" id="FT_RENDER_MODE_LCD">FT_RENDER_MODE_LCD</td><td class="desc">
+<p>This mode corresponds to horizontal RGB and BGR subpixel displays like LCD screens. It produces 8-bit bitmaps that are 3&nbsp;times the width of the original glyph outline in pixels, and which use the <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_LCD</a> mode.</p>
+</td></tr>
+<tr><td class="val" id="FT_RENDER_MODE_LCD_V">FT_RENDER_MODE_LCD_V</td><td class="desc">
+<p>This mode corresponds to vertical RGB and BGR subpixel displays (like PDA screens, rotated LCD displays, etc.). It produces 8-bit bitmaps that are 3&nbsp;times the height of the original glyph outline in pixels and use the <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_LCD_V</a> mode.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Should you define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your &lsquo;ftoption.h&rsquo;, which enables patented ClearType-style rendering, the LCD-optimized glyph bitmaps should be filtered to reduce color fringes inherent to this technology. You can either set up LCD filtering with <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a> or <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a>, or do the filtering yourself. The default FreeType LCD rendering technology does not require filtering.</p>
+<p>The selected render mode only affects vector glyphs of a font. Embedded bitmaps often have a different pixel mode like <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_MONO</a>. You can use <a href="ft2-bitmap_handling.html#FT_Bitmap_Convert">FT_Bitmap_Convert</a> to transform them into 8-bit pixmaps.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Kerning">FT_Get_Kerning</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Kerning</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                  <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     left_glyph,
+                  <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     right_glyph,
+                  <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     kern_mode,
+                  <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>  *akerning );
+</pre>
+
+<p>Return the kerning vector between two glyphs of the same face.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a source face object.</p>
+</td></tr>
+<tr><td class="val" id="left_glyph">left_glyph</td><td class="desc">
+<p>The index of the left glyph in the kern pair.</p>
+</td></tr>
+<tr><td class="val" id="right_glyph">right_glyph</td><td class="desc">
+<p>The index of the right glyph in the kern pair.</p>
+</td></tr>
+<tr><td class="val" id="kern_mode">kern_mode</td><td class="desc">
+<p>See <a href="ft2-base_interface.html#FT_Kerning_Mode">FT_Kerning_Mode</a> for more information. Determines the scale and dimension of the returned kerning vector.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="akerning">akerning</td><td class="desc">
+<p>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.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Only horizontal layouts (left-to-right &amp; 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.</p>
+<p>Kerning for OpenType fonts implemented in a &lsquo;GPOS&rsquo; table is not supported; use <a href="ft2-base_interface.html#FT_HAS_KERNING">FT_HAS_KERNING</a> to find out whether a font has data that can be extracted with &lsquo;FT_Get_Kerning&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Kerning_Mode">FT_Kerning_Mode</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Kerning_Mode_
+  {
+    <a href="ft2-base_interface.html#FT_KERNING_DEFAULT">FT_KERNING_DEFAULT</a> = 0,
+    <a href="ft2-base_interface.html#FT_KERNING_UNFITTED">FT_KERNING_UNFITTED</a>,
+    <a href="ft2-base_interface.html#FT_KERNING_UNSCALED">FT_KERNING_UNSCALED</a>
+
+  } <b>FT_Kerning_Mode</b>;
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_Kerning_Mode</b>' values instead                      */
+#define ft_kerning_default   <a href="ft2-base_interface.html#FT_KERNING_DEFAULT">FT_KERNING_DEFAULT</a>
+#define ft_kerning_unfitted  <a href="ft2-base_interface.html#FT_KERNING_UNFITTED">FT_KERNING_UNFITTED</a>
+#define ft_kerning_unscaled  <a href="ft2-base_interface.html#FT_KERNING_UNSCALED">FT_KERNING_UNSCALED</a>
+</pre>
+
+<p>An enumeration to specify the format of kerning values returned by <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a>.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_KERNING_DEFAULT">FT_KERNING_DEFAULT</td><td class="desc">
+<p>Return grid-fitted kerning distances in 26.6 fractional pixels.</p>
+</td></tr>
+<tr><td class="val" id="FT_KERNING_UNFITTED">FT_KERNING_UNFITTED</td><td class="desc">
+<p>Return un-grid-fitted kerning distances in 26.6 fractional pixels.</p>
+</td></tr>
+<tr><td class="val" id="FT_KERNING_UNSCALED">FT_KERNING_UNSCALED</td><td class="desc">
+<p>Return the kerning vector in original font units.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>FT_KERNING_DEFAULT returns full pixel values; it also makes FreeType heuristically scale down kerning distances at small ppem values so that they don't become too big.</p>
+<p>Both FT_KERNING_DEFAULT and FT_KERNING_UNFITTED use the current horizontal scaling factor (as set e.g. with <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a>) to convert font units to pixels.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Track_Kerning">FT_Get_Track_Kerning</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Track_Kerning</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                        <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   point_size,
+                        <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     degree,
+                        <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  akerning );
+</pre>
+
+<p>Return the track kerning for a given face object at a given size.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a source face object.</p>
+</td></tr>
+<tr><td class="val" id="point_size">point_size</td><td class="desc">
+<p>The point size in 16.16 fractional points.</p>
+</td></tr>
+<tr><td class="val" id="degree">degree</td><td class="desc">
+<p>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.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="akerning">akerning</td><td class="desc">
+<p>The kerning in 16.16 fractional points, to be uniformly applied between all glyphs.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Currently, only the Type&nbsp;1 font driver supports track kerning, using data from AFM files (if attached with <a href="ft2-base_interface.html#FT_Attach_File">FT_Attach_File</a> or <a href="ft2-base_interface.html#FT_Attach_Stream">FT_Attach_Stream</a>).</p>
+<p>Only very few AFM files come with track kerning data; please refer to Adobe's AFM specification for more details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Glyph_Name">FT_Get_Glyph_Name</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Glyph_Name</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     glyph_index,
+                     <a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a>  buffer,
+                     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     buffer_max );
+</pre>
+
+<p>Retrieve the ASCII name of a given glyph in a face. This only works for those faces where <a href="ft2-base_interface.html#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a>(face) returns&nbsp;1.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a source face object.</p>
+</td></tr>
+<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
+<p>The glyph index.</p>
+</td></tr>
+<tr><td class="val" id="buffer_max">buffer_max</td><td class="desc">
+<p>The maximum number of bytes available in the buffer.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="buffer">buffer</td><td class="desc">
+<p>A pointer to a target buffer where the name is copied to.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>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 &lsquo;buffer&rsquo; is set to&nbsp;0 to indicate an empty name.</p>
+<p>The glyph name is truncated to fit within the buffer if it is too long. The returned string is always zero-terminated.</p>
+<p>Be aware that FreeType reorders glyph indices internally so that glyph index&nbsp;0 always corresponds to the &lsquo;missing glyph&rsquo; (called &lsquo;.notdef&rsquo;).</p>
+<p>This function always returns an error if the config macro &lsquo;FT_CONFIG_OPTION_NO_GLYPH_NAMES&rsquo; is not defined in &lsquo;ftoption.h&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Postscript_Name">FT_Get_Postscript_Name</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">const</span> <span class="keyword">char</span>* )
+  <b>FT_Get_Postscript_Name</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Retrieve the ASCII PostScript name of a given face, if available. This only works with PostScript, TrueType, and OpenType fonts.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A pointer to the face's PostScript name. NULL if unavailable.</p>
+
+<h4>note</h4>
+<p>The returned pointer is owned by the face and is destroyed with it.</p>
+<p>For variation fonts, this string changes if you select a different instance, and you have to call &lsquo;FT_Get_PostScript_Name&rsquo; again to retrieve it. FreeType follows Adobe TechNote #5902, &lsquo;Generating PostScript Names for Fonts Using OpenType Font Variations&rsquo;.</p>
+<p><a href="https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html">https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html</a></p>
+<p>[Since 2.9] Special PostScript names for named instances are only returned if the named instance is set with <a href="ft2-multiple_masters.html#FT_Set_Named_Instance">FT_Set_Named_Instance</a> (and the font has corresponding entries in its &lsquo;fvar&rsquo; table). If <a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a> returns true, the algorithmically derived PostScript name is provided, not looking up special entries for named instances.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CharMapRec">FT_CharMapRec</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_CharMapRec_
+  {
+    <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face;
+    <a href="ft2-base_interface.html#FT_Encoding">FT_Encoding</a>  encoding;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>    platform_id;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>    encoding_id;
+
+  } <b>FT_CharMapRec</b>;
+</pre>
+
+<p>The base charmap structure.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the parent face object.</p>
+</td></tr>
+<tr><td class="val" id="encoding">encoding</td><td class="desc">
+<p>An <a href="ft2-base_interface.html#FT_Encoding">FT_Encoding</a> tag identifying the charmap. Use this with <a href="ft2-base_interface.html#FT_Select_Charmap">FT_Select_Charmap</a>.</p>
+</td></tr>
+<tr><td class="val" id="platform_id">platform_id</td><td class="desc">
+<p>An ID number describing the platform for the following encoding ID. This comes directly from the TrueType specification and gets emulated for other formats.</p>
+</td></tr>
+<tr><td class="val" id="encoding_id">encoding_id</td><td class="desc">
+<p>A platform specific encoding number. This also comes from the TrueType specification and gets emulated similarly.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Select_Charmap">FT_Select_Charmap</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Select_Charmap</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face,
+                     <a href="ft2-base_interface.html#FT_Encoding">FT_Encoding</a>  encoding );
+</pre>
+
+<p>Select a given charmap by its encoding tag (as listed in &lsquo;freetype.h&rsquo;).</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="encoding">encoding</td><td class="desc">
+<p>A handle to the selected encoding.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function returns an error if no charmap in the face corresponds to the encoding queried here.</p>
+<p>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 (&lsquo;best&rsquo; in the sense that a UCS-4 cmap is preferred to a UCS-2 cmap). It is thus preferable to <a href="ft2-base_interface.html#FT_Set_Charmap">FT_Set_Charmap</a> in this case.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Charmap">FT_Set_Charmap</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Charmap</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                  <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>  charmap );
+</pre>
+
+<p>Select a given charmap for character code to glyph index mapping.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="charmap">charmap</td><td class="desc">
+<p>A handle to the selected charmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function returns an error if the charmap is not part of the face (i.e., if it is not listed in the &lsquo;face-&gt;charmaps&rsquo; table).</p>
+<p>It also fails if an OpenType type&nbsp;14 charmap is selected (which doesn't map character codes to glyph indices at all).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Charmap_Index">FT_Get_Charmap_Index</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Int">FT_Int</a> )
+  <b>FT_Get_Charmap_Index</b>( <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>  charmap );
+</pre>
+
+<p>Retrieve index of a given charmap.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="charmap">charmap</td><td class="desc">
+<p>A handle to a charmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The index into the array of character maps within the face to which &lsquo;charmap&rsquo; belongs. If an error occurs, -1 is returned.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_FSType_Flags">FT_Get_FSType_Flags</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a> )
+  <b>FT_Get_FSType_Flags</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Return the &lsquo;fsType&rsquo; flags for a font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The &lsquo;fsType&rsquo; flags, see <a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_XXX</a>.</p>
+
+<h4>note</h4>
+<p>Use this function rather than directly reading the &lsquo;fs_type&rsquo; field in the <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a> structure, which is only guaranteed to return the correct results for Type&nbsp;1 fonts.</p>
+
+<h4>since</h4>
+<p>2.3.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_SubGlyph_Info">FT_Get_SubGlyph_Info</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_SubGlyph_Info</b>( <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>  glyph,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>       sub_index,
+                        <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       *p_index,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>      *p_flags,
+                        <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       *p_arg1,
+                        <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       *p_arg2,
+                        <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>    *p_transform );
+</pre>
+
+<p>Retrieve a description of a given subglyph. Only use it if &lsquo;glyph-&gt;format&rsquo; is <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_COMPOSITE</a>; an error is returned otherwise.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="glyph">glyph</td><td class="desc">
+<p>The source glyph slot.</p>
+</td></tr>
+<tr><td class="val" id="sub_index">sub_index</td><td class="desc">
+<p>The index of the subglyph. Must be less than &lsquo;glyph-&gt;num_subglyphs&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="p_index">p_index</td><td class="desc">
+<p>The glyph index of the subglyph.</p>
+</td></tr>
+<tr><td class="val" id="p_flags">p_flags</td><td class="desc">
+<p>The subglyph flags, see <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</a>.</p>
+</td></tr>
+<tr><td class="val" id="p_arg1">p_arg1</td><td class="desc">
+<p>The subglyph's first argument (if any).</p>
+</td></tr>
+<tr><td class="val" id="p_arg2">p_arg2</td><td class="desc">
+<p>The subglyph's second argument (if any).</p>
+</td></tr>
+<tr><td class="val" id="p_transform">p_transform</td><td class="desc">
+<p>The subglyph transformation (if any).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The values of &lsquo;*p_arg1&rsquo;, &lsquo;*p_arg2&rsquo;, and &lsquo;*p_transform&rsquo; must be interpreted depending on the flags returned in &lsquo;*p_flags&rsquo;. See the OpenType specification for details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_Internal">FT_Face_Internal</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Face_InternalRec_*  <b>FT_Face_Internal</b>;
+</pre>
+
+<p>An opaque handle to an &lsquo;FT_Face_InternalRec&rsquo; structure that models the private data of a given <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object.</p>
+<p>This structure might change between releases of FreeType&nbsp;2 and is not generally available to client applications.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Size_Internal">FT_Size_Internal</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Size_InternalRec_*  <b>FT_Size_Internal</b>;
+</pre>
+
+<p>An opaque handle to an &lsquo;FT_Size_InternalRec&rsquo; structure, used to model private data of a given <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Slot_Internal">FT_Slot_Internal</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Slot_InternalRec_*  <b>FT_Slot_Internal</b>;
+</pre>
+
+<p>An opaque handle to an &lsquo;FT_Slot_InternalRec&rsquo; structure, used to model private data of a given <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a> object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FACE_FLAG_XXX">FT_FACE_FLAG_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</a>          ( 1L &lt;&lt;  0 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</a>       ( 1L &lt;&lt;  1 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</a>       ( 1L &lt;&lt;  2 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</a>              ( 1L &lt;&lt;  3 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</a>        ( 1L &lt;&lt;  4 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</a>          ( 1L &lt;&lt;  5 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</a>           ( 1L &lt;&lt;  6 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_FAST_GLYPHS">FT_FACE_FLAG_FAST_GLYPHS</a>       ( 1L &lt;&lt;  7 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</a>  ( 1L &lt;&lt;  8 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</a>       ( 1L &lt;&lt;  9 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_EXTERNAL_STREAM">FT_FACE_FLAG_EXTERNAL_STREAM</a>   ( 1L &lt;&lt; 10 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_HINTER">FT_FACE_FLAG_HINTER</a>            ( 1L &lt;&lt; 11 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</a>         ( 1L &lt;&lt; 12 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</a>            ( 1L &lt;&lt; 13 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</a>             ( 1L &lt;&lt; 14 )
+#define <a href="ft2-base_interface.html#FT_FACE_FLAG_VARIATION">FT_FACE_FLAG_VARIATION</a>         ( 1L &lt;&lt; 15 )
+</pre>
+
+<p>A list of bit flags used in the &lsquo;face_flags&rsquo; field of the <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> structure. They inform client applications of properties of the corresponding face.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</td><td class="desc">
+<p>The face contains outline glyphs. Note that a face can contain bitmap strikes also, i.e., a face can have both this flag and <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_SIZES</a> set.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</td><td class="desc">
+<p>The face contains bitmap strikes. See also the &lsquo;num_fixed_sizes&rsquo; and &lsquo;available_sizes&rsquo; fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</td><td class="desc">
+<p>The face contains fixed-width characters (like Courier, Lucida, MonoType, etc.).</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</td><td class="desc">
+<p>The face uses the SFNT storage scheme. For now, this means TrueType and OpenType.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</td><td class="desc">
+<p>The face contains horizontal glyph metrics. This should be set for all common formats.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</td><td class="desc">
+<p>The face contains vertical glyph metrics. This is only available in some formats, not all of them.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</td><td class="desc">
+<p>The face contains kerning information. If set, the kerning distance can be retrieved using the function <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a>. Otherwise the function always return the vector (0,0). Note that FreeType doesn't handle kerning data from the SFNT &lsquo;GPOS&rsquo; table (as present in many OpenType fonts).</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_FAST_GLYPHS">FT_FACE_FLAG_FAST_GLYPHS</td><td class="desc">
+<p>THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</td><td class="desc">
+<p>The face contains multiple masters and is capable of interpolating between them. Supported formats are Adobe MM, TrueType GX, and OpenType variation fonts.</p>
+<p>See section &lsquo;<a href="ft2-multiple_masters.html#multiple_masters">Multiple Masters</a>&rsquo; for API details.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</td><td class="desc">
+<p>The face contains glyph names, which can be retrieved using <a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a>. Note that some TrueType fonts contain broken glyph name tables. Use the function <a href="ft2-type1_tables.html#FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</a> when needed.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_EXTERNAL_STREAM">FT_FACE_FLAG_EXTERNAL_STREAM</td><td class="desc">
+<p>Used internally by FreeType to indicate that a face's stream was provided by the client application and should not be destroyed when <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a> is called. Don't read or test this flag.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_HINTER">FT_FACE_FLAG_HINTER</td><td class="desc">
+<p>The font driver has a hinting machine of its own. For example, with TrueType fonts, it makes sense to use data from the SFNT &lsquo;gasp&rsquo; table only if the native TrueType hinting engine (with the bytecode interpreter) is available and active.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</td><td class="desc">
+<p>The face is CID-keyed. In that case, the face is not accessed by glyph indices but by CID values. For subsetted CID-keyed fonts this has the consequence that not all index values are a valid argument to <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>. Only the CID values for which corresponding glyphs in the subsetted font exist make &lsquo;FT_Load_Glyph&rsquo; return successfully; in all other cases you get an &lsquo;FT_Err_Invalid_Argument&rsquo; error.</p>
+<p>Note that CID-keyed fonts that are in an SFNT wrapper (this is, all OpenType/CFF fonts) don't have this flag set since the glyphs are accessed in the normal way (using contiguous indices); the &lsquo;CID-ness&rsquo; isn't visible to the application.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</td><td class="desc">
+<p>The face is &lsquo;tricky&rsquo;, this is, it always needs the font format's native hinting engine to get a reasonable result. A typical example is the old Chinese font &lsquo;mingli.ttf&rsquo; (but not &lsquo;mingliu.ttc&rsquo;) that uses TrueType bytecode instructions to move and scale all of its subglyphs.</p>
+<p>It is not possible to auto-hint such fonts using <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_FORCE_AUTOHINT</a>; it will also ignore <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a>. You have to set both <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a> and <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_AUTOHINT</a> to really disable hinting; however, you probably never want this except for demonstration purposes.</p>
+<p>Currently, there are about a dozen TrueType fonts in the list of tricky fonts; they are hard-coded in file &lsquo;ttobjs.c&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</td><td class="desc">
+<p>[Since 2.5.1] The face has color glyph tables. To access color glyphs use <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_COLOR</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_FACE_FLAG_VARIATION">FT_FACE_FLAG_VARIATION</td><td class="desc">
+<p>[Since 2.9] Set if the current face (or named instance) has been altered with <a href="ft2-multiple_masters.html#FT_Set_MM_Design_Coordinates">FT_Set_MM_Design_Coordinates</a>, <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a>, or <a href="ft2-multiple_masters.html#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a>. This flag is unset by a call to <a href="ft2-multiple_masters.html#FT_Set_Named_Instance">FT_Set_Named_Instance</a>.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_STYLE_FLAG_ITALIC">FT_STYLE_FLAG_ITALIC</a>  ( 1 &lt;&lt; 0 )
+#define <a href="ft2-base_interface.html#FT_STYLE_FLAG_BOLD">FT_STYLE_FLAG_BOLD</a>    ( 1 &lt;&lt; 1 )
+</pre>
+
+<p>A list of bit flags to indicate the style of a given face. These are used in the &lsquo;style_flags&rsquo; field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a>.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_STYLE_FLAG_ITALIC">FT_STYLE_FLAG_ITALIC</td><td class="desc">
+<p>The face style is italic or oblique.</p>
+</td></tr>
+<tr><td class="val" id="FT_STYLE_FLAG_BOLD">FT_STYLE_FLAG_BOLD</td><td class="desc">
+<p>The face is bold.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The style information as provided by FreeType is very basic. More details are beyond the scope and should be done on a higher level (for example, by analyzing various fields of the &lsquo;OS/2&rsquo; table in SFNT based fonts).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OPEN_XXX">FT_OPEN_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_OPEN_MEMORY">FT_OPEN_MEMORY</a>    0x1
+#define <a href="ft2-base_interface.html#FT_OPEN_STREAM">FT_OPEN_STREAM</a>    0x2
+#define <a href="ft2-base_interface.html#FT_OPEN_PATHNAME">FT_OPEN_PATHNAME</a>  0x4
+#define <a href="ft2-base_interface.html#FT_OPEN_DRIVER">FT_OPEN_DRIVER</a>    0x8
+#define <a href="ft2-base_interface.html#FT_OPEN_PARAMS">FT_OPEN_PARAMS</a>    0x10
+
+
+  /* these constants are deprecated; use the corresponding `<b>FT_OPEN_XXX</b>' */
+  /* values instead                                                      */
+#define ft_open_memory    <a href="ft2-base_interface.html#FT_OPEN_MEMORY">FT_OPEN_MEMORY</a>
+#define ft_open_stream    <a href="ft2-base_interface.html#FT_OPEN_STREAM">FT_OPEN_STREAM</a>
+#define ft_open_pathname  <a href="ft2-base_interface.html#FT_OPEN_PATHNAME">FT_OPEN_PATHNAME</a>
+#define ft_open_driver    <a href="ft2-base_interface.html#FT_OPEN_DRIVER">FT_OPEN_DRIVER</a>
+#define ft_open_params    <a href="ft2-base_interface.html#FT_OPEN_PARAMS">FT_OPEN_PARAMS</a>
+</pre>
+
+<p>A list of bit field constants used within the &lsquo;flags&rsquo; field of the <a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a> structure.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_OPEN_MEMORY">FT_OPEN_MEMORY</td><td class="desc">
+<p>This is a memory-based stream.</p>
+</td></tr>
+<tr><td class="val" id="FT_OPEN_STREAM">FT_OPEN_STREAM</td><td class="desc">
+<p>Copy the stream from the &lsquo;stream&rsquo; field.</p>
+</td></tr>
+<tr><td class="val" id="FT_OPEN_PATHNAME">FT_OPEN_PATHNAME</td><td class="desc">
+<p>Create a new input stream from a C&nbsp;path name.</p>
+</td></tr>
+<tr><td class="val" id="FT_OPEN_DRIVER">FT_OPEN_DRIVER</td><td class="desc">
+<p>Use the &lsquo;driver&rsquo; field.</p>
+</td></tr>
+<tr><td class="val" id="FT_OPEN_PARAMS">FT_OPEN_PARAMS</td><td class="desc">
+<p>Use the &lsquo;num_params&rsquo; and &lsquo;params&rsquo; fields.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The &lsquo;FT_OPEN_MEMORY&rsquo;, &lsquo;FT_OPEN_STREAM&rsquo;, and &lsquo;FT_OPEN_PATHNAME&rsquo; flags are mutually exclusive.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LOAD_XXX">FT_LOAD_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_LOAD_DEFAULT">FT_LOAD_DEFAULT</a>                      0x0
+#define <a href="ft2-base_interface.html#FT_LOAD_NO_SCALE">FT_LOAD_NO_SCALE</a>                     ( 1L &lt;&lt; 0 )
+#define <a href="ft2-base_interface.html#FT_LOAD_NO_HINTING">FT_LOAD_NO_HINTING</a>                   ( 1L &lt;&lt; 1 )
+#define <a href="ft2-base_interface.html#FT_LOAD_RENDER">FT_LOAD_RENDER</a>                       ( 1L &lt;&lt; 2 )
+#define <a href="ft2-base_interface.html#FT_LOAD_NO_BITMAP">FT_LOAD_NO_BITMAP</a>                    ( 1L &lt;&lt; 3 )
+#define <a href="ft2-base_interface.html#FT_LOAD_VERTICAL_LAYOUT">FT_LOAD_VERTICAL_LAYOUT</a>              ( 1L &lt;&lt; 4 )
+#define <a href="ft2-base_interface.html#FT_LOAD_FORCE_AUTOHINT">FT_LOAD_FORCE_AUTOHINT</a>               ( 1L &lt;&lt; 5 )
+#define <a href="ft2-base_interface.html#FT_LOAD_CROP_BITMAP">FT_LOAD_CROP_BITMAP</a>                  ( 1L &lt;&lt; 6 )
+#define <a href="ft2-base_interface.html#FT_LOAD_PEDANTIC">FT_LOAD_PEDANTIC</a>                     ( 1L &lt;&lt; 7 )
+#define <a href="ft2-base_interface.html#FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH">FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH</a>  ( 1L &lt;&lt; 9 )
+#define <a href="ft2-base_interface.html#FT_LOAD_NO_RECURSE">FT_LOAD_NO_RECURSE</a>                   ( 1L &lt;&lt; 10 )
+#define <a href="ft2-base_interface.html#FT_LOAD_IGNORE_TRANSFORM">FT_LOAD_IGNORE_TRANSFORM</a>             ( 1L &lt;&lt; 11 )
+#define <a href="ft2-base_interface.html#FT_LOAD_MONOCHROME">FT_LOAD_MONOCHROME</a>                   ( 1L &lt;&lt; 12 )
+#define <a href="ft2-base_interface.html#FT_LOAD_LINEAR_DESIGN">FT_LOAD_LINEAR_DESIGN</a>                ( 1L &lt;&lt; 13 )
+#define <a href="ft2-base_interface.html#FT_LOAD_NO_AUTOHINT">FT_LOAD_NO_AUTOHINT</a>                  ( 1L &lt;&lt; 15 )
+  /* Bits 16-19 are used by `FT_LOAD_TARGET_' */
+#define <a href="ft2-base_interface.html#FT_LOAD_COLOR">FT_LOAD_COLOR</a>                        ( 1L &lt;&lt; 20 )
+#define <a href="ft2-base_interface.html#FT_LOAD_COMPUTE_METRICS">FT_LOAD_COMPUTE_METRICS</a>              ( 1L &lt;&lt; 21 )
+#define <a href="ft2-base_interface.html#FT_LOAD_BITMAP_METRICS_ONLY">FT_LOAD_BITMAP_METRICS_ONLY</a>          ( 1L &lt;&lt; 22 )
+</pre>
+
+<p>A list of bit field constants for <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> to indicate what kind of operations to perform during glyph loading.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_LOAD_DEFAULT">FT_LOAD_DEFAULT</td><td class="desc">
+<p>Corresponding to&nbsp;0, this value is used as the default glyph load operation. In this case, the following happens:</p>
+<p>1. FreeType looks for a bitmap for the glyph corresponding to the face's current size. If one is found, the function returns. The bitmap data can be accessed from the glyph slot (see note below).</p>
+<p>2. If no embedded bitmap is searched for or found, FreeType looks for a scalable outline. If one is found, it is loaded from the font file, scaled to device pixels, then &lsquo;hinted&rsquo; to the pixel grid in order to optimize it. The outline data can be accessed from the glyph slot (see note below).</p>
+<p>Note that by default the glyph loader doesn't render outlines into bitmaps. The following flags are used to modify this default behaviour to more specific and useful cases.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_NO_SCALE">FT_LOAD_NO_SCALE</td><td class="desc">
+<p>Don't scale the loaded outline glyph but keep it in font units.</p>
+<p>This flag implies <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a> and <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_BITMAP</a>, and unsets <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a>.</p>
+<p>If the font is &lsquo;tricky&rsquo; (see <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_TRICKY</a> for more), using FT_LOAD_NO_SCALE usually yields meaningless outlines because the subglyphs must be scaled and positioned with hinting instructions. This can be solved by loading the font without FT_LOAD_NO_SCALE and setting the character size to &lsquo;font-&gt;units_per_EM&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_NO_HINTING">FT_LOAD_NO_HINTING</td><td class="desc">
+<p>Disable hinting. This generally generates &lsquo;blurrier&rsquo; bitmap glyphs when the glyph are rendered in any of the anti-aliased modes. See also the note below.</p>
+<p>This flag is implied by <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_RENDER">FT_LOAD_RENDER</td><td class="desc">
+<p>Call <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a> after the glyph is loaded. By default, the glyph is rendered in <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_NORMAL</a> mode. This can be overridden by <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a> or <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_MONOCHROME</a>.</p>
+<p>This flag is unset by <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_NO_BITMAP">FT_LOAD_NO_BITMAP</td><td class="desc">
+<p>Ignore bitmap strikes when loading. Bitmap-only fonts ignore this flag.</p>
+<p><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a> always sets this flag.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_VERTICAL_LAYOUT">FT_LOAD_VERTICAL_LAYOUT</td><td class="desc">
+<p>Load the glyph for vertical text layout. In particular, the &lsquo;advance&rsquo; value in the <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> structure is set to the &lsquo;vertAdvance&rsquo; value of the &lsquo;metrics&rsquo; field.</p>
+<p>In case <a href="ft2-base_interface.html#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a> doesn't return true, you shouldn't use this flag currently. Reason is that in this case vertical metrics get synthesized, and those values are not always consistent across various font formats.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_FORCE_AUTOHINT">FT_LOAD_FORCE_AUTOHINT</td><td class="desc">
+<p>Prefer the auto-hinter over the font's native hinter. See also the note below.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_PEDANTIC">FT_LOAD_PEDANTIC</td><td class="desc">
+<p>Make the font driver perform pedantic verifications during glyph loading. This is mostly used to detect broken glyphs in fonts. By default, FreeType tries to handle broken fonts also.</p>
+<p>In particular, errors from the TrueType bytecode engine are not passed to the application if this flag is not set; this might result in partially hinted or distorted glyphs in case a glyph's bytecode is buggy.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_NO_RECURSE">FT_LOAD_NO_RECURSE</td><td class="desc">
+<p>Don't load composite glyphs recursively. Instead, the font driver should set the &lsquo;num_subglyph&rsquo; and &lsquo;subglyphs&rsquo; values of the glyph slot accordingly, and set &lsquo;glyph-&gt;format&rsquo; to <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_COMPOSITE</a>. The description of subglyphs can then be accessed with <a href="ft2-base_interface.html#FT_Get_SubGlyph_Info">FT_Get_SubGlyph_Info</a>.</p>
+<p>This flag implies <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a> and <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_IGNORE_TRANSFORM</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_IGNORE_TRANSFORM">FT_LOAD_IGNORE_TRANSFORM</td><td class="desc">
+<p>Ignore the transform matrix set by <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_MONOCHROME">FT_LOAD_MONOCHROME</td><td class="desc">
+<p>This flag is used with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a> to indicate that you want to render an outline glyph to a 1-bit monochrome bitmap glyph, with 8&nbsp;pixels packed into each byte of the bitmap data.</p>
+<p>Note that this has no effect on the hinting algorithm used. You should rather use <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_MONO</a> so that the monochrome-optimized hinting algorithm is used.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_LINEAR_DESIGN">FT_LOAD_LINEAR_DESIGN</td><td class="desc">
+<p>Keep &lsquo;linearHoriAdvance&rsquo; and &lsquo;linearVertAdvance&rsquo; fields of <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> in font units. See <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> for details.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_NO_AUTOHINT">FT_LOAD_NO_AUTOHINT</td><td class="desc">
+<p>Disable the auto-hinter. See also the note below.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_COLOR">FT_LOAD_COLOR</td><td class="desc">
+<p>[Since 2.5] Load embedded color bitmap images. The resulting color bitmaps, if available, will have the <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_BGRA</a> format. If the flag is not set and color bitmaps are found, they are converted to 256-level gray bitmaps transparently, using the <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY</a> format.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_COMPUTE_METRICS">FT_LOAD_COMPUTE_METRICS</td><td class="desc">
+<p>[Since 2.6.1] Compute glyph metrics from the glyph data, without the use of bundled metrics tables (for example, the &lsquo;hdmx&rsquo; table in TrueType fonts). This flag is mainly used by font validating or font editing applications, which need to ignore, verify, or edit those tables.</p>
+<p>Currently, this flag is only implemented for TrueType fonts.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_BITMAP_METRICS_ONLY">FT_LOAD_BITMAP_METRICS_ONLY</td><td class="desc">
+<p>[Since 2.7.1] Request loading of the metrics and bitmap image information of a (possibly embedded) bitmap glyph without allocating or copying the bitmap image data itself. No effect if the target glyph is not a bitmap image.</p>
+<p>This flag unsets <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_CROP_BITMAP">FT_LOAD_CROP_BITMAP</td><td class="desc">
+<p>Ignored. Deprecated.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH">FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH</td><td class="desc">
+<p>Ignored. Deprecated.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>By default, hinting is enabled and the font's native hinter (see <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_HINTER</a>) is preferred over the auto-hinter. You can disable hinting by setting <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a> or change the precedence by setting <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_FORCE_AUTOHINT</a>. You can also set <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_AUTOHINT</a> in case you don't want the auto-hinter to be used at all.</p>
+<p>See the description of <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_TRICKY</a> for a special exception (affecting only a handful of Asian fonts).</p>
+<p>Besides deciding which hinter to use, you can also decide which hinting algorithm to use. See <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a> for details.</p>
+<p>Note that the auto-hinter needs a valid Unicode cmap (either a native one or synthesized by FreeType) for producing correct results. If a font provides an incorrect mapping (for example, assigning the character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a mathematical integral sign), the auto-hinter might produce useless results.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define FT_LOAD_TARGET_( x )   ( (<a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>)( (x) &amp; 15 ) &lt;&lt; 16 )
+
+#define <a href="ft2-base_interface.html#FT_LOAD_TARGET_NORMAL">FT_LOAD_TARGET_NORMAL</a>  FT_LOAD_TARGET_( <a href="ft2-base_interface.html#FT_RENDER_MODE_NORMAL">FT_RENDER_MODE_NORMAL</a> )
+#define <a href="ft2-base_interface.html#FT_LOAD_TARGET_LIGHT">FT_LOAD_TARGET_LIGHT</a>   FT_LOAD_TARGET_( <a href="ft2-base_interface.html#FT_RENDER_MODE_LIGHT">FT_RENDER_MODE_LIGHT</a>  )
+#define <a href="ft2-base_interface.html#FT_LOAD_TARGET_MONO">FT_LOAD_TARGET_MONO</a>    FT_LOAD_TARGET_( <a href="ft2-base_interface.html#FT_RENDER_MODE_MONO">FT_RENDER_MODE_MONO</a>   )
+#define <a href="ft2-base_interface.html#FT_LOAD_TARGET_LCD">FT_LOAD_TARGET_LCD</a>     FT_LOAD_TARGET_( <a href="ft2-base_interface.html#FT_RENDER_MODE_LCD">FT_RENDER_MODE_LCD</a>    )
+#define <a href="ft2-base_interface.html#FT_LOAD_TARGET_LCD_V">FT_LOAD_TARGET_LCD_V</a>   FT_LOAD_TARGET_( <a href="ft2-base_interface.html#FT_RENDER_MODE_LCD_V">FT_RENDER_MODE_LCD_V</a>  )
+</pre>
+
+<p>A list of values to select a specific hinting algorithm for the hinter. You should OR one of these values to your &lsquo;load_flags&rsquo; when calling <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+<p>Note that a font's native hinters may ignore the hinting algorithm you have specified (e.g., the TrueType bytecode interpreter). You can set <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_FORCE_AUTOHINT</a> to ensure that the auto-hinter is used.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_LOAD_TARGET_NORMAL">FT_LOAD_TARGET_NORMAL</td><td class="desc">
+<p>The default hinting algorithm, optimized for standard gray-level rendering. For monochrome output, use <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_MONO</a> instead.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_TARGET_LIGHT">FT_LOAD_TARGET_LIGHT</td><td class="desc">
+<p>A lighter hinting algorithm for gray-level modes. Many generated glyphs are fuzzier but better resemble their original shape. This is achieved by snapping glyphs to the pixel grid only vertically (Y-axis), as is done by FreeType's new CFF engine or Microsoft's ClearType font renderer. This preserves inter-glyph spacing in horizontal text. The snapping is done either by the native font driver, if the driver itself and the font support it, or by the auto-hinter.</p>
+<p>Advance widths are rounded to integer values; however, using the &lsquo;lsb_delta&rsquo; and &lsquo;rsb_delta&rsquo; fields of <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a>, it is possible to get fractional advance widths for subpixel positioning (which is recommended to use).</p>
+<p>If configuration option AF_CONFIG_OPTION_TT_SIZE_METRICS is active, TrueType-like metrics are used to make this mode behave similarly as in unpatched FreeType versions between 2.4.6 and 2.7.1 (inclusive).</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_TARGET_MONO">FT_LOAD_TARGET_MONO</td><td class="desc">
+<p>Strong hinting algorithm that should only be used for monochrome output. The result is probably unpleasant if the glyph is rendered in non-monochrome modes.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_TARGET_LCD">FT_LOAD_TARGET_LCD</td><td class="desc">
+<p>A variant of <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_LIGHT</a> optimized for horizontally decimated LCD displays.</p>
+</td></tr>
+<tr><td class="val" id="FT_LOAD_TARGET_LCD_V">FT_LOAD_TARGET_LCD_V</td><td class="desc">
+<p>A variant of <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_NORMAL</a> optimized for vertically decimated LCD displays.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>You should use only <i>one</i> of the FT_LOAD_TARGET_XXX values in your &lsquo;load_flags&rsquo;. They can't be ORed.</p>
+<p>If <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a> is also set, the glyph is rendered in the corresponding mode (i.e., the mode that matches the used algorithm best). An exception is FT_LOAD_TARGET_MONO since it implies <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_MONOCHROME</a>.</p>
+<p>You can use a hinting algorithm that doesn't correspond to the same rendering mode. As an example, it is possible to use the &lsquo;light&rsquo; hinting algorithm and have the results rendered in horizontal LCD pixel mode, with code like</p>
+<pre class="colored">
+  FT_Load_Glyph( face, glyph_index,
+                 load_flags | FT_LOAD_TARGET_LIGHT );
+
+  FT_Render_Glyph( face-&gt;glyph, FT_RENDER_MODE_LCD );
+</pre>
+<p>In general, you should stick with one rendering mode. For example, switching between <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_NORMAL</a> and <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_MONO</a> enforces a lot of recomputation for TrueType fonts, which is slow. Another reason is caching: Selecting a different mode usually causes changes in both the outlines and the rasterized bitmaps; it is thus necessary to empty the cache after a mode switch to avoid false hits.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a>          1
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a>      2
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a>        4
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_SCALE">FT_SUBGLYPH_FLAG_SCALE</a>                   8
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XY_SCALE">FT_SUBGLYPH_FLAG_XY_SCALE</a>             0x40
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_2X2">FT_SUBGLYPH_FLAG_2X2</a>                  0x80
+#define <a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_USE_MY_METRICS">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a>      0x200
+</pre>
+
+<p>A list of constants describing subglyphs. Please refer to the &lsquo;glyf&rsquo; table description in the OpenType specification for the meaning of the various flags (which get synthesized for non-OpenType subglyphs).</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_SCALE">FT_SUBGLYPH_FLAG_SCALE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_XY_SCALE">FT_SUBGLYPH_FLAG_XY_SCALE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_2X2">FT_SUBGLYPH_FLAG_2X2</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_SUBGLYPH_FLAG_USE_MY_METRICS">FT_SUBGLYPH_FLAG_USE_MY_METRICS</td><td class="desc">
+<p></p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FSTYPE_XXX">FT_FSTYPE_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-base_interface.html#FT_FSTYPE_INSTALLABLE_EMBEDDING">FT_FSTYPE_INSTALLABLE_EMBEDDING</a>         0x0000
+#define <a href="ft2-base_interface.html#FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING">FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING</a>  0x0002
+#define <a href="ft2-base_interface.html#FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING">FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING</a>   0x0004
+#define <a href="ft2-base_interface.html#FT_FSTYPE_EDITABLE_EMBEDDING">FT_FSTYPE_EDITABLE_EMBEDDING</a>            0x0008
+#define <a href="ft2-base_interface.html#FT_FSTYPE_NO_SUBSETTING">FT_FSTYPE_NO_SUBSETTING</a>                 0x0100
+#define <a href="ft2-base_interface.html#FT_FSTYPE_BITMAP_EMBEDDING_ONLY">FT_FSTYPE_BITMAP_EMBEDDING_ONLY</a>         0x0200
+</pre>
+
+<p>A list of bit flags used in the &lsquo;fsType&rsquo; field of the OS/2 table in a TrueType or OpenType font and the &lsquo;FSType&rsquo; entry in a PostScript font. These bit flags are returned by <a href="ft2-base_interface.html#FT_Get_FSType_Flags">FT_Get_FSType_Flags</a>; they inform client applications of embedding and subsetting restrictions associated with a font.</p>
+<p>See <a href="https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf">https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf</a> for more details.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_FSTYPE_INSTALLABLE_EMBEDDING">FT_FSTYPE_INSTALLABLE_EMBEDDING</td><td class="desc">
+<p>Fonts with no fsType bit set may be embedded and permanently installed on the remote system by an application.</p>
+</td></tr>
+<tr><td class="val" id="FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING">FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING</td><td class="desc">
+<p>Fonts that have only this bit set must not be modified, embedded or exchanged in any manner without first obtaining permission of the font software copyright owner.</p>
+</td></tr>
+<tr><td class="val" id="FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING">FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING</td><td class="desc">
+<p>The font may be embedded and temporarily loaded on the remote system. Documents containing Preview &amp; Print fonts must be opened &lsquo;read-only&rsquo;; no edits can be applied to the document.</p>
+</td></tr>
+<tr><td class="val" id="FT_FSTYPE_EDITABLE_EMBEDDING">FT_FSTYPE_EDITABLE_EMBEDDING</td><td class="desc">
+<p>The font may be embedded but must only be installed temporarily on other systems. In contrast to Preview &amp; Print fonts, documents containing editable fonts may be opened for reading, editing is permitted, and changes may be saved.</p>
+</td></tr>
+<tr><td class="val" id="FT_FSTYPE_NO_SUBSETTING">FT_FSTYPE_NO_SUBSETTING</td><td class="desc">
+<p>The font may not be subsetted prior to embedding.</p>
+</td></tr>
+<tr><td class="val" id="FT_FSTYPE_BITMAP_EMBEDDING_ONLY">FT_FSTYPE_BITMAP_EMBEDDING_ONLY</td><td class="desc">
+<p>Only bitmaps contained in the font may be embedded; no outline data may be embedded. If there are no bitmaps available in the font, then the font is unembeddable.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The flags are ORed together, thus more than a single value can be returned.</p>
+<p>While the &lsquo;fsType&rsquo; flags can indicate that a font may be embedded, a license with the font vendor may be separately required to use the font in this way.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_HAS_FAST_GLYPHS">FT_HAS_FAST_GLYPHS</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <b>FT_HAS_FAST_GLYPHS</b>( face )  0
+</pre>
+
+<p>Deprecated.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-basic_types.html freetype-2.10.0.aros/docs/reference/ft2-basic_types.html
--- freetype-2.10.0/docs/reference/ft2-basic_types.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-basic_types.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,866 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="basic_types">Basic Data Types</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Byte">FT_Byte</a></td><td><a href="#FT_Bool">FT_Bool</a></td><td><a href="#FT_UnitVector">FT_UnitVector</a></td></tr>
+<tr><td><a href="#FT_Bytes">FT_Bytes</a></td><td><a href="#FT_Offset">FT_Offset</a></td><td><a href="#FT_F26Dot6">FT_F26Dot6</a></td></tr>
+<tr><td><a href="#FT_Char">FT_Char</a></td><td><a href="#FT_PtrDist">FT_PtrDist</a></td><td><a href="#FT_Data">FT_Data</a></td></tr>
+<tr><td><a href="#FT_Int">FT_Int</a></td><td><a href="#FT_String">FT_String</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_UInt">FT_UInt</a></td><td><a href="#FT_Tag">FT_Tag</a></td><td><a href="#FT_MAKE_TAG">FT_MAKE_TAG</a></td></tr>
+<tr><td><a href="#FT_Int16">FT_Int16</a></td><td><a href="#FT_Error">FT_Error</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_UInt16">FT_UInt16</a></td><td><a href="#FT_Fixed">FT_Fixed</a></td><td><a href="#FT_Generic">FT_Generic</a></td></tr>
+<tr><td><a href="#FT_Int32">FT_Int32</a></td><td><a href="#FT_Pointer">FT_Pointer</a></td><td><a href="#FT_Generic_Finalizer">FT_Generic_Finalizer</a></td></tr>
+<tr><td><a href="#FT_UInt32">FT_UInt32</a></td><td><a href="#FT_Pos">FT_Pos</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Int64">FT_Int64</a></td><td><a href="#FT_Vector">FT_Vector</a></td><td><a href="#FT_Bitmap">FT_Bitmap</a></td></tr>
+<tr><td><a href="#FT_UInt64">FT_UInt64</a></td><td><a href="#FT_BBox">FT_BBox</a></td><td><a href="#FT_Pixel_Mode">FT_Pixel_Mode</a></td></tr>
+<tr><td><a href="#FT_Short">FT_Short</a></td><td><a href="#FT_Matrix">FT_Matrix</a></td><td><a href="#FT_Palette_Mode">FT_Palette_Mode</a></td></tr>
+<tr><td><a href="#FT_UShort">FT_UShort</a></td><td><a href="#FT_FWord">FT_FWord</a></td><td><a href="#FT_Glyph_Format">FT_Glyph_Format</a></td></tr>
+<tr><td><a href="#FT_Long">FT_Long</a></td><td><a href="#FT_UFWord">FT_UFWord</a></td><td><a href="#FT_IMAGE_TAG">FT_IMAGE_TAG</a></td></tr>
+<tr><td><a href="#FT_ULong">FT_ULong</a></td><td><a href="#FT_F2Dot14">FT_F2Dot14</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the basic data types defined by FreeType&nbsp;2, ranging from simple scalar types to bitmap descriptors. More font-specific structures are defined in a different section.</p>
+
+<div class="section">
+<h3 id="FT_Byte">FT_Byte</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">char</span>  <b>FT_Byte</b>;
+</pre>
+
+<p>A simple typedef for the <i>unsigned</i> char type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bytes">FT_Bytes</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  <b>FT_Bytes</b>;
+</pre>
+
+<p>A typedef for constant memory areas.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Char">FT_Char</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">char</span>  <b>FT_Char</b>;
+</pre>
+
+<p>A simple typedef for the <i>signed</i> char type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Int">FT_Int</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">int</span>  <b>FT_Int</b>;
+</pre>
+
+<p>A typedef for the int type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UInt">FT_UInt</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">int</span>  <b>FT_UInt</b>;
+</pre>
+
+<p>A typedef for the unsigned int type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Int16">FT_Int16</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span>  <b>FT_Int16</b>;
+</pre>
+
+<p>A typedef for a 16bit signed integer type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UInt16">FT_UInt16</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span>  <b>FT_UInt16</b>;
+</pre>
+
+<p>A typedef for a 16bit unsigned integer type.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Int32">FT_Int32</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX  <b>FT_Int32</b>;
+</pre>
+
+<p>A typedef for a 32bit signed integer type. The size depends on the configuration.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UInt32">FT_UInt32</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX  <b>FT_UInt32</b>;
+</pre>
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Int64">FT_Int64</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX  <b>FT_Int64</b>;
+</pre>
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UInt64">FT_UInt64</h3>
+<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX  <b>FT_UInt64</b>;
+</pre>
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Short">FT_Short</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span>  <b>FT_Short</b>;
+</pre>
+
+<p>A typedef for signed short.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UShort">FT_UShort</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span>  <b>FT_UShort</b>;
+</pre>
+
+<p>A typedef for unsigned short.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Long">FT_Long</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span>  <b>FT_Long</b>;
+</pre>
+
+<p>A typedef for signed long.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ULong">FT_ULong</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">long</span>  <b>FT_ULong</b>;
+</pre>
+
+<p>A typedef for unsigned long.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bool">FT_Bool</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">char</span>  <b>FT_Bool</b>;
+</pre>
+
+<p>A typedef of unsigned char, used for simple booleans. As usual, values 1 and&nbsp;0 represent true and false, respectively.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Offset">FT_Offset</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> size_t  <b>FT_Offset</b>;
+</pre>
+
+<p>This is equivalent to the ANSI&nbsp;C &lsquo;size_t&rsquo; type, i.e., the largest <i>unsigned</i> integer type used to express a file size or position, or a memory block size.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PtrDist">FT_PtrDist</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> ft_ptrdiff_t  <b>FT_PtrDist</b>;
+</pre>
+
+<p>This is equivalent to the ANSI&nbsp;C &lsquo;ptrdiff_t&rsquo; type, i.e., the largest <i>signed</i> integer type used to express the distance between two pointers.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_String">FT_String</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">char</span>  <b>FT_String</b>;
+</pre>
+
+<p>A simple typedef for the char type, usually used for strings.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Tag">FT_Tag</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>  <b>FT_Tag</b>;
+</pre>
+
+<p>A typedef for 32-bit tags (as used in the SFNT format).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Error">FT_Error</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>  <b>FT_Error</b>;
+</pre>
+
+<p>The FreeType error code type. A value of&nbsp;0 is always interpreted as a successful operation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Fixed">FT_Fixed</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span>  <b>FT_Fixed</b>;
+</pre>
+
+<p>This type is used to store 16.16 fixed-point values, like scaling values or matrix coefficients.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Pointer">FT_Pointer</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>*  <b>FT_Pointer</b>;
+</pre>
+
+<p>A simple typedef for a typeless pointer.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Pos">FT_Pos</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span>  <b>FT_Pos</b>;
+</pre>
+
+<p>The type FT_Pos is used to store vectorial coordinates. Depending on the context, these can represent distances in integer font units, or 16.16, or 26.6 fixed-point pixel coordinates.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector">FT_Vector</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Vector_
+  {
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  x;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  y;
+
+  } <b>FT_Vector</b>;
+</pre>
+
+<p>A simple structure used to store a 2D vector; coordinates are of the FT_Pos type.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="x">x</td><td class="desc">
+<p>The horizontal coordinate.</p>
+</td></tr>
+<tr><td class="val" id="y">y</td><td class="desc">
+<p>The vertical coordinate.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BBox">FT_BBox</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_BBox_
+  {
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  xMin, yMin;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>  xMax, yMax;
+
+  } <b>FT_BBox</b>;
+</pre>
+
+<p>A structure used to hold an outline's bounding box, i.e., the coordinates of its extrema in the horizontal and vertical directions.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="xMin">xMin</td><td class="desc">
+<p>The horizontal minimum (left-most).</p>
+</td></tr>
+<tr><td class="val" id="yMin">yMin</td><td class="desc">
+<p>The vertical minimum (bottom-most).</p>
+</td></tr>
+<tr><td class="val" id="xMax">xMax</td><td class="desc">
+<p>The horizontal maximum (right-most).</p>
+</td></tr>
+<tr><td class="val" id="yMax">yMax</td><td class="desc">
+<p>The vertical maximum (top-most).</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The bounding box is specified with the coordinates of the lower left and the upper right corner. In PostScript, those values are often called (llx,lly) and (urx,ury), respectively.</p>
+<p>If &lsquo;yMin&rsquo; is negative, this value gives the glyph's descender. Otherwise, the glyph doesn't descend below the baseline. Similarly, if &lsquo;ymax&rsquo; is positive, this value gives the glyph's ascender.</p>
+<p>&lsquo;xMin&rsquo; gives the horizontal distance from the glyph's origin to the left edge of the glyph's bounding box. If &lsquo;xMin&rsquo; is negative, the glyph extends to the left of the origin.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Matrix">FT_Matrix</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Matrix_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  xx, xy;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  yx, yy;
+
+  } <b>FT_Matrix</b>;
+</pre>
+
+<p>A simple structure used to store a 2x2 matrix. Coefficients are in 16.16 fixed-point format. The computation performed is:</p>
+<pre class="colored">
+   x' = x*xx + y*xy
+   y' = x*yx + y*yy
+</pre>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="xx">xx</td><td class="desc">
+<p>Matrix coefficient.</p>
+</td></tr>
+<tr><td class="val" id="xy">xy</td><td class="desc">
+<p>Matrix coefficient.</p>
+</td></tr>
+<tr><td class="val" id="yx">yx</td><td class="desc">
+<p>Matrix coefficient.</p>
+</td></tr>
+<tr><td class="val" id="yy">yy</td><td class="desc">
+<p>Matrix coefficient.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FWord">FT_FWord</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span>  <b>FT_FWord</b>;   /* distance in FUnits */
+</pre>
+
+<p>A signed 16-bit integer used to store a distance in original font units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UFWord">FT_UFWord</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span>  <b>FT_UFWord</b>;  /* <span class="keyword">unsigned</span> distance */
+</pre>
+
+<p>An unsigned 16-bit integer used to store a distance in original font units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_F2Dot14">FT_F2Dot14</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span>  <b>FT_F2Dot14</b>;
+</pre>
+
+<p>A signed 2.14 fixed-point type used for unit vectors.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_UnitVector">FT_UnitVector</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_UnitVector_
+  {
+    <a href="ft2-basic_types.html#FT_F2Dot14">FT_F2Dot14</a>  x;
+    <a href="ft2-basic_types.html#FT_F2Dot14">FT_F2Dot14</a>  y;
+
+  } <b>FT_UnitVector</b>;
+</pre>
+
+<p>A simple structure used to store a 2D vector unit vector. Uses FT_F2Dot14 types.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="x">x</td><td class="desc">
+<p>Horizontal coordinate.</p>
+</td></tr>
+<tr><td class="val" id="y">y</td><td class="desc">
+<p>Vertical coordinate.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_F26Dot6">FT_F26Dot6</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span>  <b>FT_F26Dot6</b>;
+</pre>
+
+<p>A signed 26.6 fixed-point type used for vectorial pixel coordinates.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Data">FT_Data</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Data_
+  {
+    <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  pointer;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          length;
+
+  } <b>FT_Data</b>;
+</pre>
+
+<p>Read-only binary data represented as a pointer and a length.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="pointer">pointer</td><td class="desc">
+<p>The data.</p>
+</td></tr>
+<tr><td class="val" id="length">length</td><td class="desc">
+<p>The length of the data in bytes.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MAKE_TAG">FT_MAKE_TAG</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+#define <b>FT_MAKE_TAG</b>( _x1, _x2, _x3, _x4 ) \
+          (<a href="ft2-basic_types.html#FT_Tag">FT_Tag</a>)                        \
+          ( ( (<a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>)_x1 &lt;&lt; 24 ) |     \
+            ( (<a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>)_x2 &lt;&lt; 16 ) |     \
+            ( (<a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>)_x3 &lt;&lt;  8 ) |     \
+              (<a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>)_x4         )
+</pre>
+
+<p>This macro converts four-letter tags that are used to label TrueType tables into an unsigned long, to be used within FreeType.</p>
+
+<h4>note</h4>
+<p>The produced values <b>must</b> be 32-bit integers. Don't redefine this macro.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Generic">FT_Generic</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Generic_
+  {
+    <span class="keyword">void</span>*                 data;
+    <a href="ft2-basic_types.html#FT_Generic_Finalizer">FT_Generic_Finalizer</a>  finalizer;
+
+  } <b>FT_Generic</b>;
+</pre>
+
+<p>Client applications often need to associate their own data to a variety of FreeType core objects. For example, a text layout API might want to associate a glyph cache to a given size object.</p>
+<p>Some FreeType object contains a &lsquo;generic&rsquo; field, of type FT_Generic, which usage is left to client applications and font servers.</p>
+<p>It can be used to store a pointer to client-specific data, as well as the address of a &lsquo;finalizer&rsquo; function, which will be called by FreeType when the object is destroyed (for example, the previous client example would put the address of the glyph cache destructor in the &lsquo;finalizer&rsquo; field).</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>A typeless pointer to any client-specified data. This field is completely ignored by the FreeType library.</p>
+</td></tr>
+<tr><td class="val" id="finalizer">finalizer</td><td class="desc">
+<p>A pointer to a &lsquo;generic finalizer&rsquo; function, which will be called when the object is destroyed. If this field is set to NULL, no code will be called.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Generic_Finalizer">FT_Generic_Finalizer</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>  (*<b>FT_Generic_Finalizer</b>)( <span class="keyword">void</span>*  object );
+</pre>
+
+<p>Describe a function used to destroy the &lsquo;client&rsquo; data of any FreeType object. See the description of the <a href="ft2-basic_types.html#FT_Generic">FT_Generic</a> type for details of usage.</p>
+
+<h4>input</h4>
+<p>The address of the FreeType object that is under finalization. Its client data is accessed through its &lsquo;generic&rsquo; field.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap">FT_Bitmap</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Bitmap_
+  {
+    <span class="keyword">unsigned</span> <span class="keyword">int</span>    rows;
+    <span class="keyword">unsigned</span> <span class="keyword">int</span>    width;
+    <span class="keyword">int</span>             pitch;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>*  buffer;
+    <span class="keyword">unsigned</span> <span class="keyword">short</span>  num_grays;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>   pixel_mode;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>   palette_mode;
+    <span class="keyword">void</span>*           palette;
+
+  } <b>FT_Bitmap</b>;
+</pre>
+
+<p>A structure used to describe a bitmap or pixmap to the raster. Note that we now manage pixmaps of various depths through the &lsquo;pixel_mode&rsquo; field.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="rows">rows</td><td class="desc">
+<p>The number of bitmap rows.</p>
+</td></tr>
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The number of pixels in bitmap row.</p>
+</td></tr>
+<tr><td class="val" id="pitch">pitch</td><td class="desc">
+<p>The pitch's absolute value is the number of bytes taken by one bitmap row, including padding. However, the pitch is positive when the bitmap has a &lsquo;down&rsquo; flow, and negative when it has an &lsquo;up&rsquo; flow. In all cases, the pitch is an offset to add to a bitmap pointer in order to go down one row.</p>
+<p>Note that &lsquo;padding&rsquo; means the alignment of a bitmap to a byte border, and FreeType functions normally align to the smallest possible integer value.</p>
+<p>For the B/W rasterizer, &lsquo;pitch&rsquo; is always an even number.</p>
+<p>To change the pitch of a bitmap (say, to make it a multiple of 4), use <a href="ft2-bitmap_handling.html#FT_Bitmap_Convert">FT_Bitmap_Convert</a>. Alternatively, you might use callback functions to directly render to the application's surface; see the file &lsquo;example2.cpp&rsquo; in the tutorial for a demonstration.</p>
+</td></tr>
+<tr><td class="val" id="buffer">buffer</td><td class="desc">
+<p>A typeless pointer to the bitmap buffer. This value should be aligned on 32-bit boundaries in most cases.</p>
+</td></tr>
+<tr><td class="val" id="num_grays">num_grays</td><td class="desc">
+<p>This field is only used with <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY</a>; it gives the number of gray levels used in the bitmap.</p>
+</td></tr>
+<tr><td class="val" id="pixel_mode">pixel_mode</td><td class="desc">
+<p>The pixel mode, i.e., how pixel bits are stored. See <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_Pixel_Mode</a> for possible values.</p>
+</td></tr>
+<tr><td class="val" id="palette_mode">palette_mode</td><td class="desc">
+<p>This field is intended for paletted pixel modes; it indicates how the palette is stored. Not used currently.</p>
+</td></tr>
+<tr><td class="val" id="palette">palette</td><td class="desc">
+<p>A typeless pointer to the bitmap palette; this field is intended for paletted pixel modes. Not used currently.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Pixel_Mode">FT_Pixel_Mode</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Pixel_Mode_
+  {
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_NONE">FT_PIXEL_MODE_NONE</a> = 0,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_MONO">FT_PIXEL_MODE_MONO</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY">FT_PIXEL_MODE_GRAY</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY2">FT_PIXEL_MODE_GRAY2</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY4">FT_PIXEL_MODE_GRAY4</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_LCD">FT_PIXEL_MODE_LCD</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_LCD_V">FT_PIXEL_MODE_LCD_V</a>,
+    <a href="ft2-basic_types.html#FT_PIXEL_MODE_BGRA">FT_PIXEL_MODE_BGRA</a>,
+
+    FT_PIXEL_MODE_MAX      /* do not remove */
+
+  } <b>FT_Pixel_Mode</b>;
+
+
+  /* these constants are deprecated; use the corresponding `<b>FT_Pixel_Mode</b>' */
+  /* values instead.                                                       */
+#define ft_pixel_mode_none   <a href="ft2-basic_types.html#FT_PIXEL_MODE_NONE">FT_PIXEL_MODE_NONE</a>
+#define ft_pixel_mode_mono   <a href="ft2-basic_types.html#FT_PIXEL_MODE_MONO">FT_PIXEL_MODE_MONO</a>
+#define ft_pixel_mode_grays  <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY">FT_PIXEL_MODE_GRAY</a>
+#define ft_pixel_mode_pal2   <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY2">FT_PIXEL_MODE_GRAY2</a>
+#define ft_pixel_mode_pal4   <a href="ft2-basic_types.html#FT_PIXEL_MODE_GRAY4">FT_PIXEL_MODE_GRAY4</a>
+</pre>
+
+<p>An enumeration type used to describe the format of pixels in a given bitmap. Note that additional formats may be added in the future.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_PIXEL_MODE_NONE">FT_PIXEL_MODE_NONE</td><td class="desc">
+<p>Value&nbsp;0 is reserved.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_MONO">FT_PIXEL_MODE_MONO</td><td class="desc">
+<p>A monochrome bitmap, using 1&nbsp;bit per pixel. Note that pixels are stored in most-significant order (MSB), which means that the left-most pixel in a byte has value 128.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_GRAY">FT_PIXEL_MODE_GRAY</td><td class="desc">
+<p>An 8-bit bitmap, generally used to represent anti-aliased glyph images. Each pixel is stored in one byte. Note that the number of &lsquo;gray&rsquo; levels is stored in the &lsquo;num_grays&rsquo; field of the <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a> structure (it generally is 256).</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_GRAY2">FT_PIXEL_MODE_GRAY2</td><td class="desc">
+<p>A 2-bit per pixel bitmap, used to represent embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_GRAY4">FT_PIXEL_MODE_GRAY4</td><td class="desc">
+<p>A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_LCD">FT_PIXEL_MODE_LCD</td><td class="desc">
+<p>An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on LCD displays; the bitmap is three times wider than the original glyph image. See also <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_LCD_V">FT_PIXEL_MODE_LCD_V</td><td class="desc">
+<p>An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on rotated LCD displays; the bitmap is three times taller than the original glyph image. See also <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD_V</a>.</p>
+</td></tr>
+<tr><td class="val" id="FT_PIXEL_MODE_BGRA">FT_PIXEL_MODE_BGRA</td><td class="desc">
+<p>[Since 2.5] An image with four 8-bit channels per pixel, representing a color image (such as emoticons) with alpha channel. For each pixel, the format is BGRA, which means, the blue channel comes first in memory. The color channels are pre-multiplied and in the sRGB colorspace. For example, full red at half-translucent opacity will be represented as &lsquo;00,00,80,80&rsquo;, not &lsquo;00,00,FF,80&rsquo;. See also <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_COLOR</a>.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Format">FT_Glyph_Format</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Glyph_Format_
+  {
+    <a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_NONE">FT_GLYPH_FORMAT_NONE</a>, 0, 0, 0, 0 ),
+
+    <a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_COMPOSITE">FT_GLYPH_FORMAT_COMPOSITE</a>, 'c', 'o', 'm', 'p' ),
+    <a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_BITMAP">FT_GLYPH_FORMAT_BITMAP</a>,    'b', 'i', 't', 's' ),
+    <a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_OUTLINE">FT_GLYPH_FORMAT_OUTLINE</a>,   'o', 'u', 't', 'l' ),
+    <a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_PLOTTER">FT_GLYPH_FORMAT_PLOTTER</a>,   'p', 'l', 'o', 't' )
+
+  } <b>FT_Glyph_Format</b>;
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_Glyph_Format</b>' values instead.                     */
+#define ft_glyph_format_none       <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_NONE">FT_GLYPH_FORMAT_NONE</a>
+#define ft_glyph_format_composite  <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_COMPOSITE">FT_GLYPH_FORMAT_COMPOSITE</a>
+#define ft_glyph_format_bitmap     <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_BITMAP">FT_GLYPH_FORMAT_BITMAP</a>
+#define ft_glyph_format_outline    <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_OUTLINE">FT_GLYPH_FORMAT_OUTLINE</a>
+#define ft_glyph_format_plotter    <a href="ft2-basic_types.html#FT_GLYPH_FORMAT_PLOTTER">FT_GLYPH_FORMAT_PLOTTER</a>
+</pre>
+
+<p>An enumeration type used to describe the format of a given glyph image. Note that this version of FreeType only supports two image formats, even though future font drivers will be able to register their own format.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_GLYPH_FORMAT_NONE">FT_GLYPH_FORMAT_NONE</td><td class="desc">
+<p>The value&nbsp;0 is reserved.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_FORMAT_COMPOSITE">FT_GLYPH_FORMAT_COMPOSITE</td><td class="desc">
+<p>The glyph image is a composite of several other images. This format is <i>only</i> used with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_RECURSE</a>, and is used to report compound glyphs (like accented characters).</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_FORMAT_BITMAP">FT_GLYPH_FORMAT_BITMAP</td><td class="desc">
+<p>The glyph image is a bitmap, and can be described as an <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>. You generally need to access the &lsquo;bitmap&rsquo; field of the <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> structure to read it.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_FORMAT_OUTLINE">FT_GLYPH_FORMAT_OUTLINE</td><td class="desc">
+<p>The glyph image is a vectorial outline made of line segments and Bezier arcs; it can be described as an <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>; you generally want to access the &lsquo;outline&rsquo; field of the <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> structure to read it.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_FORMAT_PLOTTER">FT_GLYPH_FORMAT_PLOTTER</td><td class="desc">
+<p>The glyph image is a vectorial path with no inside and outside contours. Some Type&nbsp;1 fonts, like those in the Hershey family, contain glyphs in this format. These are described as <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>, but FreeType isn't currently capable of rendering them correctly.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IMAGE_TAG">FT_IMAGE_TAG</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+#ifndef <b>FT_IMAGE_TAG</b>
+#define <b>FT_IMAGE_TAG</b>( value, _x1, _x2, _x3, _x4 )  \
+          value = ( ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x1 &lt;&lt; 24 ) | \
+                    ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x2 &lt;&lt; 16 ) | \
+                    ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x3 &lt;&lt; 8  ) | \
+                      (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x4         )
+#endif /* <b>FT_IMAGE_TAG</b> */
+</pre>
+
+<p>This macro converts four-letter tags to an unsigned long type.</p>
+
+<h4>note</h4>
+<p>Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:</p>
+<pre class="colored">
+  #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  value
+</pre>
+<p>to get a simple enumeration without assigning special numbers.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-bdf_fonts.html freetype-2.10.0.aros/docs/reference/ft2-bdf_fonts.html
--- freetype-2.10.0/docs/reference/ft2-bdf_fonts.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-bdf_fonts.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="bdf_fonts">BDF and PCF Files</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#BDF_PropertyType">BDF_PropertyType</a></td><td><a href="#BDF_PropertyRec">BDF_PropertyRec</a></td><td><a href="#FT_Get_BDF_Property">FT_Get_BDF_Property</a></td></tr>
+<tr><td><a href="#BDF_Property">BDF_Property</a></td><td><a href="#FT_Get_BDF_Charset_ID">FT_Get_BDF_Charset_ID</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of functions specific to BDF and PCF fonts.</p>
+
+<div class="section">
+<h3 id="BDF_PropertyType">BDF_PropertyType</h3>
+<p>Defined in FT_BDF_H (freetype/ftbdf.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  BDF_PropertyType_
+  {
+    <a href="ft2-bdf_fonts.html#BDF_PROPERTY_TYPE_NONE">BDF_PROPERTY_TYPE_NONE</a>     = 0,
+    <a href="ft2-bdf_fonts.html#BDF_PROPERTY_TYPE_ATOM">BDF_PROPERTY_TYPE_ATOM</a>     = 1,
+    <a href="ft2-bdf_fonts.html#BDF_PROPERTY_TYPE_INTEGER">BDF_PROPERTY_TYPE_INTEGER</a>  = 2,
+    <a href="ft2-bdf_fonts.html#BDF_PROPERTY_TYPE_CARDINAL">BDF_PROPERTY_TYPE_CARDINAL</a> = 3
+
+  } <b>BDF_PropertyType</b>;
+</pre>
+
+<p>A list of BDF property types.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="BDF_PROPERTY_TYPE_NONE">BDF_PROPERTY_TYPE_NONE</td><td class="desc">
+<p>Value&nbsp;0 is used to indicate a missing property.</p>
+</td></tr>
+<tr><td class="val" id="BDF_PROPERTY_TYPE_ATOM">BDF_PROPERTY_TYPE_ATOM</td><td class="desc">
+<p>Property is a string atom.</p>
+</td></tr>
+<tr><td class="val" id="BDF_PROPERTY_TYPE_INTEGER">BDF_PROPERTY_TYPE_INTEGER</td><td class="desc">
+<p>Property is a 32-bit signed integer.</p>
+</td></tr>
+<tr><td class="val" id="BDF_PROPERTY_TYPE_CARDINAL">BDF_PROPERTY_TYPE_CARDINAL</td><td class="desc">
+<p>Property is a 32-bit unsigned integer.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="BDF_Property">BDF_Property</h3>
+<p>Defined in FT_BDF_H (freetype/ftbdf.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> BDF_PropertyRec_*  <b>BDF_Property</b>;
+</pre>
+
+<p>A handle to a <a href="ft2-bdf_fonts.html#BDF_PropertyRec">BDF_PropertyRec</a> structure to model a given BDF/PCF property.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="BDF_PropertyRec">BDF_PropertyRec</h3>
+<p>Defined in FT_BDF_H (freetype/ftbdf.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  BDF_PropertyRec_
+  {
+    <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PropertyType</a>  type;
+    <span class="keyword">union</span> {
+      <span class="keyword">const</span> <span class="keyword">char</span>*     atom;
+      <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>        integer;
+      <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>       cardinal;
+
+    } u;
+
+  } <b>BDF_PropertyRec</b>;
+</pre>
+
+<p>This structure models a given BDF/PCF property.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="type">type</td><td class="desc">
+<p>The property type.</p>
+</td></tr>
+<tr><td class="val" id="u.atom">u.atom</td><td class="desc">
+<p>The atom string, if type is <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_ATOM</a>. May be NULL, indicating an empty string.</p>
+</td></tr>
+<tr><td class="val" id="u.integer">u.integer</td><td class="desc">
+<p>A signed integer, if type is <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_INTEGER</a>.</p>
+</td></tr>
+<tr><td class="val" id="u.cardinal">u.cardinal</td><td class="desc">
+<p>An unsigned integer, if type is <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_CARDINAL</a>.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_BDF_Charset_ID">FT_Get_BDF_Charset_ID</h3>
+<p>Defined in FT_BDF_H (freetype/ftbdf.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_BDF_Charset_ID</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>       face,
+                         <span class="keyword">const</span> <span class="keyword">char</span>*  *acharset_encoding,
+                         <span class="keyword">const</span> <span class="keyword">char</span>*  *acharset_registry );
+</pre>
+
+<p>Retrieve a BDF font character set identity, according to the BDF specification.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acharset_encoding">acharset_encoding</td><td class="desc">
+<p>Charset encoding, as a C&nbsp;string, owned by the face.</p>
+</td></tr>
+<tr><td class="val" id="acharset_registry">acharset_registry</td><td class="desc">
+<p>Charset registry, as a C&nbsp;string, owned by the face.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with BDF faces, returning an error otherwise.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_BDF_Property">FT_Get_BDF_Property</h3>
+<p>Defined in FT_BDF_H (freetype/ftbdf.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_BDF_Property</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>           face,
+                       <span class="keyword">const</span> <span class="keyword">char</span>*       prop_name,
+                       <a href="ft2-bdf_fonts.html#BDF_PropertyRec">BDF_PropertyRec</a>  *aproperty );
+</pre>
+
+<p>Retrieve a BDF property from a BDF or PCF font file.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="name">name</td><td class="desc">
+<p>The property name.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aproperty">aproperty</td><td class="desc">
+<p>The property.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function works with BDF <i>and</i> PCF fonts. It returns an error otherwise. It also returns an error if the property is not in the font.</p>
+<p>A &lsquo;property&rsquo; is a either key-value pair within the STARTPROPERTIES ... ENDPROPERTIES block of a BDF font or a key-value pair from the &lsquo;info-&gt;props&rsquo; array within a &lsquo;FontRec&rsquo; structure of a PCF font.</p>
+<p>Integer properties are always stored as &lsquo;signed&rsquo; within PCF fonts; consequently, <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_CARDINAL</a> is a possible return value for BDF fonts only.</p>
+<p>In case of error, &lsquo;aproperty-&gt;type&rsquo; is always set to <a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_NONE</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-bitmap_handling.html freetype-2.10.0.aros/docs/reference/ft2-bitmap_handling.html
--- freetype-2.10.0/docs/reference/ft2-bitmap_handling.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-bitmap_handling.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="bitmap_handling">Bitmap Handling</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Bitmap_Init">FT_Bitmap_Init</a></td><td><a href="#FT_Bitmap_Embolden">FT_Bitmap_Embolden</a></td><td><a href="#FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</a></td></tr>
+<tr><td><a href="#FT_Bitmap_Copy">FT_Bitmap_Copy</a></td><td><a href="#FT_Bitmap_Convert">FT_Bitmap_Convert</a></td><td><a href="#FT_Bitmap_Done">FT_Bitmap_Done</a></td></tr>
+</table>
+
+
+<p>This section contains functions for handling <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a> objects. Note that none of the functions changes the bitmap's &lsquo;flow&rsquo; (as indicated by the sign of the &lsquo;pitch&rsquo; field in &lsquo;FT_Bitmap&rsquo;).</p>
+
+<div class="section">
+<h3 id="FT_Bitmap_Init">FT_Bitmap_Init</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Bitmap_Init</b>( <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *abitmap );
+
+
+  /* deprecated */
+  FT_EXPORT( <span class="keyword">void</span> )
+  FT_Bitmap_New( <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *abitmap );
+</pre>
+
+<p>Initialize a pointer to an <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a> structure.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="abitmap">abitmap</td><td class="desc">
+<p>A pointer to the bitmap structure.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>A deprecated name for the same function is &lsquo;FT_Bitmap_New&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap_Copy">FT_Bitmap_Copy</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Bitmap_Copy</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library,
+                  <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *source,
+                  <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>        *target );
+</pre>
+
+<p>Copy a bitmap into another one.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a library object.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>A handle to the source bitmap.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="target">target</td><td class="desc">
+<p>A handle to the target bitmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap_Embolden">FT_Bitmap_Embolden</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Bitmap_Embolden</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library,
+                      <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>*  bitmap,
+                      <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>      xStrength,
+                      <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>      yStrength );
+</pre>
+
+<p>Embolden a bitmap. The new bitmap will be about &lsquo;xStrength&rsquo; pixels wider and &lsquo;yStrength&rsquo; pixels higher. The left and bottom borders are kept unchanged.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a library object.</p>
+</td></tr>
+<tr><td class="val" id="xStrength">xStrength</td><td class="desc">
+<p>How strong the glyph is emboldened horizontally. Expressed in 26.6 pixel format.</p>
+</td></tr>
+<tr><td class="val" id="yStrength">yStrength</td><td class="desc">
+<p>How strong the glyph is emboldened vertically. Expressed in 26.6 pixel format.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
+<p>A handle to the target bitmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The current implementation restricts &lsquo;xStrength&rsquo; to be less than or equal to&nbsp;8 if bitmap is of pixel_mode <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_MONO</a>.</p>
+<p>If you want to embolden the bitmap owned by a <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a>, you should call <a href="ft2-bitmap_handling.html#FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</a> on the slot first.</p>
+<p>Bitmaps in <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY2</a> and <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY</a>@ format are converted to <a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY</a> format (i.e., 8bpp).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap_Convert">FT_Bitmap_Convert</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Bitmap_Convert</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library,
+                     <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *source,
+                     <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>        *target,
+                     <a href="ft2-basic_types.html#FT_Int">FT_Int</a>            alignment );
+</pre>
+
+<p>Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to a bitmap object with depth 8bpp, making the number of used bytes line (a.k.a. the &lsquo;pitch&rsquo;) a multiple of &lsquo;alignment&rsquo;.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a library object.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>The source bitmap.</p>
+</td></tr>
+<tr><td class="val" id="alignment">alignment</td><td class="desc">
+<p>The pitch of the bitmap is a multiple of this parameter. Common values are 1, 2, or 4.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="target">target</td><td class="desc">
+<p>The target bitmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>It is possible to call <a href="ft2-bitmap_handling.html#FT_Bitmap_Convert">FT_Bitmap_Convert</a> multiple times without calling <a href="ft2-bitmap_handling.html#FT_Bitmap_Done">FT_Bitmap_Done</a> (the memory is simply reallocated).</p>
+<p>Use <a href="ft2-bitmap_handling.html#FT_Bitmap_Done">FT_Bitmap_Done</a> to finally remove the bitmap object.</p>
+<p>The &lsquo;library&rsquo; argument is taken to have access to FreeType's memory handling functions.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_GlyphSlot_Own_Bitmap</b>( <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>  slot );
+</pre>
+
+<p>Make sure that a glyph slot owns &lsquo;slot-&gt;bitmap&rsquo;.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="slot">slot</td><td class="desc">
+<p>The glyph slot.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function is to be used in combination with <a href="ft2-bitmap_handling.html#FT_Bitmap_Embolden">FT_Bitmap_Embolden</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Bitmap_Done">FT_Bitmap_Done</h3>
+<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Bitmap_Done</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library,
+                  <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *bitmap );
+</pre>
+
+<p>Destroy a bitmap object initialized with <a href="ft2-bitmap_handling.html#FT_Bitmap_Init">FT_Bitmap_Init</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a library object.</p>
+</td></tr>
+<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
+<p>The bitmap object to be freed.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The &lsquo;library&rsquo; argument is taken to have access to FreeType's memory handling functions.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-bzip2.html freetype-2.10.0.aros/docs/reference/ft2-bzip2.html
--- freetype-2.10.0/docs/reference/ft2-bzip2.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-bzip2.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="bzip2">BZIP2 Streams</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Stream_OpenBzip2">FT_Stream_OpenBzip2</a></td><td></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of Bzip2-specific functions.</p>
+
+<div class="section">
+<h3 id="FT_Stream_OpenBzip2">FT_Stream_OpenBzip2</h3>
+<p>Defined in FT_BZIP2_H (freetype/ftbzip2.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stream_OpenBzip2</b>( <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  stream,
+                       <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  source );
+</pre>
+
+<p>Open a new stream to parse bzip2-compressed font files. This is mainly used to support the compressed &lsquo;*.pcf.bz2&rsquo; fonts that come with XFree86.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>The target embedding stream.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>The source stream.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The source stream must be opened <i>before</i> calling this function.</p>
+<p>Calling the internal function &lsquo;FT_Stream_Close&rsquo; on the new stream will <b>not</b> call &lsquo;FT_Stream_Close&rsquo; on the source stream. None of the stream objects will be released to the heap.</p>
+<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.</p>
+<p>In certain builds of the library, bzip2 compression recognition is automatically handled when calling <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> or <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a bzip2 compressed stream from it and re-open the face with it.</p>
+<p>This function may return &lsquo;FT_Err_Unimplemented_Feature&rsquo; if your build of FreeType was not compiled with bzip2 support.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-cache_subsystem.html freetype-2.10.0.aros/docs/reference/ft2-cache_subsystem.html
--- freetype-2.10.0/docs/reference/ft2-cache_subsystem.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-cache_subsystem.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,1010 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="cache_subsystem">Cache Sub-System</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FTC_Manager">FTC_Manager</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FTC_FaceID">FTC_FaceID</a></td><td><a href="#FTC_SBit">FTC_SBit</a></td></tr>
+<tr><td><a href="#FTC_Face_Requester">FTC_Face_Requester</a></td><td><a href="#FTC_SBitCache">FTC_SBitCache</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FTC_SBitCache_New">FTC_SBitCache_New</a></td></tr>
+<tr><td><a href="#FTC_Manager_New">FTC_Manager_New</a></td><td><a href="#FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</a></td></tr>
+<tr><td><a href="#FTC_Manager_Reset">FTC_Manager_Reset</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FTC_Manager_Done">FTC_Manager_Done</a></td><td><a href="#FTC_CMapCache">FTC_CMapCache</a></td></tr>
+<tr><td><a href="#FTC_Manager_LookupFace">FTC_Manager_LookupFace</a></td><td><a href="#FTC_CMapCache_New">FTC_CMapCache_New</a></td></tr>
+<tr><td><a href="#FTC_Manager_LookupSize">FTC_Manager_LookupSize</a></td><td><a href="#FTC_CMapCache_Lookup">FTC_CMapCache_Lookup</a></td></tr>
+<tr><td><a href="#FTC_Manager_RemoveFaceID">FTC_Manager_RemoveFaceID</a></td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FTC_ScalerRec">FTC_ScalerRec</a></td></tr>
+<tr><td><a href="#FTC_Node">FTC_Node</a></td><td><a href="#FTC_Scaler">FTC_Scaler</a></td></tr>
+<tr><td><a href="#FTC_Node_Unref">FTC_Node_Unref</a></td><td><a href="#FTC_ImageTypeRec">FTC_ImageTypeRec</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FTC_ImageType">FTC_ImageType</a></td></tr>
+<tr><td><a href="#FTC_ImageCache">FTC_ImageCache</a></td><td><a href="#FTC_ImageCache_LookupScaler">FTC_ImageCache_LookupScaler</a></td></tr>
+<tr><td><a href="#FTC_ImageCache_New">FTC_ImageCache_New</a></td><td><a href="#FTC_SBitRec">FTC_SBitRec</a></td></tr>
+<tr><td><a href="#FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</a></td><td><a href="#FTC_SBitCache_LookupScaler">FTC_SBitCache_LookupScaler</a></td></tr>
+</table>
+
+
+<p>This section describes the FreeType&nbsp;2 cache sub-system, which is used to limit the number of concurrently opened <a href="ft2-base_interface.html#FT_Face">FT_Face</a> and <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects, as well as caching information like character maps and glyph images while limiting their maximum memory usage.</p>
+<p>Note that all types and functions begin with the &lsquo;FTC_&rsquo; prefix.</p>
+<p>The cache is highly portable and thus doesn't know anything about the fonts installed on your system, or how to access them. This implies the following scheme:</p>
+<p>First, available or installed font faces are uniquely identified by <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> values, provided to the cache by the client. Note that the cache only stores and compares these values, and doesn't try to interpret them in any way.</p>
+<p>Second, the cache calls, only when needed, a client-provided function to convert an <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> into a new <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object. The latter is then completely managed by the cache, including its termination through <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>. To monitor termination of face objects, the finalizer callback in the &lsquo;generic&rsquo; field of the <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object can be used, which might also be used to store the <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> of the face.</p>
+<p>Clients are free to map face IDs to anything else. The most simple usage is to associate them to a (pathname,face_index) pair that is used to call <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a>. However, more complex schemes are also possible.</p>
+<p>Note that for the cache to work correctly, the face ID values must be <b>persistent</b>, which means that the contents they point to should not change at runtime, or that their value should not become invalid.</p>
+<p>If this is unavoidable (e.g., when a font is uninstalled at runtime), you should call <a href="ft2-cache_subsystem.html#FTC_Manager_RemoveFaceID">FTC_Manager_RemoveFaceID</a> as soon as possible, to let the cache get rid of any references to the old <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> it may keep internally. Failure to do so will lead to incorrect behaviour or even crashes.</p>
+<p>To use the cache, start with calling <a href="ft2-cache_subsystem.html#FTC_Manager_New">FTC_Manager_New</a> to create a new <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a> object, which models a single cache instance. You can then look up <a href="ft2-base_interface.html#FT_Face">FT_Face</a> and <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects with <a href="ft2-cache_subsystem.html#FTC_Manager_LookupFace">FTC_Manager_LookupFace</a> and <a href="ft2-cache_subsystem.html#FTC_Manager_LookupSize">FTC_Manager_LookupSize</a>, respectively.</p>
+<p>If you want to use the charmap caching, call <a href="ft2-cache_subsystem.html#FTC_CMapCache_New">FTC_CMapCache_New</a>, then later use <a href="ft2-cache_subsystem.html#FTC_CMapCache_Lookup">FTC_CMapCache_Lookup</a> to perform the equivalent of <a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a>, only much faster.</p>
+<p>If you want to use the <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> caching, call <a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a>, then later use <a href="ft2-cache_subsystem.html#FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</a> to retrieve the corresponding <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> objects from the cache.</p>
+<p>If you need lots of small bitmaps, it is much more memory efficient to call <a href="ft2-cache_subsystem.html#FTC_SBitCache_New">FTC_SBitCache_New</a> followed by <a href="ft2-cache_subsystem.html#FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</a>. This returns <a href="ft2-cache_subsystem.html#FTC_SBitRec">FTC_SBitRec</a> structures, which are used to store small bitmaps directly. (A small bitmap is one whose metrics and dimensions all fit into 8-bit integers).</p>
+<p>We hope to also provide a kerning cache in the near future.</p>
+
+<div class="section">
+<h3 id="FTC_Manager">FTC_Manager</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ManagerRec_*  <b>FTC_Manager</b>;
+</pre>
+
+<p>This object corresponds to one instance of the cache-subsystem. It is used to cache one or more <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects, along with corresponding <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects.</p>
+<p>The manager intentionally limits the total number of opened <a href="ft2-base_interface.html#FT_Face">FT_Face</a> and <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects to control memory usage. See the &lsquo;max_faces&rsquo; and &lsquo;max_sizes&rsquo; parameters of <a href="ft2-cache_subsystem.html#FTC_Manager_New">FTC_Manager_New</a>.</p>
+<p>The manager is also used to cache &lsquo;nodes&rsquo; of various types while limiting their total memory usage.</p>
+<p>All limitations are enforced by keeping lists of managed objects in most-recently-used order, and flushing old nodes to make room for new ones.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_FaceID">FTC_FaceID</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a>  <b>FTC_FaceID</b>;
+</pre>
+
+<p>An opaque pointer type that is used to identity face objects. The contents of such objects is application-dependent.</p>
+<p>These pointers are typically used to point to a user-defined structure containing a font file path, and face index.</p>
+
+<h4>note</h4>
+<p>Never use NULL as a valid <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>.</p>
+<p>Face IDs are passed by the client to the cache manager that calls, when needed, the <a href="ft2-cache_subsystem.html#FTC_Face_Requester">FTC_Face_Requester</a> to translate them into new <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects.</p>
+<p>If the content of a given face ID changes at runtime, or if the value becomes invalid (e.g., when uninstalling a font), you should immediately call <a href="ft2-cache_subsystem.html#FTC_Manager_RemoveFaceID">FTC_Manager_RemoveFaceID</a> before any other cache function.</p>
+<p>Failure to do so will result in incorrect behaviour or even memory leaks and crashes.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Face_Requester">FTC_Face_Requester</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Error">FT_Error</a>
+  (*<b>FTC_Face_Requester</b>)( <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>  face_id,
+                         <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library,
+                         <a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a>  req_data,
+                         <a href="ft2-base_interface.html#FT_Face">FT_Face</a>*    aface );
+</pre>
+
+<p>A callback function provided by client applications. It is used by the cache manager to translate a given <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> into a new valid <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object, on demand.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The face ID to resolve.</p>
+</td></tr>
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a FreeType library object.</p>
+</td></tr>
+<tr><td class="val" id="req_data">req_data</td><td class="desc">
+<p>Application-provided request data (see note below).</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A new <a href="ft2-base_interface.html#FT_Face">FT_Face</a> handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The third parameter &lsquo;req_data&rsquo; is the same as the one passed by the client when <a href="ft2-cache_subsystem.html#FTC_Manager_New">FTC_Manager_New</a> is called.</p>
+<p>The face requester should not perform funny things on the returned face object, like creating a new <a href="ft2-base_interface.html#FT_Size">FT_Size</a> for it, or setting a transformation through <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a>!</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_New">FTC_Manager_New</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_Manager_New</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>          library,
+                   <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>             max_faces,
+                   <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>             max_sizes,
+                   <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>            max_bytes,
+                   <a href="ft2-cache_subsystem.html#FTC_Face_Requester">FTC_Face_Requester</a>  requester,
+                   <a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a>          req_data,
+                   <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>        *amanager );
+</pre>
+
+<p>Create a new cache manager.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>The parent FreeType library handle to use.</p>
+</td></tr>
+<tr><td class="val" id="max_faces">max_faces</td><td class="desc">
+<p>Maximum number of opened <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects managed by this cache instance. Use&nbsp;0 for defaults.</p>
+</td></tr>
+<tr><td class="val" id="max_sizes">max_sizes</td><td class="desc">
+<p>Maximum number of opened <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects managed by this cache instance. Use&nbsp;0 for defaults.</p>
+</td></tr>
+<tr><td class="val" id="max_bytes">max_bytes</td><td class="desc">
+<p>Maximum number of bytes to use for cached data nodes. Use&nbsp;0 for defaults. Note that this value does not account for managed <a href="ft2-base_interface.html#FT_Face">FT_Face</a> and <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects.</p>
+</td></tr>
+<tr><td class="val" id="requester">requester</td><td class="desc">
+<p>An application-provided callback used to translate face IDs into real <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects.</p>
+</td></tr>
+<tr><td class="val" id="req_data">req_data</td><td class="desc">
+<p>A generic pointer that is passed to the requester each time it is called (see <a href="ft2-cache_subsystem.html#FTC_Face_Requester">FTC_Face_Requester</a>).</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="amanager">amanager</td><td class="desc">
+<p>A handle to a new manager object. 0&nbsp;in case of failure.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_Reset">FTC_Manager_Reset</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FTC_Manager_Reset</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager );
+</pre>
+
+<p>Empty a given cache manager. This simply gets rid of all the currently cached <a href="ft2-base_interface.html#FT_Face">FT_Face</a> and <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects within the manager.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the manager.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_Done">FTC_Manager_Done</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FTC_Manager_Done</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager );
+</pre>
+
+<p>Destroy a given manager after emptying it.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the target cache manager object.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_LookupFace">FTC_Manager_LookupFace</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_Manager_LookupFace</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager,
+                          <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>   face_id,
+                          <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     *aface );
+</pre>
+
+<p>Retrieve the <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object that corresponds to a given face ID through a cache manager.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the cache manager.</p>
+</td></tr>
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The ID of the face object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to the face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The returned <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object is always owned by the manager. You should never try to discard it yourself.</p>
+<p>The <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object doesn't necessarily have a current size object (i.e., face-&gt;size can be&nbsp;0). If you need a specific &lsquo;font size&rsquo;, use <a href="ft2-cache_subsystem.html#FTC_Manager_LookupSize">FTC_Manager_LookupSize</a> instead.</p>
+<p>Never change the face's transformation matrix (i.e., never call the <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a> function) on a returned face! If you need to transform glyphs, do it yourself after glyph loading.</p>
+<p>When you perform a lookup, out-of-memory errors are detected <i>within</i> the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.</p>
+<p>If a lookup fails with &lsquo;FT_Err_Out_Of_Memory&rsquo; the cache has already been completely flushed, and still no memory was available for the operation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_LookupSize">FTC_Manager_LookupSize</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_Manager_LookupSize</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager,
+                          <a href="ft2-cache_subsystem.html#FTC_Scaler">FTC_Scaler</a>   scaler,
+                          <a href="ft2-base_interface.html#FT_Size">FT_Size</a>     *asize );
+</pre>
+
+<p>Retrieve the <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object that corresponds to a given <a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a> pointer through a cache manager.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the cache manager.</p>
+</td></tr>
+<tr><td class="val" id="scaler">scaler</td><td class="desc">
+<p>A scaler handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="asize">asize</td><td class="desc">
+<p>A handle to the size object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The returned <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object is always owned by the manager. You should never try to discard it by yourself.</p>
+<p>You can access the parent <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object simply as &lsquo;size-&gt;face&rsquo; if you need it. Note that this object is also owned by the manager.</p>
+
+<h4>note</h4>
+<p>When you perform a lookup, out-of-memory errors are detected <i>within</i> the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.</p>
+<p>If a lookup fails with &lsquo;FT_Err_Out_Of_Memory&rsquo; the cache has already been completely flushed, and still no memory is available for the operation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Manager_RemoveFaceID">FTC_Manager_RemoveFaceID</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FTC_Manager_RemoveFaceID</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager,
+                            <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>   face_id );
+</pre>
+
+<p>A special function used to indicate to the cache manager that a given <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> is no longer valid, either because its content changed, or because it was deallocated or uninstalled.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>The cache manager handle.</p>
+</td></tr>
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a> to be removed.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function flushes all nodes from the cache corresponding to this &lsquo;face_id&rsquo;, with the exception of nodes with a non-null reference count.</p>
+<p>Such nodes are however modified internally so as to never appear in later lookups with the same &lsquo;face_id&rsquo; value, and to be immediately destroyed when released by all their users.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Node">FTC_Node</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_NodeRec_*  <b>FTC_Node</b>;
+</pre>
+
+<p>An opaque handle to a cache node object. Each cache node is reference-counted. A node with a count of&nbsp;0 might be flushed out of a full cache whenever a lookup request is performed.</p>
+<p>If you look up nodes, you have the ability to &lsquo;acquire&rsquo; them, i.e., to increment their reference count. This will prevent the node from being flushed out of the cache until you explicitly &lsquo;release&rsquo; it (see <a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a>).</p>
+<p>See also <a href="ft2-cache_subsystem.html#FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</a> and <a href="ft2-cache_subsystem.html#FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Node_Unref">FTC_Node_Unref</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FTC_Node_Unref</b>( <a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a>     node,
+                  <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>  manager );
+</pre>
+
+<p>Decrement a cache node's internal reference count. When the count reaches 0, it is not destroyed but becomes eligible for subsequent cache flushes.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The cache node handle.</p>
+</td></tr>
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>The cache manager handle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageCache">FTC_ImageCache</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ImageCacheRec_*  <b>FTC_ImageCache</b>;
+</pre>
+
+<p>A handle to a glyph image cache object. They are designed to hold many distinct glyph images while not exceeding a certain memory threshold.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageCache_New">FTC_ImageCache_New</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_ImageCache_New</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>      manager,
+                      <a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a>  *acache );
+</pre>
+
+<p>Create a new glyph image cache.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>The parent manager for the image cache.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acache">acache</td><td class="desc">
+<p>A handle to the new glyph image cache object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_ImageCache_Lookup</b>( <a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a>  cache,
+                         <a href="ft2-cache_subsystem.html#FTC_ImageType">FTC_ImageType</a>   type,
+                         <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>         gindex,
+                         <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>       *aglyph,
+                         <a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a>       *anode );
+</pre>
+
+<p>Retrieve a given glyph image from a glyph image cache.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="cache">cache</td><td class="desc">
+<p>A handle to the source glyph image cache.</p>
+</td></tr>
+<tr><td class="val" id="type">type</td><td class="desc">
+<p>A pointer to a glyph image type descriptor.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index to retrieve.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aglyph">aglyph</td><td class="desc">
+<p>The corresponding <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object. 0&nbsp;in case of failure.</p>
+</td></tr>
+<tr><td class="val" id="anode">anode</td><td class="desc">
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with <a href="ft2-glyph_management.html#FT_Glyph_Copy">FT_Glyph_Copy</a> and modify the new one.</p>
+<p>If &lsquo;anode&rsquo; is <i>not</i> NULL, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>) will always be kept in the cache until you call <a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a> to &lsquo;release&rsquo; it.</p>
+<p>If &lsquo;anode&rsquo; is NULL, the cache node is left unchanged, which means that the <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBit">FTC_SBit</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_SBitRec_*  <b>FTC_SBit</b>;
+</pre>
+
+<p>A handle to a small bitmap descriptor. See the <a href="ft2-cache_subsystem.html#FTC_SBitRec">FTC_SBitRec</a> structure for details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBitCache">FTC_SBitCache</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_SBitCacheRec_*  <b>FTC_SBitCache</b>;
+</pre>
+
+<p>A handle to a small bitmap cache. These are special cache objects used to store small glyph bitmaps (and anti-aliased pixmaps) in a much more efficient way than the traditional glyph image cache implemented by <a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBitCache_New">FTC_SBitCache_New</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_SBitCache_New</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>     manager,
+                     <a href="ft2-cache_subsystem.html#FTC_SBitCache">FTC_SBitCache</a>  *acache );
+</pre>
+
+<p>Create a new cache to store small glyph bitmaps.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the source cache manager.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acache">acache</td><td class="desc">
+<p>A handle to the new sbit cache. NULL in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_SBitCache_Lookup</b>( <a href="ft2-cache_subsystem.html#FTC_SBitCache">FTC_SBitCache</a>    cache,
+                        <a href="ft2-cache_subsystem.html#FTC_ImageType">FTC_ImageType</a>    type,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>          gindex,
+                        <a href="ft2-cache_subsystem.html#FTC_SBit">FTC_SBit</a>        *sbit,
+                        <a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a>        *anode );
+</pre>
+
+<p>Look up a given small glyph bitmap in a given sbit cache and &lsquo;lock&rsquo; it to prevent its flushing from the cache until needed.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="cache">cache</td><td class="desc">
+<p>A handle to the source sbit cache.</p>
+</td></tr>
+<tr><td class="val" id="type">type</td><td class="desc">
+<p>A pointer to the glyph image type descriptor.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="sbit">sbit</td><td class="desc">
+<p>A handle to a small bitmap descriptor.</p>
+</td></tr>
+<tr><td class="val" id="anode">anode</td><td class="desc">
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.</p>
+<p>The descriptor's &lsquo;buffer&rsquo; field is set to&nbsp;0 to indicate a missing glyph bitmap.</p>
+<p>If &lsquo;anode&rsquo; is <i>not</i> NULL, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call <a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a> to &lsquo;release&rsquo; it.</p>
+<p>If &lsquo;anode&rsquo; is NULL, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_CMapCache">FTC_CMapCache</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_CMapCacheRec_*  <b>FTC_CMapCache</b>;
+</pre>
+
+<p>An opaque handle used to model a charmap cache. This cache is to hold character codes -&gt; glyph indices mappings.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_CMapCache_New">FTC_CMapCache_New</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_CMapCache_New</b>( <a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a>     manager,
+                     <a href="ft2-cache_subsystem.html#FTC_CMapCache">FTC_CMapCache</a>  *acache );
+</pre>
+
+<p>Create a new charmap cache.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="manager">manager</td><td class="desc">
+<p>A handle to the cache manager.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acache">acache</td><td class="desc">
+<p>A new cache handle. NULL in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Like all other caches, this one will be destroyed with the cache manager.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_CMapCache_Lookup">FTC_CMapCache_Lookup</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
+  <b>FTC_CMapCache_Lookup</b>( <a href="ft2-cache_subsystem.html#FTC_CMapCache">FTC_CMapCache</a>  cache,
+                        <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>     face_id,
+                        <a href="ft2-basic_types.html#FT_Int">FT_Int</a>         cmap_index,
+                        <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>      char_code );
+</pre>
+
+<p>Translate a character code into a glyph index, using the charmap cache.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="cache">cache</td><td class="desc">
+<p>A charmap cache handle.</p>
+</td></tr>
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The source face ID.</p>
+</td></tr>
+<tr><td class="val" id="cmap_index">cmap_index</td><td class="desc">
+<p>The index of the charmap in the source face. Any negative value means to use the cache <a href="ft2-base_interface.html#FT_Face">FT_Face</a>'s default charmap.</p>
+</td></tr>
+<tr><td class="val" id="char_code">char_code</td><td class="desc">
+<p>The character code (in the corresponding charmap).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Glyph index. 0&nbsp;means &lsquo;no glyph&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ScalerRec">FTC_ScalerRec</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_ScalerRec_
+  {
+    <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>  face_id;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     width;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     height;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>      pixel;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     x_res;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     y_res;
+
+  } <b>FTC_ScalerRec</b>;
+</pre>
+
+<p>A structure used to describe a given character size in either pixels or points to the cache manager. See <a href="ft2-cache_subsystem.html#FTC_Manager_LookupSize">FTC_Manager_LookupSize</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The source face ID.</p>
+</td></tr>
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The character width.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The character height.</p>
+</td></tr>
+<tr><td class="val" id="pixel">pixel</td><td class="desc">
+<p>A Boolean. If 1, the &lsquo;width&rsquo; and &lsquo;height&rsquo; fields are interpreted as integer pixel character sizes. Otherwise, they are expressed as 1/64th of points.</p>
+</td></tr>
+<tr><td class="val" id="x_res">x_res</td><td class="desc">
+<p>Only used when &lsquo;pixel&rsquo; is value&nbsp;0 to indicate the horizontal resolution in dpi.</p>
+</td></tr>
+<tr><td class="val" id="y_res">y_res</td><td class="desc">
+<p>Only used when &lsquo;pixel&rsquo; is value&nbsp;0 to indicate the vertical resolution in dpi.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This type is mainly used to retrieve <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects through the cache manager.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_Scaler">FTC_Scaler</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ScalerRec_*  <b>FTC_Scaler</b>;
+</pre>
+
+<p>A handle to an <a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageTypeRec">FTC_ImageTypeRec</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_ImageTypeRec_
+  {
+    <a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a>  face_id;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     width;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     height;
+    <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>    flags;
+
+  } <b>FTC_ImageTypeRec</b>;
+</pre>
+
+<p>A structure used to model the type of images in a glyph cache.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="face_id">face_id</td><td class="desc">
+<p>The face ID.</p>
+</td></tr>
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The width in pixels.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The height in pixels.</p>
+</td></tr>
+<tr><td class="val" id="flags">flags</td><td class="desc">
+<p>The load flags, as in <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageType">FTC_ImageType</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ImageTypeRec_*  <b>FTC_ImageType</b>;
+</pre>
+
+<p>A handle to an <a href="ft2-cache_subsystem.html#FTC_ImageTypeRec">FTC_ImageTypeRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_ImageCache_LookupScaler">FTC_ImageCache_LookupScaler</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_ImageCache_LookupScaler</b>( <a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a>  cache,
+                               <a href="ft2-cache_subsystem.html#FTC_Scaler">FTC_Scaler</a>      scaler,
+                               <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        load_flags,
+                               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>         gindex,
+                               <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>       *aglyph,
+                               <a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a>       *anode );
+</pre>
+
+<p>A variant of <a href="ft2-cache_subsystem.html#FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</a> that uses an <a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a> to specify the face ID and its size.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="cache">cache</td><td class="desc">
+<p>A handle to the source glyph image cache.</p>
+</td></tr>
+<tr><td class="val" id="scaler">scaler</td><td class="desc">
+<p>A pointer to a scaler descriptor.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>The corresponding load flags.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index to retrieve.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aglyph">aglyph</td><td class="desc">
+<p>The corresponding <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object. 0&nbsp;in case of failure.</p>
+</td></tr>
+<tr><td class="val" id="anode">anode</td><td class="desc">
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with <a href="ft2-glyph_management.html#FT_Glyph_Copy">FT_Glyph_Copy</a> and modify the new one.</p>
+<p>If &lsquo;anode&rsquo; is <i>not</i> NULL, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>) will always be kept in the cache until you call <a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a> to &lsquo;release&rsquo; it.</p>
+<p>If &lsquo;anode&rsquo; is NULL, the cache node is left unchanged, which means that the <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
+<p>Calls to <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> and friends have no effect on cached glyphs; you should always use the FreeType cache API instead.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBitRec">FTC_SBitRec</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_SBitRec_
+  {
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>   width;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>   height;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>   left;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>   top;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>   format;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>   max_grays;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>  pitch;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>   xadvance;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>   yadvance;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  buffer;
+
+  } <b>FTC_SBitRec</b>;
+</pre>
+
+<p>A very compact structure used to describe a small glyph bitmap.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="width">width</td><td class="desc">
+<p>The bitmap width in pixels.</p>
+</td></tr>
+<tr><td class="val" id="height">height</td><td class="desc">
+<p>The bitmap height in pixels.</p>
+</td></tr>
+<tr><td class="val" id="left">left</td><td class="desc">
+<p>The horizontal distance from the pen position to the left bitmap border (a.k.a. &lsquo;left side bearing&rsquo;, or &lsquo;lsb&rsquo;).</p>
+</td></tr>
+<tr><td class="val" id="top">top</td><td class="desc">
+<p>The vertical distance from the pen position (on the baseline) to the upper bitmap border (a.k.a. &lsquo;top side bearing&rsquo;). The distance is positive for upwards y&nbsp;coordinates.</p>
+</td></tr>
+<tr><td class="val" id="format">format</td><td class="desc">
+<p>The format of the glyph bitmap (monochrome or gray).</p>
+</td></tr>
+<tr><td class="val" id="max_grays">max_grays</td><td class="desc">
+<p>Maximum gray level value (in the range 1 to&nbsp;255).</p>
+</td></tr>
+<tr><td class="val" id="pitch">pitch</td><td class="desc">
+<p>The number of bytes per bitmap line. May be positive or negative.</p>
+</td></tr>
+<tr><td class="val" id="xadvance">xadvance</td><td class="desc">
+<p>The horizontal advance width in pixels.</p>
+</td></tr>
+<tr><td class="val" id="yadvance">yadvance</td><td class="desc">
+<p>The vertical advance height in pixels.</p>
+</td></tr>
+<tr><td class="val" id="buffer">buffer</td><td class="desc">
+<p>A pointer to the bitmap pixels.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FTC_SBitCache_LookupScaler">FTC_SBitCache_LookupScaler</h3>
+<p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FTC_SBitCache_LookupScaler</b>( <a href="ft2-cache_subsystem.html#FTC_SBitCache">FTC_SBitCache</a>  cache,
+                              <a href="ft2-cache_subsystem.html#FTC_Scaler">FTC_Scaler</a>     scaler,
+                              <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>       load_flags,
+                              <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>        gindex,
+                              <a href="ft2-cache_subsystem.html#FTC_SBit">FTC_SBit</a>      *sbit,
+                              <a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a>      *anode );
+</pre>
+
+<p>A variant of <a href="ft2-cache_subsystem.html#FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</a> that uses an <a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a> to specify the face ID and its size.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="cache">cache</td><td class="desc">
+<p>A handle to the source sbit cache.</p>
+</td></tr>
+<tr><td class="val" id="scaler">scaler</td><td class="desc">
+<p>A pointer to the scaler descriptor.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>The corresponding load flags.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="sbit">sbit</td><td class="desc">
+<p>A handle to a small bitmap descriptor.</p>
+</td></tr>
+<tr><td class="val" id="anode">anode</td><td class="desc">
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.</p>
+<p>The descriptor's &lsquo;buffer&rsquo; field is set to&nbsp;0 to indicate a missing glyph bitmap.</p>
+<p>If &lsquo;anode&rsquo; is <i>not</i> NULL, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call <a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a> to &lsquo;release&rsquo; it.</p>
+<p>If &lsquo;anode&rsquo; is NULL, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-cff_driver.html freetype-2.10.0.aros/docs/reference/ft2-cff_driver.html
--- freetype-2.10.0/docs/reference/ft2-cff_driver.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-cff_driver.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="cff_driver">The CFF driver</h1>
+
+<p>While FreeType's CFF driver doesn't expose API functions by itself, it is possible to control its behaviour with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>.</p>
+<p>The CFF driver's module name is &lsquo;cff&rsquo;.</p>
+<p>Available properties are <a href="ft2-properties.html#hinting-engine">hinting-engine</a>, <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a>, <a href="ft2-properties.html#darkening-parameters">darkening-parameters</a>, and <a href="ft2-properties.html#random-seed">random-seed</a>, as documented in the &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; section.</p>
+<p><b>Hinting</b> <b>and</b> <b>antialiasing</b> <b>principles</b> <b>of</b> <b>the</b> <b>new</b> <b>engine</b></p>
+<p>The rasterizer is positioning horizontal features (e.g., ascender height &amp; x-height, or crossbars) on the pixel grid and minimizing the amount of antialiasing applied to them, while placing vertical features (vertical stems) on the pixel grid without hinting, thus representing the stem position and weight accurately. Sometimes the vertical stems may be only partially black. In this context, &lsquo;antialiasing&rsquo; means that stems are not positioned exactly on pixel borders, causing a fuzzy appearance.</p>
+<p>There are two principles behind this approach.</p>
+<p>1) No hinting in the horizontal direction: Unlike &lsquo;superhinted&rsquo; TrueType, which changes glyph widths to accommodate regular inter-glyph spacing, Adobe's approach is &lsquo;faithful to the design&rsquo; in representing both the glyph width and the inter-glyph spacing designed for the font. This makes the screen display as close as it can be to the result one would get with infinite resolution, while preserving what is considered the key characteristics of each glyph. Note that the distances between unhinted and grid-fitted positions at small sizes are comparable to kerning values and thus would be noticeable (and distracting) while reading if hinting were applied.</p>
+<p>One of the reasons to not hint horizontally is antialiasing for LCD screens: The pixel geometry of modern displays supplies three vertical subpixels as the eye moves horizontally across each visible pixel. On devices where we can be certain this characteristic is present a rasterizer can take advantage of the subpixels to add increments of weight. In Western writing systems this turns out to be the more critical direction anyway; the weights and spacing of vertical stems (see above) are central to Armenian, Cyrillic, Greek, and Latin type designs. Even when the rasterizer uses greyscale antialiasing instead of color (a necessary compromise when one doesn't know the screen characteristics), the unhinted vertical features preserve the design's weight and spacing much better than aliased type would.</p>
+<p>2) Alignment in the vertical direction: Weights and spacing along the y&nbsp;axis are less critical; what is much more important is the visual alignment of related features (like cap-height and x-height). The sense of alignment for these is enhanced by the sharpness of grid-fit edges, while the cruder vertical resolution (full pixels instead of 1/3 pixels) is less of a problem.</p>
+<p>On the technical side, horizontal alignment zones for ascender, x-height, and other important height values (traditionally called &lsquo;blue zones&rsquo;) as defined in the font are positioned independently, each being rounded to the nearest pixel edge, taking care of overshoot suppression at small sizes, stem darkening, and scaling.</p>
+<p>Hstems (this is, hint values defined in the font to help align horizontal features) that fall within a blue zone are said to be &lsquo;captured&rsquo; and are aligned to that zone. Uncaptured stems are moved in one of four ways, top edge up or down, bottom edge up or down. Unless there are conflicting hstems, the smallest movement is taken to minimize distortion.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-cid_fonts.html freetype-2.10.0.aros/docs/reference/ft2-cid_fonts.html
--- freetype-2.10.0/docs/reference/ft2-cid_fonts.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-cid_fonts.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="cid_fonts">CID Fonts</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Get_CID_Registry_Ordering_Supplement">FT_Get_CID_Registry_Ordering_Supplement</a></td></tr>
+<tr><td><a href="#FT_Get_CID_Is_Internally_CID_Keyed">FT_Get_CID_Is_Internally_CID_Keyed</a></td></tr>
+<tr><td><a href="#FT_Get_CID_From_Glyph_Index">FT_Get_CID_From_Glyph_Index</a></td></tr>
+</table>
+
+
+<p>This section contains the declaration of CID-keyed font specific functions.</p>
+
+<div class="section">
+<h3 id="FT_Get_CID_Registry_Ordering_Supplement">FT_Get_CID_Registry_Ordering_Supplement</h3>
+<p>Defined in FT_CID_H (freetype/ftcid.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_CID_Registry_Ordering_Supplement</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>       face,
+                                           <span class="keyword">const</span> <span class="keyword">char</span>*  *registry,
+                                           <span class="keyword">const</span> <span class="keyword">char</span>*  *ordering,
+                                           <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       *supplement );
+</pre>
+
+<p>Retrieve the Registry/Ordering/Supplement triple (also known as the "R/O/S") from a CID-keyed font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="registry">registry</td><td class="desc">
+<p>The registry, as a C&nbsp;string, owned by the face.</p>
+</td></tr>
+<tr><td class="val" id="ordering">ordering</td><td class="desc">
+<p>The ordering, as a C&nbsp;string, owned by the face.</p>
+</td></tr>
+<tr><td class="val" id="supplement">supplement</td><td class="desc">
+<p>The supplement.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with CID faces, returning an error otherwise.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_CID_Is_Internally_CID_Keyed">FT_Get_CID_Is_Internally_CID_Keyed</h3>
+<p>Defined in FT_CID_H (freetype/ftcid.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_CID_Is_Internally_CID_Keyed</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                                      <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>  *is_cid );
+</pre>
+
+<p>Retrieve the type of the input face, CID keyed or not. In contrast to the <a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a> macro this function returns successfully also for CID-keyed fonts in an SFNT wrapper.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="is_cid">is_cid</td><td class="desc">
+<p>The type of the face as an <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with CID faces and OpenType fonts, returning an error otherwise.</p>
+
+<h4>since</h4>
+<p>2.3.9</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_CID_From_Glyph_Index">FT_Get_CID_From_Glyph_Index</h3>
+<p>Defined in FT_CID_H (freetype/ftcid.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_CID_From_Glyph_Index</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   glyph_index,
+                               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  *cid );
+</pre>
+
+<p>Retrieve the CID of the input glyph index.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
+<p>The input glyph index.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="cid">cid</td><td class="desc">
+<p>The CID as an <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with CID faces and OpenType fonts, returning an error otherwise.</p>
+
+<h4>since</h4>
+<p>2.3.9</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-computations.html freetype-2.10.0.aros/docs/reference/ft2-computations.html
--- freetype-2.10.0/docs/reference/ft2-computations.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-computations.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,707 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="computations">Computations</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_MulDiv">FT_MulDiv</a></td><td>&nbsp;</td><td><a href="#FT_Atan2">FT_Atan2</a></td></tr>
+<tr><td><a href="#FT_MulFix">FT_MulFix</a></td><td><a href="#FT_Angle">FT_Angle</a></td><td><a href="#FT_Angle_Diff">FT_Angle_Diff</a></td></tr>
+<tr><td><a href="#FT_DivFix">FT_DivFix</a></td><td><a href="#FT_ANGLE_PI">FT_ANGLE_PI</a></td><td><a href="#FT_Vector_Unit">FT_Vector_Unit</a></td></tr>
+<tr><td><a href="#FT_RoundFix">FT_RoundFix</a></td><td><a href="#FT_ANGLE_2PI">FT_ANGLE_2PI</a></td><td><a href="#FT_Vector_Rotate">FT_Vector_Rotate</a></td></tr>
+<tr><td><a href="#FT_CeilFix">FT_CeilFix</a></td><td><a href="#FT_ANGLE_PI2">FT_ANGLE_PI2</a></td><td><a href="#FT_Vector_Length">FT_Vector_Length</a></td></tr>
+<tr><td><a href="#FT_FloorFix">FT_FloorFix</a></td><td><a href="#FT_ANGLE_PI4">FT_ANGLE_PI4</a></td><td><a href="#FT_Vector_Polarize">FT_Vector_Polarize</a></td></tr>
+<tr><td><a href="#FT_Vector_Transform">FT_Vector_Transform</a></td><td><a href="#FT_Sin">FT_Sin</a></td><td><a href="#FT_Vector_From_Polar">FT_Vector_From_Polar</a></td></tr>
+<tr><td><a href="#FT_Matrix_Multiply">FT_Matrix_Multiply</a></td><td><a href="#FT_Cos">FT_Cos</a></td><td></td></tr>
+<tr><td><a href="#FT_Matrix_Invert">FT_Matrix_Invert</a></td><td><a href="#FT_Tan">FT_Tan</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains various functions used to perform computations on 16.16 fixed-float numbers or 2d vectors.</p>
+
+<div class="section">
+<h3 id="FT_MulDiv">FT_MulDiv</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Long">FT_Long</a> )
+  <b>FT_MulDiv</b>( <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  a,
+             <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  b,
+             <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  c );
+</pre>
+
+<p>Compute &lsquo;(a*b)/c&rsquo; with maximum accuracy, using a 64-bit intermediate integer whenever necessary.</p>
+<p>This function isn't necessarily as fast as some processor specific operations, but is at least completely portable.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The first multiplier.</p>
+</td></tr>
+<tr><td class="val" id="b">b</td><td class="desc">
+<p>The second multiplier.</p>
+</td></tr>
+<tr><td class="val" id="c">c</td><td class="desc">
+<p>The divisor.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The result of &lsquo;(a*b)/c&rsquo;. This function never traps when trying to divide by zero; it simply returns &lsquo;MaxInt&rsquo; or &lsquo;MinInt&rsquo; depending on the signs of &lsquo;a&rsquo; and &lsquo;b&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MulFix">FT_MulFix</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Long">FT_Long</a> )
+  <b>FT_MulFix</b>( <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  a,
+             <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  b );
+</pre>
+
+<p>Compute &lsquo;(a*b)/0x10000&rsquo; with maximum accuracy. Its main use is to multiply a given value by a 16.16 fixed-point factor.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The first multiplier.</p>
+</td></tr>
+<tr><td class="val" id="b">b</td><td class="desc">
+<p>The second multiplier. Use a 16.16 factor here whenever possible (see note below).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The result of &lsquo;(a*b)/0x10000&rsquo;.</p>
+
+<h4>note</h4>
+<p>This function has been optimized for the case where the absolute value of &lsquo;a&rsquo; is less than 2048, and &lsquo;b&rsquo; 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.</p>
+<p>As a conclusion, always try to place a 16.16 factor as the <i>second</i> argument of this function; this can make a great difference.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_DivFix">FT_DivFix</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Long">FT_Long</a> )
+  <b>FT_DivFix</b>( <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  a,
+             <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  b );
+</pre>
+
+<p>Compute &lsquo;(a*0x10000)/b&rsquo; with maximum accuracy. Its main use is to divide a given value by a 16.16 fixed-point factor.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The numerator.</p>
+</td></tr>
+<tr><td class="val" id="b">b</td><td class="desc">
+<p>The denominator. Use a 16.16 factor here.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The result of &lsquo;(a*0x10000)/b&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_RoundFix">FT_RoundFix</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_RoundFix</b>( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  a );
+</pre>
+
+<p>Round a 16.16 fixed number.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The number to be rounded.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>&lsquo;a&rsquo; rounded to the nearest 16.16 fixed integer, halfway cases away from zero.</p>
+
+<h4>note</h4>
+<p>The function uses wrap-around arithmetic.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CeilFix">FT_CeilFix</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_CeilFix</b>( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  a );
+</pre>
+
+<p>Compute the smallest following integer of a 16.16 fixed number.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The number for which the ceiling function is to be computed.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>&lsquo;a&rsquo; rounded towards plus infinity.</p>
+
+<h4>note</h4>
+<p>The function uses wrap-around arithmetic.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FloorFix">FT_FloorFix</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_FloorFix</b>( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  a );
+</pre>
+
+<p>Compute the largest previous integer of a 16.16 fixed number.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>The number for which the floor function is to be computed.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>&lsquo;a&rsquo; rounded towards minus infinity.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_Transform">FT_Vector_Transform</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Vector_Transform</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*        vec,
+                       <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*  matrix );
+</pre>
+
+<p>Transform a single vector through a 2x2 matrix.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="vector">vector</td><td class="desc">
+<p>The target vector to transform.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to the source 2x2 matrix.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The result is undefined if either &lsquo;vector&rsquo; or &lsquo;matrix&rsquo; is invalid.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Matrix_Multiply">FT_Matrix_Multiply</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Matrix_Multiply</b>( <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*  a,
+                      <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*        b );
+</pre>
+
+<p>Perform the matrix operation &lsquo;b = a*b&rsquo;.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="a">a</td><td class="desc">
+<p>A pointer to matrix &lsquo;a&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="b">b</td><td class="desc">
+<p>A pointer to matrix &lsquo;b&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The result is undefined if either &lsquo;a&rsquo; or &lsquo;b&rsquo; is zero.</p>
+<p>Since the function uses wrap-around arithmetic, results become meaningless if the arguments are very large.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Matrix_Invert">FT_Matrix_Invert</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Matrix_Invert</b>( <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*  matrix );
+</pre>
+
+<p>Invert a 2x2 matrix. Return an error if it can't be inverted.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to the target matrix. Remains untouched in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Angle">FT_Angle</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  <b>FT_Angle</b>;
+</pre>
+
+<p>This type is used to model angle values in FreeType. Note that the angle is a 16.16 fixed-point value expressed in degrees.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ANGLE_PI">FT_ANGLE_PI</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+#define <b>FT_ANGLE_PI</b>  ( 180L &lt;&lt; 16 )
+</pre>
+
+<p>The angle pi expressed in <a href="ft2-computations.html#FT_Angle">FT_Angle</a> units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ANGLE_2PI">FT_ANGLE_2PI</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+#define <b>FT_ANGLE_2PI</b>  ( <a href="ft2-computations.html#FT_ANGLE_PI">FT_ANGLE_PI</a> * 2 )
+</pre>
+
+<p>The angle 2*pi expressed in <a href="ft2-computations.html#FT_Angle">FT_Angle</a> units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ANGLE_PI2">FT_ANGLE_PI2</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+#define <b>FT_ANGLE_PI2</b>  ( <a href="ft2-computations.html#FT_ANGLE_PI">FT_ANGLE_PI</a> / 2 )
+</pre>
+
+<p>The angle pi/2 expressed in <a href="ft2-computations.html#FT_Angle">FT_Angle</a> units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ANGLE_PI4">FT_ANGLE_PI4</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+#define <b>FT_ANGLE_PI4</b>  ( <a href="ft2-computations.html#FT_ANGLE_PI">FT_ANGLE_PI</a> / 4 )
+</pre>
+
+<p>The angle pi/4 expressed in <a href="ft2-computations.html#FT_Angle">FT_Angle</a> units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Sin">FT_Sin</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_Sin</b>( <a href="ft2-computations.html#FT_Angle">FT_Angle</a>  angle );
+</pre>
+
+<p>Return the sinus of a given angle in fixed-point format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The input angle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The sinus value.</p>
+
+<h4>note</h4>
+<p>If you need both the sinus and cosinus for a given angle, use the function <a href="ft2-computations.html#FT_Vector_Unit">FT_Vector_Unit</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Cos">FT_Cos</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_Cos</b>( <a href="ft2-computations.html#FT_Angle">FT_Angle</a>  angle );
+</pre>
+
+<p>Return the cosinus of a given angle in fixed-point format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The input angle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The cosinus value.</p>
+
+<h4>note</h4>
+<p>If you need both the sinus and cosinus for a given angle, use the function <a href="ft2-computations.html#FT_Vector_Unit">FT_Vector_Unit</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Tan">FT_Tan</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_Tan</b>( <a href="ft2-computations.html#FT_Angle">FT_Angle</a>  angle );
+</pre>
+
+<p>Return the tangent of a given angle in fixed-point format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The input angle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The tangent value.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Atan2">FT_Atan2</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-computations.html#FT_Angle">FT_Angle</a> )
+  <b>FT_Atan2</b>( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  x,
+            <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  y );
+</pre>
+
+<p>Return the arc-tangent corresponding to a given vector (x,y) in the 2d plane.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="x">x</td><td class="desc">
+<p>The horizontal vector coordinate.</p>
+</td></tr>
+<tr><td class="val" id="y">y</td><td class="desc">
+<p>The vertical vector coordinate.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The arc-tangent value (i.e. angle).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Angle_Diff">FT_Angle_Diff</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-computations.html#FT_Angle">FT_Angle</a> )
+  <b>FT_Angle_Diff</b>( <a href="ft2-computations.html#FT_Angle">FT_Angle</a>  angle1,
+                 <a href="ft2-computations.html#FT_Angle">FT_Angle</a>  angle2 );
+</pre>
+
+<p>Return the difference between two angles. The result is always constrained to the ]-PI..PI] interval.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle1">angle1</td><td class="desc">
+<p>First angle.</p>
+</td></tr>
+<tr><td class="val" id="angle2">angle2</td><td class="desc">
+<p>Second angle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Constrained value of &lsquo;value2-value1&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_Unit">FT_Vector_Unit</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Vector_Unit</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  vec,
+                  <a href="ft2-computations.html#FT_Angle">FT_Angle</a>    angle );
+</pre>
+
+<p>Return the unit vector corresponding to a given angle. After the call, the value of &lsquo;vec.x&rsquo; will be &lsquo;cos(angle)&rsquo;, and the value of &lsquo;vec.y&rsquo; will be &lsquo;sin(angle)&rsquo;.</p>
+<p>This function is useful to retrieve both the sinus and cosinus of a given angle quickly.</p>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="vec">vec</td><td class="desc">
+<p>The address of target vector.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The input angle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_Rotate">FT_Vector_Rotate</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Vector_Rotate</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  vec,
+                    <a href="ft2-computations.html#FT_Angle">FT_Angle</a>    angle );
+</pre>
+
+<p>Rotate a vector by a given angle.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="vec">vec</td><td class="desc">
+<p>The address of target vector.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The input angle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_Length">FT_Vector_Length</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a> )
+  <b>FT_Vector_Length</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  vec );
+</pre>
+
+<p>Return the length of a given vector.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="vec">vec</td><td class="desc">
+<p>The address of target vector.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The vector length, expressed in the same units that the original vector coordinates.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_Polarize">FT_Vector_Polarize</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Vector_Polarize</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  vec,
+                      <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   *length,
+                      <a href="ft2-computations.html#FT_Angle">FT_Angle</a>   *angle );
+</pre>
+
+<p>Compute both the length and angle of a given vector.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="vec">vec</td><td class="desc">
+<p>The address of source vector.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="length">length</td><td class="desc">
+<p>The vector length.</p>
+</td></tr>
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The vector angle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Vector_From_Polar">FT_Vector_From_Polar</h3>
+<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Vector_From_Polar</b>( <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  vec,
+                        <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>    length,
+                        <a href="ft2-computations.html#FT_Angle">FT_Angle</a>    angle );
+</pre>
+
+<p>Compute vector coordinates from a length and angle.</p>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="vec">vec</td><td class="desc">
+<p>The address of source vector.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="length">length</td><td class="desc">
+<p>The vector length.</p>
+</td></tr>
+<tr><td class="val" id="angle">angle</td><td class="desc">
+<p>The vector angle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-error_code_values.html freetype-2.10.0.aros/docs/reference/ft2-error_code_values.html
--- freetype-2.10.0/docs/reference/ft2-error_code_values.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-error_code_values.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="error_code_values">Error Code Values</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Err_XXX">FT_Err_XXX</a></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+
+
+<p>The list below is taken verbatim from the file &lsquo;fterrdef.h&rsquo; (loaded automatically by including &lsquo;FT_FREETYPE_H&rsquo;). The first argument of the &lsquo;FT_ERROR_DEF_&rsquo; macro is the error label; by default, the prefix &lsquo;FT_Err_&rsquo; gets added so that you get error names like &lsquo;FT_Err_Cannot_Open_Resource&rsquo;. The second argument is the error code, and the last argument an error string, which is not used by FreeType.</p>
+<p>Within your application you should <b>only</b> use error names and <b>never</b> its numeric values! The latter might (and actually do) change in forthcoming FreeType versions.</p>
+<p>Macro &lsquo;FT_NOERRORDEF_&rsquo; defines &lsquo;FT_Err_Ok&rsquo;, which is always zero. See the &lsquo;Error Enumerations&rsquo; subsection how to automatically generate a list of error strings.</p>
+
+<div class="section">
+<h3 id="FT_Err_XXX">FT_Err_XXX</h3>
+<pre>
+  /* generic errors */
+
+  FT_NOERRORDEF_( Ok,                                        0x00,
+                  "no error" )
+
+  FT_ERRORDEF_( Cannot_Open_Resource,                        0x01,
+                "cannot open resource" )
+  FT_ERRORDEF_( Unknown_File_Format,                         0x02,
+                "unknown file format" )
+  FT_ERRORDEF_( Invalid_File_Format,                         0x03,
+                "broken file" )
+  FT_ERRORDEF_( Invalid_Version,                             0x04,
+                "invalid FreeType version" )
+  FT_ERRORDEF_( Lower_Module_Version,                        0x05,
+                "module version is too low" )
+  FT_ERRORDEF_( Invalid_Argument,                            0x06,
+                "invalid argument" )
+  FT_ERRORDEF_( Unimplemented_Feature,                       0x07,
+                "unimplemented feature" )
+  FT_ERRORDEF_( Invalid_Table,                               0x08,
+                "broken table" )
+  FT_ERRORDEF_( Invalid_Offset,                              0x09,
+                "broken offset within table" )
+  FT_ERRORDEF_( Array_Too_Large,                             0x0A,
+                "array allocation size too large" )
+  FT_ERRORDEF_( Missing_Module,                              0x0B,
+                "missing module" )
+  FT_ERRORDEF_( Missing_Property,                            0x0C,
+                "missing property" )
+
+  /* glyph/character errors */
+
+  FT_ERRORDEF_( Invalid_Glyph_Index,                         0x10,
+                "invalid glyph index" )
+  FT_ERRORDEF_( Invalid_Character_Code,                      0x11,
+                "invalid character code" )
+  FT_ERRORDEF_( Invalid_Glyph_Format,                        0x12,
+                "unsupported glyph image format" )
+  FT_ERRORDEF_( Cannot_Render_Glyph,                         0x13,
+                "cannot render this glyph format" )
+  FT_ERRORDEF_( Invalid_Outline,                             0x14,
+                "invalid outline" )
+  FT_ERRORDEF_( Invalid_Composite,                           0x15,
+                "invalid composite glyph" )
+  FT_ERRORDEF_( Too_Many_Hints,                              0x16,
+                "too many hints" )
+  FT_ERRORDEF_( Invalid_Pixel_Size,                          0x17,
+                "invalid pixel size" )
+
+  /* handle errors */
+
+  FT_ERRORDEF_( Invalid_Handle,                              0x20,
+                "invalid object handle" )
+  FT_ERRORDEF_( Invalid_Library_Handle,                      0x21,
+                "invalid library handle" )
+  FT_ERRORDEF_( Invalid_Driver_Handle,                       0x22,
+                "invalid module handle" )
+  FT_ERRORDEF_( Invalid_Face_Handle,                         0x23,
+                "invalid face handle" )
+  FT_ERRORDEF_( Invalid_Size_Handle,                         0x24,
+                "invalid size handle" )
+  FT_ERRORDEF_( Invalid_Slot_Handle,                         0x25,
+                "invalid glyph slot handle" )
+  FT_ERRORDEF_( Invalid_CharMap_Handle,                      0x26,
+                "invalid charmap handle" )
+  FT_ERRORDEF_( Invalid_Cache_Handle,                        0x27,
+                "invalid cache manager handle" )
+  FT_ERRORDEF_( Invalid_Stream_Handle,                       0x28,
+                "invalid stream handle" )
+
+  /* driver errors */
+
+  FT_ERRORDEF_( Too_Many_Drivers,                            0x30,
+                "too many modules" )
+  FT_ERRORDEF_( Too_Many_Extensions,                         0x31,
+                "too many extensions" )
+
+  /* memory errors */
+
+  FT_ERRORDEF_( Out_Of_Memory,                               0x40,
+                "out of memory" )
+  FT_ERRORDEF_( Unlisted_Object,                             0x41,
+                "unlisted object" )
+
+  /* stream errors */
+
+  FT_ERRORDEF_( Cannot_Open_Stream,                          0x51,
+                "cannot open stream" )
+  FT_ERRORDEF_( Invalid_Stream_Seek,                         0x52,
+                "invalid stream seek" )
+  FT_ERRORDEF_( Invalid_Stream_Skip,                         0x53,
+                "invalid stream skip" )
+  FT_ERRORDEF_( Invalid_Stream_Read,                         0x54,
+                "invalid stream read" )
+  FT_ERRORDEF_( Invalid_Stream_Operation,                    0x55,
+                "invalid stream operation" )
+  FT_ERRORDEF_( Invalid_Frame_Operation,                     0x56,
+                "invalid frame operation" )
+  FT_ERRORDEF_( Nested_Frame_Access,                         0x57,
+                "nested frame access" )
+  FT_ERRORDEF_( Invalid_Frame_Read,                          0x58,
+                "invalid frame read" )
+
+  /* raster errors */
+
+  FT_ERRORDEF_( Raster_Uninitialized,                        0x60,
+                "raster uninitialized" )
+  FT_ERRORDEF_( Raster_Corrupted,                            0x61,
+                "raster corrupted" )
+  FT_ERRORDEF_( Raster_Overflow,                             0x62,
+                "raster overflow" )
+  FT_ERRORDEF_( Raster_Negative_Height,                      0x63,
+                "negative height while rastering" )
+
+  /* cache errors */
+
+  FT_ERRORDEF_( Too_Many_Caches,                             0x70,
+                "too many registered caches" )
+
+  /* TrueType and SFNT errors */
+
+  FT_ERRORDEF_( Invalid_Opcode,                              0x80,
+                "invalid opcode" )
+  FT_ERRORDEF_( Too_Few_Arguments,                           0x81,
+                "too few arguments" )
+  FT_ERRORDEF_( Stack_Overflow,                              0x82,
+                "stack overflow" )
+  FT_ERRORDEF_( Code_Overflow,                               0x83,
+                "code overflow" )
+  FT_ERRORDEF_( Bad_Argument,                                0x84,
+                "bad argument" )
+  FT_ERRORDEF_( Divide_By_Zero,                              0x85,
+                "division by zero" )
+  FT_ERRORDEF_( Invalid_Reference,                           0x86,
+                "invalid reference" )
+  FT_ERRORDEF_( Debug_OpCode,                                0x87,
+                "found debug opcode" )
+  FT_ERRORDEF_( ENDF_In_Exec_Stream,                         0x88,
+                "found ENDF opcode in execution stream" )
+  FT_ERRORDEF_( Nested_DEFS,                                 0x89,
+                "nested DEFS" )
+  FT_ERRORDEF_( Invalid_CodeRange,                           0x8A,
+                "invalid code range" )
+  FT_ERRORDEF_( Execution_Too_Long,                          0x8B,
+                "execution context too <span class="keyword">long</span>" )
+  FT_ERRORDEF_( Too_Many_Function_Defs,                      0x8C,
+                "too many function definitions" )
+  FT_ERRORDEF_( Too_Many_Instruction_Defs,                   0x8D,
+                "too many instruction definitions" )
+  FT_ERRORDEF_( Table_Missing,                               0x8E,
+                "SFNT font table missing" )
+  FT_ERRORDEF_( Horiz_Header_Missing,                        0x8F,
+                "horizontal header (hhea) table missing" )
+  FT_ERRORDEF_( Locations_Missing,                           0x90,
+                "locations (loca) table missing" )
+  FT_ERRORDEF_( Name_Table_Missing,                          0x91,
+                "name table missing" )
+  FT_ERRORDEF_( CMap_Table_Missing,                          0x92,
+                "character map (cmap) table missing" )
+  FT_ERRORDEF_( Hmtx_Table_Missing,                          0x93,
+                "horizontal metrics (hmtx) table missing" )
+  FT_ERRORDEF_( Post_Table_Missing,                          0x94,
+                "PostScript (post) table missing" )
+  FT_ERRORDEF_( Invalid_Horiz_Metrics,                       0x95,
+                "invalid horizontal metrics" )
+  FT_ERRORDEF_( Invalid_CharMap_Format,                      0x96,
+                "invalid character map (cmap) format" )
+  FT_ERRORDEF_( Invalid_PPem,                                0x97,
+                "invalid ppem value" )
+  FT_ERRORDEF_( Invalid_Vert_Metrics,                        0x98,
+                "invalid vertical metrics" )
+  FT_ERRORDEF_( Could_Not_Find_Context,                      0x99,
+                "could not find context" )
+  FT_ERRORDEF_( Invalid_Post_Table_Format,                   0x9A,
+                "invalid PostScript (post) table format" )
+  FT_ERRORDEF_( Invalid_Post_Table,                          0x9B,
+                "invalid PostScript (post) table" )
+  FT_ERRORDEF_( DEF_In_Glyf_Bytecode,                        0x9C,
+                "found FDEF or IDEF opcode in glyf bytecode" )
+  FT_ERRORDEF_( Missing_Bitmap,                              0x9D,
+                "missing bitmap in strike" )
+
+  /* CFF, CID, and Type 1 errors */
+
+  FT_ERRORDEF_( Syntax_Error,                                0xA0,
+                "opcode syntax error" )
+  FT_ERRORDEF_( Stack_Underflow,                             0xA1,
+                "argument stack underflow" )
+  FT_ERRORDEF_( Ignore,                                      0xA2,
+                "ignore" )
+  FT_ERRORDEF_( No_Unicode_Glyph_Name,                       0xA3,
+                "no Unicode glyph name found" )
+  FT_ERRORDEF_( Glyph_Too_Big,                               0xA4,
+                "glyph too big for hinting" )
+
+  /* BDF errors */
+
+  FT_ERRORDEF_( Missing_Startfont_Field,                     0xB0,
+                "`STARTFONT' field missing" )
+  FT_ERRORDEF_( Missing_Font_Field,                          0xB1,
+                "`FONT' field missing" )
+  FT_ERRORDEF_( Missing_Size_Field,                          0xB2,
+                "`SIZE' field missing" )
+  FT_ERRORDEF_( Missing_Fontboundingbox_Field,               0xB3,
+                "`FONTBOUNDINGBOX' field missing" )
+  FT_ERRORDEF_( Missing_Chars_Field,                         0xB4,
+                "`CHARS' field missing" )
+  FT_ERRORDEF_( Missing_Startchar_Field,                     0xB5,
+                "`STARTCHAR' field missing" )
+  FT_ERRORDEF_( Missing_Encoding_Field,                      0xB6,
+                "`ENCODING' field missing" )
+  FT_ERRORDEF_( Missing_Bbx_Field,                           0xB7,
+                "`BBX' field missing" )
+  FT_ERRORDEF_( Bbx_Too_Big,                                 0xB8,
+                "`BBX' too big" )
+  FT_ERRORDEF_( Corrupted_Font_Header,                       0xB9,
+                "Font header corrupted or missing fields" )
+  FT_ERRORDEF_( Corrupted_Font_Glyphs,                       0xBA,
+                "Font glyphs corrupted or missing fields" )
+</pre>
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-error_enumerations.html freetype-2.10.0.aros/docs/reference/ft2-error_enumerations.html
--- freetype-2.10.0/docs/reference/ft2-error_enumerations.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-error_enumerations.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="error_enumerations">Error Enumerations</h1>
+
+<p>The header file &lsquo;fterrors.h&rsquo; (which is automatically included by &lsquo;freetype.h&rsquo; defines the handling of FreeType's enumeration constants. It can also be used to generate error message strings with a small macro trick explained below.</p>
+<p><b>Error</b> <b>Formats</b></p>
+<p>The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be defined in &lsquo;ftoption.h&rsquo; in order to make the higher byte indicate the module where the error has happened (this is not compatible with standard builds of FreeType&nbsp;2, however). See the file &lsquo;ftmoderr.h&rsquo; for more details.</p>
+<p><b>Error</b> <b>Message</b> <b>Strings</b></p>
+<p>Error definitions are set up with special macros that allow client applications to build a table of error message strings. The strings are not included in a normal build of FreeType&nbsp;2 to save space (most client applications do not use them).</p>
+<p>To do so, you have to define the following macros before including this file.</p>
+<pre class="colored">
+  FT_ERROR_START_LIST
+</pre>
+<p>This macro is called before anything else to define the start of the error list. It is followed by several FT_ERROR_DEF calls.</p>
+<pre class="colored">
+  FT_ERROR_DEF( e, v, s )
+</pre>
+<p>This macro is called to define one single error. &lsquo;e&rsquo; is the error code identifier (e.g., &lsquo;Invalid_Argument&rsquo;), &lsquo;v&rsquo; is the error's numerical value, and &lsquo;s&rsquo; is the corresponding error string.</p>
+<pre class="colored">
+  FT_ERROR_END_LIST
+</pre>
+<p>This macro ends the list.</p>
+<p>Additionally, you have to undefine &lsquo;FTERRORS_H_&rsquo; before #including this file.</p>
+<p>Here is a simple example.</p>
+<pre class="colored">
+  #undef FTERRORS_H_
+  #define FT_ERRORDEF( e, v, s )  { e, s },
+  #define FT_ERROR_START_LIST     {
+  #define FT_ERROR_END_LIST       { 0, NULL } };
+
+  const struct
+  {
+    int          err_code;
+    const char*  err_msg;
+  } ft_errors[] =
+
+  #include FT_ERRORS_H
+</pre>
+<p>Note that &lsquo;FT_Err_Ok&rsquo; is <i>not</i> defined with &lsquo;FT_ERRORDEF&rsquo; but with &lsquo;FT_NOERRORDEF&rsquo;; it is always zero.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-font_formats.html freetype-2.10.0.aros/docs/reference/ft2-font_formats.html
--- freetype-2.10.0/docs/reference/ft2-font_formats.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-font_formats.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="font_formats">Font Formats</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Get_Font_Format">FT_Get_Font_Format</a></td><td></td><td></td></tr>
+</table>
+
+
+<p>The single function in this section can be used to get the font format. Note that this information is not needed normally; however, there are special cases (like in PDF devices) where it is important to differentiate, in spite of FreeType's uniform API.</p>
+
+<div class="section">
+<h3 id="FT_Get_Font_Format">FT_Get_Font_Format</h3>
+<p>Defined in FT_FONT_FORMATS_H (freetype/ftfntfmt.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">const</span> <span class="keyword">char</span>* )
+  <b>FT_Get_Font_Format</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+
+
+  /* deprecated */
+  FT_EXPORT( <span class="keyword">const</span> <span class="keyword">char</span>* )
+  FT_Get_X11_Font_Format( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Return a string describing the format of a given face. Possible values are &lsquo;TrueType&rsquo;, &lsquo;Type&nbsp;1&rsquo;, &lsquo;BDF&rsquo;, &lsquo;PCF&rsquo;, &lsquo;Type&nbsp;42&rsquo;, &lsquo;CID&nbsp;Type&nbsp;1&rsquo;, &lsquo;CFF&rsquo;, &lsquo;PFR&rsquo;, and &lsquo;Windows&nbsp;FNT&rsquo;.</p>
+<p>The return value is suitable to be used as an X11 FONT_PROPERTY.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>Input face handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Font format string. NULL in case of error.</p>
+
+<h4>note</h4>
+<p>A deprecated name for the same function is &lsquo;FT_Get_X11_Font_Format&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-gasp_table.html freetype-2.10.0.aros/docs/reference/ft2-gasp_table.html
--- freetype-2.10.0/docs/reference/ft2-gasp_table.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-gasp_table.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="gasp_table">Gasp Table</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_GASP_XXX">FT_GASP_XXX</a></td><td><a href="#FT_Get_Gasp">FT_Get_Gasp</a></td><td></td><td></td><td></td><td></td></tr>
+</table>
+
+
+<p>The function <a href="ft2-gasp_table.html#FT_Get_Gasp">FT_Get_Gasp</a> can be used to query a TrueType or OpenType font for specific entries in its &lsquo;gasp&rsquo; table, if any. This is mainly useful when implementing native TrueType hinting with the bytecode interpreter to duplicate the Windows text rendering results.</p>
+
+<div class="section">
+<h3 id="FT_GASP_XXX">FT_GASP_XXX</h3>
+<p>Defined in FT_GASP_H (freetype/ftgasp.h).</p>
+<pre>
+#define <a href="ft2-gasp_table.html#FT_GASP_NO_TABLE">FT_GASP_NO_TABLE</a>               -1
+#define <a href="ft2-gasp_table.html#FT_GASP_DO_GRIDFIT">FT_GASP_DO_GRIDFIT</a>           0x01
+#define <a href="ft2-gasp_table.html#FT_GASP_DO_GRAY">FT_GASP_DO_GRAY</a>              0x02
+#define <a href="ft2-gasp_table.html#FT_GASP_SYMMETRIC_GRIDFIT">FT_GASP_SYMMETRIC_GRIDFIT</a>    0x04
+#define <a href="ft2-gasp_table.html#FT_GASP_SYMMETRIC_SMOOTHING">FT_GASP_SYMMETRIC_SMOOTHING</a>  0x08
+</pre>
+
+<p>A list of values and/or bit-flags returned by the <a href="ft2-gasp_table.html#FT_Get_Gasp">FT_Get_Gasp</a> function.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_GASP_NO_TABLE">FT_GASP_NO_TABLE</td><td class="desc">
+<p>This special value means that there is no GASP table in this face. It is up to the client to decide what to do.</p>
+</td></tr>
+<tr><td class="val" id="FT_GASP_DO_GRIDFIT">FT_GASP_DO_GRIDFIT</td><td class="desc">
+<p>Grid-fitting and hinting should be performed at the specified ppem. This <b>really</b> means TrueType bytecode interpretation. If this bit is not set, no hinting gets applied.</p>
+</td></tr>
+<tr><td class="val" id="FT_GASP_DO_GRAY">FT_GASP_DO_GRAY</td><td class="desc">
+<p>Anti-aliased rendering should be performed at the specified ppem. If not set, do monochrome rendering.</p>
+</td></tr>
+<tr><td class="val" id="FT_GASP_SYMMETRIC_SMOOTHING">FT_GASP_SYMMETRIC_SMOOTHING</td><td class="desc">
+<p>If set, smoothing along multiple axes must be used with ClearType.</p>
+</td></tr>
+<tr><td class="val" id="FT_GASP_SYMMETRIC_GRIDFIT">FT_GASP_SYMMETRIC_GRIDFIT</td><td class="desc">
+<p>Grid-fitting must be used with ClearType's symmetric smoothing.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The bit-flags &lsquo;FT_GASP_DO_GRIDFIT&rsquo; and &lsquo;FT_GASP_DO_GRAY&rsquo; are to be used for standard font rasterization only. Independently of that, &lsquo;FT_GASP_SYMMETRIC_SMOOTHING&rsquo; and &lsquo;FT_GASP_SYMMETRIC_GRIDFIT&rsquo; are to be used if ClearType is enabled (and &lsquo;FT_GASP_DO_GRIDFIT&rsquo; and &lsquo;FT_GASP_DO_GRAY&rsquo; are consequently ignored).</p>
+<p>&lsquo;ClearType&rsquo; is Microsoft's implementation of LCD rendering, partly protected by patents.</p>
+
+<h4>since</h4>
+<p>2.3.0</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Gasp">FT_Get_Gasp</h3>
+<p>Defined in FT_GASP_H (freetype/ftgasp.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Int">FT_Int</a> )
+  <b>FT_Get_Gasp</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face,
+               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  ppem );
+</pre>
+
+<p>For a TrueType or OpenType font file, return the rasterizer behaviour flags from the font's &lsquo;gasp&rsquo; table corresponding to a given character pixel size.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>The source face handle.</p>
+</td></tr>
+<tr><td class="val" id="ppem">ppem</td><td class="desc">
+<p>The vertical character pixel size.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Bit flags (see <a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_XXX</a>), or <a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_NO_TABLE</a> if there is no &lsquo;gasp&rsquo; table in the face.</p>
+
+<h4>note</h4>
+<p>If you want to use the MM functionality of OpenType variation fonts (i.e., using <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> and friends), call this function <b>after</b> setting an instance since the return values can change.</p>
+
+<h4>since</h4>
+<p>2.3.0</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-glyph_management.html freetype-2.10.0.aros/docs/reference/ft2-glyph_management.html
--- freetype-2.10.0/docs/reference/ft2-glyph_management.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-glyph_management.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,597 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="glyph_management">Glyph Management</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Glyph">FT_Glyph</a></td><td><a href="#FT_OutlineGlyphRec">FT_OutlineGlyphRec</a></td><td><a href="#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a></td></tr>
+<tr><td><a href="#FT_GlyphRec">FT_GlyphRec</a></td><td><a href="#FT_Get_Glyph">FT_Get_Glyph</a></td><td><a href="#FT_Glyph_To_Bitmap">FT_Glyph_To_Bitmap</a></td></tr>
+<tr><td><a href="#FT_BitmapGlyph">FT_BitmapGlyph</a></td><td><a href="#FT_Glyph_Copy">FT_Glyph_Copy</a></td><td><a href="#FT_Done_Glyph">FT_Done_Glyph</a></td></tr>
+<tr><td><a href="#FT_BitmapGlyphRec">FT_BitmapGlyphRec</a></td><td><a href="#FT_Glyph_Transform">FT_Glyph_Transform</a></td><td></td></tr>
+<tr><td><a href="#FT_OutlineGlyph">FT_OutlineGlyph</a></td><td><a href="#FT_Glyph_BBox_Mode">FT_Glyph_BBox_Mode</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains definitions used to manage glyph data through generic FT_Glyph objects. Each of them can contain a bitmap, a vector outline, or even images in other formats.</p>
+
+<div class="section">
+<h3 id="FT_Glyph">FT_Glyph</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_GlyphRec_*  <b>FT_Glyph</b>;
+</pre>
+
+<p>Handle to an object used to model generic glyph images. It is a pointer to the <a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a> structure and can contain a glyph bitmap or pointer.</p>
+
+<h4>note</h4>
+<p>Glyph objects are not owned by the library. You must thus release them manually (through <a href="ft2-glyph_management.html#FT_Done_Glyph">FT_Done_Glyph</a>) <i>before</i> calling <a href="ft2-base_interface.html#FT_Done_FreeType">FT_Done_FreeType</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GlyphRec">FT_GlyphRec</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_GlyphRec_
+  {
+    <a href="ft2-base_interface.html#FT_Library">FT_Library</a>             library;
+    <span class="keyword">const</span> FT_Glyph_Class*  clazz;
+    <a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a>        format;
+    <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>              advance;
+
+  } <b>FT_GlyphRec</b>;
+</pre>
+
+<p>The root glyph structure contains a given glyph image plus its advance width in 16.16 fixed-point format.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the FreeType library object.</p>
+</td></tr>
+<tr><td class="val" id="clazz">clazz</td><td class="desc">
+<p>A pointer to the glyph's class. Private.</p>
+</td></tr>
+<tr><td class="val" id="format">format</td><td class="desc">
+<p>The format of the glyph's image.</p>
+</td></tr>
+<tr><td class="val" id="advance">advance</td><td class="desc">
+<p>A 16.16 vector that gives the glyph's advance width.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BitmapGlyph">FT_BitmapGlyph</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BitmapGlyphRec_*  <b>FT_BitmapGlyph</b>;
+</pre>
+
+<p>A handle to an object used to model a bitmap glyph image. This is a sub-class of <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>, and a pointer to <a href="ft2-glyph_management.html#FT_BitmapGlyphRec">FT_BitmapGlyphRec</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BitmapGlyphRec">FT_BitmapGlyphRec</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_BitmapGlyphRec_
+  {
+    <a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a>  root;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       left;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       top;
+    <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>    bitmap;
+
+  } <b>FT_BitmapGlyphRec</b>;
+</pre>
+
+<p>A structure used for bitmap glyph images. This really is a &lsquo;sub-class&rsquo; of <a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="root">root</td><td class="desc">
+<p>The root <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> fields.</p>
+</td></tr>
+<tr><td class="val" id="left">left</td><td class="desc">
+<p>The left-side bearing, i.e., the horizontal distance from the current pen position to the left border of the glyph bitmap.</p>
+</td></tr>
+<tr><td class="val" id="top">top</td><td class="desc">
+<p>The top-side bearing, i.e., the vertical distance from the current pen position to the top border of the glyph bitmap. This distance is positive for upwards&nbsp;y!</p>
+</td></tr>
+<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
+<p>A descriptor for the bitmap.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>You can typecast an <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> to <a href="ft2-glyph_management.html#FT_BitmapGlyph">FT_BitmapGlyph</a> if you have &lsquo;glyph-&gt;format == FT_GLYPH_FORMAT_BITMAP&rsquo;. This lets you access the bitmap's contents easily.</p>
+<p>The corresponding pixel buffer is always owned by <a href="ft2-glyph_management.html#FT_BitmapGlyph">FT_BitmapGlyph</a> and is thus created and destroyed with it.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OutlineGlyph">FT_OutlineGlyph</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_OutlineGlyphRec_*  <b>FT_OutlineGlyph</b>;
+</pre>
+
+<p>A handle to an object used to model an outline glyph image. This is a sub-class of <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>, and a pointer to <a href="ft2-glyph_management.html#FT_OutlineGlyphRec">FT_OutlineGlyphRec</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OutlineGlyphRec">FT_OutlineGlyphRec</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_OutlineGlyphRec_
+  {
+    <a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a>  root;
+    <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>   outline;
+
+  } <b>FT_OutlineGlyphRec</b>;
+</pre>
+
+<p>A structure used for outline (vectorial) glyph images. This really is a &lsquo;sub-class&rsquo; of <a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="root">root</td><td class="desc">
+<p>The root <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> fields.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A descriptor for the outline.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>You can typecast an <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> to <a href="ft2-glyph_management.html#FT_OutlineGlyph">FT_OutlineGlyph</a> if you have &lsquo;glyph-&gt;format == FT_GLYPH_FORMAT_OUTLINE&rsquo;. This lets you access the outline's content easily.</p>
+<p>As the outline is extracted from a glyph slot, its coordinates are expressed normally in 26.6 pixels, unless the flag <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a> was used in <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>() or <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>().</p>
+<p>The outline's tables are always owned by the object and are destroyed with it.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Glyph">FT_Get_Glyph</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Glyph</b>( <a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a>  slot,
+                <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>     *aglyph );
+</pre>
+
+<p>A function used to extract a glyph image from a slot. Note that the created <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object must be released with <a href="ft2-glyph_management.html#FT_Done_Glyph">FT_Done_Glyph</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="slot">slot</td><td class="desc">
+<p>A handle to the source glyph slot.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aglyph">aglyph</td><td class="desc">
+<p>A handle to the glyph object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Because &lsquo;*aglyph-&gt;advance.x&rsquo; and '*aglyph-&gt;advance.y' are 16.16 fixed-point numbers, &lsquo;slot-&gt;advance.x&rsquo; and &lsquo;slot-&gt;advance.y&rsquo; (which are in 26.6 fixed-point format) must be in the range ]-32768;32768[.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Copy">FT_Glyph_Copy</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Glyph_Copy</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>   source,
+                 <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>  *target );
+</pre>
+
+<p>A function used to copy a glyph image. Note that the created <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object must be released with <a href="ft2-glyph_management.html#FT_Done_Glyph">FT_Done_Glyph</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>A handle to the source glyph object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="target">target</td><td class="desc">
+<p>A handle to the target glyph object. 0&nbsp;in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Transform">FT_Glyph_Transform</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Glyph_Transform</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>    glyph,
+                      <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*  matrix,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  delta );
+</pre>
+
+<p>Transform a glyph image if its format is scalable.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="glyph">glyph</td><td class="desc">
+<p>A handle to the target glyph object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to a 2x2 matrix to apply.</p>
+</td></tr>
+<tr><td class="val" id="delta">delta</td><td class="desc">
+<p>A pointer to a 2d vector to apply. Coordinates are expressed in 1/64th of a pixel.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code (if not 0, the glyph format is not scalable).</p>
+
+<h4>note</h4>
+<p>The 2x2 transformation matrix is also applied to the glyph's advance vector.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_BBox_Mode">FT_Glyph_BBox_Mode</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Glyph_BBox_Mode_
+  {
+    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_UNSCALED">FT_GLYPH_BBOX_UNSCALED</a>  = 0,
+    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_SUBPIXELS">FT_GLYPH_BBOX_SUBPIXELS</a> = 0,
+    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_GRIDFIT">FT_GLYPH_BBOX_GRIDFIT</a>   = 1,
+    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_TRUNCATE">FT_GLYPH_BBOX_TRUNCATE</a>  = 2,
+    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_PIXELS">FT_GLYPH_BBOX_PIXELS</a>    = 3
+
+  } <b>FT_Glyph_BBox_Mode</b>;
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_Glyph_BBox_Mode</b>' values instead                   */
+#define ft_glyph_bbox_unscaled   <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_UNSCALED">FT_GLYPH_BBOX_UNSCALED</a>
+#define ft_glyph_bbox_subpixels  <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_SUBPIXELS">FT_GLYPH_BBOX_SUBPIXELS</a>
+#define ft_glyph_bbox_gridfit    <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_GRIDFIT">FT_GLYPH_BBOX_GRIDFIT</a>
+#define ft_glyph_bbox_truncate   <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_TRUNCATE">FT_GLYPH_BBOX_TRUNCATE</a>
+#define ft_glyph_bbox_pixels     <a href="ft2-glyph_management.html#FT_GLYPH_BBOX_PIXELS">FT_GLYPH_BBOX_PIXELS</a>
+</pre>
+
+<p>The mode how the values of <a href="ft2-glyph_management.html#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a> are returned.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_GLYPH_BBOX_UNSCALED">FT_GLYPH_BBOX_UNSCALED</td><td class="desc">
+<p>Return unscaled font units.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_BBOX_SUBPIXELS">FT_GLYPH_BBOX_SUBPIXELS</td><td class="desc">
+<p>Return unfitted 26.6 coordinates.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_BBOX_GRIDFIT">FT_GLYPH_BBOX_GRIDFIT</td><td class="desc">
+<p>Return grid-fitted 26.6 coordinates.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_BBOX_TRUNCATE">FT_GLYPH_BBOX_TRUNCATE</td><td class="desc">
+<p>Return coordinates in integer pixels.</p>
+</td></tr>
+<tr><td class="val" id="FT_GLYPH_BBOX_PIXELS">FT_GLYPH_BBOX_PIXELS</td><td class="desc">
+<p>Return grid-fitted pixel coordinates.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Glyph_Get_CBox</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>  glyph,
+                     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   bbox_mode,
+                     <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>  *acbox );
+</pre>
+
+<p>Return a glyph's &lsquo;control box&rsquo;. The control box encloses all the outline's points, including Bezier control points. Though it coincides with the exact bounding box for most glyphs, it can be slightly larger in some situations (like when rotating an outline that contains Bezier outside arcs).</p>
+<p>Computing the control box is very fast, while getting the bounding box can take much more time as it needs to walk over all segments and arcs in the outline. To get the latter, you can use the &lsquo;ftbbox&rsquo; component, which is dedicated to this single task.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="glyph">glyph</td><td class="desc">
+<p>A handle to the source glyph object.</p>
+</td></tr>
+<tr><td class="val" id="mode">mode</td><td class="desc">
+<p>The mode that indicates how to interpret the returned bounding box values.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acbox">acbox</td><td class="desc">
+<p>The glyph coordinate bounding box. Coordinates are expressed in 1/64th of pixels if it is grid-fitted.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Coordinates are relative to the glyph origin, using the y&nbsp;upwards convention.</p>
+<p>If the glyph has been loaded with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>, &lsquo;bbox_mode&rsquo; must be set to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_UNSCALED</a> to get unscaled font units in 26.6 pixel format. The value <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_SUBPIXELS</a> is another name for this constant.</p>
+<p>If the font is tricky and the glyph has been loaded with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>, the resulting CBox is meaningless. To get reasonable values for the CBox it is necessary to load the glyph at a large ppem value (so that the hinting instructions can properly shift and scale the subglyphs), then extracting the CBox, which can be eventually converted back to font units.</p>
+<p>Note that the maximum coordinates are exclusive, which means that one can compute the width and height of the glyph image (be it in integer or 26.6 pixels) as:</p>
+<pre class="colored">
+  width  = bbox.xMax - bbox.xMin;
+  height = bbox.yMax - bbox.yMin;
+</pre>
+<p>Note also that for 26.6 coordinates, if &lsquo;bbox_mode&rsquo; is set to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_GRIDFIT</a>, the coordinates will also be grid-fitted, which corresponds to:</p>
+<pre class="colored">
+  bbox.xMin = FLOOR(bbox.xMin);
+  bbox.yMin = FLOOR(bbox.yMin);
+  bbox.xMax = CEILING(bbox.xMax);
+  bbox.yMax = CEILING(bbox.yMax);
+</pre>
+<p>To get the bbox in pixel coordinates, set &lsquo;bbox_mode&rsquo; to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_TRUNCATE</a>.</p>
+<p>To get the bbox in grid-fitted pixel coordinates, set &lsquo;bbox_mode&rsquo; to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_PIXELS</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_To_Bitmap">FT_Glyph_To_Bitmap</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Glyph_To_Bitmap</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>*       the_glyph,
+                      <a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a>  render_mode,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*      origin,
+                      <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>         destroy );
+</pre>
+
+<p>Convert a given glyph object to a bitmap glyph object.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="the_glyph">the_glyph</td><td class="desc">
+<p>A pointer to a handle to the target glyph.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="render_mode">render_mode</td><td class="desc">
+<p>An enumeration that describes how the data is rendered.</p>
+</td></tr>
+<tr><td class="val" id="origin">origin</td><td class="desc">
+<p>A pointer to a vector used to translate the glyph image before rendering. Can be&nbsp;0 (if no translation). The origin is expressed in 26.6 pixels.</p>
+</td></tr>
+<tr><td class="val" id="destroy">destroy</td><td class="desc">
+<p>A boolean that indicates that the original glyph image should be destroyed by this function. It is never destroyed in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function does nothing if the glyph format isn't scalable.</p>
+<p>The glyph image is translated with the &lsquo;origin&rsquo; vector before rendering.</p>
+<p>The first parameter is a pointer to an <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> handle, that will be <i>replaced</i> by this function (with newly allocated data). Typically, you would use (omitting error handling):</p>
+<p></p>
+<pre class="colored">
+  FT_Glyph        glyph;
+  FT_BitmapGlyph  glyph_bitmap;
+
+
+  // load glyph
+  error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT );
+
+  // extract glyph image
+  error = FT_Get_Glyph( face-&gt;glyph, &amp;glyph );
+
+  // convert to a bitmap (default render mode + destroying old)
+  if ( glyph-&gt;format != FT_GLYPH_FORMAT_BITMAP )
+  {
+    error = FT_Glyph_To_Bitmap( &amp;glyph, FT_RENDER_MODE_NORMAL,
+                                0, 1 );
+    if ( error ) // `glyph' unchanged
+      ...
+  }
+
+  // access bitmap content by typecasting
+  glyph_bitmap = (FT_BitmapGlyph)glyph;
+
+  // do funny stuff with it, like blitting/drawing
+  ...
+
+  // discard glyph image (bitmap or not)
+  FT_Done_Glyph( glyph );
+</pre>
+<p></p>
+<p>Here another example, again without error handling:</p>
+<p></p>
+<pre class="colored">
+  FT_Glyph  glyphs[MAX_GLYPHS]
+
+
+  ...
+
+  for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
+    error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) ||
+            FT_Get_Glyph ( face-&gt;glyph, &amp;glyph[idx] );
+
+  ...
+
+  for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
+  {
+    FT_Glyph  bitmap = glyphs[idx];
+
+
+    ...
+
+    // after this call, `bitmap' no longer points into
+    // the `glyphs' array (and the old value isn't destroyed)
+    FT_Glyph_To_Bitmap( &amp;bitmap, FT_RENDER_MODE_MONO, 0, 0 );
+
+    ...
+
+    FT_Done_Glyph( bitmap );
+  }
+
+  ...
+
+  for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
+    FT_Done_Glyph( glyphs[idx] );
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_Glyph">FT_Done_Glyph</h3>
+<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Done_Glyph</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>  glyph );
+</pre>
+
+<p>Destroy a given glyph.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="glyph">glyph</td><td class="desc">
+<p>A handle to the target glyph object.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-glyph_stroker.html freetype-2.10.0.aros/docs/reference/ft2-glyph_stroker.html
--- freetype-2.10.0/docs/reference/ft2-glyph_stroker.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-glyph_stroker.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,819 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="glyph_stroker">Glyph Stroker</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Stroker">FT_Stroker</a></td><td><a href="#FT_Stroker_ParseOutline">FT_Stroker_ParseOutline</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Stroker_Done">FT_Stroker_Done</a></td></tr>
+<tr><td><a href="#FT_Stroker_LineJoin">FT_Stroker_LineJoin</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Stroker_LineCap">FT_Stroker_LineCap</a></td><td><a href="#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a></td></tr>
+<tr><td><a href="#FT_StrokerBorder">FT_StrokerBorder</a></td><td><a href="#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a></td></tr>
+<tr><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Outline_GetInsideBorder">FT_Outline_GetInsideBorder</a></td><td><a href="#FT_Stroker_LineTo">FT_Stroker_LineTo</a></td></tr>
+<tr><td><a href="#FT_Outline_GetOutsideBorder">FT_Outline_GetOutsideBorder</a></td><td><a href="#FT_Stroker_ConicTo">FT_Stroker_ConicTo</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Stroker_CubicTo">FT_Stroker_CubicTo</a></td></tr>
+<tr><td><a href="#FT_Glyph_Stroke">FT_Glyph_Stroke</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Glyph_StrokeBorder">FT_Glyph_StrokeBorder</a></td><td><a href="#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</a></td></tr>
+<tr><td><a href="#FT_Stroker_New">FT_Stroker_New</a></td><td><a href="#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a></td></tr>
+<tr><td><a href="#FT_Stroker_Set">FT_Stroker_Set</a></td><td><a href="#FT_Stroker_Export">FT_Stroker_Export</a></td></tr>
+<tr><td><a href="#FT_Stroker_Rewind">FT_Stroker_Rewind</a></td><td></td></tr>
+</table>
+
+
+<p>This component generates stroked outlines of a given vectorial glyph. It also allows you to retrieve the &lsquo;outside&rsquo; and/or the &lsquo;inside&rsquo; borders of the stroke.</p>
+<p>This can be useful to generate &lsquo;bordered&rsquo; glyph, i.e., glyphs displayed with a coloured (and anti-aliased) border around their shape.</p>
+
+<div class="section">
+<h3 id="FT_Stroker">FT_Stroker</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_StrokerRec_*  <b>FT_Stroker</b>;
+</pre>
+
+<p>Opaque handle to a path stroker object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_LineJoin">FT_Stroker_LineJoin</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Stroker_LineJoin_
+  {
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_ROUND">FT_STROKER_LINEJOIN_ROUND</a>          = 0,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_BEVEL">FT_STROKER_LINEJOIN_BEVEL</a>          = 1,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_MITER_VARIABLE">FT_STROKER_LINEJOIN_MITER_VARIABLE</a> = 2,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_MITER">FT_STROKER_LINEJOIN_MITER</a>          = <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_MITER_VARIABLE">FT_STROKER_LINEJOIN_MITER_VARIABLE</a>,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINEJOIN_MITER_FIXED">FT_STROKER_LINEJOIN_MITER_FIXED</a>    = 3
+
+  } <b>FT_Stroker_LineJoin</b>;
+</pre>
+
+<p>These values determine how two joining lines are rendered in a stroker.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_STROKER_LINEJOIN_ROUND">FT_STROKER_LINEJOIN_ROUND</td><td class="desc">
+<p>Used to render rounded line joins. Circular arcs are used to join two lines smoothly.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINEJOIN_BEVEL">FT_STROKER_LINEJOIN_BEVEL</td><td class="desc">
+<p>Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINEJOIN_MITER_FIXED">FT_STROKER_LINEJOIN_MITER_FIXED</td><td class="desc">
+<p>Used to render mitered line joins, with fixed bevels if the miter limit is exceeded. The outer edges of the strokes for the two segments are extended until they meet at an angle. If the segments meet at too sharp an angle (such that the miter would extend from the intersection of the segments a distance greater than the product of the miter limit value and the border radius), then a bevel join (see above) is used instead. This prevents long spikes being created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter line join as used in PostScript and PDF.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINEJOIN_MITER_VARIABLE">FT_STROKER_LINEJOIN_MITER_VARIABLE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINEJOIN_MITER">FT_STROKER_LINEJOIN_MITER</td><td class="desc">
+<p>Used to render mitered line joins, with variable bevels if the miter limit is exceeded. The intersection of the strokes is clipped at a line perpendicular to the bisector of the angle between the strokes, at the distance from the intersection of the segments equal to the product of the miter limit value and the border radius. This prevents long spikes being created. FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for backward compatibility.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_LineCap">FT_Stroker_LineCap</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Stroker_LineCap_
+  {
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINECAP_BUTT">FT_STROKER_LINECAP_BUTT</a> = 0,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINECAP_ROUND">FT_STROKER_LINECAP_ROUND</a>,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_LINECAP_SQUARE">FT_STROKER_LINECAP_SQUARE</a>
+
+  } <b>FT_Stroker_LineCap</b>;
+</pre>
+
+<p>These values determine how the end of opened sub-paths are rendered in a stroke.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_STROKER_LINECAP_BUTT">FT_STROKER_LINECAP_BUTT</td><td class="desc">
+<p>The end of lines is rendered as a full stop on the last point itself.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINECAP_ROUND">FT_STROKER_LINECAP_ROUND</td><td class="desc">
+<p>The end of lines is rendered as a half-circle around the last point.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_LINECAP_SQUARE">FT_STROKER_LINECAP_SQUARE</td><td class="desc">
+<p>The end of lines is rendered as a square around the last point.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_StrokerBorder">FT_StrokerBorder</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_StrokerBorder_
+  {
+    <a href="ft2-glyph_stroker.html#FT_STROKER_BORDER_LEFT">FT_STROKER_BORDER_LEFT</a> = 0,
+    <a href="ft2-glyph_stroker.html#FT_STROKER_BORDER_RIGHT">FT_STROKER_BORDER_RIGHT</a>
+
+  } <b>FT_StrokerBorder</b>;
+</pre>
+
+<p>These values are used to select a given stroke border in <a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a> and <a href="ft2-glyph_stroker.html#FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</a>.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_STROKER_BORDER_LEFT">FT_STROKER_BORDER_LEFT</td><td class="desc">
+<p>Select the left border, relative to the drawing direction.</p>
+</td></tr>
+<tr><td class="val" id="FT_STROKER_BORDER_RIGHT">FT_STROKER_BORDER_RIGHT</td><td class="desc">
+<p>Select the right border, relative to the drawing direction.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Applications are generally interested in the &lsquo;inside&rsquo; and &lsquo;outside&rsquo; borders. However, there is no direct mapping between these and the &lsquo;left&rsquo; and &lsquo;right&rsquo; ones, since this really depends on the glyph's drawing orientation, which varies between font formats.</p>
+<p>You can however use <a href="ft2-glyph_stroker.html#FT_Outline_GetInsideBorder">FT_Outline_GetInsideBorder</a> and <a href="ft2-glyph_stroker.html#FT_Outline_GetOutsideBorder">FT_Outline_GetOutsideBorder</a> to get these.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_GetInsideBorder">FT_Outline_GetInsideBorder</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a> )
+  <b>FT_Outline_GetInsideBorder</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Retrieve the <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a> value corresponding to the &lsquo;inside&rsquo; borders of a given outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The source outline handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The border index. <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_RIGHT</a> for empty or invalid outlines.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_GetOutsideBorder">FT_Outline_GetOutsideBorder</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a> )
+  <b>FT_Outline_GetOutsideBorder</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Retrieve the <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a> value corresponding to the &lsquo;outside&rsquo; borders of a given outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The source outline handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The border index. <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_LEFT</a> for empty or invalid outlines.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_Stroke">FT_Glyph_Stroke</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Glyph_Stroke</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>    *pglyph,
+                   <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>   stroker,
+                   <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>      destroy );
+</pre>
+
+<p>Stroke a given outline glyph object with a given stroker.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="pglyph">pglyph</td><td class="desc">
+<p>Source glyph handle on input, new glyph handle on output.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>A stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="destroy">destroy</td><td class="desc">
+<p>A Boolean. If&nbsp;1, the source glyph object is destroyed on success.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The source glyph is untouched in case of error.</p>
+<p>Adding stroke may yield a significantly wider and taller glyph depending on how large of a radius was used to stroke the glyph. You may need to manually adjust horizontal and vertical advance amounts to account for this added size.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Glyph_StrokeBorder">FT_Glyph_StrokeBorder</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Glyph_StrokeBorder</b>( <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a>    *pglyph,
+                         <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>   stroker,
+                         <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>      inside,
+                         <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>      destroy );
+</pre>
+
+<p>Stroke a given outline glyph object with a given stroker, but only return either its inside or outside border.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="pglyph">pglyph</td><td class="desc">
+<p>Source glyph handle on input, new glyph handle on output.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>A stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="inside">inside</td><td class="desc">
+<p>A Boolean. If&nbsp;1, return the inside border, otherwise the outside border.</p>
+</td></tr>
+<tr><td class="val" id="destroy">destroy</td><td class="desc">
+<p>A Boolean. If&nbsp;1, the source glyph object is destroyed on success.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The source glyph is untouched in case of error.</p>
+<p>Adding stroke may yield a significantly wider and taller glyph depending on how large of a radius was used to stroke the glyph. You may need to manually adjust horizontal and vertical advance amounts to account for this added size.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_New">FT_Stroker_New</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_New</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                  <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  *astroker );
+</pre>
+
+<p>Create a new stroker object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>FreeType library handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="astroker">astroker</td><td class="desc">
+<p>A new stroker object handle. NULL in case of error.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_Set">FT_Stroker_Set</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Stroker_Set</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>           stroker,
+                  <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>             radius,
+                  <a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_Stroker_LineCap</a>   line_cap,
+                  <a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_Stroker_LineJoin</a>  line_join,
+                  <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>             miter_limit );
+</pre>
+
+<p>Reset a stroker object's attributes.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="radius">radius</td><td class="desc">
+<p>The border radius.</p>
+</td></tr>
+<tr><td class="val" id="line_cap">line_cap</td><td class="desc">
+<p>The line cap style.</p>
+</td></tr>
+<tr><td class="val" id="line_join">line_join</td><td class="desc">
+<p>The line join style.</p>
+</td></tr>
+<tr><td class="val" id="miter_limit">miter_limit</td><td class="desc">
+<p>The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, expressed as 16.16 fixed-point value.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The radius is expressed in the same units as the outline coordinates.</p>
+<p>This function calls <a href="ft2-glyph_stroker.html#FT_Stroker_Rewind">FT_Stroker_Rewind</a> automatically.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_Rewind">FT_Stroker_Rewind</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Stroker_Rewind</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker );
+</pre>
+
+<p>Reset a stroker object without changing its attributes. You should call this function before beginning a new series of calls to <a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a> or <a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_ParseOutline">FT_Stroker_ParseOutline</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_ParseOutline</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>   stroker,
+                           <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                           <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>      opened );
+</pre>
+
+<p>A convenience function used to parse a whole outline with the stroker. The resulting outline(s) can be retrieved later by functions like <a href="ft2-glyph_stroker.html#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a> and <a href="ft2-glyph_stroker.html#FT_Stroker_Export">FT_Stroker_Export</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The source outline.</p>
+</td></tr>
+<tr><td class="val" id="opened">opened</td><td class="desc">
+<p>A boolean. If&nbsp;1, the outline is treated as an open path instead of a closed one.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If &lsquo;opened&rsquo; is&nbsp;0 (the default), the outline is treated as a closed path, and the stroker generates two distinct &lsquo;border&rsquo; outlines.</p>
+<p>If &lsquo;opened&rsquo; is&nbsp;1, the outline is processed as an open path, and the stroker generates a single &lsquo;stroke&rsquo; outline.</p>
+<p>This function calls <a href="ft2-glyph_stroker.html#FT_Stroker_Rewind">FT_Stroker_Rewind</a> automatically.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_Done">FT_Stroker_Done</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Stroker_Done</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker );
+</pre>
+
+<p>Destroy a stroker object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>A stroker handle. Can be NULL.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_BeginSubPath</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker,
+                           <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to,
+                           <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>     open );
+</pre>
+
+<p>Start a new sub-path in the stroker.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the start vector.</p>
+</td></tr>
+<tr><td class="val" id="open">open</td><td class="desc">
+<p>A boolean. If&nbsp;1, the sub-path is treated as an open one.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function is useful when you need to stroke a path that is not stored as an <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a> object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_EndSubPath</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker );
+</pre>
+
+<p>Close the current sub-path in the stroker.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should call this function after <a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a>. If the subpath was not &lsquo;opened&rsquo;, this function &lsquo;draws&rsquo; a single line segment to the start position when needed.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_LineTo">FT_Stroker_LineTo</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_LineTo</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker,
+                     <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to );
+</pre>
+
+<p>&lsquo;Draw&rsquo; a single line segment in the stroker's current sub-path, from the last position.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the destination point.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should call this function between <a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a> and <a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_ConicTo">FT_Stroker_ConicTo</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_ConicTo</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to );
+</pre>
+
+<p>&lsquo;Draw&rsquo; a single quadratic Bezier in the stroker's current sub-path, from the last position.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="control">control</td><td class="desc">
+<p>A pointer to a Bezier control point.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the destination point.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should call this function between <a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a> and <a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_CubicTo">FT_Stroker_CubicTo</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_CubicTo</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control1,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control2,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to );
+</pre>
+
+<p>&lsquo;Draw&rsquo; a single cubic Bezier in the stroker's current sub-path, from the last position.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="control1">control1</td><td class="desc">
+<p>A pointer to the first Bezier control point.</p>
+</td></tr>
+<tr><td class="val" id="control2">control2</td><td class="desc">
+<p>A pointer to second Bezier control point.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the destination point.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should call this function between <a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a> and <a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_GetBorderCounts</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>        stroker,
+                              <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a>  border,
+                              <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>          *anum_points,
+                              <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>          *anum_contours );
+</pre>
+
+<p>Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export one of the &lsquo;border&rsquo; or &lsquo;stroke&rsquo; outlines generated by the stroker.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="border">border</td><td class="desc">
+<p>The border index.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="anum_points">anum_points</td><td class="desc">
+<p>The number of points.</p>
+</td></tr>
+<tr><td class="val" id="anum_contours">anum_contours</td><td class="desc">
+<p>The number of contours.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>When an outline, or a sub-path, is &lsquo;closed&rsquo;, the stroker generates two independent &lsquo;border&rsquo; outlines, named &lsquo;left&rsquo; and &lsquo;right&rsquo;.</p>
+<p>When the outline, or a sub-path, is &lsquo;opened&rsquo;, the stroker merges the &lsquo;border&rsquo; outlines with caps. The &lsquo;left&rsquo; border receives all points, while the &lsquo;right&rsquo; border becomes empty.</p>
+<p>Use the function <a href="ft2-glyph_stroker.html#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a> instead if you want to retrieve the counts associated to both borders.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Stroker_ExportBorder</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>        stroker,
+                           <a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a>  border,
+                           <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*       outline );
+</pre>
+
+<p>Call this function after <a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a> to export the corresponding border to your own <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a> structure.</p>
+<p>Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="border">border</td><td class="desc">
+<p>The border index.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The target outline handle.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Always call this function after <a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a> to get sure that there is enough room in your <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a> object to receive all new data.</p>
+<p>When an outline, or a sub-path, is &lsquo;closed&rsquo;, the stroker generates two independent &lsquo;border&rsquo; outlines, named &lsquo;left&rsquo; and &lsquo;right&rsquo;.</p>
+<p>When the outline, or a sub-path, is &lsquo;opened&rsquo;, the stroker merges the &lsquo;border&rsquo; outlines with caps. The &lsquo;left&rsquo; border receives all points, while the &lsquo;right&rsquo; border becomes empty.</p>
+<p>Use the function <a href="ft2-glyph_stroker.html#FT_Stroker_Export">FT_Stroker_Export</a> instead if you want to retrieve all borders at once.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_GetCounts">FT_Stroker_GetCounts</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stroker_GetCounts</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>  stroker,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    *anum_points,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    *anum_contours );
+</pre>
+
+<p>Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export all points/borders from the stroked outline/path.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="anum_points">anum_points</td><td class="desc">
+<p>The number of points.</p>
+</td></tr>
+<tr><td class="val" id="anum_contours">anum_contours</td><td class="desc">
+<p>The number of contours.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stroker_Export">FT_Stroker_Export</h3>
+<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Stroker_Export</b>( <a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a>   stroker,
+                     <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Call this function after <a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a> to export all borders to your own <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a> structure.</p>
+<p>Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stroker">stroker</td><td class="desc">
+<p>The target stroker handle.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>The target outline handle.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-glyph_variants.html freetype-2.10.0.aros/docs/reference/ft2-glyph_variants.html
--- freetype-2.10.0/docs/reference/ft2-glyph_variants.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-glyph_variants.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="glyph_variants">Unicode Variation Sequences</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Face_GetCharVariantIndex">FT_Face_GetCharVariantIndex</a></td><td><a href="#FT_Face_GetVariantsOfChar">FT_Face_GetVariantsOfChar</a></td></tr>
+<tr><td><a href="#FT_Face_GetCharVariantIsDefault">FT_Face_GetCharVariantIsDefault</a></td><td><a href="#FT_Face_GetCharsOfVariant">FT_Face_GetCharsOfVariant</a></td></tr>
+<tr><td><a href="#FT_Face_GetVariantSelectors">FT_Face_GetVariantSelectors</a></td><td></td></tr>
+</table>
+
+
+<p>Many characters, especially for CJK scripts, have variant forms. They are a sort of grey area somewhere between being totally irrelevant and semantically distinct; for this reason, the Unicode consortium decided to introduce Variation Sequences (VS), consisting of a Unicode base character and a variation selector instead of further extending the already huge number of characters.</p>
+<p>Unicode maintains two different sets, namely &lsquo;Standardized Variation Sequences&rsquo; and registered &lsquo;Ideographic Variation Sequences&rsquo; (IVS), collected in the &lsquo;Ideographic Variation Database&rsquo; (IVD).</p>
+<p><a href="https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt">https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt</a> <a href="https://unicode.org/reports/tr37/">https://unicode.org/reports/tr37/</a> <a href="https://unicode.org/ivd/">https://unicode.org/ivd/</a></p>
+<p>To date (January 2017), the character with the most ideographic variations is U+9089, having 32 such IVS.</p>
+<p>Three Mongolian Variation Selectors have the values U+180B-U+180D; 256 generic Variation Selectors are encoded in the ranges U+FE00-U+FE0F and U+E0100-U+E01EF. IVS currently use Variation Selectors from the range U+E0100-U+E01EF only.</p>
+<p>A VS consists of the base character value followed by a single Variation Selector. For example, to get the first variation of U+9089, you have to write the character sequence &lsquo;U+9089 U+E0100&rsquo;.</p>
+<p>Adobe and MS decided to support both standardized and ideographic VS with a new cmap subtable (format&nbsp;14). It is an odd subtable because it is not a mapping of input code points to glyphs, but contains lists of all variations supported by the font.</p>
+<p>A variation may be either &lsquo;default&rsquo; or &lsquo;non-default&rsquo; for a given font. A default variation is the one you will get for that code point if you look it up in the standard Unicode cmap. A non-default variation is a different glyph.</p>
+
+<div class="section">
+<h3 id="FT_Face_GetCharVariantIndex">FT_Face_GetCharVariantIndex</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
+  <b>FT_Face_GetCharVariantIndex</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                               <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  charcode,
+                               <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  variantSelector );
+</pre>
+
+<p>Return the glyph index of a given character code as modified by the variation selector.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="charcode">charcode</td><td class="desc">
+<p>The character code point in Unicode.</p>
+</td></tr>
+<tr><td class="val" id="variantSelector">variantSelector</td><td class="desc">
+<p>The Unicode code point of the variation selector.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The glyph index. 0&nbsp;means either &lsquo;undefined character code&rsquo;, or &lsquo;undefined selector code&rsquo;, or &lsquo;no variation selector cmap subtable&rsquo;, or &lsquo;current CharMap is not Unicode&rsquo;.</p>
+
+<h4>note</h4>
+<p>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&nbsp;0 always corresponds to the &lsquo;missing glyph&rsquo;.</p>
+<p>This function is only meaningful if a) the font has a variation selector cmap sub table, and b) the current charmap has a Unicode encoding.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_GetCharVariantIsDefault">FT_Face_GetCharVariantIsDefault</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Int">FT_Int</a> )
+  <b>FT_Face_GetCharVariantIsDefault</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                                   <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  charcode,
+                                   <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  variantSelector );
+</pre>
+
+<p>Check whether this variation of this Unicode character is the one to be found in the &lsquo;cmap&rsquo;.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="charcode">charcode</td><td class="desc">
+<p>The character codepoint in Unicode.</p>
+</td></tr>
+<tr><td class="val" id="variantSelector">variantSelector</td><td class="desc">
+<p>The Unicode codepoint of the variation selector.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>1&nbsp;if found in the standard (Unicode) cmap, 0&nbsp;if found in the variation selector cmap, or -1 if it is not a variation.</p>
+
+<h4>note</h4>
+<p>This function is only meaningful if the font has a variation selector cmap subtable.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_GetVariantSelectors">FT_Face_GetVariantSelectors</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>* )
+  <b>FT_Face_GetVariantSelectors</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Return a zero-terminated list of Unicode variation selectors found in the font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A pointer to an array of selector code points, or NULL if there is no valid variation selector cmap subtable.</p>
+
+<h4>note</h4>
+<p>The last item in the array is&nbsp;0; the array is owned by the <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object but can be overwritten or released on the next call to a FreeType function.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_GetVariantsOfChar">FT_Face_GetVariantsOfChar</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>* )
+  <b>FT_Face_GetVariantsOfChar</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                             <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  charcode );
+</pre>
+
+<p>Return a zero-terminated list of Unicode variation selectors found for the specified character code.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="charcode">charcode</td><td class="desc">
+<p>The character codepoint in Unicode.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>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.</p>
+
+<h4>note</h4>
+<p>The last item in the array is&nbsp;0; the array is owned by the <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object but can be overwritten or released on the next call to a FreeType function.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_GetCharsOfVariant">FT_Face_GetCharsOfVariant</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a>* )
+  <b>FT_Face_GetCharsOfVariant</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                             <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  variantSelector );
+</pre>
+
+<p>Return a zero-terminated list of Unicode character codes found for the specified variation selector.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+<tr><td class="val" id="variantSelector">variantSelector</td><td class="desc">
+<p>The variation selector code point in Unicode.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>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.</p>
+
+<h4>note</h4>
+<p>The last item in the array is&nbsp;0; the array is owned by the <a href="ft2-base_interface.html#FT_Face">FT_Face</a> object but can be overwritten or released on the next call to a FreeType function.</p>
+
+<h4>since</h4>
+<p>2.3.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-gx_validation.html freetype-2.10.0.aros/docs/reference/ft2-gx_validation.html
--- freetype-2.10.0/docs/reference/ft2-gx_validation.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-gx_validation.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="gx_validation">TrueTypeGX/AAT Validation</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a></td><td><a href="#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a></td><td><a href="#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a></td></tr>
+<tr><td><a href="#FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a></td><td><a href="#FT_ClassicKern_Free">FT_ClassicKern_Free</a></td><td><a href="#FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a></td></tr>
+<tr><td>&nbsp;</td><td>&nbsp;</td><td><a href="#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a></td></tr>
+</table>
+
+
+<p>This section contains the declaration of functions to validate some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop, lcar).</p>
+
+<div class="section">
+<h3 id="FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_TrueTypeGX_Validate</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                          <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   validation_flags,
+                          <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  tables[<a href="ft2-gx_validation.html#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a>],
+                          <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   table_length );
+</pre>
+
+<p>Validate various TrueTypeGX tables to assure that all offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="validation_flags">validation_flags</td><td class="desc">
+<p>A bit field that specifies the tables to be validated. See <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a> for possible values.</p>
+</td></tr>
+<tr><td class="val" id="table_length">table_length</td><td class="desc">
+<p>The size of the &lsquo;tables&rsquo; array. Normally, <a href="ft2-gx_validation.html#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a> should be passed.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="tables">tables</td><td class="desc">
+<p>The array where all validated sfnt tables are stored. The array itself must be allocated by a client.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with TrueTypeGX fonts, returning an error otherwise.</p>
+<p>After use, the application should deallocate the buffers pointed to by each &lsquo;tables&rsquo; element, by calling <a href="ft2-gx_validation.html#FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a>. A NULL value indicates that the table either doesn't exist in the font, the application hasn't asked for validation, or the validator doesn't have the ability to validate the sfnt table.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_TrueTypeGX_Free</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                      <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  table );
+</pre>
+
+<p>Free the buffer allocated by TrueTypeGX validator.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="table">table</td><td class="desc">
+<p>The pointer to the buffer allocated by <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a>.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function must be used to free the buffer allocated by <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> only.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ClassicKern_Validate">FT_ClassicKern_Validate</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_ClassicKern_Validate</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                           <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    validation_flags,
+                           <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *ckern_table );
+</pre>
+
+<p>Validate classic (16-bit format) kern table to assure that the offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
+<p>The &lsquo;kern&rsquo; table validator in <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> deals with both the new 32-bit format and the classic 16-bit format, while FT_ClassicKern_Validate only supports the classic 16-bit format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="validation_flags">validation_flags</td><td class="desc">
+<p>A bit field that specifies the dialect to be validated. See <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a> for possible values.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="ckern_table">ckern_table</td><td class="desc">
+<p>A pointer to the kern table.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>After use, the application should deallocate the buffers pointed to by &lsquo;ckern_table&rsquo;, by calling <a href="ft2-gx_validation.html#FT_ClassicKern_Free">FT_ClassicKern_Free</a>. A NULL value indicates that the table doesn't exist in the font.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ClassicKern_Free">FT_ClassicKern_Free</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_ClassicKern_Free</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                       <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  table );
+</pre>
+
+<p>Free the buffer allocated by classic Kern validator.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="table">table</td><td class="desc">
+<p>The pointer to the buffer that is allocated by <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a>.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function must be used to free the buffer allocated by <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> only.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+#define <b>FT_VALIDATE_GX_LENGTH</b>  ( FT_VALIDATE_GX_LAST_INDEX + 1 )
+</pre>
+
+<p>The number of tables checked in this module. Use it as a parameter for the &lsquo;table-length&rsquo; argument of function <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_feat">FT_VALIDATE_feat</a>  FT_VALIDATE_GX_BITFIELD( feat )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_mort">FT_VALIDATE_mort</a>  FT_VALIDATE_GX_BITFIELD( mort )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_morx">FT_VALIDATE_morx</a>  FT_VALIDATE_GX_BITFIELD( morx )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_bsln">FT_VALIDATE_bsln</a>  FT_VALIDATE_GX_BITFIELD( bsln )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_just">FT_VALIDATE_just</a>  FT_VALIDATE_GX_BITFIELD( just )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_kern">FT_VALIDATE_kern</a>  FT_VALIDATE_GX_BITFIELD( kern )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_opbd">FT_VALIDATE_opbd</a>  FT_VALIDATE_GX_BITFIELD( opbd )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_trak">FT_VALIDATE_trak</a>  FT_VALIDATE_GX_BITFIELD( trak )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_prop">FT_VALIDATE_prop</a>  FT_VALIDATE_GX_BITFIELD( prop )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_lcar">FT_VALIDATE_lcar</a>  FT_VALIDATE_GX_BITFIELD( lcar )
+
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_GX">FT_VALIDATE_GX</a>  ( <a href="ft2-gx_validation.html#FT_VALIDATE_feat">FT_VALIDATE_feat</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_mort">FT_VALIDATE_mort</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_morx">FT_VALIDATE_morx</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_bsln">FT_VALIDATE_bsln</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_just">FT_VALIDATE_just</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_kern">FT_VALIDATE_kern</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_opbd">FT_VALIDATE_opbd</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_trak">FT_VALIDATE_trak</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_prop">FT_VALIDATE_prop</a> | \
+                          <a href="ft2-gx_validation.html#FT_VALIDATE_lcar">FT_VALIDATE_lcar</a> )
+</pre>
+
+<p>A list of bit-field constants used with <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> to indicate which TrueTypeGX/AAT Type tables should be validated.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_VALIDATE_feat">FT_VALIDATE_feat</td><td class="desc">
+<p>Validate &lsquo;feat&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_mort">FT_VALIDATE_mort</td><td class="desc">
+<p>Validate &lsquo;mort&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_morx">FT_VALIDATE_morx</td><td class="desc">
+<p>Validate &lsquo;morx&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_bsln">FT_VALIDATE_bsln</td><td class="desc">
+<p>Validate &lsquo;bsln&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_just">FT_VALIDATE_just</td><td class="desc">
+<p>Validate &lsquo;just&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_kern">FT_VALIDATE_kern</td><td class="desc">
+<p>Validate &lsquo;kern&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_opbd">FT_VALIDATE_opbd</td><td class="desc">
+<p>Validate &lsquo;opbd&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_trak">FT_VALIDATE_trak</td><td class="desc">
+<p>Validate &lsquo;trak&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_prop">FT_VALIDATE_prop</td><td class="desc">
+<p>Validate &lsquo;prop&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_lcar">FT_VALIDATE_lcar</td><td class="desc">
+<p>Validate &lsquo;lcar&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_GX">FT_VALIDATE_GX</td><td class="desc">
+<p>Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop and lcar).</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</h3>
+<p>Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).</p>
+<pre>
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_MS">FT_VALIDATE_MS</a>     ( FT_VALIDATE_GX_START &lt;&lt; 0 )
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_APPLE">FT_VALIDATE_APPLE</a>  ( FT_VALIDATE_GX_START &lt;&lt; 1 )
+
+#define <a href="ft2-gx_validation.html#FT_VALIDATE_CKERN">FT_VALIDATE_CKERN</a>  ( <a href="ft2-gx_validation.html#FT_VALIDATE_MS">FT_VALIDATE_MS</a> | <a href="ft2-gx_validation.html#FT_VALIDATE_APPLE">FT_VALIDATE_APPLE</a> )
+</pre>
+
+<p>A list of bit-field constants used with <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> to indicate the classic kern dialect or dialects. If the selected type doesn't fit, <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> regards the table as invalid.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_VALIDATE_MS">FT_VALIDATE_MS</td><td class="desc">
+<p>Handle the &lsquo;kern&rsquo; table as a classic Microsoft kern table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_APPLE">FT_VALIDATE_APPLE</td><td class="desc">
+<p>Handle the &lsquo;kern&rsquo; table as a classic Apple kern table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_CKERN">FT_VALIDATE_CKERN</td><td class="desc">
+<p>Handle the &lsquo;kern&rsquo; as either classic Apple or Microsoft kern table.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-gzip.html freetype-2.10.0.aros/docs/reference/ft2-gzip.html
--- freetype-2.10.0/docs/reference/ft2-gzip.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-gzip.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="gzip">GZIP Streams</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Stream_OpenGzip">FT_Stream_OpenGzip</a></td><td><a href="#FT_Gzip_Uncompress">FT_Gzip_Uncompress</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of Gzip-specific functions.</p>
+
+<div class="section">
+<h3 id="FT_Stream_OpenGzip">FT_Stream_OpenGzip</h3>
+<p>Defined in FT_GZIP_H (freetype/ftgzip.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stream_OpenGzip</b>( <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  stream,
+                      <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  source );
+</pre>
+
+<p>Open a new stream to parse gzip-compressed font files. This is mainly used to support the compressed &lsquo;*.pcf.gz&rsquo; fonts that come with XFree86.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>The target embedding stream.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>The source stream.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The source stream must be opened <i>before</i> calling this function.</p>
+<p>Calling the internal function &lsquo;FT_Stream_Close&rsquo; on the new stream will <b>not</b> call &lsquo;FT_Stream_Close&rsquo; on the source stream. None of the stream objects will be released to the heap.</p>
+<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.</p>
+<p>In certain builds of the library, gzip compression recognition is automatically handled when calling <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> or <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it.</p>
+<p>This function may return &lsquo;FT_Err_Unimplemented_Feature&rsquo; if your build of FreeType was not compiled with zlib support.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Gzip_Uncompress">FT_Gzip_Uncompress</h3>
+<p>Defined in FT_GZIP_H (freetype/ftgzip.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Gzip_Uncompress</b>( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>       memory,
+                      <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*        output,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>*       output_len,
+                      <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  input,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        input_len );
+</pre>
+
+<p>Decompress a zipped input buffer into an output buffer. This function is modeled after zlib's &lsquo;uncompress&rsquo; function.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A FreeType memory handle.</p>
+</td></tr>
+<tr><td class="val" id="input">input</td><td class="desc">
+<p>The input buffer.</p>
+</td></tr>
+<tr><td class="val" id="input_len">input_len</td><td class="desc">
+<p>The length of the input buffer.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="output">output</td><td class="desc">
+<p>The output buffer.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="output_len">output_len</td><td class="desc">
+<p>Before calling the function, this is the total size of the output buffer, which must be large enough to hold the entire uncompressed data (so the size of the uncompressed data must be known in advance). After calling the function, &lsquo;output_len&rsquo; is the size of the used data in &lsquo;output&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function may return &lsquo;FT_Err_Unimplemented_Feature&rsquo; if your build of FreeType was not compiled with zlib support.</p>
+
+<h4>since</h4>
+<p>2.5.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-header_file_macros.html freetype-2.10.0.aros/docs/reference/ft2-header_file_macros.html
--- freetype-2.10.0/docs/reference/ft2-header_file_macros.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-header_file_macros.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,694 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="header_file_macros">Header File Macros</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_CONFIG_CONFIG_H">FT_CONFIG_CONFIG_H</a></td><td><a href="#FT_BDF_H">FT_BDF_H</a></td></tr>
+<tr><td><a href="#FT_CONFIG_STANDARD_LIBRARY_H">FT_CONFIG_STANDARD_LIBRARY_H</a></td><td><a href="#FT_CID_H">FT_CID_H</a></td></tr>
+<tr><td><a href="#FT_CONFIG_OPTIONS_H">FT_CONFIG_OPTIONS_H</a></td><td><a href="#FT_GZIP_H">FT_GZIP_H</a></td></tr>
+<tr><td><a href="#FT_CONFIG_MODULES_H">FT_CONFIG_MODULES_H</a></td><td><a href="#FT_LZW_H">FT_LZW_H</a></td></tr>
+<tr><td><a href="#FT_FREETYPE_H">FT_FREETYPE_H</a></td><td><a href="#FT_BZIP2_H">FT_BZIP2_H</a></td></tr>
+<tr><td><a href="#FT_ERRORS_H">FT_ERRORS_H</a></td><td><a href="#FT_WINFONTS_H">FT_WINFONTS_H</a></td></tr>
+<tr><td><a href="#FT_MODULE_ERRORS_H">FT_MODULE_ERRORS_H</a></td><td><a href="#FT_GLYPH_H">FT_GLYPH_H</a></td></tr>
+<tr><td><a href="#FT_SYSTEM_H">FT_SYSTEM_H</a></td><td><a href="#FT_BITMAP_H">FT_BITMAP_H</a></td></tr>
+<tr><td><a href="#FT_IMAGE_H">FT_IMAGE_H</a></td><td><a href="#FT_BBOX_H">FT_BBOX_H</a></td></tr>
+<tr><td><a href="#FT_TYPES_H">FT_TYPES_H</a></td><td><a href="#FT_CACHE_H">FT_CACHE_H</a></td></tr>
+<tr><td><a href="#FT_LIST_H">FT_LIST_H</a></td><td><a href="#FT_MAC_H">FT_MAC_H</a></td></tr>
+<tr><td><a href="#FT_OUTLINE_H">FT_OUTLINE_H</a></td><td><a href="#FT_MULTIPLE_MASTERS_H">FT_MULTIPLE_MASTERS_H</a></td></tr>
+<tr><td><a href="#FT_SIZES_H">FT_SIZES_H</a></td><td><a href="#FT_SFNT_NAMES_H">FT_SFNT_NAMES_H</a></td></tr>
+<tr><td><a href="#FT_MODULE_H">FT_MODULE_H</a></td><td><a href="#FT_OPENTYPE_VALIDATE_H">FT_OPENTYPE_VALIDATE_H</a></td></tr>
+<tr><td><a href="#FT_RENDER_H">FT_RENDER_H</a></td><td><a href="#FT_GX_VALIDATE_H">FT_GX_VALIDATE_H</a></td></tr>
+<tr><td><a href="#FT_DRIVER_H">FT_DRIVER_H</a></td><td><a href="#FT_PFR_H">FT_PFR_H</a></td></tr>
+<tr><td><a href="#FT_AUTOHINTER_H">FT_AUTOHINTER_H</a></td><td><a href="#FT_STROKER_H">FT_STROKER_H</a></td></tr>
+<tr><td><a href="#FT_CFF_DRIVER_H">FT_CFF_DRIVER_H</a></td><td><a href="#FT_SYNTHESIS_H">FT_SYNTHESIS_H</a></td></tr>
+<tr><td><a href="#FT_TRUETYPE_DRIVER_H">FT_TRUETYPE_DRIVER_H</a></td><td><a href="#FT_FONT_FORMATS_H">FT_FONT_FORMATS_H</a></td></tr>
+<tr><td><a href="#FT_PCF_DRIVER_H">FT_PCF_DRIVER_H</a></td><td><a href="#FT_TRIGONOMETRY_H">FT_TRIGONOMETRY_H</a></td></tr>
+<tr><td><a href="#FT_TYPE1_TABLES_H">FT_TYPE1_TABLES_H</a></td><td><a href="#FT_LCD_FILTER_H">FT_LCD_FILTER_H</a></td></tr>
+<tr><td><a href="#FT_TRUETYPE_IDS_H">FT_TRUETYPE_IDS_H</a></td><td><a href="#FT_INCREMENTAL_H">FT_INCREMENTAL_H</a></td></tr>
+<tr><td><a href="#FT_TRUETYPE_TABLES_H">FT_TRUETYPE_TABLES_H</a></td><td><a href="#FT_GASP_H">FT_GASP_H</a></td></tr>
+<tr><td><a href="#FT_TRUETYPE_TAGS_H">FT_TRUETYPE_TAGS_H</a></td><td><a href="#FT_ADVANCES_H">FT_ADVANCES_H</a></td></tr>
+</table>
+
+
+<p>The following macros are defined to the name of specific FreeType&nbsp;2 header files. They can be used directly in #include statements as in:</p>
+<pre class="colored">
+  #include FT_FREETYPE_H
+  #include FT_MULTIPLE_MASTERS_H
+  #include FT_GLYPH_H
+</pre>
+<p>There are several reasons why we are now using macros to name public header files. The first one is that such macros are not limited to the infamous 8.3&nbsp;naming rule required by DOS (and &lsquo;FT_MULTIPLE_MASTERS_H&rsquo; is a lot more meaningful than &lsquo;ftmm.h&rsquo;).</p>
+<p>The second reason is that it allows for more flexibility in the way FreeType&nbsp;2 is installed on a given system.</p>
+
+<div class="section">
+<h3 id="FT_CONFIG_CONFIG_H">FT_CONFIG_CONFIG_H</h3>
+<pre>
+#ifndef <b>FT_CONFIG_CONFIG_H</b>
+#define <b>FT_CONFIG_CONFIG_H</b>  &lt;freetype/config/ftconfig.h&gt;
+#endif
+</pre>
+
+<p>A macro used in #include statements to name the file containing FreeType&nbsp;2 configuration data.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CONFIG_STANDARD_LIBRARY_H">FT_CONFIG_STANDARD_LIBRARY_H</h3>
+<pre>
+#ifndef <b>FT_CONFIG_STANDARD_LIBRARY_H</b>
+#define <b>FT_CONFIG_STANDARD_LIBRARY_H</b>  &lt;freetype/config/ftstdlib.h&gt;
+#endif
+</pre>
+
+<p>A macro used in #include statements to name the file containing FreeType&nbsp;2 interface to the standard C library functions.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CONFIG_OPTIONS_H">FT_CONFIG_OPTIONS_H</h3>
+<pre>
+#ifndef <b>FT_CONFIG_OPTIONS_H</b>
+#define <b>FT_CONFIG_OPTIONS_H</b>  &lt;freetype/config/ftoption.h&gt;
+#endif
+</pre>
+
+<p>A macro used in #include statements to name the file containing FreeType&nbsp;2 project-specific configuration options.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CONFIG_MODULES_H">FT_CONFIG_MODULES_H</h3>
+<pre>
+#ifndef <b>FT_CONFIG_MODULES_H</b>
+#define <b>FT_CONFIG_MODULES_H</b>  &lt;freetype/config/ftmodule.h&gt;
+#endif
+</pre>
+
+<p>A macro used in #include statements to name the file containing the list of FreeType&nbsp;2 modules that are statically linked to new library instances in <a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FREETYPE_H">FT_FREETYPE_H</h3>
+<pre>
+#define <b>FT_FREETYPE_H</b>  &lt;freetype/freetype.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the base FreeType&nbsp;2 API.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ERRORS_H">FT_ERRORS_H</h3>
+<pre>
+#define <b>FT_ERRORS_H</b>  &lt;freetype/fterrors.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the list of FreeType&nbsp;2 error codes (and messages).</p>
+<p>It is included by <a href="ft2-header_file_macros.html#FT_FREETYPE_H">FT_FREETYPE_H</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MODULE_ERRORS_H">FT_MODULE_ERRORS_H</h3>
+<pre>
+#define <b>FT_MODULE_ERRORS_H</b>  &lt;freetype/ftmoderr.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the list of FreeType&nbsp;2 module error offsets (and messages).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SYSTEM_H">FT_SYSTEM_H</h3>
+<pre>
+#define <b>FT_SYSTEM_H</b>  &lt;freetype/ftsystem.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 interface to low-level operations (i.e., memory management and stream i/o).</p>
+<p>It is included by <a href="ft2-header_file_macros.html#FT_FREETYPE_H">FT_FREETYPE_H</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_IMAGE_H">FT_IMAGE_H</h3>
+<pre>
+#define <b>FT_IMAGE_H</b>  &lt;freetype/ftimage.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing type definitions related to glyph images (i.e., bitmaps, outlines, scan-converter parameters).</p>
+<p>It is included by <a href="ft2-header_file_macros.html#FT_FREETYPE_H">FT_FREETYPE_H</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TYPES_H">FT_TYPES_H</h3>
+<pre>
+#define <b>FT_TYPES_H</b>  &lt;freetype/fttypes.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the basic data types defined by FreeType&nbsp;2.</p>
+<p>It is included by <a href="ft2-header_file_macros.html#FT_FREETYPE_H">FT_FREETYPE_H</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LIST_H">FT_LIST_H</h3>
+<pre>
+#define <b>FT_LIST_H</b>  &lt;freetype/ftlist.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the list management API of FreeType&nbsp;2.</p>
+<p>(Most applications will never need to include this file.)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OUTLINE_H">FT_OUTLINE_H</h3>
+<pre>
+#define <b>FT_OUTLINE_H</b>  &lt;freetype/ftoutln.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the scalable outline management API of FreeType&nbsp;2.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SIZES_H">FT_SIZES_H</h3>
+<pre>
+#define <b>FT_SIZES_H</b>  &lt;freetype/ftsizes.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the API which manages multiple <a href="ft2-base_interface.html#FT_Size">FT_Size</a> objects per face.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MODULE_H">FT_MODULE_H</h3>
+<pre>
+#define <b>FT_MODULE_H</b>  &lt;freetype/ftmodapi.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the module management API of FreeType&nbsp;2.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_RENDER_H">FT_RENDER_H</h3>
+<pre>
+#define <b>FT_RENDER_H</b>  &lt;freetype/ftrender.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the renderer module management API of FreeType&nbsp;2.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_DRIVER_H">FT_DRIVER_H</h3>
+<pre>
+#define <b>FT_DRIVER_H</b>  &lt;freetype/ftdriver.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing structures and macros related to the driver modules.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_AUTOHINTER_H">FT_AUTOHINTER_H</h3>
+<pre>
+#define <b>FT_AUTOHINTER_H</b>  <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a>
+</pre>
+
+<p>A macro used in #include statements to name the file containing structures and macros related to the auto-hinting module.</p>
+<p>Deprecated since version 2.9; use <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a> instead.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CFF_DRIVER_H">FT_CFF_DRIVER_H</h3>
+<pre>
+#define <b>FT_CFF_DRIVER_H</b>  <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a>
+</pre>
+
+<p>A macro used in #include statements to name the file containing structures and macros related to the CFF driver module.</p>
+<p>Deprecated since version 2.9; use <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a> instead.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TRUETYPE_DRIVER_H">FT_TRUETYPE_DRIVER_H</h3>
+<pre>
+#define <b>FT_TRUETYPE_DRIVER_H</b>  <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a>
+</pre>
+
+<p>A macro used in #include statements to name the file containing structures and macros related to the TrueType driver module.</p>
+<p>Deprecated since version 2.9; use <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a> instead.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PCF_DRIVER_H">FT_PCF_DRIVER_H</h3>
+<pre>
+#define <b>FT_PCF_DRIVER_H</b>  <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a>
+</pre>
+
+<p>A macro used in #include statements to name the file containing structures and macros related to the PCF driver module.</p>
+<p>Deprecated since version 2.9; use <a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a> instead.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TYPE1_TABLES_H">FT_TYPE1_TABLES_H</h3>
+<pre>
+#define <b>FT_TYPE1_TABLES_H</b>  &lt;freetype/t1tables.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the types and API specific to the Type&nbsp;1 format.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TRUETYPE_IDS_H">FT_TRUETYPE_IDS_H</h3>
+<pre>
+#define <b>FT_TRUETYPE_IDS_H</b>  &lt;freetype/ttnameid.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the enumeration values which identify name strings, languages, encodings, etc. This file really contains a <i>large</i> set of constant macro definitions, taken from the TrueType and OpenType specifications.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TRUETYPE_TABLES_H">FT_TRUETYPE_TABLES_H</h3>
+<pre>
+#define <b>FT_TRUETYPE_TABLES_H</b>  &lt;freetype/tttables.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the types and API specific to the TrueType (as well as OpenType) format.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TRUETYPE_TAGS_H">FT_TRUETYPE_TAGS_H</h3>
+<pre>
+#define <b>FT_TRUETYPE_TAGS_H</b>  &lt;freetype/tttags.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of TrueType four-byte &lsquo;tags&rsquo; which identify blocks in SFNT-based font formats (i.e., TrueType and OpenType).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BDF_H">FT_BDF_H</h3>
+<pre>
+#define <b>FT_BDF_H</b>  &lt;freetype/ftbdf.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which accesses BDF-specific strings from a face.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CID_H">FT_CID_H</h3>
+<pre>
+#define <b>FT_CID_H</b>  &lt;freetype/ftcid.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which access CID font information from a face.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GZIP_H">FT_GZIP_H</h3>
+<pre>
+#define <b>FT_GZIP_H</b>  &lt;freetype/ftgzip.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which supports gzip-compressed files.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LZW_H">FT_LZW_H</h3>
+<pre>
+#define <b>FT_LZW_H</b>  &lt;freetype/ftlzw.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which supports LZW-compressed files.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BZIP2_H">FT_BZIP2_H</h3>
+<pre>
+#define <b>FT_BZIP2_H</b>  &lt;freetype/ftbzip2.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which supports bzip2-compressed files.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_WINFONTS_H">FT_WINFONTS_H</h3>
+<pre>
+#define <b>FT_WINFONTS_H</b>   &lt;freetype/ftwinfnt.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the definitions of an API which supports Windows FNT files.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GLYPH_H">FT_GLYPH_H</h3>
+<pre>
+#define <b>FT_GLYPH_H</b>  &lt;freetype/ftglyph.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the API of the optional glyph management component.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BITMAP_H">FT_BITMAP_H</h3>
+<pre>
+#define <b>FT_BITMAP_H</b>  &lt;freetype/ftbitmap.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the API of the optional bitmap conversion component.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_BBOX_H">FT_BBOX_H</h3>
+<pre>
+#define <b>FT_BBOX_H</b>  &lt;freetype/ftbbox.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the API of the optional exact bounding box computation routines.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_CACHE_H">FT_CACHE_H</h3>
+<pre>
+#define <b>FT_CACHE_H</b>  &lt;freetype/ftcache.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the API of the optional FreeType&nbsp;2 cache sub-system.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MAC_H">FT_MAC_H</h3>
+<pre>
+#define <b>FT_MAC_H</b>  &lt;freetype/ftmac.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the Macintosh-specific FreeType&nbsp;2 API. The latter is used to access fonts embedded in resource forks.</p>
+<p>This header file must be explicitly included by client applications compiled on the Mac (note that the base API still works though).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MULTIPLE_MASTERS_H">FT_MULTIPLE_MASTERS_H</h3>
+<pre>
+#define <b>FT_MULTIPLE_MASTERS_H</b>  &lt;freetype/ftmm.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the optional multiple-masters management API of FreeType&nbsp;2.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SFNT_NAMES_H">FT_SFNT_NAMES_H</h3>
+<pre>
+#define <b>FT_SFNT_NAMES_H</b>  &lt;freetype/ftsnames.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the optional FreeType&nbsp;2 API which accesses embedded &lsquo;name&rsquo; strings in SFNT-based font formats (i.e., TrueType and OpenType).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OPENTYPE_VALIDATE_H">FT_OPENTYPE_VALIDATE_H</h3>
+<pre>
+#define <b>FT_OPENTYPE_VALIDATE_H</b>  &lt;freetype/ftotval.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the optional FreeType&nbsp;2 API which validates OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GX_VALIDATE_H">FT_GX_VALIDATE_H</h3>
+<pre>
+#define <b>FT_GX_VALIDATE_H</b>  &lt;freetype/ftgxval.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the optional FreeType&nbsp;2 API which validates TrueTypeGX/AAT tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PFR_H">FT_PFR_H</h3>
+<pre>
+#define <b>FT_PFR_H</b>  &lt;freetype/ftpfr.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which accesses PFR-specific data.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_STROKER_H">FT_STROKER_H</h3>
+<pre>
+#define <b>FT_STROKER_H</b>  &lt;freetype/ftstroke.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which provides functions to stroke outline paths.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SYNTHESIS_H">FT_SYNTHESIS_H</h3>
+<pre>
+#define <b>FT_SYNTHESIS_H</b>  &lt;freetype/ftsynth.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which performs artificial obliquing and emboldening.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_FONT_FORMATS_H">FT_FONT_FORMATS_H</h3>
+<pre>
+#define <b>FT_FONT_FORMATS_H</b>  &lt;freetype/ftfntfmt.h&gt;
+
+  /* deprecated */
+#define FT_XFREE86_H  <b>FT_FONT_FORMATS_H</b>
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which provides functions specific to font formats.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_TRIGONOMETRY_H">FT_TRIGONOMETRY_H</h3>
+<pre>
+#define <b>FT_TRIGONOMETRY_H</b>  &lt;freetype/fttrigon.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which performs trigonometric computations (e.g., cosines and arc tangents).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_LCD_FILTER_H">FT_LCD_FILTER_H</h3>
+<pre>
+#define <b>FT_LCD_FILTER_H</b>  &lt;freetype/ftlcdfil.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which performs color filtering for subpixel rendering.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_INCREMENTAL_H">FT_INCREMENTAL_H</h3>
+<pre>
+#define <b>FT_INCREMENTAL_H</b>  &lt;freetype/ftincrem.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which performs incremental glyph loading.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GASP_H">FT_GASP_H</h3>
+<pre>
+#define <b>FT_GASP_H</b>  &lt;freetype/ftgasp.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which returns entries from the TrueType GASP table.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ADVANCES_H">FT_ADVANCES_H</h3>
+<pre>
+#define <b>FT_ADVANCES_H</b>  &lt;freetype/ftadvanc.h&gt;
+</pre>
+
+<p>A macro used in #include statements to name the file containing the FreeType&nbsp;2 API which returns individual and ranged glyph advances.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-header_inclusion.html freetype-2.10.0.aros/docs/reference/ft2-header_inclusion.html
--- freetype-2.10.0/docs/reference/ft2-header_inclusion.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-header_inclusion.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="header_inclusion">FreeType's header inclusion scheme</h1>
+
+<p>To be as flexible as possible (and for historical reasons), FreeType uses a very special inclusion scheme to load header files, for example</p>
+<pre class="colored">
+  #include &lt;ft2build.h&gt;
+
+  #include FT_FREETYPE_H
+  #include FT_OUTLINE_H
+</pre>
+<p>A compiler and its preprocessor only needs an include path to find the file &lsquo;ft2build.h&rsquo;; the exact locations and names of the other FreeType header files are hidden by preprocessor macro names, loaded by &lsquo;ft2build.h&rsquo;. The API documentation always gives the header macro name needed for a particular function.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-incremental.html freetype-2.10.0.aros/docs/reference/ft2-incremental.html
--- freetype-2.10.0/docs/reference/ft2-incremental.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-incremental.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="incremental">Incremental Loading</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Incremental">FT_Incremental</a></td><td><a href="#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a></td></tr>
+<tr><td><a href="#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a></td><td><a href="#FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</a></td></tr>
+<tr><td><a href="#FT_Incremental_Metrics">FT_Incremental_Metrics</a></td><td><a href="#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a></td></tr>
+<tr><td><a href="#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a></td><td><a href="#FT_Incremental_Interface">FT_Incremental_Interface</a></td></tr>
+<tr><td><a href="#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains various functions used to perform so-called &lsquo;incremental&rsquo; glyph loading. This is a mode where all glyphs loaded from a given <a href="ft2-base_interface.html#FT_Face">FT_Face</a> are provided by the client application.</p>
+<p>Apart from that, all other tables are loaded normally from the font file. This mode is useful when FreeType is used within another engine, e.g., a PostScript Imaging Processor.</p>
+<p>To enable this mode, you must use <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>, passing an <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> with the <a href="ft2-parameter_tags.html#FT_PARAM_TAG_INCREMENTAL">FT_PARAM_TAG_INCREMENTAL</a> tag and an <a href="ft2-incremental.html#FT_Incremental_Interface">FT_Incremental_Interface</a> value. See the comments for <a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a> for an example.</p>
+
+<div class="section">
+<h3 id="FT_Incremental">FT_Incremental</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_IncrementalRec_*  <b>FT_Incremental</b>;
+</pre>
+
+<p>An opaque type describing a user-provided object used to implement &lsquo;incremental&rsquo; glyph loading within FreeType. This is used to support embedded fonts in certain environments (e.g., PostScript interpreters), where the glyph data isn't in the font file, or must be overridden by different values.</p>
+
+<h4>note</h4>
+<p>It is up to client applications to create and implement <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a> objects, as long as they provide implementations for the methods <a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a>, <a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a> and <a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a>.</p>
+<p>See the description of <a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a> to understand how to use incremental objects with FreeType.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_MetricsRec_
+  {
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  bearing_x;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  bearing_y;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  advance;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>  advance_v;     /* since 2.3.12 */
+
+  } <b>FT_Incremental_MetricsRec</b>;
+</pre>
+
+<p>A small structure used to contain the basic glyph metrics returned by the <a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a> method.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="bearing_x">bearing_x</td><td class="desc">
+<p>Left bearing, in font units.</p>
+</td></tr>
+<tr><td class="val" id="bearing_y">bearing_y</td><td class="desc">
+<p>Top bearing, in font units.</p>
+</td></tr>
+<tr><td class="val" id="advance">advance</td><td class="desc">
+<p>Horizontal component of glyph advance, in font units.</p>
+</td></tr>
+<tr><td class="val" id="advance_v">advance_v</td><td class="desc">
+<p>Vertical component of glyph advance, in font units.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>These correspond to horizontal or vertical metrics depending on the value of the &lsquo;vertical&rsquo; argument to the function <a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_Metrics">FT_Incremental_Metrics</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+   <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_MetricsRec_*  <b>FT_Incremental_Metrics</b>;
+</pre>
+
+<p>A handle to an <a href="ft2-incremental.html#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Error">FT_Error</a>
+  (*<b>FT_Incremental_GetGlyphDataFunc</b>)( <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a>  incremental,
+                                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>         glyph_index,
+                                      <a href="ft2-basic_types.html#FT_Data">FT_Data</a>*        adata );
+</pre>
+
+<p>A function called by FreeType to access a given glyph's data bytes during <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> or <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a> if incremental loading is enabled.</p>
+<p>Note that the format of the glyph's data bytes depends on the font file format. For TrueType, it must correspond to the raw bytes within the &lsquo;glyf&rsquo; table. For PostScript formats, it must correspond to the <b>unencrypted</b> charstring bytes, without any &lsquo;lenIV&rsquo; header. It is undefined for any other format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="incremental">incremental</td><td class="desc">
+<p>Handle to an opaque <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a> handle provided by the client application.</p>
+</td></tr>
+<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
+<p>Index of relevant glyph.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="adata">adata</td><td class="desc">
+<p>A structure describing the returned glyph data bytes (which will be accessed as a read-only byte block).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If this function returns successfully the method <a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a> will be called later to release the data bytes.</p>
+<p>Nested calls to <a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a> can happen for compound glyphs.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Incremental_FreeGlyphDataFunc</b>)( <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a>  incremental,
+                                       <a href="ft2-basic_types.html#FT_Data">FT_Data</a>*        data );
+</pre>
+
+<p>A function used to release the glyph data bytes returned by a successful call to <a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="incremental">incremental</td><td class="desc">
+<p>A handle to an opaque <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a> handle provided by the client application.</p>
+</td></tr>
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>A structure describing the glyph data bytes (which will be accessed as a read-only byte block).</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Error">FT_Error</a>
+  (*<b>FT_Incremental_GetGlyphMetricsFunc</b>)
+                      ( <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a>              incremental,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>                     glyph_index,
+                        <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>                     vertical,
+                        <a href="ft2-incremental.html#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a>  *ametrics );
+</pre>
+
+<p>A function used to retrieve the basic metrics of a given glyph index before accessing its data. This is necessary because, in certain formats like TrueType, the metrics are stored in a different place from the glyph images proper.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="incremental">incremental</td><td class="desc">
+<p>A handle to an opaque <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a> handle provided by the client application.</p>
+</td></tr>
+<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
+<p>Index of relevant glyph.</p>
+</td></tr>
+<tr><td class="val" id="vertical">vertical</td><td class="desc">
+<p>If true, return vertical metrics.</p>
+</td></tr>
+<tr><td class="val" id="ametrics">ametrics</td><td class="desc">
+<p>This parameter is used for both input and output. The original glyph metrics, if any, in font units. If metrics are not available all the values must be set to zero.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="ametrics">ametrics</td><td class="desc">
+<p>The replacement glyph metrics in font units.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_FuncsRec_
+  {
+    <a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a>     get_glyph_data;
+    <a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a>    free_glyph_data;
+    <a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a>  get_glyph_metrics;
+
+  } <b>FT_Incremental_FuncsRec</b>;
+</pre>
+
+<p>A table of functions for accessing fonts that load data incrementally. Used in <a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a>.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="get_glyph_data">get_glyph_data</td><td class="desc">
+<p>The function to get glyph data. Must not be null.</p>
+</td></tr>
+<tr><td class="val" id="free_glyph_data">free_glyph_data</td><td class="desc">
+<p>The function to release glyph data. Must not be null.</p>
+</td></tr>
+<tr><td class="val" id="get_glyph_metrics">get_glyph_metrics</td><td class="desc">
+<p>The function to get glyph metrics. May be null if the font does not provide overriding glyph metrics.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_InterfaceRec_
+  {
+    <span class="keyword">const</span> <a href="ft2-incremental.html#FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</a>*  funcs;
+    <a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a>                  object;
+
+  } <b>FT_Incremental_InterfaceRec</b>;
+</pre>
+
+<p>A structure to be used with <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> to indicate that the user wants to support incremental glyph loading. You should use it with <a href="ft2-parameter_tags.html#FT_PARAM_TAG_INCREMENTAL">FT_PARAM_TAG_INCREMENTAL</a> as in the following example:</p>
+<pre class="colored">
+  FT_Incremental_InterfaceRec  inc_int;
+  FT_Parameter                 parameter;
+  FT_Open_Args                 open_args;
+
+
+  // set up incremental descriptor
+  inc_int.funcs  = my_funcs;
+  inc_int.object = my_object;
+
+  // set up optional parameter
+  parameter.tag  = FT_PARAM_TAG_INCREMENTAL;
+  parameter.data = &amp;inc_int;
+
+  // set up FT_Open_Args structure
+  open_args.flags      = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
+  open_args.pathname   = my_font_pathname;
+  open_args.num_params = 1;
+  open_args.params     = &amp;parameter; // we use one optional argument
+
+  // open the font
+  error = FT_Open_Face( library, &amp;open_args, index, &amp;face );
+  ...
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Incremental_Interface">FT_Incremental_Interface</h3>
+<p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a>*   <b>FT_Incremental_Interface</b>;
+</pre>
+
+<p>A pointer to an <a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-index.html freetype-2.10.0.aros/docs/reference/ft2-index.html
--- freetype-2.10.0/docs/reference/ft2-index.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-index.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<table class="index">
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_ATOM</a></td><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNFITTED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Done">FT_Stroker_Done</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_CARDINAL</a></td><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNSCALED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_INTEGER</a></td><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_Kerning_Mode</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Export">FT_Stroker_Export</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_NONE</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_DEFAULT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_Property">BDF_Property</a></td><td><a href="ft2-header_file_macros.html#FT_LCD_FILTER_H">FT_LCD_FILTER_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyRec">BDF_PropertyRec</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PropertyType</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY1</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_Stroker_LineCap</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_FaceDict">CID_FaceDict</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LIGHT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_Stroker_LineJoin</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_FaceDictRec">CID_FaceDictRec</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineTo">FT_Stroker_LineTo</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_FaceInfo">CID_FaceInfo</a></td><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LcdFilter</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_New">FT_Stroker_New</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_FaceInfoRec">CID_FaceInfoRec</a></td><td><a href="ft2-header_file_macros.html#FT_LIST_H">FT_LIST_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ParseOutline">FT_Stroker_ParseOutline</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_FontDict">CID_FontDict</a></td><td><a href="ft2-base_interface.html#FT_Library">FT_Library</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Rewind">FT_Stroker_Rewind</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#CID_Info">CID_Info</a></td><td><a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Set">FT_Stroker_Set</a></td></tr>
+<tr><td><a href="ft2-properties.html#darkening-parameters">darkening-parameters</a></td><td><a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a></td></tr>
+<tr><td><a href="ft2-properties.html#default-script">default-script</a></td><td><a href="ft2-version.html#FT_Library_Version">FT_Library_Version</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_2X2</a></td></tr>
+<tr><td><a href="ft2-version.html#FREETYPE_XXX">FREETYPE_MAJOR</a></td><td><a href="ft2-list_processing.html#FT_List">FT_List</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a></td></tr>
+<tr><td><a href="ft2-version.html#FREETYPE_XXX">FREETYPE_MINOR</a></td><td><a href="ft2-list_processing.html#FT_List_Add">FT_List_Add</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a></td></tr>
+<tr><td><a href="ft2-version.html#FREETYPE_XXX">FREETYPE_PATCH</a></td><td><a href="ft2-list_processing.html#FT_List_Destructor">FT_List_Destructor</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a></td></tr>
+<tr><td><a href="ft2-version.html#FREETYPE_XXX">FREETYPE_XXX</a></td><td><a href="ft2-list_processing.html#FT_List_Finalize">FT_List_Finalize</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_SCALE</a></td></tr>
+<tr><td><a href="ft2-sizes_management.html#FT_Activate_Size">FT_Activate_Size</a></td><td><a href="ft2-list_processing.html#FT_List_Find">FT_List_Find</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a></td></tr>
+<tr><td><a href="ft2-quick_advance.html#FT_ADVANCE_FLAG_FAST_ONLY">FT_ADVANCE_FLAG_FAST_ONLY</a></td><td><a href="ft2-list_processing.html#FT_List_Insert">FT_List_Insert</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_ADVANCES_H">FT_ADVANCES_H</a></td><td><a href="ft2-list_processing.html#FT_List_Iterate">FT_List_Iterate</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XY_SCALE</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Add_Default_Modules">FT_Add_Default_Modules</a></td><td><a href="ft2-list_processing.html#FT_List_Iterator">FT_List_Iterator</a></td><td><a href="ft2-base_interface.html#FT_SubGlyph">FT_SubGlyph</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Add_Module">FT_Add_Module</a></td><td><a href="ft2-list_processing.html#FT_List_Remove">FT_List_Remove</a></td><td><a href="ft2-header_file_macros.html#FT_SYNTHESIS_H">FT_SYNTHESIS_H</a></td></tr>
+<tr><td><a href="ft2-system_interface.html#FT_Alloc_Func">FT_Alloc_Func</a></td><td><a href="ft2-list_processing.html#FT_List_Up">FT_List_Up</a></td><td><a href="ft2-header_file_macros.html#FT_SYSTEM_H">FT_SYSTEM_H</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_ANGLE_2PI">FT_ANGLE_2PI</a></td><td><a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a></td><td><a href="ft2-basic_types.html#FT_Tag">FT_Tag</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_ANGLE_PI">FT_ANGLE_PI</a></td><td><a href="ft2-list_processing.html#FT_ListNodeRec">FT_ListNodeRec</a></td><td><a href="ft2-computations.html#FT_Tan">FT_Tan</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_ANGLE_PI2">FT_ANGLE_PI2</a></td><td><a href="ft2-list_processing.html#FT_ListRec">FT_ListRec</a></td><td><a href="ft2-header_file_macros.html#FT_TRIGONOMETRY_H">FT_TRIGONOMETRY_H</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_ANGLE_PI4">FT_ANGLE_PI4</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_BITMAP_METRICS_ONLY</a></td><td><a href="ft2-header_file_macros.html#FT_TRUETYPE_DRIVER_H">FT_TRUETYPE_DRIVER_H</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_Angle">FT_Angle</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_COLOR</a></td><td><a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TRUETYPE_ENGINE_TYPE_NONE</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_Angle_Diff">FT_Angle_Diff</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_COMPUTE_METRICS</a></td><td><a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TRUETYPE_ENGINE_TYPE_PATENTED</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_Atan2">FT_Atan2</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_CROP_BITMAP</a></td><td><a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TRUETYPE_ENGINE_TYPE_UNPATENTED</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Attach_File">FT_Attach_File</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_DEFAULT</a></td><td><a href="ft2-header_file_macros.html#FT_TRUETYPE_IDS_H">FT_TRUETYPE_IDS_H</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Attach_Stream">FT_Attach_Stream</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_FORCE_AUTOHINT</a></td><td><a href="ft2-header_file_macros.html#FT_TRUETYPE_TABLES_H">FT_TRUETYPE_TABLES_H</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_AUTOHINTER_H">FT_AUTOHINTER_H</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH</a></td><td><a href="ft2-header_file_macros.html#FT_TRUETYPE_TAGS_H">FT_TRUETYPE_TAGS_H</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_CJK</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_IGNORE_TRANSFORM</a></td><td><a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TrueTypeEngineType</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_INDIC</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_LINEAR_DESIGN</a></td><td><a href="ft2-gx_validation.html#FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_LATIN</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_MONOCHROME</a></td><td><a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_NONE</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_AUTOHINT</a></td><td><a href="ft2-header_file_macros.html#FT_TYPE1_TABLES_H">FT_TYPE1_TABLES_H</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_XXX</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_BITMAP</a></td><td><a href="ft2-header_file_macros.html#FT_TYPES_H">FT_TYPES_H</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_BBOX_H">FT_BBOX_H</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_HINTING</a></td><td><a href="ft2-basic_types.html#FT_UFWord">FT_UFWord</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_BBox">FT_BBox</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_RECURSE</a></td><td><a href="ft2-basic_types.html#FT_UInt">FT_UInt</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_BDF_H">FT_BDF_H</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a></td><td><a href="ft2-basic_types.html#FT_UInt16">FT_UInt16</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_BITMAP_H">FT_BITMAP_H</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_PEDANTIC</a></td><td><a href="ft2-basic_types.html#FT_UInt32">FT_UInt32</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a></td><td><a href="ft2-basic_types.html#FT_UInt64">FT_UInt64</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_Bitmap_Convert">FT_Bitmap_Convert</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_LCD</a></td><td><a href="ft2-basic_types.html#FT_ULong">FT_ULong</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_Bitmap_Copy">FT_Bitmap_Copy</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_LCD_V</a></td><td><a href="ft2-basic_types.html#FT_UnitVector">FT_UnitVector</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_Bitmap_Done">FT_Bitmap_Done</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_LIGHT</a></td><td><a href="ft2-basic_types.html#FT_UShort">FT_UShort</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_Bitmap_Embolden">FT_Bitmap_Embolden</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_MODE">FT_LOAD_TARGET_MODE</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_APPLE</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_Bitmap_Init">FT_Bitmap_Init</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_MONO</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_BASE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Bitmap_Size">FT_Bitmap_Size</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_NORMAL</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_bsln</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_BitmapGlyph">FT_BitmapGlyph</a></td><td><a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_XXX</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERN</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_BitmapGlyphRec">FT_BitmapGlyphRec</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_VERTICAL_LAYOUT</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Bool">FT_Bool</a></td><td><a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_XXX</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_feat</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Byte">FT_Byte</a></td><td><a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_GDEF</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a></td><td><a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_GPOS</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_BZIP2_H">FT_BZIP2_H</a></td><td><a href="ft2-truetype_tables.html#FT_Load_Sfnt_Table">FT_Load_Sfnt_Table</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_GSUB</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CACHE_H">FT_CACHE_H</a></td><td><a href="ft2-basic_types.html#FT_Long">FT_Long</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_GX</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_CeilFix">FT_CeilFix</a></td><td><a href="ft2-header_file_macros.html#FT_LZW_H">FT_LZW_H</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CFF_DRIVER_H">FT_CFF_DRIVER_H</a></td><td><a href="ft2-header_file_macros.html#FT_MAC_H">FT_MAC_H</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Char">FT_Char</a></td><td><a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_JSTF</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a></td><td><a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_just</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_CharMapRec">FT_CharMapRec</a></td><td><a href="ft2-computations.html#FT_Matrix_Invert">FT_Matrix_Invert</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_kern</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CID_H">FT_CID_H</a></td><td><a href="ft2-computations.html#FT_Matrix_Multiply">FT_Matrix_Multiply</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_lcar</a></td></tr>
+<tr><td><a href="ft2-gx_validation.html#FT_ClassicKern_Free">FT_ClassicKern_Free</a></td><td><a href="ft2-system_interface.html#FT_Memory">FT_Memory</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_MATH</a></td></tr>
+<tr><td><a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a></td><td><a href="ft2-system_interface.html#FT_MemoryRec">FT_MemoryRec</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_MS</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CONFIG_CONFIG_H">FT_CONFIG_CONFIG_H</a></td><td><a href="ft2-multiple_masters.html#FT_MM_Axis">FT_MM_Axis</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_mort</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CONFIG_MODULES_H">FT_CONFIG_MODULES_H</a></td><td><a href="ft2-multiple_masters.html#FT_MM_Var">FT_MM_Var</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_morx</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CONFIG_OPTIONS_H">FT_CONFIG_OPTIONS_H</a></td><td><a href="ft2-header_file_macros.html#FT_MODULE_ERRORS_H">FT_MODULE_ERRORS_H</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_OT</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_CONFIG_STANDARD_LIBRARY_H">FT_CONFIG_STANDARD_LIBRARY_H</a></td><td><a href="ft2-header_file_macros.html#FT_MODULE_H">FT_MODULE_H</a></td><td><a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_OTXXX</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_Cos">FT_Cos</a></td><td><a href="ft2-module_management.html#FT_Module">FT_Module</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_opbd</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Data">FT_Data</a></td><td><a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_prop</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_DivFix">FT_DivFix</a></td><td><a href="ft2-module_management.html#FT_Module_Constructor">FT_Module_Constructor</a></td><td><a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_trak</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a></td><td><a href="ft2-module_management.html#FT_Module_Destructor">FT_Module_Destructor</a></td><td><a href="ft2-multiple_masters.html#FT_VAR_AXIS_FLAG_XXX">FT_VAR_AXIS_FLAG_HIDDEN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Done_FreeType">FT_Done_FreeType</a></td><td><a href="ft2-module_management.html#FT_Module_Requester">FT_Module_Requester</a></td><td><a href="ft2-multiple_masters.html#FT_VAR_AXIS_FLAG_XXX">FT_VAR_AXIS_FLAG_XXX</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Done_Glyph">FT_Done_Glyph</a></td><td><a href="ft2-header_file_macros.html#FT_MULTIPLE_MASTERS_H">FT_MULTIPLE_MASTERS_H</a></td><td><a href="ft2-multiple_masters.html#FT_Var_Axis">FT_Var_Axis</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Done_Library">FT_Done_Library</a></td><td><a href="ft2-computations.html#FT_MulDiv">FT_MulDiv</a></td><td><a href="ft2-multiple_masters.html#FT_Var_Named_Style">FT_Var_Named_Style</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Done_MM_Var">FT_Done_MM_Var</a></td><td><a href="ft2-computations.html#FT_MulFix">FT_MulFix</a></td><td><a href="ft2-basic_types.html#FT_Vector">FT_Vector</a></td></tr>
+<tr><td><a href="ft2-sizes_management.html#FT_Done_Size">FT_Done_Size</a></td><td><a href="ft2-multiple_masters.html#FT_Multi_Master">FT_Multi_Master</a></td><td><a href="ft2-computations.html#FT_Vector_From_Polar">FT_Vector_From_Polar</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_DRIVER_H">FT_DRIVER_H</a></td><td><a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a></td><td><a href="ft2-computations.html#FT_Vector_Length">FT_Vector_Length</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Driver">FT_Driver</a></td><td><a href="ft2-mac_specific.html#FT_New_Face_From_FOND">FT_New_Face_From_FOND</a></td><td><a href="ft2-computations.html#FT_Vector_Polarize">FT_Vector_Polarize</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_ENC_TAG">FT_ENC_TAG</a></td><td><a href="ft2-mac_specific.html#FT_New_Face_From_FSRef">FT_New_Face_From_FSRef</a></td><td><a href="ft2-computations.html#FT_Vector_Rotate">FT_Vector_Rotate</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_ADOBE_CUSTOM</a></td><td><a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a></td><td><a href="ft2-computations.html#FT_Vector_Transform">FT_Vector_Transform</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_ADOBE_EXPERT</a></td><td><a href="ft2-module_management.html#FT_New_Library">FT_New_Library</a></td><td><a href="ft2-computations.html#FT_Vector_Unit">FT_Vector_Unit</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_ADOBE_LATIN_1</a></td><td><a href="ft2-base_interface.html#FT_New_Memory_Face">FT_New_Memory_Face</a></td><td><a href="ft2-header_file_macros.html#FT_WINFONTS_H">FT_WINFONTS_H</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_ADOBE_STANDARD</a></td><td><a href="ft2-sizes_management.html#FT_New_Size">FT_New_Size</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_Header">FT_WinFNT_Header</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_APPLE_ROMAN</a></td><td><a href="ft2-basic_types.html#FT_Offset">FT_Offset</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_BIG5</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_DRIVER</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1250</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_JOHAB</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_MEMORY</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1251</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_BIG5</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_PARAMS</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1252</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_GB2312</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_PATHNAME</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1253</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_JOHAB</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_STREAM</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1254</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_SJIS</a></td><td><a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_XXX</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1255</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_SYMBOL</a></td><td><a href="ft2-header_file_macros.html#FT_OPENTYPE_VALIDATE_H">FT_OPENTYPE_VALIDATE_H</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1256</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_WANSUNG</a></td><td><a href="ft2-base_interface.html#FT_Open_Args">FT_Open_Args</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1257</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_NONE</a></td><td><a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1258</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_OLD_LATIN_2</a></td><td><a href="ft2-ot_validation.html#FT_OpenType_Free">FT_OpenType_Free</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP1361</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_PRC</a></td><td><a href="ft2-ot_validation.html#FT_OpenType_Validate">FT_OpenType_Validate</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP874</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_SJIS</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_FILL_LEFT</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP932</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_UNICODE</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_FILL_RIGHT</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP936</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_WANSUNG</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_NONE</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP949</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Encoding">FT_Encoding</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_POSTSCRIPT</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_CP950</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_ERRORS_H">FT_ERRORS_H</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_TRUETYPE</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_DEFAULT</a></td></tr>
+<tr><td><a href="ft2-error_code_values.html#FT_Err_XXX">FT_Err_XXX</a></td><td><a href="ft2-outline_processing.html#FT_Orientation">FT_Orientation</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_MAC</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Error">FT_Error</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_EVEN_ODD_FILL</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_OEM</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_F26Dot6">FT_F26Dot6</a></td><td><a href="ft2-header_file_macros.html#FT_OUTLINE_H">FT_OUTLINE_H</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_SYMBOL</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_F2Dot14">FT_F2Dot14</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_HIGH_PRECISION</a></td><td><a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_XXX">FT_WinFNT_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_IGNORE_DROPOUTS</a></td><td><a href="ft2-cache_subsystem.html#FTC_CMapCache">FTC_CMapCache</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_COLOR</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_INCLUDE_STUBS</a></td><td><a href="ft2-cache_subsystem.html#FTC_CMapCache_Lookup">FTC_CMapCache_Lookup</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_EXTERNAL_STREAM</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_NONE</a></td><td><a href="ft2-cache_subsystem.html#FTC_CMapCache_New">FTC_CMapCache_New</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FAST_GLYPHS</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_OWNER</a></td><td><a href="ft2-cache_subsystem.html#FTC_Face_Requester">FTC_Face_Requester</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_SIZES</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_REVERSE_FILL</a></td><td><a href="ft2-cache_subsystem.html#FTC_FaceID">FTC_FaceID</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_WIDTH</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_SINGLE_PASS</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageCache">FTC_ImageCache</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_GLYPH_NAMES</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_SMART_DROPOUTS</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageCache_Lookup">FTC_ImageCache_Lookup</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_HINTER</a></td><td><a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_XXX</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageCache_LookupScaler">FTC_ImageCache_LookupScaler</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_HORIZONTAL</a></td><td><a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageCache_New">FTC_ImageCache_New</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_KERNING</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Check">FT_Outline_Check</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageType">FTC_ImageType</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_MULTIPLE_MASTERS</a></td><td><a href="ft2-outline_processing.html#FT_Outline_ConicToFunc">FT_Outline_ConicToFunc</a></td><td><a href="ft2-cache_subsystem.html#FTC_ImageTypeRec">FTC_ImageTypeRec</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_SCALABLE</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Copy">FT_Outline_Copy</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager">FTC_Manager</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_SFNT</a></td><td><a href="ft2-outline_processing.html#FT_Outline_CubicToFunc">FT_Outline_CubicToFunc</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_Done">FTC_Manager_Done</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_TRICKY</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Decompose">FT_Outline_Decompose</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_LookupFace">FTC_Manager_LookupFace</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VARIATION</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Done">FT_Outline_Done</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_LookupSize">FTC_Manager_LookupSize</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VERTICAL</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Embolden">FT_Outline_Embolden</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_New">FTC_Manager_New</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_XXX</a></td><td><a href="ft2-outline_processing.html#FT_Outline_EmboldenXY">FT_Outline_EmboldenXY</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_RemoveFaceID">FTC_Manager_RemoveFaceID</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Face">FT_Face</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Funcs">FT_Outline_Funcs</a></td><td><a href="ft2-cache_subsystem.html#FTC_Manager_Reset">FTC_Manager_Reset</a></td></tr>
+<tr><td><a href="ft2-version.html#FT_Face_CheckTrueTypePatents">FT_Face_CheckTrueTypePatents</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a></td><td><a href="ft2-cache_subsystem.html#FTC_Node">FTC_Node</a></td></tr>
+<tr><td><a href="ft2-glyph_variants.html#FT_Face_GetCharsOfVariant">FT_Face_GetCharsOfVariant</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</a></td><td><a href="ft2-cache_subsystem.html#FTC_Node_Unref">FTC_Node_Unref</a></td></tr>
+<tr><td><a href="ft2-glyph_variants.html#FT_Face_GetCharVariantIndex">FT_Face_GetCharVariantIndex</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_CBox">FT_Outline_Get_CBox</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBit">FTC_SBit</a></td></tr>
+<tr><td><a href="ft2-glyph_variants.html#FT_Face_GetCharVariantIsDefault">FT_Face_GetCharVariantIsDefault</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_Orientation">FT_Outline_Get_Orientation</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBitCache">FTC_SBitCache</a></td></tr>
+<tr><td><a href="ft2-glyph_variants.html#FT_Face_GetVariantSelectors">FT_Face_GetVariantSelectors</a></td><td><a href="ft2-glyph_stroker.html#FT_Outline_GetInsideBorder">FT_Outline_GetInsideBorder</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBitCache_Lookup">FTC_SBitCache_Lookup</a></td></tr>
+<tr><td><a href="ft2-glyph_variants.html#FT_Face_GetVariantsOfChar">FT_Face_GetVariantsOfChar</a></td><td><a href="ft2-glyph_stroker.html#FT_Outline_GetOutsideBorder">FT_Outline_GetOutsideBorder</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBitCache_LookupScaler">FTC_SBitCache_LookupScaler</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Face_Internal">FT_Face_Internal</a></td><td><a href="ft2-outline_processing.html#FT_Outline_LineToFunc">FT_Outline_LineToFunc</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBitCache_New">FTC_SBitCache_New</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a></td><td><a href="ft2-outline_processing.html#FT_Outline_MoveToFunc">FT_Outline_MoveToFunc</a></td><td><a href="ft2-cache_subsystem.html#FTC_SBitRec">FTC_SBitRec</a></td></tr>
+<tr><td><a href="ft2-version.html#FT_Face_SetUnpatentedHinting">FT_Face_SetUnpatentedHinting</a></td><td><a href="ft2-outline_processing.html#FT_Outline_New">FT_Outline_New</a></td><td><a href="ft2-cache_subsystem.html#FTC_Scaler">FTC_Scaler</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Render">FT_Outline_Render</a></td><td><a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Reverse">FT_Outline_Reverse</a></td><td><a href="ft2-properties.html#fallback-script">fallback-script</a></td></tr>
+<tr><td><a href="ft2-computations.html#FT_FloorFix">FT_FloorFix</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Transform">FT_Outline_Transform</a></td><td><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_FONT_FORMATS_H">FT_FONT_FORMATS_H</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Translate">FT_Outline_Translate</a></td><td><a href="ft2-properties.html#hinting-engine">hinting-engine</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_FREETYPE_H">FT_FREETYPE_H</a></td><td><a href="ft2-glyph_management.html#FT_OutlineGlyph">FT_OutlineGlyph</a></td><td><a href="ft2-properties.html#increase-x-height">increase-x-height</a></td></tr>
+<tr><td><a href="ft2-system_interface.html#FT_Free_Func">FT_Free_Func</a></td><td><a href="ft2-glyph_management.html#FT_OutlineGlyphRec">FT_OutlineGlyphRec</a></td><td><a href="ft2-properties.html#interpreter-version">interpreter-version</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_BITMAP_EMBEDDING_ONLY</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</a></td><td><a href="ft2-properties.html#no-long-family-names">no-long-family-names</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_EDITABLE_EMBEDDING</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</a></td><td><a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_INSTALLABLE_EMBEDDING</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_INCREMENTAL">FT_PARAM_TAG_INCREMENTAL</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_BLUE_FUZZ</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_NO_SUBSETTING</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_BLUE_SCALE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_RANDOM_SEED">FT_PARAM_TAG_RANDOM_SEED</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_BLUE_SHIFT</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_STEM_DARKENING">FT_PARAM_TAG_STEM_DARKENING</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_BLUE_VALUE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FSTYPE_XXX">FT_FSTYPE_XXX</a></td><td><a href="ft2-parameter_tags.html#FT_PARAM_TAG_UNPATENTED_HINTING">FT_PARAM_TAG_UNPATENTED_HINTING</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_CHAR_STRING</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_FWord">FT_FWord</a></td><td><a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_CHAR_STRING_KEY</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_DO_GRAY</a></td><td><a href="ft2-header_file_macros.html#FT_PCF_DRIVER_H">FT_PCF_DRIVER_H</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_ENCODING_ENTRY</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_DO_GRIDFIT</a></td><td><a href="ft2-header_file_macros.html#FT_PFR_H">FT_PFR_H</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_ENCODING_TYPE</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GASP_H">FT_GASP_H</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_BGRA</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FAMILY_BLUE</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_NO_TABLE</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FAMILY_NAME</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_SYMMETRIC_GRIDFIT</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY2</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FAMILY_OTHER_BLUE</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_SYMMETRIC_SMOOTHING</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_GRAY4</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FONT_BBOX</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_GASP_XXX">FT_GASP_XXX</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_LCD</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FONT_MATRIX</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Generic">FT_Generic</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_LCD_V</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FONT_NAME</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Generic_Finalizer">FT_Generic_Finalizer</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_MONO</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FONT_TYPE</a></td></tr>
+<tr><td><a href="ft2-quick_advance.html#FT_Get_Advance">FT_Get_Advance</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_PIXEL_MODE_NONE</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FORCE_BOLD</a></td></tr>
+<tr><td><a href="ft2-quick_advance.html#FT_Get_Advances">FT_Get_Advances</a></td><td><a href="ft2-basic_types.html#FT_Pixel_Mode">FT_Pixel_Mode</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FS_TYPE</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#FT_Get_BDF_Charset_ID">FT_Get_BDF_Charset_ID</a></td><td><a href="ft2-basic_types.html#FT_Pointer">FT_Pointer</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_FULL_NAME</a></td></tr>
+<tr><td><a href="ft2-bdf_fonts.html#FT_Get_BDF_Property">FT_Get_BDF_Property</a></td><td><a href="ft2-basic_types.html#FT_Pos">FT_Pos</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_IS_FIXED_PITCH</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Char_Index">FT_Get_Char_Index</a></td><td><a href="ft2-properties.html#FT_Prop_GlyphToScriptMap">FT_Prop_GlyphToScriptMap</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_ITALIC_ANGLE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Charmap_Index">FT_Get_Charmap_Index</a></td><td><a href="ft2-properties.html#FT_Prop_IncreaseXHeight">FT_Prop_IncreaseXHeight</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_LANGUAGE_GROUP</a></td></tr>
+<tr><td><a href="ft2-cid_fonts.html#FT_Get_CID_From_Glyph_Index">FT_Get_CID_From_Glyph_Index</a></td><td><a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_LEN_IV</a></td></tr>
+<tr><td><a href="ft2-cid_fonts.html#FT_Get_CID_Is_Internally_CID_Keyed">FT_Get_CID_Is_Internally_CID_Keyed</a></td><td><a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_MIN_FEATURE</a></td></tr>
+<tr><td><a href="ft2-cid_fonts.html#FT_Get_CID_Registry_Ordering_Supplement">FT_Get_CID_Registry_Ordering_Supplement</a></td><td><a href="ft2-basic_types.html#FT_PtrDist">FT_PtrDist</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NOTICE</a></td></tr>
+<tr><td><a href="ft2-truetype_tables.html#FT_Get_CMap_Format">FT_Get_CMap_Format</a></td><td><a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_AA</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_BLUE_VALUES</a></td></tr>
+<tr><td><a href="ft2-truetype_tables.html#FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</a></td><td><a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_CLIP</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_CHAR_STRINGS</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_First_Char">FT_Get_First_Char</a></td><td><a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_DEFAULT</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_FAMILY_BLUES</a></td></tr>
+<tr><td><a href="ft2-font_formats.html#FT_Get_Font_Format">FT_Get_Font_Format</a></td><td><a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_DIRECT</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_FAMILY_OTHER_BLUES</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_FSType_Flags">FT_Get_FSType_Flags</a></td><td><a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_XXX</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_OTHER_BLUES</a></td></tr>
+<tr><td><a href="ft2-gasp_table.html#FT_Get_Gasp">FT_Get_Gasp</a></td><td><a href="ft2-raster.html#FT_Raster">FT_Raster</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_STEM_SNAP_H</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Get_Glyph">FT_Get_Glyph</a></td><td><a href="ft2-raster.html#FT_Raster_BitSet_Func">FT_Raster_BitSet_Func</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_STEM_SNAP_V</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a></td><td><a href="ft2-raster.html#FT_Raster_BitTest_Func">FT_Raster_BitTest_Func</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_NUM_SUBRS</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a></td><td><a href="ft2-raster.html#FT_Raster_DoneFunc">FT_Raster_DoneFunc</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_OTHER_BLUE</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_MM_Blend_Coordinates">FT_Get_MM_Blend_Coordinates</a></td><td><a href="ft2-raster.html#FT_Raster_Funcs">FT_Raster_Funcs</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_PAINT_TYPE</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_MM_Var">FT_Get_MM_Var</a></td><td><a href="ft2-raster.html#FT_Raster_NewFunc">FT_Raster_NewFunc</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_PASSWORD</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Get_Module">FT_Get_Module</a></td><td><a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_RND_STEM_UP</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_Multi_Master">FT_Get_Multi_Master</a></td><td><a href="ft2-raster.html#FT_Raster_RenderFunc">FT_Raster_RenderFunc</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_STD_HW</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Name_Index">FT_Get_Name_Index</a></td><td><a href="ft2-raster.html#FT_Raster_ResetFunc">FT_Raster_ResetFunc</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_STD_VW</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Next_Char">FT_Get_Next_Char</a></td><td><a href="ft2-raster.html#FT_Raster_SetModeFunc">FT_Raster_SetModeFunc</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_STEM_SNAP_H</a></td></tr>
+<tr><td><a href="ft2-pfr_fonts.html#FT_Get_PFR_Advance">FT_Get_PFR_Advance</a></td><td><a href="ft2-header_file_macros.html#FT_RENDER_H">FT_RENDER_H</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_STEM_SNAP_V</a></td></tr>
+<tr><td><a href="ft2-pfr_fonts.html#FT_Get_PFR_Kerning">FT_Get_PFR_Kerning</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_SUBR</a></td></tr>
+<tr><td><a href="ft2-pfr_fonts.html#FT_Get_PFR_Metrics">FT_Get_PFR_Metrics</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD_V</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_UNDERLINE_POSITION</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Postscript_Name">FT_Get_Postscript_Name</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LIGHT</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_UNDERLINE_THICKNESS</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#FT_Get_PS_Font_Info">FT_Get_PS_Font_Info</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_MONO</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_UNIQUE_ID</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#FT_Get_PS_Font_Private">FT_Get_PS_Font_Private</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_NORMAL</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_VERSION</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#FT_Get_PS_Font_Value">FT_Get_PS_Font_Value</a></td><td><a href="ft2-system_interface.html#FT_Realloc_Func">FT_Realloc_Func</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_DICT_WEIGHT</a></td></tr>
+<tr><td><a href="ft2-module_management.html#FT_Get_Renderer">FT_Get_Renderer</a></td><td><a href="ft2-base_interface.html#FT_Reference_Face">FT_Reference_Face</a></td><td><a href="ft2-type1_tables.html#PS_Dict_Keys">PS_Dict_Keys</a></td></tr>
+<tr><td><a href="ft2-sfnt_names.html#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a></td><td><a href="ft2-module_management.html#FT_Reference_Library">FT_Reference_Library</a></td><td><a href="ft2-type1_tables.html#PS_FontInfo">PS_FontInfo</a></td></tr>
+<tr><td><a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</a></td><td><a href="ft2-module_management.html#FT_Remove_Module">FT_Remove_Module</a></td><td><a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a></td></tr>
+<tr><td><a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</a></td><td><a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a></td><td><a href="ft2-type1_tables.html#PS_Private">PS_Private</a></td></tr>
+<tr><td><a href="ft2-truetype_tables.html#FT_Get_Sfnt_Table">FT_Get_Sfnt_Table</a></td><td><a href="ft2-base_interface.html#FT_Render_Mode">FT_Render_Mode</a></td><td><a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_SubGlyph_Info">FT_Get_SubGlyph_Info</a></td><td><a href="ft2-module_management.html#FT_Renderer">FT_Renderer</a></td><td><a href="ft2-properties.html#random-seed">random-seed</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Get_Track_Kerning">FT_Get_Track_Kerning</a></td><td><a href="ft2-module_management.html#FT_Renderer_Class">FT_Renderer_Class</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_BLUE_SCALE</a></td></tr>
+<tr><td><a href="ft2-truetype_engine.html#FT_Get_TrueType_Engine_Type">FT_Get_TrueType_Engine_Type</a></td><td><a href="ft2-base_interface.html#FT_Request_Size">FT_Request_Size</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_BLUE_SHIFT</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_Var_Axis_Flags">FT_Get_Var_Axis_Flags</a></td><td><a href="ft2-computations.html#FT_RoundFix">FT_RoundFix</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_BLUE_VALUES</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_Var_Blend_Coordinates">FT_Get_Var_Blend_Coordinates</a></td><td><a href="ft2-base_interface.html#FT_Select_Charmap">FT_Select_Charmap</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_FAMILY_BLUES</a></td></tr>
+<tr><td><a href="ft2-multiple_masters.html#FT_Get_Var_Design_Coordinates">FT_Get_Var_Design_Coordinates</a></td><td><a href="ft2-base_interface.html#FT_Select_Size">FT_Select_Size</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_FAMILY_OTHER_BLUES</a></td></tr>
+<tr><td><a href="ft2-winfnt_fonts.html#FT_Get_WinFNT_Header">FT_Get_WinFNT_Header</a></td><td><a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_FORCE_BOLD</a></td></tr>
+<tr><td><a href="ft2-mac_specific.html#FT_GetFile_From_Mac_ATS_Name">FT_GetFile_From_Mac_ATS_Name</a></td><td><a href="ft2-base_interface.html#FT_Set_Charmap">FT_Set_Charmap</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_ITALIC_ANGLE</a></td></tr>
+<tr><td><a href="ft2-mac_specific.html#FT_GetFile_From_Mac_Name">FT_GetFile_From_Mac_Name</a></td><td><a href="ft2-module_management.html#FT_Set_Debug_Hook">FT_Set_Debug_Hook</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_OTHER_BLUES</a></td></tr>
+<tr><td><a href="ft2-mac_specific.html#FT_GetFilePath_From_Mac_ATS_Name">FT_GetFilePath_From_Mac_ATS_Name</a></td><td><a href="ft2-module_management.html#FT_Set_Default_Properties">FT_Set_Default_Properties</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_STANDARD_HEIGHT</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_GRIDFIT</a></td><td><a href="ft2-multiple_masters.html#FT_Set_MM_Blend_Coordinates">FT_Set_MM_Blend_Coordinates</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_STANDARD_WIDTH</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_PIXELS</a></td><td><a href="ft2-multiple_masters.html#FT_Set_MM_Design_Coordinates">FT_Set_MM_Design_Coordinates</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_STEM_SNAP_HEIGHTS</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_SUBPIXELS</a></td><td><a href="ft2-multiple_masters.html#FT_Set_Named_Instance">FT_Set_Named_Instance</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_STEM_SNAP_WIDTHS</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_TRUNCATE</a></td><td><a href="ft2-base_interface.html#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_UNDERLINE_POSITION</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_UNSCALED</a></td><td><a href="ft2-module_management.html#FT_Set_Renderer">FT_Set_Renderer</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_BLEND_UNDERLINE_THICKNESS</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_BITMAP</a></td><td><a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a></td><td><a href="ft2-type1_tables.html#T1_Blend_Flags">T1_Blend_Flags</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_COMPOSITE</a></td><td><a href="ft2-multiple_masters.html#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_ENCODING_TYPE_ARRAY</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_NONE</a></td><td><a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_ENCODING_TYPE_EXPERT</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_HEAD</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_ENCODING_TYPE_ISOLATIN1</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_PLOTTER</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_HHEA</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_ENCODING_TYPE_NONE</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GLYPH_H">FT_GLYPH_H</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_MAXP</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_ENCODING_TYPE_STANDARD</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a></td><td><a href="ft2-header_file_macros.html#FT_SFNT_NAMES_H">FT_SFNT_NAMES_H</a></td><td><a href="ft2-type1_tables.html#T1_EncodingType">T1_EncodingType</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_Glyph_BBox_Mode</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_OS2</a></td><td><a href="ft2-type1_tables.html#T1_FontInfo">T1_FontInfo</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Copy">FT_Glyph_Copy</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_PCLT</a></td><td><a href="ft2-type1_tables.html#T1_Private">T1_Private</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_POST</a></td><td><a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_CUSTOM</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_SFNT_VHEA</a></td><td><a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_EXPERT</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Glyph_Metrics">FT_Glyph_Metrics</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Table_Info">FT_Sfnt_Table_Info</a></td><td><a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_LATIN_1</a></td></tr>
+<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_Stroke">FT_Glyph_Stroke</a></td><td><a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_Sfnt_Tag</a></td><td><a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_STANDARD</a></td></tr>
+<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_StrokeBorder">FT_Glyph_StrokeBorder</a></td><td><a href="ft2-sfnt_names.html#FT_SfntLangTag">FT_SfntLangTag</a></td><td><a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_To_Bitmap">FT_Glyph_To_Bitmap</a></td><td><a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_DEFAULT</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Transform">FT_Glyph_Transform</a></td><td><a href="ft2-basic_types.html#FT_Short">FT_Short</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_FULL_UNICODE</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_BBOX</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_ISO_10646</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_CELL</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_UNICODE_1_1</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_NOMINAL</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_UNICODE_2_0</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_REAL_DIM</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_UNICODE_32</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GX_VALIDATE_H">FT_GX_VALIDATE_H</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_SCALES</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_VARIANT_SELECTOR</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GZIP_H">FT_GZIP_H</a></td><td><a href="ft2-header_file_macros.html#FT_SIZES_H">FT_SIZES_H</a></td><td><a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-gzip.html#FT_Gzip_Uncompress">FT_Gzip_Uncompress</a></td><td><a href="ft2-computations.html#FT_Sin">FT_Sin</a></td><td><a href="ft2-truetype_tables.html#TT_Header">TT_Header</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_COLOR">FT_HAS_COLOR</a></td><td><a href="ft2-base_interface.html#FT_Size">FT_Size</a></td><td><a href="ft2-truetype_tables.html#TT_HoriHeader">TT_HoriHeader</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_FAST_GLYPHS">FT_HAS_FAST_GLYPHS</a></td><td><a href="ft2-base_interface.html#FT_Size_Internal">FT_Size_Internal</a></td><td><a href="ft2-properties.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_35</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_FIXED_SIZES">FT_HAS_FIXED_SIZES</a></td><td><a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a></td><td><a href="ft2-properties.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_38</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a></td><td><a href="ft2-base_interface.html#FT_Size_Request">FT_Size_Request</a></td><td><a href="ft2-properties.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_40</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_HORIZONTAL">FT_HAS_HORIZONTAL</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_Size_Request_Type</a></td><td><a href="ft2-properties.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_XXX</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_KERNING">FT_HAS_KERNING</a></td><td><a href="ft2-base_interface.html#FT_Size_RequestRec">FT_Size_RequestRec</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_10646</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_MULTIPLE_MASTERS">FT_HAS_MULTIPLE_MASTERS</a></td><td><a href="ft2-base_interface.html#FT_SizeRec">FT_SizeRec</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_7BIT_ASCII</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a></td><td><a href="ft2-base_interface.html#FT_Slot_Internal">FT_Slot_Internal</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_8859_1</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</a></td><td><a href="ft2-raster.html#FT_Span">FT_Span</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_HINTING_XXX">FT_HINTING_ADOBE</a></td><td><a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_HINTING_XXX">FT_HINTING_FREETYPE</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_LEFT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_LANGID_XXX">TT_MAC_LANGID_XXX</a></td></tr>
+<tr><td><a href="ft2-properties.html#FT_HINTING_XXX">FT_HINTING_XXX</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_RIGHT</a></td><td><a href="ft2-truetype_tables.html#TT_MaxProfile">TT_MaxProfile</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_IMAGE_H">FT_IMAGE_H</a></td><td><a href="ft2-header_file_macros.html#FT_STROKER_H">FT_STROKER_H</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_BIG_5</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_BUTT</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_JOHAB</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_INCREMENTAL_H">FT_INCREMENTAL_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_PRC</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_SQUARE</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SJIS</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_BEVEL</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SYMBOL_CS</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UCS_4</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_FIXED</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UNICODE_CS</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_VARIABLE</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_WANSUNG</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_Interface">FT_Incremental_Interface</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_BOLD</a></td><td><a href="ft2-truetype_tables.html#TT_MS_LANGID_XXX">TT_MS_LANGID_XXX</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_Metrics">FT_Incremental_Metrics</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_ITALIC</a></td><td><a href="ft2-truetype_tables.html#TT_NAME_ID_XXX">TT_NAME_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</a></td><td><a href="ft2-truetype_tables.html#TT_OS2">TT_OS2</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a></td><td><a href="ft2-system_interface.html#FT_Stream">FT_Stream</a></td><td><a href="ft2-truetype_tables.html#TT_PCLT">TT_PCLT</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int">FT_Int</a></td><td><a href="ft2-system_interface.html#FT_Stream_CloseFunc">FT_Stream_CloseFunc</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ADOBE</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int16">FT_Int16</a></td><td><a href="ft2-system_interface.html#FT_Stream_IoFunc">FT_Stream_IoFunc</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_APPLE_UNICODE</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int32">FT_Int32</a></td><td><a href="ft2-bzip2.html#FT_Stream_OpenBzip2">FT_Stream_OpenBzip2</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_CUSTOM</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int64">FT_Int64</a></td><td><a href="ft2-gzip.html#FT_Stream_OpenGzip">FT_Stream_OpenGzip</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ISO</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a></td><td><a href="ft2-lzw.html#FT_Stream_OpenLZW">FT_Stream_OpenLZW</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_FIXED_WIDTH">FT_IS_FIXED_WIDTH</a></td><td><a href="ft2-system_interface.html#FT_StreamDesc">FT_StreamDesc</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MICROSOFT</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_NAMED_INSTANCE">FT_IS_NAMED_INSTANCE</a></td><td><a href="ft2-system_interface.html#FT_StreamRec">FT_StreamRec</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_SCALABLE">FT_IS_SCALABLE</a></td><td><a href="ft2-basic_types.html#FT_String">FT_String</a></td><td><a href="ft2-truetype_tables.html#TT_Postscript">TT_Postscript</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_SFNT">FT_IS_SFNT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a></td><td><a href="ft2-truetype_tables.html#TT_UCR_XXX">TT_UCR_XXX</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_TRICKY">FT_IS_TRICKY</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a></td><td><a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ConicTo">FT_Stroker_ConicTo</a></td><td><a href="ft2-properties.html#warping">warping</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_DEFAULT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_CubicTo">FT_Stroker_CubicTo</a></td><td></td></tr>
+</table>
+<hr>
+<table class="index-toc-link"><tr><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+
+<div class="timestamp">generated on Tue May  1 23:34:43 2018</div></body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-lcd_filtering.html freetype-2.10.0.aros/docs/reference/ft2-lcd_filtering.html
--- freetype-2.10.0/docs/reference/ft2-lcd_filtering.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-lcd_filtering.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="lcd_filtering">LCD Filtering</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_LcdFilter">FT_LcdFilter</a></td><td><a href="#FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</a></td></tr>
+<tr><td><a href="#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a></td><td></td></tr>
+</table>
+
+
+<p>Should you #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your &lsquo;ftoption.h&rsquo;, which enables patented ClearType-style rendering, the LCD-optimized glyph bitmaps should be filtered to reduce color fringes inherent to this technology. The default FreeType LCD rendering uses different technology, and API described below, although available, does nothing.</p>
+<p>ClearType-style LCD rendering exploits the color-striped structure of LCD pixels, increasing the available resolution in the direction of the stripe (usually horizontal RGB) by a factor of&nbsp;3. Since these subpixels are color pixels, using them unfiltered creates severe color fringes. Use the <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a> API to specify a low-pass filter, which is then applied to subpixel-rendered bitmaps generated through <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>. The filter sacrifices some of the higher resolution to reduce color fringes, making the glyph image slightly blurrier. Positional improvements will remain.</p>
+<p>A filter should have two properties:</p>
+<p>1) It should be normalized, meaning the sum of the 5&nbsp;components should be 256 (0x100). It is possible to go above or under this target sum, however: going under means tossing out contrast, going over means invoking clamping and thereby non-linearities that increase contrast somewhat at the expense of greater distortion and color-fringing. Contrast is better enhanced through stem darkening.</p>
+<p>2) It should be color-balanced, meaning a filter &lsquo;{&nbsp;a, b, c, b, a&nbsp;}&rsquo; where a&nbsp;+ b&nbsp;=&nbsp;c. It distributes the computed coverage for one subpixel to all subpixels equally, sacrificing some won resolution but drastically reducing color-fringing. Positioning improvements remain! Note that color-fringing can only really be minimized when using a color-balanced filter and alpha-blending the glyph onto a surface in linear space; see <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>.</p>
+<p>Regarding the form, a filter can be a &lsquo;boxy&rsquo; filter or a &lsquo;beveled&rsquo; filter. Boxy filters are sharper but are less forgiving of non-ideal gamma curves of a screen (viewing angles!), beveled filters are fuzzier but more tolerant.</p>
+<p>Examples:</p>
+<p>- [0x10 0x40 0x70 0x40 0x10] is beveled and neither balanced nor normalized.</p>
+<p>- [0x1A 0x33 0x4D 0x33 0x1A] is beveled and balanced but not normalized.</p>
+<p>- [0x19 0x33 0x66 0x4c 0x19] is beveled and normalized but not balanced.</p>
+<p>- [0x00 0x4c 0x66 0x4c 0x00] is boxily beveled and normalized but not balanced.</p>
+<p>- [0x00 0x55 0x56 0x55 0x00] is boxy, normalized, and almost balanced.</p>
+<p>- [0x08 0x4D 0x56 0x4D 0x08] is beveled, normalized and, almost balanced.</p>
+<p>The filter affects glyph bitmaps rendered through <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>, <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>, and <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>. It does <i>not</i> affect the output of <a href="ft2-outline_processing.html#FT_Outline_Render">FT_Outline_Render</a> and <a href="ft2-outline_processing.html#FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</a>.</p>
+<p>If this feature is activated, the dimensions of LCD glyph bitmaps are either wider or taller than the dimensions of the corresponding outline with regard to the pixel grid. For example, for <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a>, the filter adds 3&nbsp;subpixels to the left, and 3&nbsp;subpixels to the right. The bitmap offset values are adjusted accordingly, so clients shouldn't need to modify their layout and glyph positioning code when enabling the filter.</p>
+<p>It is important to understand that linear alpha blending and gamma correction is critical for correctly rendering glyphs onto surfaces without artifacts and even more critical when subpixel rendering is involved.</p>
+<p>Each of the 3&nbsp;alpha values (subpixels) is independently used to blend one color channel. That is, red alpha blends the red channel of the text color with the red channel of the background pixel. The distribution of density values by the color-balanced filter assumes alpha blending is done in linear space; only then color artifacts cancel out.</p>
+
+<div class="section">
+<h3 id="FT_LcdFilter">FT_LcdFilter</h3>
+<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_LcdFilter_
+  {
+    <a href="ft2-lcd_filtering.html#FT_LCD_FILTER_NONE">FT_LCD_FILTER_NONE</a>    = 0,
+    <a href="ft2-lcd_filtering.html#FT_LCD_FILTER_DEFAULT">FT_LCD_FILTER_DEFAULT</a> = 1,
+    <a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LIGHT">FT_LCD_FILTER_LIGHT</a>   = 2,
+    <a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LEGACY1">FT_LCD_FILTER_LEGACY1</a> = 3,
+    <a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LEGACY">FT_LCD_FILTER_LEGACY</a>  = 16,
+
+    FT_LCD_FILTER_MAX   /* do not remove */
+
+  } <b>FT_LcdFilter</b>;
+</pre>
+
+<p>A list of values to identify various types of LCD filters.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_LCD_FILTER_NONE">FT_LCD_FILTER_NONE</td><td class="desc">
+<p>Do not perform filtering. When used with subpixel rendering, this results in sometimes severe color fringes.</p>
+</td></tr>
+<tr><td class="val" id="FT_LCD_FILTER_DEFAULT">FT_LCD_FILTER_DEFAULT</td><td class="desc">
+<p>The default filter reduces color fringes considerably, at the cost of a slight blurriness in the output.</p>
+<p>It is a beveled, normalized, and color-balanced five-tap filter that is more forgiving to screens with non-ideal gamma curves and viewing angles. Note that while color-fringing is reduced, it can only be minimized by using linear alpha blending and gamma correction to render glyphs onto surfaces. The default filter weights are [0x08 0x4D 0x56 0x4D 0x08].</p>
+</td></tr>
+<tr><td class="val" id="FT_LCD_FILTER_LIGHT">FT_LCD_FILTER_LIGHT</td><td class="desc">
+<p>The light filter is a variant that is sharper at the cost of slightly more color fringes than the default one.</p>
+<p>It is a boxy, normalized, and color-balanced three-tap filter that is less forgiving to screens with non-ideal gamma curves and viewing angles. This filter works best when the rendering system uses linear alpha blending and gamma correction to render glyphs onto surfaces. The light filter weights are [0x00 0x55 0x56 0x55 0x00].</p>
+</td></tr>
+<tr><td class="val" id="FT_LCD_FILTER_LEGACY">FT_LCD_FILTER_LEGACY</td><td class="desc">
+<p>This filter corresponds to the original libXft color filter. It provides high contrast output but can exhibit really bad color fringes if glyphs are not extremely well hinted to the pixel grid. In other words, it only works well if the TrueType bytecode interpreter is enabled <b>and</b> high-quality hinted fonts are used.</p>
+<p>This filter is only provided for comparison purposes, and might be disabled or stay unsupported in the future.</p>
+</td></tr>
+<tr><td class="val" id="FT_LCD_FILTER_LEGACY1">FT_LCD_FILTER_LEGACY1</td><td class="desc">
+<p>For historical reasons, the FontConfig library returns a different enumeration value for legacy LCD filtering. To make code work that (incorrectly) forwards FontConfig's enumeration value to <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a> without proper mapping, it is thus easiest to have another enumeration value, which is completely equal to &lsquo;FT_LCD_FILTER_LEGACY&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.3.0 (&lsquo;FT_LCD_FILTER_LEGACY1&rsquo; since 2.6.2)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</h3>
+<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Library_SetLcdFilter</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>    library,
+                           <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LcdFilter</a>  filter );
+</pre>
+
+<p>This function is used to apply color filtering to LCD decimated bitmaps, like the ones used when calling <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a> with <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a> or <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD_V</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the target library instance.</p>
+</td></tr>
+<tr><td class="val" id="filter">filter</td><td class="desc">
+<p>The filter type.</p>
+<p>You can use <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a> here to disable this feature, or <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_DEFAULT</a> to use a default filter that should work well on most LCD screens.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This feature is always disabled by default. Clients must make an explicit call to this function with a &lsquo;filter&rsquo; value other than <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a> in order to enable it.</p>
+<p>Due to <b>PATENTS</b> covering subpixel rendering, this function doesn't do anything except returning &lsquo;FT_Err_Unimplemented_Feature&rsquo; if the configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not defined in your build of the library, which should correspond to all default builds of FreeType.</p>
+
+<h4>since</h4>
+<p>2.3.0</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</h3>
+<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Library_SetLcdFilterWeights</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>      library,
+                                  <span class="keyword">unsigned</span> <span class="keyword">char</span>  *weights );
+
+
+  /*
+   * @type:
+   *   FT_LcdFiveTapFilter
+   *
+   * @description:
+   *   A <span class="keyword">typedef</span> for passing the five LCD filter weights to
+   *   @<a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> within an @<a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> structure.
+   *
+   * @since:
+   *   2.8
+   *
+   */
+#define FT_LCD_FILTER_FIVE_TAPS  5
+
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>  FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS];
+</pre>
+
+<p>This function can be used to enable LCD filter with custom weights, instead of using presets in <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the target library instance.</p>
+</td></tr>
+<tr><td class="val" id="weights">weights</td><td class="desc">
+<p>A pointer to an array; the function copies the first five bytes and uses them to specify the filter weights.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>Due to <b>PATENTS</b> covering subpixel rendering, this function doesn't do anything except returning &lsquo;FT_Err_Unimplemented_Feature&rsquo; if the configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not defined in your build of the library, which should correspond to all default builds of FreeType.</p>
+<p>LCD filter weights can also be set per face using <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> with <a href="ft2-parameter_tags.html#FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a>.</p>
+
+<h4>since</h4>
+<p>2.4.0</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-list_processing.html freetype-2.10.0.aros/docs/reference/ft2-list_processing.html
--- freetype-2.10.0/docs/reference/ft2-list_processing.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-list_processing.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="list_processing">List Processing</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_List">FT_List</a></td><td><a href="#FT_List_Add">FT_List_Add</a></td><td><a href="#FT_List_Iterate">FT_List_Iterate</a></td></tr>
+<tr><td><a href="#FT_ListNode">FT_ListNode</a></td><td><a href="#FT_List_Insert">FT_List_Insert</a></td><td><a href="#FT_List_Iterator">FT_List_Iterator</a></td></tr>
+<tr><td><a href="#FT_ListRec">FT_ListRec</a></td><td><a href="#FT_List_Find">FT_List_Find</a></td><td><a href="#FT_List_Finalize">FT_List_Finalize</a></td></tr>
+<tr><td><a href="#FT_ListNodeRec">FT_ListNodeRec</a></td><td><a href="#FT_List_Remove">FT_List_Remove</a></td><td><a href="#FT_List_Destructor">FT_List_Destructor</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_List_Up">FT_List_Up</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains various definitions related to list processing using doubly-linked nodes.</p>
+
+<div class="section">
+<h3 id="FT_List">FT_List</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListRec_*  <b>FT_List</b>;
+</pre>
+
+<p>A handle to a list record (see <a href="ft2-list_processing.html#FT_ListRec">FT_ListRec</a>).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ListNode">FT_ListNode</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListNodeRec_*  <b>FT_ListNode</b>;
+</pre>
+
+<p>Many elements and objects in FreeType are listed through an <a href="ft2-list_processing.html#FT_List">FT_List</a> record (see <a href="ft2-list_processing.html#FT_ListRec">FT_ListRec</a>). As its name suggests, an FT_ListNode is a handle to a single list element.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ListRec">FT_ListRec</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_ListRec_
+  {
+    <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  head;
+    <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  tail;
+
+  } <b>FT_ListRec</b>;
+</pre>
+
+<p>A structure used to hold a simple doubly-linked list. These are used in many parts of FreeType.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="head">head</td><td class="desc">
+<p>The head (first element) of doubly-linked list.</p>
+</td></tr>
+<tr><td class="val" id="tail">tail</td><td class="desc">
+<p>The tail (last element) of doubly-linked list.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ListNodeRec">FT_ListNodeRec</h3>
+<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_ListNodeRec_
+  {
+    <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  prev;
+    <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  next;
+    <span class="keyword">void</span>*        data;
+
+  } <b>FT_ListNodeRec</b>;
+</pre>
+
+<p>A structure used to hold a single list element.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="prev">prev</td><td class="desc">
+<p>The previous element in the list. NULL if first.</p>
+</td></tr>
+<tr><td class="val" id="next">next</td><td class="desc">
+<p>The next element in the list. NULL if last.</p>
+</td></tr>
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>A typeless pointer to the listed object.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Add">FT_List_Add</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_List_Add</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>      list,
+               <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  node );
+</pre>
+
+<p>Append an element to the end of a list.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A pointer to the parent list.</p>
+</td></tr>
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The node to append.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Insert">FT_List_Insert</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_List_Insert</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>      list,
+                  <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  node );
+</pre>
+
+<p>Insert an element at the head of a list.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A pointer to parent list.</p>
+</td></tr>
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The node to insert.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Find">FT_List_Find</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a> )
+  <b>FT_List_Find</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>  list,
+                <span class="keyword">void</span>*    data );
+</pre>
+
+<p>Find the list node for a given listed object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A pointer to the parent list.</p>
+</td></tr>
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>The address of the listed object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>List node. NULL if it wasn't found.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Remove">FT_List_Remove</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_List_Remove</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>      list,
+                  <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  node );
+</pre>
+
+<p>Remove a node from a list. This function doesn't check whether the node is in the list!</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The node to remove.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A pointer to the parent list.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Up">FT_List_Up</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_List_Up</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>      list,
+              <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  node );
+</pre>
+
+<p>Move a node to the head/top of a list. Used to maintain LRU lists.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A pointer to the parent list.</p>
+</td></tr>
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The node to move.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Iterate">FT_List_Iterate</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_List_Iterate</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>           list,
+                   <a href="ft2-list_processing.html#FT_List_Iterator">FT_List_Iterator</a>  iterator,
+                   <span class="keyword">void</span>*             user );
+</pre>
+
+<p>Parse a list and calls a given iterator function on each element. Note that parsing is stopped as soon as one of the iterator calls returns a non-zero value.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A handle to the list.</p>
+</td></tr>
+<tr><td class="val" id="iterator">iterator</td><td class="desc">
+<p>An iterator function, called on each node of the list.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A user-supplied field that is passed as the second argument to the iterator.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The result (a FreeType error code) of the last iterator call.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Iterator">FT_List_Iterator</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Error">FT_Error</a>
+  (*<b>FT_List_Iterator</b>)( <a href="ft2-list_processing.html#FT_ListNode">FT_ListNode</a>  node,
+                       <span class="keyword">void</span>*        user );
+</pre>
+
+<p>An FT_List iterator function that is called during a list parse by <a href="ft2-list_processing.html#FT_List_Iterate">FT_List_Iterate</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="node">node</td><td class="desc">
+<p>The current iteration list node.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer passed to <a href="ft2-list_processing.html#FT_List_Iterate">FT_List_Iterate</a>. Can be used to point to the iteration's state.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Finalize">FT_List_Finalize</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_List_Finalize</b>( <a href="ft2-list_processing.html#FT_List">FT_List</a>             list,
+                    <a href="ft2-list_processing.html#FT_List_Destructor">FT_List_Destructor</a>  destroy,
+                    <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>           memory,
+                    <span class="keyword">void</span>*               user );
+</pre>
+
+<p>Destroy all elements in the list as well as the list itself.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="list">list</td><td class="desc">
+<p>A handle to the list.</p>
+</td></tr>
+<tr><td class="val" id="destroy">destroy</td><td class="desc">
+<p>A list destructor that will be applied to each element of the list. Set this to NULL if not needed.</p>
+</td></tr>
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>The current memory object that handles deallocation.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A user-supplied field that is passed as the last argument to the destructor.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function expects that all nodes added by <a href="ft2-list_processing.html#FT_List_Add">FT_List_Add</a> or <a href="ft2-list_processing.html#FT_List_Insert">FT_List_Insert</a> have been dynamically allocated.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_List_Destructor">FT_List_Destructor</h3>
+<p>Defined in FT_LIST_H (freetype/ftlist.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_List_Destructor</b>)( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>  memory,
+                         <span class="keyword">void</span>*      data,
+                         <span class="keyword">void</span>*      user );
+</pre>
+
+<p>An <a href="ft2-list_processing.html#FT_List">FT_List</a> iterator function that is called during a list finalization by <a href="ft2-list_processing.html#FT_List_Finalize">FT_List_Finalize</a> to destroy all elements in a given list.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="system">system</td><td class="desc">
+<p>The current system object.</p>
+</td></tr>
+<tr><td class="val" id="data">data</td><td class="desc">
+<p>The current object to destroy.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer passed to <a href="ft2-list_processing.html#FT_List_Iterate">FT_List_Iterate</a>. It can be used to point to the iteration's state.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-lzw.html freetype-2.10.0.aros/docs/reference/ft2-lzw.html
--- freetype-2.10.0/docs/reference/ft2-lzw.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-lzw.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="lzw">LZW Streams</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Stream_OpenLZW">FT_Stream_OpenLZW</a></td><td></td><td></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of LZW-specific functions.</p>
+
+<div class="section">
+<h3 id="FT_Stream_OpenLZW">FT_Stream_OpenLZW</h3>
+<p>Defined in FT_LZW_H (freetype/ftlzw.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Stream_OpenLZW</b>( <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  stream,
+                     <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  source );
+</pre>
+
+<p>Open a new stream to parse LZW-compressed font files. This is mainly used to support the compressed &lsquo;*.pcf.Z&rsquo; fonts that come with XFree86.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>The target embedding stream.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>The source stream.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The source stream must be opened <i>before</i> calling this function.</p>
+<p>Calling the internal function &lsquo;FT_Stream_Close&rsquo; on the new stream will <b>not</b> call &lsquo;FT_Stream_Close&rsquo; on the source stream. None of the stream objects will be released to the heap.</p>
+<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream</p>
+<p>In certain builds of the library, LZW compression recognition is automatically handled when calling <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> or <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a LZW stream from it and re-open the face with it.</p>
+<p>This function may return &lsquo;FT_Err_Unimplemented_Feature&rsquo; if your build of FreeType was not compiled with LZW support.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-mac_specific.html freetype-2.10.0.aros/docs/reference/ft2-mac_specific.html
--- freetype-2.10.0/docs/reference/ft2-mac_specific.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-mac_specific.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="mac_specific">Mac Specific Interface</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_New_Face_From_FOND">FT_New_Face_From_FOND</a></td><td><a href="#FT_GetFilePath_From_Mac_ATS_Name">FT_GetFilePath_From_Mac_ATS_Name</a></td></tr>
+<tr><td><a href="#FT_GetFile_From_Mac_Name">FT_GetFile_From_Mac_Name</a></td><td><a href="#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a></td></tr>
+<tr><td><a href="#FT_GetFile_From_Mac_ATS_Name">FT_GetFile_From_Mac_ATS_Name</a></td><td><a href="#FT_New_Face_From_FSRef">FT_New_Face_From_FSRef</a></td></tr>
+</table>
+
+
+<p>The following definitions are only available if FreeType is compiled on a Macintosh.</p>
+
+<div class="section">
+<h3 id="FT_New_Face_From_FOND">FT_New_Face_From_FOND</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Face_From_FOND</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library,
+                         Handle      fond,
+                         <a href="ft2-basic_types.html#FT_Long">FT_Long</a>     face_index,
+                         <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    *aface )
+                       FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Create a new face object from a FOND resource.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="fond">fond</td><td class="desc">
+<p>A FOND resource.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>Only supported for the -1 &lsquo;sanity check&rsquo; special case.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>notes</h4>
+<p>This function can be used to create <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects from fonts that are installed in the system as follows.</p>
+<pre class="colored">
+  fond = GetResource( 'FOND', fontName );
+  error = FT_New_Face_From_FOND( library, fond, 0, &amp;face );
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GetFile_From_Mac_Name">FT_GetFile_From_Mac_Name</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_GetFile_From_Mac_Name</b>( <span class="keyword">const</span> <span class="keyword">char</span>*  fontName,
+                            FSSpec*      pathSpec,
+                            <a href="ft2-basic_types.html#FT_Long">FT_Long</a>*     face_index )
+                          FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Return an FSSpec for the disk file containing the named font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="fontName">fontName</td><td class="desc">
+<p>Mac OS name of the font (e.g., Times New Roman Bold).</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="pathSpec">pathSpec</td><td class="desc">
+<p>FSSpec to the file. For passing to <a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a>.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>Index of the face. For passing to <a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GetFile_From_Mac_ATS_Name">FT_GetFile_From_Mac_ATS_Name</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_GetFile_From_Mac_ATS_Name</b>( <span class="keyword">const</span> <span class="keyword">char</span>*  fontName,
+                                FSSpec*      pathSpec,
+                                <a href="ft2-basic_types.html#FT_Long">FT_Long</a>*     face_index )
+                              FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Return an FSSpec for the disk file containing the named font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="fontName">fontName</td><td class="desc">
+<p>Mac OS name of the font in ATS framework.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="pathSpec">pathSpec</td><td class="desc">
+<p>FSSpec to the file. For passing to <a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a>.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>Index of the face. For passing to <a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_GetFilePath_From_Mac_ATS_Name">FT_GetFilePath_From_Mac_ATS_Name</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_GetFilePath_From_Mac_ATS_Name</b>( <span class="keyword">const</span> <span class="keyword">char</span>*  fontName,
+                                    UInt8*       path,
+                                    UInt32       maxPathSize,
+                                    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>*     face_index )
+                                  FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Return a pathname of the disk file and face index for given font name that is handled by ATS framework.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="fontName">fontName</td><td class="desc">
+<p>Mac OS name of the font in ATS framework.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="path">path</td><td class="desc">
+<p>Buffer to store pathname of the file. For passing to <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a>. The client must allocate this buffer before calling this function.</p>
+</td></tr>
+<tr><td class="val" id="maxPathSize">maxPathSize</td><td class="desc">
+<p>Lengths of the buffer &lsquo;path&rsquo; that client allocated.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>Index of the face. For passing to <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a>.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Face_From_FSSpec</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>     library,
+                           <span class="keyword">const</span> FSSpec  *spec,
+                           <a href="ft2-basic_types.html#FT_Long">FT_Long</a>        face_index,
+                           <a href="ft2-base_interface.html#FT_Face">FT_Face</a>       *aface )
+                         FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Create a new face object from a given resource and typeface index using an FSSpec to the font file.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="spec">spec</td><td class="desc">
+<p>FSSpec to the font file.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>The index of the face within the resource. The first face has index&nbsp;0.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p><a href="ft2-mac_specific.html#FT_New_Face_From_FSSpec">FT_New_Face_From_FSSpec</a> is identical to <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> except it accepts an FSSpec instead of a path.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_New_Face_From_FSRef">FT_New_Face_From_FSRef</h3>
+<p>Defined in FT_MAC_H (freetype/ftmac.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Face_From_FSRef</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>    library,
+                          <span class="keyword">const</span> FSRef  *ref,
+                          <a href="ft2-basic_types.html#FT_Long">FT_Long</a>       face_index,
+                          <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      *aface )
+                        FT_DEPRECATED_ATTRIBUTE;
+</pre>
+
+<p>Create a new face object from a given resource and typeface index using an FSRef to the font file.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library resource.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="spec">spec</td><td class="desc">
+<p>FSRef to the font file.</p>
+</td></tr>
+<tr><td class="val" id="face_index">face_index</td><td class="desc">
+<p>The index of the face within the resource. The first face has index&nbsp;0.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aface">aface</td><td class="desc">
+<p>A handle to a new face object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p><a href="ft2-mac_specific.html#FT_New_Face_From_FSRef">FT_New_Face_From_FSRef</a> is identical to <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a> except it accepts an FSRef instead of a path.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-module_management.html freetype-2.10.0.aros/docs/reference/ft2-module_management.html
--- freetype-2.10.0/docs/reference/ft2-module_management.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-module_management.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,824 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="module_management">Module Management</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Module">FT_Module</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Module_Constructor">FT_Module_Constructor</a></td><td><a href="#FT_New_Library">FT_New_Library</a></td></tr>
+<tr><td><a href="#FT_Module_Destructor">FT_Module_Destructor</a></td><td><a href="#FT_Done_Library">FT_Done_Library</a></td></tr>
+<tr><td><a href="#FT_Module_Requester">FT_Module_Requester</a></td><td><a href="#FT_Reference_Library">FT_Reference_Library</a></td></tr>
+<tr><td><a href="#FT_Module_Class">FT_Module_Class</a></td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Renderer">FT_Renderer</a></td></tr>
+<tr><td><a href="#FT_Add_Module">FT_Add_Module</a></td><td><a href="#FT_Renderer_Class">FT_Renderer_Class</a></td></tr>
+<tr><td><a href="#FT_Get_Module">FT_Get_Module</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Remove_Module">FT_Remove_Module</a></td><td><a href="#FT_Get_Renderer">FT_Get_Renderer</a></td></tr>
+<tr><td><a href="#FT_Add_Default_Modules">FT_Add_Default_Modules</a></td><td><a href="#FT_Set_Renderer">FT_Set_Renderer</a></td></tr>
+<tr><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Property_Set">FT_Property_Set</a></td><td><a href="#FT_Set_Debug_Hook">FT_Set_Debug_Hook</a></td></tr>
+<tr><td><a href="#FT_Property_Get">FT_Property_Get</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Set_Default_Properties">FT_Set_Default_Properties</a></td><td><a href="#FT_Driver">FT_Driver</a></td></tr>
+</table>
+
+
+<p>The definitions below are used to manage modules within FreeType. Modules can be added, upgraded, and removed at runtime. Additionally, some module properties can be controlled also.</p>
+<p>Here is a list of possible values of the &lsquo;module_name&rsquo; field in the <a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a> structure.</p>
+<pre class="colored">
+  autofitter
+  bdf
+  cff
+  gxvalid
+  otvalid
+  pcf
+  pfr
+  psaux
+  pshinter
+  psnames
+  raster1
+  sfnt
+  smooth, smooth-lcd, smooth-lcdv
+  truetype
+  type1
+  type42
+  t1cid
+  winfonts
+</pre>
+<p>Note that the FreeType Cache sub-system is not a FreeType module.</p>
+
+<div class="section">
+<h3 id="FT_Module">FT_Module</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ModuleRec_*  <b>FT_Module</b>;
+</pre>
+
+<p>A handle to a given FreeType module object. A module can be a font driver, a renderer, or anything else that provides services to the former.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Module_Constructor">FT_Module_Constructor</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Error">FT_Error</a>
+  (*<b>FT_Module_Constructor</b>)( <a href="ft2-module_management.html#FT_Module">FT_Module</a>  module );
+</pre>
+
+<p>A function used to initialize (not create) a new module object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="module">module</td><td class="desc">
+<p>The module to initialize.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Module_Destructor">FT_Module_Destructor</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Module_Destructor</b>)( <a href="ft2-module_management.html#FT_Module">FT_Module</a>  module );
+</pre>
+
+<p>A function used to finalize (not destroy) a given module object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="module">module</td><td class="desc">
+<p>The module to finalize.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Module_Requester">FT_Module_Requester</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  <span class="keyword">typedef</span> FT_Module_Interface
+  (*<b>FT_Module_Requester</b>)( <a href="ft2-module_management.html#FT_Module">FT_Module</a>    module,
+                          <span class="keyword">const</span> <span class="keyword">char</span>*  name );
+</pre>
+
+<p>A function used to query a given module for a specific interface.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="module">module</td><td class="desc">
+<p>The module to be searched.</p>
+</td></tr>
+<tr><td class="val" id="name">name</td><td class="desc">
+<p>The name of the interface in the module.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Module_Class">FT_Module_Class</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Module_Class_
+  {
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>               module_flags;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>                module_size;
+    <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_String">FT_String</a>*       module_name;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>               module_version;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>               module_requires;
+
+    <span class="keyword">const</span> <span class="keyword">void</span>*            module_interface;
+
+    <a href="ft2-module_management.html#FT_Module_Constructor">FT_Module_Constructor</a>  module_init;
+    <a href="ft2-module_management.html#FT_Module_Destructor">FT_Module_Destructor</a>   module_done;
+    <a href="ft2-module_management.html#FT_Module_Requester">FT_Module_Requester</a>    get_interface;
+
+  } <b>FT_Module_Class</b>;
+</pre>
+
+<p>The module class descriptor.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="module_flags">module_flags</td><td class="desc">
+<p>Bit flags describing the module.</p>
+</td></tr>
+<tr><td class="val" id="module_size">module_size</td><td class="desc">
+<p>The size of one module object/instance in bytes.</p>
+</td></tr>
+<tr><td class="val" id="module_name">module_name</td><td class="desc">
+<p>The name of the module.</p>
+</td></tr>
+<tr><td class="val" id="module_version">module_version</td><td class="desc">
+<p>The version, as a 16.16 fixed number (major.minor).</p>
+</td></tr>
+<tr><td class="val" id="module_requires">module_requires</td><td class="desc">
+<p>The version of FreeType this module requires, as a 16.16 fixed number (major.minor). Starts at version 2.0, i.e., 0x20000.</p>
+</td></tr>
+<tr><td class="val" id="module_init">module_init</td><td class="desc">
+<p>The initializing function.</p>
+</td></tr>
+<tr><td class="val" id="module_done">module_done</td><td class="desc">
+<p>The finalizing function.</p>
+</td></tr>
+<tr><td class="val" id="get_interface">get_interface</td><td class="desc">
+<p>The interface requesting function.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Add_Module">FT_Add_Module</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Add_Module</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>              library,
+                 <span class="keyword">const</span> <a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a>*  clazz );
+</pre>
+
+<p>Add a new module to a given library instance.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="clazz">clazz</td><td class="desc">
+<p>A pointer to class descriptor for the module.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Module">FT_Get_Module</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-module_management.html#FT_Module">FT_Module</a> )
+  <b>FT_Get_Module</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                 <span class="keyword">const</span> <span class="keyword">char</span>*  module_name );
+</pre>
+
+<p>Find a module by its name.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object.</p>
+</td></tr>
+<tr><td class="val" id="module_name">module_name</td><td class="desc">
+<p>The module's name (as an ASCII string).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A module handle. 0&nbsp;if none was found.</p>
+
+<h4>note</h4>
+<p>FreeType's internal modules aren't documented very well, and you should look up the source code for details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Remove_Module">FT_Remove_Module</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Remove_Module</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library,
+                    <a href="ft2-module_management.html#FT_Module">FT_Module</a>   module );
+</pre>
+
+<p>Remove a given module from a library instance.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a library object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="module">module</td><td class="desc">
+<p>A handle to a module object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The module object is destroyed by the function in case of success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Add_Default_Modules">FT_Add_Default_Modules</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Add_Default_Modules</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>Add the set of default drivers to a given library object. This is only useful when you create a library object with <a href="ft2-module_management.html#FT_New_Library">FT_New_Library</a> (usually to plug a custom memory manager).</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a new library object.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Property_Set">FT_Property_Set</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Property_Set</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library,
+                   <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_String">FT_String</a>*  module_name,
+                   <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_String">FT_String</a>*  property_name,
+                   <span class="keyword">const</span> <span class="keyword">void</span>*       value );
+</pre>
+
+<p>Set a property for a given module.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library the module is part of.</p>
+</td></tr>
+<tr><td class="val" id="module_name">module_name</td><td class="desc">
+<p>The module name.</p>
+</td></tr>
+<tr><td class="val" id="property_name">property_name</td><td class="desc">
+<p>The property name. Properties are described in section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo;.</p>
+<p>Note that only a few modules have properties.</p>
+</td></tr>
+<tr><td class="val" id="value">value</td><td class="desc">
+<p>A generic pointer to a variable or structure that gives the new value of the property. The exact definition of &lsquo;value&rsquo; is dependent on the property; see section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If &lsquo;module_name&rsquo; isn't a valid module name, or &lsquo;property_name&rsquo; doesn't specify a valid property, or if &lsquo;value&rsquo; doesn't represent a valid value for the given property, an error is returned.</p>
+<p>The following example sets property &lsquo;bar&rsquo; (a simple integer) in module &lsquo;foo&rsquo; to value&nbsp;1.</p>
+<pre class="colored">
+  FT_UInt  bar;
+
+
+  bar = 1;
+  FT_Property_Set( library, "foo", "bar", &amp;bar );
+</pre>
+<p>Note that the FreeType Cache sub-system doesn't recognize module property changes. To avoid glyph lookup confusion within the cache you should call <a href="ft2-cache_subsystem.html#FTC_Manager_Reset">FTC_Manager_Reset</a> to completely flush the cache if a module property gets changed after <a href="ft2-cache_subsystem.html#FTC_Manager_New">FTC_Manager_New</a> has been called.</p>
+<p>It is not possible to set properties of the FreeType Cache sub-system itself with FT_Property_Set; use ?FTC_Property_Set? instead.</p>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Property_Get">FT_Property_Get</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Property_Get</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library,
+                   <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_String">FT_String</a>*  module_name,
+                   <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_String">FT_String</a>*  property_name,
+                   <span class="keyword">void</span>*             value );
+</pre>
+
+<p>Get a module's property value.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library the module is part of.</p>
+</td></tr>
+<tr><td class="val" id="module_name">module_name</td><td class="desc">
+<p>The module name.</p>
+</td></tr>
+<tr><td class="val" id="property_name">property_name</td><td class="desc">
+<p>The property name. Properties are described in section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="value">value</td><td class="desc">
+<p>A generic pointer to a variable or structure that gives the value of the property. The exact definition of &lsquo;value&rsquo; is dependent on the property; see section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If &lsquo;module_name&rsquo; isn't a valid module name, or &lsquo;property_name&rsquo; doesn't specify a valid property, or if &lsquo;value&rsquo; doesn't represent a valid value for the given property, an error is returned.</p>
+<p>The following example gets property &lsquo;baz&rsquo; (a range) in module &lsquo;foo&rsquo;.</p>
+<pre class="colored">
+  typedef  range_
+  {
+    FT_Int32  min;
+    FT_Int32  max;
+
+  } range;
+
+  range  baz;
+
+
+  FT_Property_Get( library, "foo", "baz", &amp;baz );
+</pre>
+<p>It is not possible to retrieve properties of the FreeType Cache sub-system with FT_Property_Get; use ?FTC_Property_Get? instead.</p>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Default_Properties">FT_Set_Default_Properties</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Set_Default_Properties</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>If compilation option FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES is set, this function reads the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable to control driver properties. See section &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; for more.</p>
+<p>If the compilation option is not set, this function does nothing.</p>
+<p>&lsquo;FREETYPE_PROPERTIES&rsquo; has the following syntax form (broken here into multiple lines for better readability).</p>
+<pre class="colored">
+  &lt;optional whitespace&gt;
+  &lt;module-name1&gt; ':'
+  &lt;property-name1&gt; '=' &lt;property-value1&gt;
+  &lt;whitespace&gt;
+  &lt;module-name2&gt; ':'
+  &lt;property-name2&gt; '=' &lt;property-value2&gt;
+  ...
+</pre>
+<p>Example:</p>
+<pre class="colored">
+  FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
+                      cff:no-stem-darkening=1 \
+                      autofitter:warping=1
+</pre>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a new library object.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_New_Library">FT_New_Library</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Library</b>( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>    memory,
+                  <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  *alibrary );
+</pre>
+
+<p>This function is used to create a new FreeType library instance from a given memory object. It is thus possible to use libraries with distinct memory allocators within the same program. Note, however, that the used <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a> structure is expected to remain valid for the life of the <a href="ft2-base_interface.html#FT_Library">FT_Library</a> object.</p>
+<p>Normally, you would call this function (followed by a call to <a href="ft2-module_management.html#FT_Add_Default_Modules">FT_Add_Default_Modules</a> or a series of calls to <a href="ft2-module_management.html#FT_Add_Module">FT_Add_Module</a>, and a call to <a href="ft2-module_management.html#FT_Set_Default_Properties">FT_Set_Default_Properties</a>) instead of <a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a> to initialize the FreeType library.</p>
+<p>Don't use <a href="ft2-base_interface.html#FT_Done_FreeType">FT_Done_FreeType</a> but <a href="ft2-module_management.html#FT_Done_Library">FT_Done_Library</a> to destroy a library instance.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A handle to the original memory object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="alibrary">alibrary</td><td class="desc">
+<p>A pointer to handle of a new library object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>See the discussion of reference counters in the description of <a href="ft2-module_management.html#FT_Reference_Library">FT_Reference_Library</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_Library">FT_Done_Library</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Done_Library</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>Discard a given library object. This closes all drivers and discards all resource objects.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the target library.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>See the discussion of reference counters in the description of <a href="ft2-module_management.html#FT_Reference_Library">FT_Reference_Library</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Reference_Library">FT_Reference_Library</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Reference_Library</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>A counter gets initialized to&nbsp;1 at the time an <a href="ft2-base_interface.html#FT_Library">FT_Library</a> structure is created. This function increments the counter. <a href="ft2-module_management.html#FT_Done_Library">FT_Done_Library</a> then only destroys a library if the counter is&nbsp;1, otherwise it simply decrements the counter.</p>
+<p>This function helps in managing life-cycles of structures that reference <a href="ft2-base_interface.html#FT_Library">FT_Library</a> objects.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a target library object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>since</h4>
+<p>2.4.2</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Renderer">FT_Renderer</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_RendererRec_*  <b>FT_Renderer</b>;
+</pre>
+
+<p>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.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Renderer_Class">FT_Renderer_Class</h3>
+<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Renderer_Class_
+  {
+    <a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a>            root;
+
+    <a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a>            glyph_format;
+
+    FT_Renderer_RenderFunc     render_glyph;
+    FT_Renderer_TransformFunc  transform_glyph;
+    FT_Renderer_GetCBoxFunc    get_glyph_cbox;
+    FT_Renderer_SetModeFunc    set_mode;
+
+    <a href="ft2-raster.html#FT_Raster_Funcs">FT_Raster_Funcs</a>*           raster_class;
+
+  } <b>FT_Renderer_Class</b>;
+</pre>
+
+<p>The renderer module class descriptor.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="root">root</td><td class="desc">
+<p>The root <a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a> fields.</p>
+</td></tr>
+<tr><td class="val" id="glyph_format">glyph_format</td><td class="desc">
+<p>The glyph image format this renderer handles.</p>
+</td></tr>
+<tr><td class="val" id="render_glyph">render_glyph</td><td class="desc">
+<p>A method used to render the image that is in a given glyph slot into a bitmap.</p>
+</td></tr>
+<tr><td class="val" id="transform_glyph">transform_glyph</td><td class="desc">
+<p>A method used to transform the image that is in a given glyph slot.</p>
+</td></tr>
+<tr><td class="val" id="get_glyph_cbox">get_glyph_cbox</td><td class="desc">
+<p>A method used to access the glyph's cbox.</p>
+</td></tr>
+<tr><td class="val" id="set_mode">set_mode</td><td class="desc">
+<p>A method used to pass additional parameters.</p>
+</td></tr>
+<tr><td class="val" id="raster_class">raster_class</td><td class="desc">
+<p>For <a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a> renderers only. This is a pointer to its raster's class.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Renderer">FT_Get_Renderer</h3>
+<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-module_management.html#FT_Renderer">FT_Renderer</a> )
+  <b>FT_Get_Renderer</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>       library,
+                   <a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a>  format );
+</pre>
+
+<p>Retrieve the current renderer for a given glyph format.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object.</p>
+</td></tr>
+<tr><td class="val" id="format">format</td><td class="desc">
+<p>The glyph format.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A renderer handle. 0&nbsp;if none found.</p>
+
+<h4>note</h4>
+<p>An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.</p>
+<p>To add a new renderer, simply use <a href="ft2-module_management.html#FT_Add_Module">FT_Add_Module</a>. To retrieve a renderer by its name, use <a href="ft2-module_management.html#FT_Get_Module">FT_Get_Module</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Renderer">FT_Set_Renderer</h3>
+<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Renderer</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>     library,
+                   <a href="ft2-module_management.html#FT_Renderer">FT_Renderer</a>    renderer,
+                   <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>        num_params,
+                   <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a>*  parameters );
+</pre>
+
+<p>Set the current renderer to use, and set additional mode.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="renderer">renderer</td><td class="desc">
+<p>A handle to the renderer object.</p>
+</td></tr>
+<tr><td class="val" id="num_params">num_params</td><td class="desc">
+<p>The number of additional parameters.</p>
+</td></tr>
+<tr><td class="val" id="parameters">parameters</td><td class="desc">
+<p>Additional parameters.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>In case of success, the renderer will be used to convert glyph images in the renderer's known format into bitmaps.</p>
+<p>This doesn't change the current renderer for other formats.</p>
+<p>Currently, no FreeType renderer module uses &lsquo;parameters&rsquo;; you should thus always pass NULL as the value.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Debug_Hook">FT_Set_Debug_Hook</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Set_Debug_Hook</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>         library,
+                     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>            hook_index,
+                     FT_DebugHook_Func  debug_hook );
+</pre>
+
+<p>Set a debug hook function for debugging the interpreter of a font format.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="hook_index">hook_index</td><td class="desc">
+<p>The index of the debug hook. You should use the values defined in &lsquo;ftobjs.h&rsquo;, e.g., &lsquo;FT_DEBUG_HOOK_TRUETYPE&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="debug_hook">debug_hook</td><td class="desc">
+<p>The function used to debug the interpreter.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Currently, four debug hook slots are available, but only two (for the TrueType and the Type&nbsp;1 interpreter) are defined.</p>
+<p>Since the internal headers of FreeType are no longer installed, the symbol &lsquo;FT_DEBUG_HOOK_TRUETYPE&rsquo; isn't available publicly. This is a bug and will be fixed in a forthcoming release.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Driver">FT_Driver</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_DriverRec_*  <b>FT_Driver</b>;
+</pre>
+
+<p>A handle to a given FreeType font driver object. A font driver is a module capable of creating faces from font files.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-multiple_masters.html freetype-2.10.0.aros/docs/reference/ft2-multiple_masters.html
--- freetype-2.10.0/docs/reference/ft2-multiple_masters.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-multiple_masters.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,723 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="multiple_masters">Multiple Masters</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_MM_Axis">FT_MM_Axis</a></td><td><a href="#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a></td></tr>
+<tr><td><a href="#FT_Multi_Master">FT_Multi_Master</a></td><td><a href="#FT_Get_Var_Design_Coordinates">FT_Get_Var_Design_Coordinates</a></td></tr>
+<tr><td><a href="#FT_Var_Axis">FT_Var_Axis</a></td><td><a href="#FT_Set_MM_Blend_Coordinates">FT_Set_MM_Blend_Coordinates</a></td></tr>
+<tr><td><a href="#FT_Var_Named_Style">FT_Var_Named_Style</a></td><td><a href="#FT_Get_MM_Blend_Coordinates">FT_Get_MM_Blend_Coordinates</a></td></tr>
+<tr><td><a href="#FT_MM_Var">FT_MM_Var</a></td><td><a href="#FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</a></td></tr>
+<tr><td><a href="#FT_Get_Multi_Master">FT_Get_Multi_Master</a></td><td><a href="#FT_Get_Var_Blend_Coordinates">FT_Get_Var_Blend_Coordinates</a></td></tr>
+<tr><td><a href="#FT_Get_MM_Var">FT_Get_MM_Var</a></td><td><a href="#FT_VAR_AXIS_FLAG_XXX">FT_VAR_AXIS_FLAG_XXX</a></td></tr>
+<tr><td><a href="#FT_Done_MM_Var">FT_Done_MM_Var</a></td><td><a href="#FT_Get_Var_Axis_Flags">FT_Get_Var_Axis_Flags</a></td></tr>
+<tr><td><a href="#FT_Set_MM_Design_Coordinates">FT_Set_MM_Design_Coordinates</a></td><td><a href="#FT_Set_Named_Instance">FT_Set_Named_Instance</a></td></tr>
+</table>
+
+
+<p>The following types and functions are used to manage Multiple Master fonts, i.e., the selection of specific design instances by setting design axis coordinates.</p>
+<p>Besides Adobe MM fonts, the interface supports Apple's TrueType GX and OpenType variation fonts. Some of the routines only work with Adobe MM fonts, others will work with all three types. They are similar enough that a consistent interface makes sense.</p>
+
+<div class="section">
+<h3 id="FT_MM_Axis">FT_MM_Axis</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_MM_Axis_
+  {
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  name;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>     minimum;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>     maximum;
+
+  } <b>FT_MM_Axis</b>;
+</pre>
+
+<p>A structure to model a given axis in design space for Multiple Masters fonts.</p>
+<p>This structure can't be used for TrueType GX or OpenType variation fonts.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="name">name</td><td class="desc">
+<p>The axis's name.</p>
+</td></tr>
+<tr><td class="val" id="minimum">minimum</td><td class="desc">
+<p>The axis's minimum design coordinate.</p>
+</td></tr>
+<tr><td class="val" id="maximum">maximum</td><td class="desc">
+<p>The axis's maximum design coordinate.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Multi_Master">FT_Multi_Master</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Multi_Master_
+  {
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     num_axis;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     num_designs;
+    <a href="ft2-multiple_masters.html#FT_MM_Axis">FT_MM_Axis</a>  axis[T1_MAX_MM_AXIS];
+
+  } <b>FT_Multi_Master</b>;
+</pre>
+
+<p>A structure to model the axes and space of a Multiple Masters font.</p>
+<p>This structure can't be used for TrueType GX or OpenType variation fonts.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="num_axis">num_axis</td><td class="desc">
+<p>Number of axes. Cannot exceed&nbsp;4.</p>
+</td></tr>
+<tr><td class="val" id="num_designs">num_designs</td><td class="desc">
+<p>Number of designs; should be normally 2^num_axis even though the Type&nbsp;1 specification strangely allows for intermediate designs to be present. This number cannot exceed&nbsp;16.</p>
+</td></tr>
+<tr><td class="val" id="axis">axis</td><td class="desc">
+<p>A table of axis descriptors.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Var_Axis">FT_Var_Axis</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Var_Axis_
+  {
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  name;
+
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>    minimum;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>    def;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>    maximum;
+
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>    tag;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     strid;
+
+  } <b>FT_Var_Axis</b>;
+</pre>
+
+<p>A structure to model a given axis in design space for Multiple Masters, TrueType GX, and OpenType variation fonts.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="name">name</td><td class="desc">
+<p>The axis's name. Not always meaningful for TrueType GX or OpenType variation fonts.</p>
+</td></tr>
+<tr><td class="val" id="minimum">minimum</td><td class="desc">
+<p>The axis's minimum design coordinate.</p>
+</td></tr>
+<tr><td class="val" id="def">def</td><td class="desc">
+<p>The axis's default design coordinate. FreeType computes meaningful default values for Adobe MM fonts.</p>
+</td></tr>
+<tr><td class="val" id="maximum">maximum</td><td class="desc">
+<p>The axis's maximum design coordinate.</p>
+</td></tr>
+<tr><td class="val" id="tag">tag</td><td class="desc">
+<p>The axis's tag (the equivalent to &lsquo;name&rsquo; for TrueType GX and OpenType variation fonts). FreeType provides default values for Adobe MM fonts if possible.</p>
+</td></tr>
+<tr><td class="val" id="strid">strid</td><td class="desc">
+<p>The axis name entry in the font's &lsquo;name&rsquo; table. This is another (and often better) version of the &lsquo;name&rsquo; field for TrueType GX or OpenType variation fonts. Not meaningful for Adobe MM fonts.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The fields &lsquo;minimum&rsquo;, &lsquo;def&rsquo;, and &lsquo;maximum&rsquo; are 16.16 fractional values for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the values are integers.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Var_Named_Style">FT_Var_Named_Style</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Var_Named_Style_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    strid;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    psid;   /* since 2.7.1 */
+
+  } <b>FT_Var_Named_Style</b>;
+</pre>
+
+<p>A structure to model a named instance in a TrueType GX or OpenType variation font.</p>
+<p>This structure can't be used for Adobe MM fonts.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>The design coordinates for this instance. This is an array with one entry for each axis.</p>
+</td></tr>
+<tr><td class="val" id="strid">strid</td><td class="desc">
+<p>The entry in &lsquo;name&rsquo; table identifying this instance.</p>
+</td></tr>
+<tr><td class="val" id="psid">psid</td><td class="desc">
+<p>The entry in &lsquo;name&rsquo; table identifying a PostScript name for this instance. Value 0xFFFF indicates a missing entry.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MM_Var">FT_MM_Var</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_MM_Var_
+  {
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>              num_axis;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>              num_designs;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>              num_namedstyles;
+    <a href="ft2-multiple_masters.html#FT_Var_Axis">FT_Var_Axis</a>*         axis;
+    <a href="ft2-multiple_masters.html#FT_Var_Named_Style">FT_Var_Named_Style</a>*  namedstyle;
+
+  } <b>FT_MM_Var</b>;
+</pre>
+
+<p>A structure to model the axes and space of an Adobe MM, TrueType GX, or OpenType variation font.</p>
+<p>Some fields are specific to one format and not to the others.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="num_axis">num_axis</td><td class="desc">
+<p>The number of axes. The maximum value is&nbsp;4 for Adobe MM fonts; no limit in TrueType GX or OpenType variation fonts.</p>
+</td></tr>
+<tr><td class="val" id="num_designs">num_designs</td><td class="desc">
+<p>The number of designs; should be normally 2^num_axis for Adobe MM fonts. Not meaningful for TrueType GX or OpenType variation fonts (where every glyph could have a different number of designs).</p>
+</td></tr>
+<tr><td class="val" id="num_namedstyles">num_namedstyles</td><td class="desc">
+<p>The number of named styles; a &lsquo;named style&rsquo; is a tuple of design coordinates that has a string ID (in the &lsquo;name&rsquo; table) associated with it. The font can tell the user that, for example, [Weight=1.5,Width=1.1] is &lsquo;Bold&rsquo;. Another name for &lsquo;named style&rsquo; is &lsquo;named instance&rsquo;.</p>
+<p>For Adobe Multiple Masters fonts, this value is always zero because the format does not support named styles.</p>
+</td></tr>
+<tr><td class="val" id="axis">axis</td><td class="desc">
+<p>An axis descriptor table. TrueType GX and OpenType variation fonts contain slightly more data than Adobe MM fonts. Memory management of this pointer is done internally by FreeType.</p>
+</td></tr>
+<tr><td class="val" id="namedstyle">namedstyle</td><td class="desc">
+<p>A named style (instance) table. Only meaningful for TrueType GX and OpenType variation fonts. Memory management of this pointer is done internally by FreeType.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Multi_Master">FT_Get_Multi_Master</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Multi_Master</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>           face,
+                       <a href="ft2-multiple_masters.html#FT_Multi_Master">FT_Multi_Master</a>  *amaster );
+</pre>
+
+<p>Retrieve a variation descriptor of a given Adobe MM font.</p>
+<p>This function can't be used with TrueType GX or OpenType variation fonts.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="amaster">amaster</td><td class="desc">
+<p>The Multiple Masters descriptor.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_MM_Var">FT_Get_MM_Var</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_MM_Var</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face,
+                 <a href="ft2-multiple_masters.html#FT_MM_Var">FT_MM_Var</a>*  *amaster );
+</pre>
+
+<p>Retrieve a variation descriptor for a given font.</p>
+<p>This function works with all supported variation formats.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="amaster">amaster</td><td class="desc">
+<p>The variation descriptor. Allocates a data structure, which the user must deallocate with a call to <a href="ft2-multiple_masters.html#FT_Done_MM_Var">FT_Done_MM_Var</a> after use.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_MM_Var">FT_Done_MM_Var</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Done_MM_Var</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                  <a href="ft2-multiple_masters.html#FT_MM_Var">FT_MM_Var</a>   *amaster );
+</pre>
+
+<p>Free the memory allocated by <a href="ft2-multiple_masters.html#FT_Get_MM_Var">FT_Get_MM_Var</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle of the face's parent library object that was used in the call to <a href="ft2-multiple_masters.html#FT_Get_MM_Var">FT_Get_MM_Var</a> to create &lsquo;amaster&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_MM_Design_Coordinates">FT_Set_MM_Design_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_MM_Design_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                                <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   num_coords,
+                                <a href="ft2-basic_types.html#FT_Long">FT_Long</a>*  coords );
+</pre>
+
+<p>For Adobe MM fonts, choose an interpolated font design through design coordinates.</p>
+<p>This function can't be used with TrueType GX or OpenType variation fonts.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="num_coords">num_coords</td><td class="desc">
+<p>The number of available design coordinates. If it is larger than the number of axes, ignore the excess values. If it is smaller than the number of axes, use default values for the remaining axes.</p>
+</td></tr>
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>An array of design coordinates.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>[Since 2.8.1] To reset all axes to the default values, call the function with &lsquo;num_coords&rsquo; set to zero and &lsquo;coords&rsquo; set to NULL.</p>
+<p>[Since 2.9] If &lsquo;num_coords&rsquo; is larger than zero, this function sets the <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VARIATION</a> bit in <a href="ft2-base_interface.html#FT_Face">FT_Face</a>'s &lsquo;face_flags&rsquo; field (i.e., <a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a> will return true). If &lsquo;num_coords&rsquo; is zero, this bit flag gets unset.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Var_Design_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                                 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                                 <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>Choose an interpolated font design through design coordinates.</p>
+<p>This function works with all supported variation formats.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="num_coords">num_coords</td><td class="desc">
+<p>The number of available design coordinates. If it is larger than the number of axes, ignore the excess values. If it is smaller than the number of axes, use default values for the remaining axes.</p>
+</td></tr>
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>An array of design coordinates.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>[Since 2.8.1] To reset all axes to the default values, call the function with &lsquo;num_coords&rsquo; set to zero and &lsquo;coords&rsquo; set to NULL. [Since 2.9] &lsquo;Default values&rsquo; means the currently selected named instance (or the base font if no named instance is selected).</p>
+<p>[Since 2.9] If &lsquo;num_coords&rsquo; is larger than zero, this function sets the <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VARIATION</a> bit in <a href="ft2-base_interface.html#FT_Face">FT_Face</a>'s &lsquo;face_flags&rsquo; field (i.e., <a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a> will return true). If &lsquo;num_coords&rsquo; is zero, this bit flag gets unset.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Var_Design_Coordinates">FT_Get_Var_Design_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Var_Design_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                                 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                                 <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>Get the design coordinates of the currently selected interpolated font.</p>
+<p>This function works with all supported variation formats.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="num_coords">num_coords</td><td class="desc">
+<p>The number of design coordinates to retrieve. If it is larger than the number of axes, set the excess values to&nbsp;0.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>The design coordinates array.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>since</h4>
+<p>2.7.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_MM_Blend_Coordinates">FT_Set_MM_Blend_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_MM_Blend_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                               <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>Choose an interpolated font design through normalized blend coordinates.</p>
+<p>This function works with all supported variation formats.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="num_coords">num_coords</td><td class="desc">
+<p>The number of available design coordinates. If it is larger than the number of axes, ignore the excess values. If it is smaller than the number of axes, use default values for the remaining axes.</p>
+</td></tr>
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>The design coordinates array (each element must be between 0 and 1.0 for Adobe MM fonts, and between -1.0 and 1.0 for TrueType GX and OpenType variation fonts).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>[Since 2.8.1] To reset all axes to the default values, call the function with &lsquo;num_coords&rsquo; set to zero and &lsquo;coords&rsquo; set to NULL. [Since 2.9] &lsquo;Default values&rsquo; means the currently selected named instance (or the base font if no named instance is selected).</p>
+<p>[Since 2.9] If &lsquo;num_coords&rsquo; is larger than zero, this function sets the <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VARIATION</a> bit in <a href="ft2-base_interface.html#FT_Face">FT_Face</a>'s &lsquo;face_flags&rsquo; field (i.e., <a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a> will return true). If &lsquo;num_coords&rsquo; is zero, this bit flag gets unset.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_MM_Blend_Coordinates">FT_Get_MM_Blend_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_MM_Blend_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                               <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                               <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>Get the normalized blend coordinates of the currently selected interpolated font.</p>
+<p>This function works with all supported variation formats.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="num_coords">num_coords</td><td class="desc">
+<p>The number of normalized blend coordinates to retrieve. If it is larger than the number of axes, set the excess values to&nbsp;0.5 for Adobe MM fonts, and to&nbsp;0 for TrueType GX and OpenType variation fonts.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="coords">coords</td><td class="desc">
+<p>The normalized blend coordinates array.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>since</h4>
+<p>2.7.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Var_Blend_Coordinates">FT_Set_Var_Blend_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Var_Blend_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                                <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                                <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>This is another name of <a href="ft2-multiple_masters.html#FT_Set_MM_Blend_Coordinates">FT_Set_MM_Blend_Coordinates</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Var_Blend_Coordinates">FT_Get_Var_Blend_Coordinates</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Var_Blend_Coordinates</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                                <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    num_coords,
+                                <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>*  coords );
+</pre>
+
+<p>This is another name of <a href="ft2-multiple_masters.html#FT_Get_MM_Blend_Coordinates">FT_Get_MM_Blend_Coordinates</a>.</p>
+
+<h4>since</h4>
+<p>2.7.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_VAR_AXIS_FLAG_XXX">FT_VAR_AXIS_FLAG_XXX</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+#define <a href="ft2-multiple_masters.html#FT_VAR_AXIS_FLAG_HIDDEN">FT_VAR_AXIS_FLAG_HIDDEN</a>  1
+</pre>
+
+<p>A list of bit flags used in the return value of <a href="ft2-multiple_masters.html#FT_Get_Var_Axis_Flags">FT_Get_Var_Axis_Flags</a>.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_VAR_AXIS_FLAG_HIDDEN">FT_VAR_AXIS_FLAG_HIDDEN</td><td class="desc">
+<p>The variation axis should not be exposed to user interfaces.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.8.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Var_Axis_Flags">FT_Get_Var_Axis_Flags</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Var_Axis_Flags</b>( <a href="ft2-multiple_masters.html#FT_MM_Var">FT_MM_Var</a>*  master,
+                         <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     axis_index,
+                         <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>*    flags );
+</pre>
+
+<p>Get the &lsquo;flags&rsquo; field of an OpenType Variation Axis Record.</p>
+<p>Not meaningful for Adobe MM fonts (&lsquo;*flags&rsquo; is always zero).</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="master">master</td><td class="desc">
+<p>The variation descriptor.</p>
+</td></tr>
+<tr><td class="val" id="axis_index">axis_index</td><td class="desc">
+<p>The index of the requested variation axis.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="flags">flags</td><td class="desc">
+<p>The &lsquo;flags&rsquo; field. See <a href="ft2-multiple_masters.html#FT_VAR_AXIS_FLAG_XXX">FT_VAR_AXIS_FLAG_XXX</a> for possible values.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>since</h4>
+<p>2.8.1</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Set_Named_Instance">FT_Set_Named_Instance</h3>
+<p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Set_Named_Instance</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face,
+                         <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  instance_index );
+</pre>
+
+<p>Set or change the current named instance.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="instance_index">instance_index</td><td class="desc">
+<p>The index of the requested instance, starting with value 1. If set to value 0, FreeType switches to font access without a named instance.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The function uses the value of &lsquo;instance_index&rsquo; to set bits 16-30 of the face's &lsquo;face_index&rsquo; field. It also resets any variation applied to the font, and the <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_VARIATION</a> bit of the face's &lsquo;face_flags&rsquo; field gets reset to zero (i.e., <a href="ft2-base_interface.html#FT_IS_VARIATION">FT_IS_VARIATION</a> will return false).</p>
+<p>For Adobe MM fonts (which don't have named instances) this function simply resets the current face to the default instance.</p>
+
+<h4>since</h4>
+<p>2.9</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-ot_validation.html freetype-2.10.0.aros/docs/reference/ft2-ot_validation.html
--- freetype-2.10.0/docs/reference/ft2-ot_validation.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-ot_validation.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="ot_validation">OpenType Validation</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_OpenType_Validate">FT_OpenType_Validate</a></td><td>&nbsp;</td><td></td></tr>
+<tr><td><a href="#FT_OpenType_Free">FT_OpenType_Free</a></td><td><a href="#FT_VALIDATE_OTXXX">FT_VALIDATE_OTXXX</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of functions to validate some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p>
+
+<div class="section">
+<h3 id="FT_OpenType_Validate">FT_OpenType_Validate</h3>
+<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_OpenType_Validate</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    validation_flags,
+                        <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *BASE_table,
+                        <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *GDEF_table,
+                        <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *GPOS_table,
+                        <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *GSUB_table,
+                        <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  *JSTF_table );
+</pre>
+
+<p>Validate various OpenType tables to assure that all offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="validation_flags">validation_flags</td><td class="desc">
+<p>A bit field that specifies the tables to be validated. See <a href="ft2-ot_validation.html#FT_VALIDATE_OTXXX">FT_VALIDATE_OTXXX</a> for possible values.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="BASE_table">BASE_table</td><td class="desc">
+<p>A pointer to the BASE table.</p>
+</td></tr>
+<tr><td class="val" id="GDEF_table">GDEF_table</td><td class="desc">
+<p>A pointer to the GDEF table.</p>
+</td></tr>
+<tr><td class="val" id="GPOS_table">GPOS_table</td><td class="desc">
+<p>A pointer to the GPOS table.</p>
+</td></tr>
+<tr><td class="val" id="GSUB_table">GSUB_table</td><td class="desc">
+<p>A pointer to the GSUB table.</p>
+</td></tr>
+<tr><td class="val" id="JSTF_table">JSTF_table</td><td class="desc">
+<p>A pointer to the JSTF table.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with OpenType fonts, returning an error otherwise.</p>
+<p>After use, the application should deallocate the five tables with <a href="ft2-ot_validation.html#FT_OpenType_Free">FT_OpenType_Free</a>. A NULL value indicates that the table either doesn't exist in the font, or the application hasn't asked for validation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OpenType_Free">FT_OpenType_Free</h3>
+<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_OpenType_Free</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                    <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a>  table );
+</pre>
+
+<p>Free the buffer allocated by OpenType validator.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="table">table</td><td class="desc">
+<p>The pointer to the buffer that is allocated by <a href="ft2-ot_validation.html#FT_OpenType_Validate">FT_OpenType_Validate</a>.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function must be used to free the buffer allocated by <a href="ft2-ot_validation.html#FT_OpenType_Validate">FT_OpenType_Validate</a> only.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_VALIDATE_OTXXX">FT_VALIDATE_OTXXX</h3>
+<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
+<pre>
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_BASE">FT_VALIDATE_BASE</a>  0x0100
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_GDEF">FT_VALIDATE_GDEF</a>  0x0200
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_GPOS">FT_VALIDATE_GPOS</a>  0x0400
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_GSUB">FT_VALIDATE_GSUB</a>  0x0800
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</a>  0x1000
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_MATH">FT_VALIDATE_MATH</a>  0x2000
+
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_OT">FT_VALIDATE_OT</a>  ( <a href="ft2-ot_validation.html#FT_VALIDATE_BASE">FT_VALIDATE_BASE</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GDEF">FT_VALIDATE_GDEF</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GPOS">FT_VALIDATE_GPOS</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GSUB">FT_VALIDATE_GSUB</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_MATH">FT_VALIDATE_MATH</a> )
+</pre>
+
+<p>A list of bit-field constants used with <a href="ft2-ot_validation.html#FT_OpenType_Validate">FT_OpenType_Validate</a> to indicate which OpenType tables should be validated.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_VALIDATE_BASE">FT_VALIDATE_BASE</td><td class="desc">
+<p>Validate BASE table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_GDEF">FT_VALIDATE_GDEF</td><td class="desc">
+<p>Validate GDEF table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_GPOS">FT_VALIDATE_GPOS</td><td class="desc">
+<p>Validate GPOS table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_GSUB">FT_VALIDATE_GSUB</td><td class="desc">
+<p>Validate GSUB table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</td><td class="desc">
+<p>Validate JSTF table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_MATH">FT_VALIDATE_MATH</td><td class="desc">
+<p>Validate MATH table.</p>
+</td></tr>
+<tr><td class="val" id="FT_VALIDATE_OT">FT_VALIDATE_OT</td><td class="desc">
+<p>Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-outline_processing.html freetype-2.10.0.aros/docs/reference/ft2-outline_processing.html
--- freetype-2.10.0/docs/reference/ft2-outline_processing.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-outline_processing.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,970 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="outline_processing">Outline Processing</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Outline">FT_Outline</a></td><td><a href="#FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</a></td></tr>
+<tr><td><a href="#FT_Outline_New">FT_Outline_New</a></td><td><a href="#FT_Outline_Render">FT_Outline_Render</a></td></tr>
+<tr><td><a href="#FT_Outline_Done">FT_Outline_Done</a></td><td><a href="#FT_Outline_Decompose">FT_Outline_Decompose</a></td></tr>
+<tr><td><a href="#FT_Outline_Copy">FT_Outline_Copy</a></td><td><a href="#FT_Outline_Funcs">FT_Outline_Funcs</a></td></tr>
+<tr><td><a href="#FT_Outline_Translate">FT_Outline_Translate</a></td><td><a href="#FT_Outline_MoveToFunc">FT_Outline_MoveToFunc</a></td></tr>
+<tr><td><a href="#FT_Outline_Transform">FT_Outline_Transform</a></td><td><a href="#FT_Outline_LineToFunc">FT_Outline_LineToFunc</a></td></tr>
+<tr><td><a href="#FT_Outline_Embolden">FT_Outline_Embolden</a></td><td><a href="#FT_Outline_ConicToFunc">FT_Outline_ConicToFunc</a></td></tr>
+<tr><td><a href="#FT_Outline_EmboldenXY">FT_Outline_EmboldenXY</a></td><td><a href="#FT_Outline_CubicToFunc">FT_Outline_CubicToFunc</a></td></tr>
+<tr><td><a href="#FT_Outline_Reverse">FT_Outline_Reverse</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Outline_Check">FT_Outline_Check</a></td><td><a href="#FT_Orientation">FT_Orientation</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Outline_Get_Orientation">FT_Outline_Get_Orientation</a></td></tr>
+<tr><td><a href="#FT_Outline_Get_CBox">FT_Outline_Get_CBox</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a></td><td><a href="#FT_OUTLINE_XXX">FT_OUTLINE_XXX</a></td></tr>
+<tr><td>&nbsp;</td><td></td></tr>
+</table>
+
+
+<p>This section contains routines used to create and destroy scalable glyph images known as &lsquo;outlines&rsquo;. These can also be measured, transformed, and converted into bitmaps and pixmaps.</p>
+
+<div class="section">
+<h3 id="FT_Outline">FT_Outline</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Outline_
+  {
+    <span class="keyword">short</span>       n_contours;      /* number of contours in glyph        */
+    <span class="keyword">short</span>       n_points;        /* number of points in the glyph      */
+
+    <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  points;          /* the outline's points               */
+    <span class="keyword">char</span>*       tags;            /* the points flags                   */
+    <span class="keyword">short</span>*      contours;        /* the contour end points             */
+
+    <span class="keyword">int</span>         flags;           /* outline masks                      */
+
+  } <b>FT_Outline</b>;
+</pre>
+
+<p>This structure is used to describe an outline to the scan-line converter.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="n_contours">n_contours</td><td class="desc">
+<p>The number of contours in the outline.</p>
+</td></tr>
+<tr><td class="val" id="n_points">n_points</td><td class="desc">
+<p>The number of points in the outline.</p>
+</td></tr>
+<tr><td class="val" id="points">points</td><td class="desc">
+<p>A pointer to an array of &lsquo;n_points&rsquo; <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a> elements, giving the outline's point coordinates.</p>
+</td></tr>
+<tr><td class="val" id="tags">tags</td><td class="desc">
+<p>A pointer to an array of &lsquo;n_points&rsquo; chars, giving each outline point's type.</p>
+<p>If bit&nbsp;0 is unset, the point is &lsquo;off&rsquo; the curve, i.e., a Bezier control point, while it is &lsquo;on&rsquo; if set.</p>
+<p>Bit&nbsp;1 is meaningful for &lsquo;off&rsquo; points only. If set, it indicates a third-order Bezier arc control point; and a second-order control point if unset.</p>
+<p>If bit&nbsp;2 is set, bits 5-7 contain the drop-out mode (as defined in the OpenType specification; the value is the same as the argument to the SCANMODE instruction).</p>
+<p>Bits 3 and&nbsp;4 are reserved for internal purposes.</p>
+</td></tr>
+<tr><td class="val" id="contours">contours</td><td class="desc">
+<p>An array of &lsquo;n_contours&rsquo; shorts, giving the end point of each contour within the outline. For example, the first contour is defined by the points &lsquo;0&rsquo; to &lsquo;contours[0]&rsquo;, the second one is defined by the points &lsquo;contours[0]+1&rsquo; to &lsquo;contours[1]&rsquo;, etc.</p>
+</td></tr>
+<tr><td class="val" id="flags">flags</td><td class="desc">
+<p>A set of bit flags used to characterize the outline and give hints to the scan-converter and hinter on how to convert/grid-fit it. See <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_XXX</a>.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The B/W rasterizer only checks bit&nbsp;2 in the &lsquo;tags&rsquo; array for the first point of each contour. The drop-out mode as given with <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_IGNORE_DROPOUTS</a>, <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_SMART_DROPOUTS</a>, and <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_INCLUDE_STUBS</a> in &lsquo;flags&rsquo; is then overridden.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_New">FT_Outline_New</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_New</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                  <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>      numPoints,
+                  <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       numContours,
+                  <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>  *anoutline );
+
+
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  FT_Outline_New_Internal( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>    memory,
+                           <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>      numPoints,
+                           <a href="ft2-basic_types.html#FT_Int">FT_Int</a>       numContours,
+                           <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>  *anoutline );
+</pre>
+
+<p>Create a new outline of a given size.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to the library object from where the outline is allocated. Note however that the new outline will <b>not</b> necessarily be <b>freed</b>, when destroying the library, by <a href="ft2-base_interface.html#FT_Done_FreeType">FT_Done_FreeType</a>.</p>
+</td></tr>
+<tr><td class="val" id="numPoints">numPoints</td><td class="desc">
+<p>The maximum number of points within the outline. Must be smaller than or equal to 0xFFFF (65535).</p>
+</td></tr>
+<tr><td class="val" id="numContours">numContours</td><td class="desc">
+<p>The maximum number of contours within the outline. This value must be in the range 0 to &lsquo;numPoints&rsquo;.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="anoutline">anoutline</td><td class="desc">
+<p>A handle to the new outline.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The reason why this function takes a &lsquo;library&rsquo; parameter is simply to use the library's memory allocator.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Done">FT_Outline_Done</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Done</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                   <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+
+
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  FT_Outline_Done_Internal( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>    memory,
+                            <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Destroy an outline created with <a href="ft2-outline_processing.html#FT_Outline_New">FT_Outline_New</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle of the library object used to allocate the outline.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the outline object to be discarded.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If the outline's &lsquo;owner&rsquo; field is not set, only the outline descriptor will be released.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Copy">FT_Outline_Copy</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Copy</b>( <span class="keyword">const</span> <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  source,
+                   <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>        *target );
+</pre>
+
+<p>Copy an outline into another one. Both objects must have the same sizes (number of points &amp; number of contours) when this function is called.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>A handle to the source outline.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="target">target</td><td class="desc">
+<p>A handle to the target outline.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Translate">FT_Outline_Translate</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Outline_Translate</b>( <span class="keyword">const</span> <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                        <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>             xOffset,
+                        <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>             yOffset );
+</pre>
+
+<p>Apply a simple translation to the points of an outline.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the target outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="xOffset">xOffset</td><td class="desc">
+<p>The horizontal offset.</p>
+</td></tr>
+<tr><td class="val" id="yOffset">yOffset</td><td class="desc">
+<p>The vertical offset.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Transform">FT_Outline_Transform</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Outline_Transform</b>( <span class="keyword">const</span> <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                        <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>*   matrix );
+</pre>
+
+<p>Apply a simple 2x2 matrix to all of an outline's points. Useful for applying rotations, slanting, flipping, etc.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the target outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to the transformation matrix.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>You can use <a href="ft2-outline_processing.html#FT_Outline_Translate">FT_Outline_Translate</a> if you need to translate the outline's points.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Embolden">FT_Outline_Embolden</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Embolden</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                       <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>       strength );
+</pre>
+
+<p>Embolden an outline. The new outline will be at most 4&nbsp;times &lsquo;strength&rsquo; pixels wider and higher. You may think of the left and bottom borders as unchanged.</p>
+<p>Negative &lsquo;strength&rsquo; values to reduce the outline thickness are possible also.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A handle to the target outline.</p>
+</td></tr>
+</table>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="strength">strength</td><td class="desc">
+<p>How strong the glyph is emboldened. Expressed in 26.6 pixel format.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The used algorithm to increase or decrease the thickness of the glyph doesn't change the number of points; this means that certain situations like acute angles or intersections are sometimes handled incorrectly.</p>
+<p>If you need &lsquo;better&rsquo; metrics values you should call <a href="ft2-outline_processing.html#FT_Outline_Get_CBox">FT_Outline_Get_CBox</a> or <a href="ft2-outline_processing.html#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a>.</p>
+<p>Example call:</p>
+<pre class="colored">
+  FT_Load_Glyph( face, index, FT_LOAD_DEFAULT );
+  if ( face-&gt;glyph-&gt;format == FT_GLYPH_FORMAT_OUTLINE )
+    FT_Outline_Embolden( &amp;face-&gt;glyph-&gt;outline, strength );
+</pre>
+<p>To get meaningful results, font scaling values must be set with functions like <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> before calling FT_Render_Glyph.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_EmboldenXY">FT_Outline_EmboldenXY</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_EmboldenXY</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                         <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>       xstrength,
+                         <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>       ystrength );
+</pre>
+
+<p>Embolden an outline. The new outline will be &lsquo;xstrength&rsquo; pixels wider and &lsquo;ystrength&rsquo; pixels higher. Otherwise, it is similar to <a href="ft2-outline_processing.html#FT_Outline_Embolden">FT_Outline_Embolden</a>, which uses the same strength in both directions.</p>
+
+<h4>since</h4>
+<p>2.4.10</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Reverse">FT_Outline_Reverse</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Outline_Reverse</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Reverse the drawing direction of an outline. This is used to ensure consistent fill conventions for mirrored glyphs.</p>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the target outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This function toggles the bit flag <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_REVERSE_FILL</a> in the outline's &lsquo;flags&rsquo; field.</p>
+<p>It shouldn't be used by a normal client application, unless it knows what it is doing.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Check">FT_Outline_Check</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Check</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>Check the contents of an outline descriptor.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A handle to a source outline.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>An empty outline, or an outline with a single point only is also valid.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Get_CBox">FT_Outline_Get_CBox</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Outline_Get_CBox</b>( <span class="keyword">const</span> <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                       <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>           *acbox );
+</pre>
+
+<p>Return an outline's &lsquo;control box&rsquo;. The control box encloses all the outline's points, including Bezier control points. Though it coincides with the exact bounding box for most glyphs, it can be slightly larger in some situations (like when rotating an outline that contains Bezier outside arcs).</p>
+<p>Computing the control box is very fast, while getting the bounding box can take much more time as it needs to walk over all segments and arcs in the outline. To get the latter, you can use the &lsquo;ftbbox&rsquo; component, which is dedicated to this single task.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the source outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="acbox">acbox</td><td class="desc">
+<p>The outline's control box.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>See <a href="ft2-glyph_management.html#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a> for a discussion of tricky fonts.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Get_BBox">FT_Outline_Get_BBox</h3>
+<p>Defined in FT_BBOX_H (freetype/ftbbox.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Get_BBox</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline,
+                       <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>     *abbox );
+</pre>
+
+<p>Compute the exact bounding box of an outline. This is slower than computing the control box. However, it uses an advanced algorithm that returns <i>very</i> quickly when the two boxes coincide. Otherwise, the outline Bezier arcs are traversed to extract their extrema.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the source outline.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="abbox">abbox</td><td class="desc">
+<p>The outline's exact bounding box.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If the font is tricky and the glyph has been loaded with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>, the resulting BBox is meaningless. To get reasonable values for the BBox it is necessary to load the glyph at a large ppem value (so that the hinting instructions can properly shift and scale the subglyphs), then extracting the BBox, which can be eventually converted back to font units.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Get_Bitmap</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>        library,
+                         <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*       outline,
+                         <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>  *abitmap );
+</pre>
+
+<p>Render an outline within a bitmap. The outline's image is simply OR-ed to the target bitmap.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a FreeType library object.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the source outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="abitmap">abitmap</td><td class="desc">
+<p>A pointer to the target bitmap descriptor.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function does NOT CREATE the bitmap, it only renders an outline image within the one you pass to it! Consequently, the various fields in &lsquo;abitmap&rsquo; should be set accordingly.</p>
+<p>It will use the raster corresponding to the default glyph format.</p>
+<p>The value of the &lsquo;num_grays&rsquo; field in &lsquo;abitmap&rsquo; is ignored. If you select the gray-level rasterizer, and you want less than 256 gray levels, you have to use <a href="ft2-outline_processing.html#FT_Outline_Render">FT_Outline_Render</a> directly.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Render">FT_Outline_Render</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Render</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>         library,
+                     <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*        outline,
+                     <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a>*  params );
+</pre>
+
+<p>Render an outline within a bitmap using the current scan-convert. This function uses an <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure as an argument, allowing advanced features like direct composition, translucency, etc.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A handle to a FreeType library object.</p>
+</td></tr>
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the source outline descriptor.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="params">params</td><td class="desc">
+<p>A pointer to an <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure used to describe the rendering operation.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You should know what you are doing and how <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> works to use this function.</p>
+<p>The field &lsquo;params.source&rsquo; will be set to &lsquo;outline&rsquo; before the scan converter is called, which means that the value you give to it is actually ignored.</p>
+<p>The gray-level rasterizer always uses 256 gray levels. If you want less gray levels, you have to provide your own span callback. See the <a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_DIRECT</a> value of the &lsquo;flags&rsquo; field in the <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure for more details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Decompose">FT_Outline_Decompose</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Outline_Decompose</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*              outline,
+                        <span class="keyword">const</span> <a href="ft2-outline_processing.html#FT_Outline_Funcs">FT_Outline_Funcs</a>*  func_interface,
+                        <span class="keyword">void</span>*                    user );
+</pre>
+
+<p>Walk over an outline's structure to decompose it into individual segments and Bezier arcs. This function also emits &lsquo;move to&rsquo; operations to indicate the start of new contours in the outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A pointer to the source target.</p>
+</td></tr>
+<tr><td class="val" id="func_interface">func_interface</td><td class="desc">
+<p>A table of &lsquo;emitters&rsquo;, i.e., function pointers called during decomposition to indicate path operations.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer that is passed to each emitter during the decomposition. It can be used to store the state during the decomposition.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>A contour that contains a single point only is represented by a &lsquo;move to&rsquo; operation followed by &lsquo;line to&rsquo; to the same point. In most cases, it is best to filter this out before using the outline for stroking purposes (otherwise it would result in a visible dot when round caps are used).</p>
+<p>Similarly, the function returns success for an empty outline also (doing nothing, this is, not calling any emitter); if necessary, you should filter this out, too.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Funcs">FT_Outline_Funcs</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Outline_Funcs_
+  {
+    <a href="ft2-outline_processing.html#FT_Outline_MoveToFunc">FT_Outline_MoveToFunc</a>   move_to;
+    <a href="ft2-outline_processing.html#FT_Outline_LineToFunc">FT_Outline_LineToFunc</a>   line_to;
+    <a href="ft2-outline_processing.html#FT_Outline_ConicToFunc">FT_Outline_ConicToFunc</a>  conic_to;
+    <a href="ft2-outline_processing.html#FT_Outline_CubicToFunc">FT_Outline_CubicToFunc</a>  cubic_to;
+
+    <span class="keyword">int</span>                     shift;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>                  delta;
+
+  } <b>FT_Outline_Funcs</b>;
+</pre>
+
+<p>A structure to hold various function pointers used during outline decomposition in order to emit segments, conic, and cubic Beziers.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="move_to">move_to</td><td class="desc">
+<p>The &lsquo;move to&rsquo; emitter.</p>
+</td></tr>
+<tr><td class="val" id="line_to">line_to</td><td class="desc">
+<p>The segment emitter.</p>
+</td></tr>
+<tr><td class="val" id="conic_to">conic_to</td><td class="desc">
+<p>The second-order Bezier arc emitter.</p>
+</td></tr>
+<tr><td class="val" id="cubic_to">cubic_to</td><td class="desc">
+<p>The third-order Bezier arc emitter.</p>
+</td></tr>
+<tr><td class="val" id="shift">shift</td><td class="desc">
+<p>The shift that is applied to coordinates before they are sent to the emitter.</p>
+</td></tr>
+<tr><td class="val" id="delta">delta</td><td class="desc">
+<p>The delta that is applied to coordinates before they are sent to the emitter, but after the shift.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The point coordinates sent to the emitters are the transformed version of the original coordinates (this is important for high accuracy during scan-conversion). The transformation is simple:</p>
+<pre class="colored">
+  x' = (x &lt;&lt; shift) - delta
+  y' = (y &lt;&lt; shift) - delta
+</pre>
+<p>Set the values of &lsquo;shift&rsquo; and &lsquo;delta&rsquo; to&nbsp;0 to get the original point coordinates.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_MoveToFunc">FT_Outline_MoveToFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Outline_MoveToFunc</b>)( <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to,
+                            <span class="keyword">void</span>*             user );
+
+#define FT_Outline_MoveTo_Func  <b>FT_Outline_MoveToFunc</b>
+</pre>
+
+<p>A function pointer type used to describe the signature of a &lsquo;move to&rsquo; function during outline walking/decomposition.</p>
+<p>A &lsquo;move to&rsquo; is emitted to start a new contour in an outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the target point of the &lsquo;move to&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer, which is passed from the caller of the decomposition function.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_LineToFunc">FT_Outline_LineToFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Outline_LineToFunc</b>)( <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to,
+                            <span class="keyword">void</span>*             user );
+
+#define FT_Outline_LineTo_Func  <b>FT_Outline_LineToFunc</b>
+</pre>
+
+<p>A function pointer type used to describe the signature of a &lsquo;line to&rsquo; function during outline walking/decomposition.</p>
+<p>A &lsquo;line to&rsquo; is emitted to indicate a segment in the outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the target point of the &lsquo;line to&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer, which is passed from the caller of the decomposition function.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_ConicToFunc">FT_Outline_ConicToFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Outline_ConicToFunc</b>)( <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control,
+                             <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to,
+                             <span class="keyword">void</span>*             user );
+
+#define FT_Outline_ConicTo_Func  <b>FT_Outline_ConicToFunc</b>
+</pre>
+
+<p>A function pointer type used to describe the signature of a &lsquo;conic to&rsquo; function during outline walking or decomposition.</p>
+<p>A &lsquo;conic to&rsquo; is emitted to indicate a second-order Bezier arc in the outline.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="control">control</td><td class="desc">
+<p>An intermediate control point between the last position and the new target in &lsquo;to&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the target end point of the conic arc.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer, which is passed from the caller of the decomposition function.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_CubicToFunc">FT_Outline_CubicToFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Outline_CubicToFunc</b>)( <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control1,
+                             <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  control2,
+                             <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>*  to,
+                             <span class="keyword">void</span>*             user );
+
+#define FT_Outline_CubicTo_Func  <b>FT_Outline_CubicToFunc</b>
+</pre>
+
+<p>A function pointer type used to describe the signature of a &lsquo;cubic to&rsquo; function during outline walking or decomposition.</p>
+<p>A &lsquo;cubic to&rsquo; is emitted to indicate a third-order Bezier arc.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="control1">control1</td><td class="desc">
+<p>A pointer to the first Bezier control point.</p>
+</td></tr>
+<tr><td class="val" id="control2">control2</td><td class="desc">
+<p>A pointer to the second Bezier control point.</p>
+</td></tr>
+<tr><td class="val" id="to">to</td><td class="desc">
+<p>A pointer to the target end point.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A typeless pointer, which is passed from the caller of the decomposition function.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Orientation">FT_Orientation</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Orientation_
+  {
+    <a href="ft2-outline_processing.html#FT_ORIENTATION_TRUETYPE">FT_ORIENTATION_TRUETYPE</a>   = 0,
+    <a href="ft2-outline_processing.html#FT_ORIENTATION_POSTSCRIPT">FT_ORIENTATION_POSTSCRIPT</a> = 1,
+    <a href="ft2-outline_processing.html#FT_ORIENTATION_FILL_RIGHT">FT_ORIENTATION_FILL_RIGHT</a> = <a href="ft2-outline_processing.html#FT_ORIENTATION_TRUETYPE">FT_ORIENTATION_TRUETYPE</a>,
+    <a href="ft2-outline_processing.html#FT_ORIENTATION_FILL_LEFT">FT_ORIENTATION_FILL_LEFT</a>  = <a href="ft2-outline_processing.html#FT_ORIENTATION_POSTSCRIPT">FT_ORIENTATION_POSTSCRIPT</a>,
+    <a href="ft2-outline_processing.html#FT_ORIENTATION_NONE">FT_ORIENTATION_NONE</a>
+
+  } <b>FT_Orientation</b>;
+</pre>
+
+<p>A list of values used to describe an outline's contour orientation.</p>
+<p>The TrueType and PostScript specifications use different conventions to determine whether outline contours should be filled or unfilled.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_ORIENTATION_TRUETYPE">FT_ORIENTATION_TRUETYPE</td><td class="desc">
+<p>According to the TrueType specification, clockwise contours must be filled, and counter-clockwise ones must be unfilled.</p>
+</td></tr>
+<tr><td class="val" id="FT_ORIENTATION_POSTSCRIPT">FT_ORIENTATION_POSTSCRIPT</td><td class="desc">
+<p>According to the PostScript specification, counter-clockwise contours must be filled, and clockwise ones must be unfilled.</p>
+</td></tr>
+<tr><td class="val" id="FT_ORIENTATION_FILL_RIGHT">FT_ORIENTATION_FILL_RIGHT</td><td class="desc">
+<p>This is identical to <a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_TRUETYPE</a>, but is used to remember that in TrueType, everything that is to the right of the drawing direction of a contour must be filled.</p>
+</td></tr>
+<tr><td class="val" id="FT_ORIENTATION_FILL_LEFT">FT_ORIENTATION_FILL_LEFT</td><td class="desc">
+<p>This is identical to <a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_POSTSCRIPT</a>, but is used to remember that in PostScript, everything that is to the left of the drawing direction of a contour must be filled.</p>
+</td></tr>
+<tr><td class="val" id="FT_ORIENTATION_NONE">FT_ORIENTATION_NONE</td><td class="desc">
+<p>The orientation cannot be determined. That is, different parts of the glyph have different orientation.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Outline_Get_Orientation">FT_Outline_Get_Orientation</h3>
+<p>Defined in FT_OUTLINE_H (freetype/ftoutln.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-outline_processing.html#FT_Orientation">FT_Orientation</a> )
+  <b>FT_Outline_Get_Orientation</b>( <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>*  outline );
+</pre>
+
+<p>This function analyzes a glyph outline and tries to compute its fill orientation (see <a href="ft2-outline_processing.html#FT_Orientation">FT_Orientation</a>). This is done by integrating the total area covered by the outline. The positive integral corresponds to the clockwise orientation and <a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_POSTSCRIPT</a> is returned. The negative integral corresponds to the counter-clockwise orientation and <a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_TRUETYPE</a> is returned.</p>
+<p>Note that this will return <a href="ft2-outline_processing.html#FT_Orientation">FT_ORIENTATION_TRUETYPE</a> for empty outlines.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="outline">outline</td><td class="desc">
+<p>A handle to the source outline.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The orientation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_OUTLINE_XXX">FT_OUTLINE_XXX</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_NONE">FT_OUTLINE_NONE</a>             0x0
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_OWNER">FT_OUTLINE_OWNER</a>            0x1
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_EVEN_ODD_FILL">FT_OUTLINE_EVEN_ODD_FILL</a>    0x2
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_REVERSE_FILL">FT_OUTLINE_REVERSE_FILL</a>     0x4
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_IGNORE_DROPOUTS">FT_OUTLINE_IGNORE_DROPOUTS</a>  0x8
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_SMART_DROPOUTS">FT_OUTLINE_SMART_DROPOUTS</a>   0x10
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_INCLUDE_STUBS">FT_OUTLINE_INCLUDE_STUBS</a>    0x20
+
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_HIGH_PRECISION">FT_OUTLINE_HIGH_PRECISION</a>   0x100
+#define <a href="ft2-outline_processing.html#FT_OUTLINE_SINGLE_PASS">FT_OUTLINE_SINGLE_PASS</a>      0x200
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_OUTLINE_XXX</b>' values instead                       */
+#define ft_outline_none             <a href="ft2-outline_processing.html#FT_OUTLINE_NONE">FT_OUTLINE_NONE</a>
+#define ft_outline_owner            <a href="ft2-outline_processing.html#FT_OUTLINE_OWNER">FT_OUTLINE_OWNER</a>
+#define ft_outline_even_odd_fill    <a href="ft2-outline_processing.html#FT_OUTLINE_EVEN_ODD_FILL">FT_OUTLINE_EVEN_ODD_FILL</a>
+#define ft_outline_reverse_fill     <a href="ft2-outline_processing.html#FT_OUTLINE_REVERSE_FILL">FT_OUTLINE_REVERSE_FILL</a>
+#define ft_outline_ignore_dropouts  <a href="ft2-outline_processing.html#FT_OUTLINE_IGNORE_DROPOUTS">FT_OUTLINE_IGNORE_DROPOUTS</a>
+#define ft_outline_high_precision   <a href="ft2-outline_processing.html#FT_OUTLINE_HIGH_PRECISION">FT_OUTLINE_HIGH_PRECISION</a>
+#define ft_outline_single_pass      <a href="ft2-outline_processing.html#FT_OUTLINE_SINGLE_PASS">FT_OUTLINE_SINGLE_PASS</a>
+</pre>
+
+<p>A list of bit-field constants use for the flags in an outline's &lsquo;flags&rsquo; field.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_OUTLINE_NONE">FT_OUTLINE_NONE</td><td class="desc">
+<p>Value&nbsp;0 is reserved.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_OWNER">FT_OUTLINE_OWNER</td><td class="desc">
+<p>If set, this flag indicates that the outline's field arrays (i.e., &lsquo;points&rsquo;, &lsquo;flags&rsquo;, and &lsquo;contours&rsquo;) are &lsquo;owned&rsquo; by the outline object, and should thus be freed when it is destroyed.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_EVEN_ODD_FILL">FT_OUTLINE_EVEN_ODD_FILL</td><td class="desc">
+<p>By default, outlines are filled using the non-zero winding rule. If set to 1, the outline will be filled using the even-odd fill rule (only works with the smooth rasterizer).</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_REVERSE_FILL">FT_OUTLINE_REVERSE_FILL</td><td class="desc">
+<p>By default, outside contours of an outline are oriented in clock-wise direction, as defined in the TrueType specification. This flag is set if the outline uses the opposite direction (typically for Type&nbsp;1 fonts). This flag is ignored by the scan converter.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_IGNORE_DROPOUTS">FT_OUTLINE_IGNORE_DROPOUTS</td><td class="desc">
+<p>By default, the scan converter will try to detect drop-outs in an outline and correct the glyph bitmap to ensure consistent shape continuity. If set, this flag hints the scan-line converter to ignore such cases. See below for more information.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_SMART_DROPOUTS">FT_OUTLINE_SMART_DROPOUTS</td><td class="desc">
+<p>Select smart dropout control. If unset, use simple dropout control. Ignored if <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_IGNORE_DROPOUTS</a> is set. See below for more information.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_INCLUDE_STUBS">FT_OUTLINE_INCLUDE_STUBS</td><td class="desc">
+<p>If set, turn pixels on for &lsquo;stubs&rsquo;, otherwise exclude them. Ignored if <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_IGNORE_DROPOUTS</a> is set. See below for more information.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_HIGH_PRECISION">FT_OUTLINE_HIGH_PRECISION</td><td class="desc">
+<p>This flag indicates that the scan-line converter should try to convert this outline to bitmaps with the highest possible quality. It is typically set for small character sizes. Note that this is only a hint that might be completely ignored by a given scan-converter.</p>
+</td></tr>
+<tr><td class="val" id="FT_OUTLINE_SINGLE_PASS">FT_OUTLINE_SINGLE_PASS</td><td class="desc">
+<p>This flag is set to force a given scan-converter to only use a single pass over the outline to render a bitmap glyph image. Normally, it is set for very large character sizes. It is only a hint that might be completely ignored by a given scan-converter.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The flags <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_IGNORE_DROPOUTS</a>, <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_SMART_DROPOUTS</a>, and <a href="ft2-outline_processing.html#FT_OUTLINE_XXX">FT_OUTLINE_INCLUDE_STUBS</a> are ignored by the smooth rasterizer.</p>
+<p>There exists a second mechanism to pass the drop-out mode to the B/W rasterizer; see the &lsquo;tags&rsquo; field in <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>.</p>
+<p>Please refer to the description of the &lsquo;SCANTYPE&rsquo; instruction in the OpenType specification (in file &lsquo;ttinst1.doc&rsquo;) how simple drop-outs, smart drop-outs, and stubs are defined.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-parameter_tags.html freetype-2.10.0.aros/docs/reference/ft2-parameter_tags.html
--- freetype-2.10.0/docs/reference/ft2-parameter_tags.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-parameter_tags.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="parameter_tags">Parameter Tags</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_INCREMENTAL">FT_PARAM_TAG_INCREMENTAL</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_RANDOM_SEED">FT_PARAM_TAG_RANDOM_SEED</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_STEM_DARKENING">FT_PARAM_TAG_STEM_DARKENING</a></td></tr>
+<tr><td><a href="#FT_PARAM_TAG_UNPATENTED_HINTING">FT_PARAM_TAG_UNPATENTED_HINTING</a></td></tr>
+</table>
+
+
+<p>This section contains macros for the <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> structure that are used with various functions to activate some special functionality or different behaviour of various components of FreeType.</p>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</h3>
+<pre>
+#define <b>FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'i', 'g', 'p', 'f' )
+
+
+  /* this constant is deprecated */
+#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
+          <b>FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</b>
+</pre>
+
+<p>A tag for <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> to make <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> ignore typographic family names in the &lsquo;name&rsquo; table (introduced in OpenType version 1.4). Use this for backward compatibility with legacy systems that have a four-faces-per-family restriction.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</h3>
+<pre>
+#define <b>FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'i', 'g', 'p', 's' )
+
+
+  /* this constant is deprecated */
+#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
+          <b>FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</b>
+</pre>
+
+<p>A tag for <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> to make <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> ignore typographic subfamily names in the &lsquo;name&rsquo; table (introduced in OpenType version 1.4). Use this for backward compatibility with legacy systems that have a four-faces-per-family restriction.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_INCREMENTAL">FT_PARAM_TAG_INCREMENTAL</h3>
+<pre>
+#define <b>FT_PARAM_TAG_INCREMENTAL</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'i', 'n', 'c', 'r' )
+</pre>
+
+<p>An <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> tag to be used with <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> to indicate incremental glyph loading.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</h3>
+<pre>
+#define <b>FT_PARAM_TAG_LCD_FILTER_WEIGHTS</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'l', 'c', 'd', 'f' )
+</pre>
+
+<p>An <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> tag to be used with <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a>. The corresponding argument specifies the five LCD filter weights for a given face (if using <a href="ft2-base_interface.html#FT_LOAD_TARGET_XXX">FT_LOAD_TARGET_LCD</a>, for example), overriding the global default values or the values set up with <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</a>.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_RANDOM_SEED">FT_PARAM_TAG_RANDOM_SEED</h3>
+<pre>
+#define <b>FT_PARAM_TAG_RANDOM_SEED</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 's', 'e', 'e', 'd' )
+</pre>
+
+<p>An <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> tag to be used with <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a>. The corresponding 32bit signed integer argument overrides the font driver's random seed value with a face-specific one; see <a href="ft2-properties.html#random-seed">random-seed</a>.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_STEM_DARKENING">FT_PARAM_TAG_STEM_DARKENING</h3>
+<pre>
+#define <b>FT_PARAM_TAG_STEM_DARKENING</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'd', 'a', 'r', 'k' )
+</pre>
+
+<p>An <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> tag to be used with <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a>. The corresponding Boolean argument specifies whether to apply stem darkening, overriding the global default values or the values set up with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> (see <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a>).</p>
+<p>This is a passive setting that only takes effect if the font driver or autohinter honors it, which the CFF, Type&nbsp;1, and CID drivers always do, but the autohinter only in &lsquo;light&rsquo; hinting mode (as of version 2.9).</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_UNPATENTED_HINTING">FT_PARAM_TAG_UNPATENTED_HINTING</h3>
+<pre>
+#define <b>FT_PARAM_TAG_UNPATENTED_HINTING</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'u', 'n', 'p', 'a' )
+</pre>
+
+<p>Deprecated, no effect.</p>
+<p>Previously: A constant used as the tag of an <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> structure to indicate that unpatented methods only should be used by the TrueType bytecode interpreter for a typeface opened by <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-pcf_driver.html freetype-2.10.0.aros/docs/reference/ft2-pcf_driver.html
--- freetype-2.10.0/docs/reference/ft2-pcf_driver.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-pcf_driver.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="pcf_driver">The PCF driver</h1>
+
+<p>While FreeType's PCF driver doesn't expose API functions by itself, it is possible to control its behaviour with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>. Right now, there is a single property <a href="ft2-properties.html#no-long-family-names">no-long-family-names</a> available if FreeType is compiled with PCF_CONFIG_OPTION_LONG_FAMILY_NAMES.</p>
+<p>The PCF driver's module name is &lsquo;pcf&rsquo;.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-pfr_fonts.html freetype-2.10.0.aros/docs/reference/ft2-pfr_fonts.html
--- freetype-2.10.0/docs/reference/ft2-pfr_fonts.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-pfr_fonts.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="pfr_fonts">PFR Fonts</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Get_PFR_Metrics">FT_Get_PFR_Metrics</a></td><td><a href="#FT_Get_PFR_Kerning">FT_Get_PFR_Kerning</a></td><td><a href="#FT_Get_PFR_Advance">FT_Get_PFR_Advance</a></td></tr>
+</table>
+
+
+<p>This section contains the declaration of PFR-specific functions.</p>
+
+<div class="section">
+<h3 id="FT_Get_PFR_Metrics">FT_Get_PFR_Metrics</h3>
+<p>Defined in FT_PFR_H (freetype/ftpfr.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_PFR_Metrics</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   *aoutline_resolution,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   *ametrics_resolution,
+                      <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  *ametrics_x_scale,
+                      <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  *ametrics_y_scale );
+</pre>
+
+<p>Return the outline and metrics resolutions of a given PFR face.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>Handle to the input face. It can be a non-PFR face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aoutline_resolution">aoutline_resolution</td><td class="desc">
+<p>Outline resolution. This is equivalent to &lsquo;face-&gt;units_per_EM&rsquo; for non-PFR fonts. Optional (parameter can be NULL).</p>
+</td></tr>
+<tr><td class="val" id="ametrics_resolution">ametrics_resolution</td><td class="desc">
+<p>Metrics resolution. This is equivalent to &lsquo;outline_resolution&rsquo; for non-PFR fonts. Optional (parameter can be NULL).</p>
+</td></tr>
+<tr><td class="val" id="ametrics_x_scale">ametrics_x_scale</td><td class="desc">
+<p>A 16.16 fixed-point number used to scale distance expressed in metrics units to device subpixels. This is equivalent to &lsquo;face-&gt;size-&gt;x_scale&rsquo;, but for metrics only. Optional (parameter can be NULL).</p>
+</td></tr>
+<tr><td class="val" id="ametrics_y_scale">ametrics_y_scale</td><td class="desc">
+<p>Same as &lsquo;ametrics_x_scale&rsquo; but for the vertical direction. optional (parameter can be NULL).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If the input face is not a PFR, this function will return an error. However, in all cases, it will return valid values.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_PFR_Kerning">FT_Get_PFR_Kerning</h3>
+<p>Defined in FT_PFR_H (freetype/ftpfr.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_PFR_Kerning</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     left,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     right,
+                      <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>  *avector );
+</pre>
+
+<p>Return the kerning pair corresponding to two glyphs in a PFR face. The distance is expressed in metrics units, unlike the result of <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="left">left</td><td class="desc">
+<p>Index of the left glyph.</p>
+</td></tr>
+<tr><td class="val" id="right">right</td><td class="desc">
+<p>Index of the right glyph.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="avector">avector</td><td class="desc">
+<p>A kerning vector.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function always return distances in original PFR metrics units. This is unlike <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a> with the <a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNSCALED</a> mode, which always returns distances converted to outline units.</p>
+<p>You can use the value of the &lsquo;x_scale&rsquo; and &lsquo;y_scale&rsquo; parameters returned by <a href="ft2-pfr_fonts.html#FT_Get_PFR_Metrics">FT_Get_PFR_Metrics</a> to scale these to device subpixels.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_PFR_Advance">FT_Get_PFR_Advance</h3>
+<p>Defined in FT_PFR_H (freetype/ftpfr.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_PFR_Advance</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   gindex,
+                      <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>   *aadvance );
+</pre>
+
+<p>Return a given glyph advance, expressed in original metrics units, from a PFR font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aadvance">aadvance</td><td class="desc">
+<p>The glyph advance in metrics units.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You can use the &lsquo;x_scale&rsquo; or &lsquo;y_scale&rsquo; results of <a href="ft2-pfr_fonts.html#FT_Get_PFR_Metrics">FT_Get_PFR_Metrics</a> to convert the advance to device subpixels (i.e., 1/64th of pixels).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-properties.html freetype-2.10.0.aros/docs/reference/ft2-properties.html
--- freetype-2.10.0/docs/reference/ft2-properties.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-properties.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,704 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="properties">Driver properties</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_HINTING_XXX">FT_HINTING_XXX</a></td><td><a href="#glyph-to-script-map">glyph-to-script-map</a></td></tr>
+<tr><td><a href="#hinting-engine">hinting-engine</a></td><td><a href="#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_XXX</a></td></tr>
+<tr><td><a href="#no-stem-darkening">no-stem-darkening</a></td><td><a href="#FT_Prop_GlyphToScriptMap">FT_Prop_GlyphToScriptMap</a></td></tr>
+<tr><td><a href="#darkening-parameters">darkening-parameters</a></td><td><a href="#fallback-script">fallback-script</a></td></tr>
+<tr><td><a href="#random-seed">random-seed</a></td><td><a href="#default-script">default-script</a></td></tr>
+<tr><td><a href="#no-long-family-names">no-long-family-names</a></td><td><a href="#increase-x-height">increase-x-height</a></td></tr>
+<tr><td><a href="#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_XXX</a></td><td><a href="#FT_Prop_IncreaseXHeight">FT_Prop_IncreaseXHeight</a></td></tr>
+<tr><td><a href="#interpreter-version">interpreter-version</a></td><td><a href="#warping">warping</a></td></tr>
+</table>
+
+
+<p>Driver modules can be controlled by setting and unsetting properties, using the functions <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>. This section documents the available properties, together with auxiliary macros and structures.</p>
+
+<div class="section">
+<h3 id="FT_HINTING_XXX">FT_HINTING_XXX</h3>
+<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
+<pre>
+#define <a href="ft2-properties.html#FT_HINTING_FREETYPE">FT_HINTING_FREETYPE</a>  0
+#define <a href="ft2-properties.html#FT_HINTING_ADOBE">FT_HINTING_ADOBE</a>     1
+
+  /* these constants (introduced in 2.4.12) are deprecated */
+#define FT_CFF_HINTING_FREETYPE  <a href="ft2-properties.html#FT_HINTING_FREETYPE">FT_HINTING_FREETYPE</a>
+#define FT_CFF_HINTING_ADOBE     <a href="ft2-properties.html#FT_HINTING_ADOBE">FT_HINTING_ADOBE</a>
+</pre>
+
+<p>A list of constants used for the <a href="ft2-properties.html#hinting-engine">hinting-engine</a> property to select the hinting engine for CFF, Type&nbsp;1, and CID fonts.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_HINTING_FREETYPE">FT_HINTING_FREETYPE</td><td class="desc">
+<p>Use the old FreeType hinting engine.</p>
+</td></tr>
+<tr><td class="val" id="FT_HINTING_ADOBE">FT_HINTING_ADOBE</td><td class="desc">
+<p>Use the hinting engine contributed by Adobe.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.9</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="hinting-engine">hinting-engine</h3>
+
+<p>Thanks to Adobe, which contributed a new hinting (and parsing) engine, an application can select between &lsquo;freetype&rsquo; and &lsquo;adobe&rsquo; if compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration macro isn't defined, &lsquo;hinting-engine&rsquo; does nothing.</p>
+<p>The same holds for the Type&nbsp;1 and CID modules if compiled with T1_CONFIG_OPTION_OLD_ENGINE.</p>
+<p>For the &lsquo;cff&rsquo; module, the default engine is &lsquo;freetype&rsquo; if CFF_CONFIG_OPTION_OLD_ENGINE is defined, and &lsquo;adobe&rsquo; otherwise.</p>
+<p>For both the &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules, the default engine is &lsquo;freetype&rsquo; if T1_CONFIG_OPTION_OLD_ENGINE is defined, and &lsquo;adobe&rsquo; otherwise.</p>
+<p>The following example code demonstrates how to select Adobe's hinting engine for the &lsquo;cff&rsquo; module (omitting the error handling).</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_UInt     hinting_engine = FT_CFF_HINTING_ADOBE;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "cff",
+                            "hinting-engine", &amp;hinting_engine );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable (using values &lsquo;adobe&rsquo; or &lsquo;freetype&rsquo;).</p>
+
+<h4>since</h4>
+<p>2.4.12 (for &lsquo;cff&rsquo; module)</p>
+<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="no-stem-darkening">no-stem-darkening</h3>
+
+<p>All glyphs that pass through the auto-hinter will be emboldened unless this property is set to TRUE. The same is true for the CFF, Type&nbsp;1, and CID font modules if the &lsquo;Adobe&rsquo; engine is selected (which is the default).</p>
+<p>Stem darkening emboldens glyphs at smaller sizes to make them more readable on common low-DPI screens when using linear alpha blending and gamma correction, see <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>. When not using linear alpha blending and gamma correction, glyphs will appear heavy and fuzzy!</p>
+<p>Gamma correction essentially lightens fonts since shades of grey are shifted to higher pixel values (=&nbsp;higher brightness) to match the original intention to the reality of our screens. The side-effect is that glyphs &lsquo;thin out&rsquo;. Mac OS&nbsp;X and Adobe's proprietary font rendering library implement a counter-measure: stem darkening at smaller sizes where shades of gray dominate. By emboldening a glyph slightly in relation to its pixel size, individual pixels get higher coverage of filled-in outlines and are therefore &lsquo;blacker&rsquo;. This counteracts the &lsquo;thinning out&rsquo; of glyphs, making text remain readable at smaller sizes.</p>
+<p>By default, the Adobe engines for CFF, Type&nbsp;1, and CID fonts darken stems at smaller sizes, regardless of hinting, to enhance contrast. Setting this property, stem darkening gets switched off.</p>
+<p>For the auto-hinter, stem-darkening is experimental currently and thus switched off by default (this is, &lsquo;no-stem-darkening&rsquo; is set to TRUE by default). Total consistency with the CFF driver is not achieved right now because the emboldening method differs and glyphs must be scaled down on the Y-axis to keep outline points inside their precomputed blue zones. The smaller the size (especially 9ppem and down), the higher the loss of emboldening versus the CFF driver.</p>
+<p>Note that stem darkening is never applied if <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a> is set.</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_Bool     no_stem_darkening = TRUE;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "cff",
+                            "no-stem-darkening", &amp;no_stem_darkening );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable (using values 1 and 0 for &lsquo;on&rsquo; and &lsquo;off&rsquo;, respectively). It can also be set per face using <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> with <a href="ft2-parameter_tags.html#FT_PARAM_TAG_STEM_DARKENING">FT_PARAM_TAG_STEM_DARKENING</a>.</p>
+
+<h4>since</h4>
+<p>2.4.12 (for &lsquo;cff&rsquo; module)</p>
+<p>2.6.2 (for &lsquo;autofitter&rsquo; module)</p>
+<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="darkening-parameters">darkening-parameters</h3>
+
+<p>By default, the Adobe hinting engine, as used by the CFF, Type&nbsp;1, and CID font drivers, darkens stems as follows (if the &lsquo;no-stem-darkening&rsquo; property isn't set):</p>
+<pre class="colored">
+  stem width &lt;= 0.5px:   darkening amount = 0.4px
+  stem width  = 1px:     darkening amount = 0.275px
+  stem width  = 1.667px: darkening amount = 0.275px
+  stem width &gt;= 2.333px: darkening amount = 0px
+</pre>
+<p>and piecewise linear in-between. At configuration time, these four control points can be set with the macro &lsquo;CFF_CONFIG_OPTION_DARKENING_PARAMETERS&rsquo;; the CFF, Type&nbsp;1, and CID drivers share these values. At runtime, the control points can be changed using the &lsquo;darkening-parameters&rsquo; property, as the following example demonstrates for the Type&nbsp;1 driver.</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_Int      darken_params[8] = {  500, 300,   // x1, y1
+                                   1000, 200,   // x2, y2
+                                   1500, 100,   // x3, y3
+                                   2000,   0 }; // x4, y4
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "type1",
+                            "darkening-parameters", darken_params );
+</pre>
+<p>The x&nbsp;values give the stem width, and the y&nbsp;values the darkening amount. The unit is 1000th of pixels. All coordinate values must be positive; the x&nbsp;values must be monotonically increasing; the y&nbsp;values must be monotonically decreasing and smaller than or equal to 500 (corresponding to half a pixel); the slope of each linear piece must be shallower than -1 (e.g., -.4).</p>
+<p>The auto-hinter provides this property, too, as an experimental feature. See <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a> for more.</p>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable, using eight comma-separated integers without spaces. Here the above example, using &lsquo;\&rsquo; to break the line for readability.</p>
+<pre class="colored">
+  FREETYPE_PROPERTIES=\
+  type1:darkening-parameters=500,300,1000,200,1500,100,2000,0
+</pre>
+
+<h4>since</h4>
+<p>2.5.1 (for &lsquo;cff&rsquo; module)</p>
+<p>2.6.2 (for &lsquo;autofitter&rsquo; module)</p>
+<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="random-seed">random-seed</h3>
+
+<p>By default, the seed value for the CFF &lsquo;random&rsquo; operator and the similar &lsquo;0 28 callothersubr pop&rsquo; command for the Type&nbsp;1 and CID drivers is set to a random value. However, mainly for debugging purposes, it is often necessary to use a known value as a seed so that the pseudo-random number sequences generated by &lsquo;random&rsquo; are repeatable.</p>
+<p>The &lsquo;random-seed&rsquo; property does that. Its argument is a signed 32bit integer; if the value is zero or negative, the seed given by the &lsquo;intitialRandomSeed&rsquo; private DICT operator in a CFF file gets used (or a default value if there is no such operator). If the value is positive, use it instead of &lsquo;initialRandomSeed&rsquo;, which is consequently ignored.</p>
+
+<h4>note</h4>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable. It can also be set per face using <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> with <a href="ft2-parameter_tags.html#FT_PARAM_TAG_RANDOM_SEED">FT_PARAM_TAG_RANDOM_SEED</a>.</p>
+
+<h4>since</h4>
+<p>2.8 (for &lsquo;cff&rsquo; module)</p>
+<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="no-long-family-names">no-long-family-names</h3>
+
+<p>If PCF_CONFIG_OPTION_LONG_FAMILY_NAMES is active while compiling FreeType, the PCF driver constructs long family names.</p>
+<p>There are many PCF fonts just called &lsquo;Fixed&rsquo; which look completely different, and which have nothing to do with each other. When selecting &lsquo;Fixed&rsquo; in KDE or Gnome one gets results that appear rather random, the style changes often if one changes the size and one cannot select some fonts at all. The improve this situation, the PCF module prepends the foundry name (plus a space) to the family name. It also checks whether there are &lsquo;wide&rsquo; characters; all put together, family names like &lsquo;Sony Fixed&rsquo; or &lsquo;Misc Fixed Wide&rsquo; are constructed.</p>
+<p>If &lsquo;no-long-family-names&rsquo; is set, this feature gets switched off.</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_Bool     no_long_family_names = TRUE;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "pcf",
+                            "no-long-family-names",
+                            &amp;no_long_family_names );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable (using values 1 and 0 for &lsquo;on&rsquo; and &lsquo;off&rsquo;, respectively).</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_XXX</h3>
+<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
+<pre>
+#define <a href="ft2-properties.html#TT_INTERPRETER_VERSION_35">TT_INTERPRETER_VERSION_35</a>  35
+#define <a href="ft2-properties.html#TT_INTERPRETER_VERSION_38">TT_INTERPRETER_VERSION_38</a>  38
+#define <a href="ft2-properties.html#TT_INTERPRETER_VERSION_40">TT_INTERPRETER_VERSION_40</a>  40
+</pre>
+
+<p>A list of constants used for the <a href="ft2-properties.html#interpreter-version">interpreter-version</a> property to select the hinting engine for Truetype fonts.</p>
+<p>The numeric value in the constant names represents the version number as returned by the &lsquo;GETINFO&rsquo; bytecode instruction.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_INTERPRETER_VERSION_35">TT_INTERPRETER_VERSION_35</td><td class="desc">
+<p>Version&nbsp;35 corresponds to MS rasterizer v.1.7 as used e.g. in Windows&nbsp;98; only grayscale and B/W rasterizing is supported.</p>
+</td></tr>
+<tr><td class="val" id="TT_INTERPRETER_VERSION_38">TT_INTERPRETER_VERSION_38</td><td class="desc">
+<p>Version&nbsp;38 corresponds to MS rasterizer v.1.9; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in the Internet Explorer&nbsp;9 running on Windows&nbsp;7). It is used in FreeType to select the &lsquo;Infinality&rsquo; subpixel hinting code. The code may be removed in a future version.</p>
+</td></tr>
+<tr><td class="val" id="TT_INTERPRETER_VERSION_40">TT_INTERPRETER_VERSION_40</td><td class="desc">
+<p>Version&nbsp;40 corresponds to MS rasterizer v.2.1; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in Microsoft's Edge Browser on Windows&nbsp;10). It is used in FreeType to select the &lsquo;minimal&rsquo; subpixel hinting code, a stripped-down and higher performance version of the &lsquo;Infinality&rsquo; code.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This property controls the behaviour of the bytecode interpreter and thus how outlines get hinted. It does <b>not</b> control how glyph get rasterized! In particular, it does not control subpixel color filtering.</p>
+<p>If FreeType has not been compiled with the configuration option TT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version&nbsp;38 or&nbsp;40 causes an &lsquo;FT_Err_Unimplemented_Feature&rsquo; error.</p>
+<p>Depending on the graphics framework, Microsoft uses different bytecode and rendering engines. As a consequence, the version numbers returned by a call to the &lsquo;GETINFO&rsquo; bytecode instruction are more convoluted than desired.</p>
+<p>Here are two tables that try to shed some light on the possible values for the MS rasterizer engine, together with the additional features introduced by it.</p>
+<pre class="colored">
+  GETINFO framework               version feature
+  -------------------------------------------------------------------
+      3   GDI (Win 3.1),            v1.0  16-bit, first version
+          TrueImage
+     33   GDI (Win NT 3.1),         v1.5  32-bit
+          HP Laserjet
+     34   GDI (Win 95)              v1.6  font smoothing,
+                                          new SCANTYPE opcode
+     35   GDI (Win 98/2000)         v1.7  (UN)SCALED_COMPONENT_OFFSET
+                                            bits in composite glyphs
+     36   MGDI (Win CE 2)           v1.6+ classic ClearType
+     37   GDI (XP and later),       v1.8  ClearType
+          GDI+ old (before Vista)
+     38   GDI+ old (Vista, Win 7),  v1.9  subpixel ClearType,
+          WPF                             Y-direction ClearType,
+                                          additional error checking
+     39   DWrite (before Win 8)     v2.0  subpixel ClearType flags
+                                            in GETINFO opcode,
+                                          bug fixes
+     40   GDI+ (after Win 7),       v2.1  Y-direction ClearType flag
+          DWrite (Win 8)                    in GETINFO opcode,
+                                          Gray ClearType
+</pre>
+<p>The &lsquo;version&rsquo; field gives a rough orientation only, since some applications provided certain features much earlier (as an example, Microsoft Reader used subpixel and Y-direction ClearType already in Windows 2000). Similarly, updates to a given framework might include improved hinting support.</p>
+<pre class="colored">
+   version   sampling          rendering        comment
+            x        y       x           y
+  --------------------------------------------------------------
+    v1.0   normal  normal  B/W           B/W    bi-level
+    v1.6   high    high    gray          gray   grayscale
+    v1.8   high    normal  color-filter  B/W    (GDI) ClearType
+    v1.9   high    high    color-filter  gray   Color ClearType
+    v2.1   high    normal  gray          B/W    Gray ClearType
+    v2.1   high    high    gray          gray   Gray ClearType
+</pre>
+<p>Color and Gray ClearType are the two available variants of &lsquo;Y-direction ClearType&rsquo;, meaning grayscale rasterization along the Y-direction; the name used in the TrueType specification for this feature is &lsquo;symmetric smoothing&rsquo;. &lsquo;Classic ClearType&rsquo; is the original algorithm used before introducing a modified version in Win&nbsp;XP. Another name for v1.6's grayscale rendering is &lsquo;font smoothing&rsquo;, and &lsquo;Color ClearType&rsquo; is sometimes also called &lsquo;DWrite ClearType&rsquo;. To differentiate between today's Color ClearType and the earlier ClearType variant with B/W rendering along the vertical axis, the latter is sometimes called &lsquo;GDI ClearType&rsquo;.</p>
+<p>&lsquo;Normal&rsquo; and &lsquo;high&rsquo; sampling describe the (virtual) resolution to access the rasterized outline after the hinting process. &lsquo;Normal&rsquo; means 1 sample per grid line (i.e., B/W). In the current Microsoft implementation, &lsquo;high&rsquo; means an extra virtual resolution of 16x16 (or 16x1) grid lines per pixel for bytecode instructions like &lsquo;MIRP&rsquo;. After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid lines for color filtering if Color ClearType is activated.</p>
+<p>Note that &lsquo;Gray ClearType&rsquo; is essentially the same as v1.6's grayscale rendering. However, the GETINFO instruction handles it differently: v1.6 returns bit&nbsp;12 (hinting for grayscale), while v2.1 returns bits&nbsp;13 (hinting for ClearType), 18 (symmetrical smoothing), and&nbsp;19 (Gray ClearType). Also, this mode respects bits 2 and&nbsp;3 for the version&nbsp;1 gasp table exclusively (like Color ClearType), while v1.6 only respects the values of version&nbsp;0 (bits 0 and&nbsp;1).</p>
+<p>Keep in mind that the features of the above interpreter versions might not map exactly to FreeType features or behavior because it is a fundamentally different library with different internals.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="interpreter-version">interpreter-version</h3>
+
+<p>Currently, three versions are available, two representing the bytecode interpreter with subpixel hinting support (old &lsquo;Infinality&rsquo; code and new stripped-down and higher performance &lsquo;minimal&rsquo; code) and one without, respectively. The default is subpixel support if TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel support otherwise (since it isn't available then).</p>
+<p>If subpixel hinting is on, many TrueType bytecode instructions behave differently compared to B/W or grayscale rendering (except if &lsquo;native ClearType&rsquo; is selected by the font). Microsoft's main idea is to render at a much increased horizontal resolution, then sampling down the created output to subpixel precision. However, many older fonts are not suited to this and must be specially taken care of by applying (hardcoded) tweaks in Microsoft's interpreter.</p>
+<p>Details on subpixel hinting and some of the necessary tweaks can be found in Greg Hitchcock's whitepaper at &lsquo;<a href="https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx">https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx</a>&rsquo;. Note that FreeType currently doesn't really &lsquo;subpixel hint&rsquo; (6x1, 6x2, or 6x5 supersampling) like discussed in the paper. Depending on the chosen interpreter, it simply ignores instructions on vertical stems to arrive at very similar results.</p>
+<p>The following example code demonstrates how to deactivate subpixel hinting (omitting the error handling).</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_Face     face;
+  FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_35;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "truetype",
+                            "interpreter-version",
+                            &amp;interpreter_version );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable (using values &lsquo;35&rsquo;, &lsquo;38&rsquo;, or &lsquo;40&rsquo;).</p>
+
+<h4>since</h4>
+<p>2.5</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="glyph-to-script-map">glyph-to-script-map</h3>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>The auto-hinter provides various script modules to hint glyphs. Examples of supported scripts are Latin or CJK. Before a glyph is auto-hinted, the Unicode character map of the font gets examined, and the script is then determined based on Unicode character ranges, see below.</p>
+<p>OpenType fonts, however, often provide much more glyphs than character codes (small caps, superscripts, ligatures, swashes, etc.), to be controlled by so-called &lsquo;features&rsquo;. Handling OpenType features can be quite complicated and thus needs a separate library on top of FreeType.</p>
+<p>The mapping between glyph indices and scripts (in the auto-hinter sense, see the <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_XXX</a> values) is stored as an array with &lsquo;num_glyphs&rsquo; elements, as found in the font's <a href="ft2-base_interface.html#FT_Face">FT_Face</a> structure. The &lsquo;glyph-to-script-map&rsquo; property returns a pointer to this array, which can be modified as needed. Note that the modification should happen before the first glyph gets processed by the auto-hinter so that the global analysis of the font shapes actually uses the modified mapping.</p>
+<p>The following example code demonstrates how to access it (omitting the error handling).</p>
+<pre class="colored">
+  FT_Library                library;
+  FT_Face                   face;
+  FT_Prop_GlyphToScriptMap  prop;
+
+
+  FT_Init_FreeType( &amp;library );
+  FT_New_Face( library, "foo.ttf", 0, &amp;face );
+
+  prop.face = face;
+
+  FT_Property_Get( library, "autofitter",
+                            "glyph-to-script-map", &amp;prop );
+
+  // adjust `prop.map' as needed right here
+
+  FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT );
+</pre>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_XXX</h3>
+<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
+<pre>
+#define <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_NONE">FT_AUTOHINTER_SCRIPT_NONE</a>   0
+#define <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_LATIN">FT_AUTOHINTER_SCRIPT_LATIN</a>  1
+#define <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_CJK">FT_AUTOHINTER_SCRIPT_CJK</a>    2
+#define <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_INDIC">FT_AUTOHINTER_SCRIPT_INDIC</a>  3
+</pre>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>A list of constants used for the <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a> property to specify the script submodule the auto-hinter should use for hinting a particular glyph.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_AUTOHINTER_SCRIPT_NONE">FT_AUTOHINTER_SCRIPT_NONE</td><td class="desc">
+<p>Don't auto-hint this glyph.</p>
+</td></tr>
+<tr><td class="val" id="FT_AUTOHINTER_SCRIPT_LATIN">FT_AUTOHINTER_SCRIPT_LATIN</td><td class="desc">
+<p>Apply the latin auto-hinter. For the auto-hinter, &lsquo;latin&rsquo; is a very broad term, including Cyrillic and Greek also since characters from those scripts share the same design constraints.</p>
+<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
+<pre class="colored">
+  U+0020 - U+007F  // Basic Latin (no control characters)
+  U+00A0 - U+00FF  // Latin-1 Supplement (no control characters)
+  U+0100 - U+017F  // Latin Extended-A
+  U+0180 - U+024F  // Latin Extended-B
+  U+0250 - U+02AF  // IPA Extensions
+  U+02B0 - U+02FF  // Spacing Modifier Letters
+  U+0300 - U+036F  // Combining Diacritical Marks
+  U+0370 - U+03FF  // Greek and Coptic
+  U+0400 - U+04FF  // Cyrillic
+  U+0500 - U+052F  // Cyrillic Supplement
+  U+1D00 - U+1D7F  // Phonetic Extensions
+  U+1D80 - U+1DBF  // Phonetic Extensions Supplement
+  U+1DC0 - U+1DFF  // Combining Diacritical Marks Supplement
+  U+1E00 - U+1EFF  // Latin Extended Additional
+  U+1F00 - U+1FFF  // Greek Extended
+  U+2000 - U+206F  // General Punctuation
+  U+2070 - U+209F  // Superscripts and Subscripts
+  U+20A0 - U+20CF  // Currency Symbols
+  U+2150 - U+218F  // Number Forms
+  U+2460 - U+24FF  // Enclosed Alphanumerics
+  U+2C60 - U+2C7F  // Latin Extended-C
+  U+2DE0 - U+2DFF  // Cyrillic Extended-A
+  U+2E00 - U+2E7F  // Supplemental Punctuation
+  U+A640 - U+A69F  // Cyrillic Extended-B
+  U+A720 - U+A7FF  // Latin Extended-D
+  U+FB00 - U+FB06  // Alphab. Present. Forms (Latin Ligatures)
+ U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols
+ U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement
+</pre>
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_AUTOHINTER_SCRIPT_CJK">FT_AUTOHINTER_SCRIPT_CJK</td><td class="desc">
+<p>Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old Vietnamese, and some other scripts.</p>
+<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
+<pre class="colored">
+  U+1100 - U+11FF  // Hangul Jamo
+  U+2E80 - U+2EFF  // CJK Radicals Supplement
+  U+2F00 - U+2FDF  // Kangxi Radicals
+  U+2FF0 - U+2FFF  // Ideographic Description Characters
+  U+3000 - U+303F  // CJK Symbols and Punctuation
+  U+3040 - U+309F  // Hiragana
+  U+30A0 - U+30FF  // Katakana
+  U+3100 - U+312F  // Bopomofo
+  U+3130 - U+318F  // Hangul Compatibility Jamo
+  U+3190 - U+319F  // Kanbun
+  U+31A0 - U+31BF  // Bopomofo Extended
+  U+31C0 - U+31EF  // CJK Strokes
+  U+31F0 - U+31FF  // Katakana Phonetic Extensions
+  U+3200 - U+32FF  // Enclosed CJK Letters and Months
+  U+3300 - U+33FF  // CJK Compatibility
+  U+3400 - U+4DBF  // CJK Unified Ideographs Extension A
+  U+4DC0 - U+4DFF  // Yijing Hexagram Symbols
+  U+4E00 - U+9FFF  // CJK Unified Ideographs
+  U+A960 - U+A97F  // Hangul Jamo Extended-A
+  U+AC00 - U+D7AF  // Hangul Syllables
+  U+D7B0 - U+D7FF  // Hangul Jamo Extended-B
+  U+F900 - U+FAFF  // CJK Compatibility Ideographs
+  U+FE10 - U+FE1F  // Vertical forms
+  U+FE30 - U+FE4F  // CJK Compatibility Forms
+  U+FF00 - U+FFEF  // Halfwidth and Fullwidth Forms
+ U+1B000 - U+1B0FF // Kana Supplement
+ U+1D300 - U+1D35F // Tai Xuan Hing Symbols
+ U+1F200 - U+1F2FF // Enclosed Ideographic Supplement
+ U+20000 - U+2A6DF // CJK Unified Ideographs Extension B
+ U+2A700 - U+2B73F // CJK Unified Ideographs Extension C
+ U+2B740 - U+2B81F // CJK Unified Ideographs Extension D
+ U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement
+</pre>
+<p></p>
+</td></tr>
+<tr><td class="val" id="FT_AUTOHINTER_SCRIPT_INDIC">FT_AUTOHINTER_SCRIPT_INDIC</td><td class="desc">
+<p>Apply the indic auto-hinter, covering all major scripts from the Indian sub-continent and some other related scripts like Thai, Lao, or Tibetan.</p>
+<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
+<pre class="colored">
+  U+0900 - U+0DFF  // Indic Range
+  U+0F00 - U+0FFF  // Tibetan
+  U+1900 - U+194F  // Limbu
+  U+1B80 - U+1BBF  // Sundanese
+  U+A800 - U+A82F  // Syloti Nagri
+  U+ABC0 - U+ABFF  // Meetei Mayek
+ U+11800 - U+118DF // Sharada
+</pre>
+<p>Note that currently Indic support is rudimentary only, missing blue zone support.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Prop_GlyphToScriptMap">FT_Prop_GlyphToScriptMap</h3>
+<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Prop_GlyphToScriptMap_
+  {
+    <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>*  map;
+
+  } <b>FT_Prop_GlyphToScriptMap</b>;
+</pre>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>The data exchange structure for the <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a> property.</p>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="fallback-script">fallback-script</h3>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>If no auto-hinter script module can be assigned to a glyph, a fallback script gets assigned to it (see also the <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a> property). By default, this is <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_CJK</a>. Using the &lsquo;fallback-script&rsquo; property, this fallback value can be changed.</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_UInt     fallback_script = FT_AUTOHINTER_SCRIPT_NONE;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "autofitter",
+                            "fallback-script", &amp;fallback_script );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the fallback script value gets triggered either by setting or reading a face-specific property like <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a>, or by auto-hinting any glyph from that face. In particular, if you have already created an <a href="ft2-base_interface.html#FT_Face">FT_Face</a> structure but not loaded any glyph (using the auto-hinter), a change of the fallback script will affect this face.</p>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="default-script">default-script</h3>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>If FreeType gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make the HarfBuzz library access OpenType features for getting better glyph coverages, this property sets the (auto-fitter) script to be used for the default (OpenType) script data of a font's GSUB table. Features for the default script are intended for all scripts not explicitly handled in GSUB; an example is a &lsquo;dlig&rsquo; feature, containing the combination of the characters &lsquo;T&rsquo;, &lsquo;E&rsquo;, and &lsquo;L&rsquo; to form a &lsquo;TEL&rsquo; ligature.</p>
+<p>By default, this is <a href="ft2-properties.html#FT_AUTOHINTER_SCRIPT_XXX">FT_AUTOHINTER_SCRIPT_LATIN</a>. Using the &lsquo;default-script&rsquo; property, this default value can be changed.</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_UInt     default_script = FT_AUTOHINTER_SCRIPT_NONE;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "autofitter",
+                            "default-script", &amp;default_script );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the default script value gets triggered either by setting or reading a face-specific property like <a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a>, or by auto-hinting any glyph from that face. In particular, if you have already created an <a href="ft2-base_interface.html#FT_Face">FT_Face</a> structure but not loaded any glyph (using the auto-hinter), a change of the default script will affect this face.</p>
+
+<h4>since</h4>
+<p>2.5.3</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="increase-x-height">increase-x-height</h3>
+
+<p>For ppem values in the range 6&nbsp;&lt;= ppem &lt;= &lsquo;increase-x-height&rsquo;, round up the font's x&nbsp;height much more often than normally. If the value is set to&nbsp;0, which is the default, this feature is switched off. Use this property to improve the legibility of small font sizes if necessary.</p>
+<pre class="colored">
+  FT_Library               library;
+  FT_Face                  face;
+  FT_Prop_IncreaseXHeight  prop;
+
+
+  FT_Init_FreeType( &amp;library );
+  FT_New_Face( library, "foo.ttf", 0, &amp;face );
+  FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 );
+
+  prop.face  = face;
+  prop.limit = 14;
+
+  FT_Property_Set( library, "autofitter",
+                            "increase-x-height", &amp;prop );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>Set this value right after calling <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a>, but before loading any glyph (using the auto-hinter).</p>
+
+<h4>since</h4>
+<p>2.4.11</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Prop_IncreaseXHeight">FT_Prop_IncreaseXHeight</h3>
+<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Prop_IncreaseXHeight_
+  {
+    <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face;
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>  limit;
+
+  } <b>FT_Prop_IncreaseXHeight</b>;
+</pre>
+
+<p>The data exchange structure for the <a href="ft2-properties.html#increase-x-height">increase-x-height</a> property.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="warping">warping</h3>
+
+<p><b>Experimental</b> <b>only</b></p>
+<p>If FreeType gets compiled with option AF_CONFIG_OPTION_USE_WARPER to activate the warp hinting code in the auto-hinter, this property switches warping on and off.</p>
+<p>Warping only works in &lsquo;normal&rsquo; auto-hinting mode replacing it. The idea of the code is to slightly scale and shift a glyph along the non-hinted dimension (which is usually the horizontal axis) so that as much of its segments are aligned (more or less) to the grid. To find out a glyph's optimal scaling and shifting value, various parameter combinations are tried and scored.</p>
+<p>By default, warping is off. The example below shows how to switch on warping (omitting the error handling).</p>
+<pre class="colored">
+  FT_Library  library;
+  FT_Bool     warping = 1;
+
+
+  FT_Init_FreeType( &amp;library );
+
+  FT_Property_Set( library, "autofitter",
+                            "warping", &amp;warping );
+</pre>
+
+<h4>note</h4>
+<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
+<p>This property can be set via the &lsquo;FREETYPE_PROPERTIES&rsquo; environment variable (using values 1 and 0 for &lsquo;on&rsquo; and &lsquo;off&rsquo;, respectively).</p>
+<p>The warping code can also change advance widths. Have a look at the &lsquo;lsb_delta&rsquo; and &lsquo;rsb_delta&rsquo; fields in the <a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a> structure for details on improving inter-glyph distances while rendering.</p>
+<p>Since warping is a global property of the auto-hinter it is best to change its value before rendering any face. Otherwise, you should reload all faces that get auto-hinted in &lsquo;normal&rsquo; hinting mode.</p>
+
+<h4>since</h4>
+<p>2.6</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-quick_advance.html freetype-2.10.0.aros/docs/reference/ft2-quick_advance.html
--- freetype-2.10.0/docs/reference/ft2-quick_advance.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-quick_advance.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="quick_advance">Quick retrieval of advance values</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Get_Advance">FT_Get_Advance</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_Get_Advances">FT_Get_Advances</a></td><td><a href="#FT_ADVANCE_FLAG_FAST_ONLY">FT_ADVANCE_FLAG_FAST_ONLY</a></td></tr>
+</table>
+
+
+<p>This section contains functions to quickly extract advance values without handling glyph outlines, if possible.</p>
+
+<div class="section">
+<h3 id="FT_Get_Advance">FT_Get_Advance</h3>
+<p>Defined in FT_ADVANCES_H (freetype/ftadvanc.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Advance</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                  <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    gindex,
+                  <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>   load_flags,
+                  <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  *padvance );
+</pre>
+
+<p>Retrieve the advance value of a given glyph outline in an <a href="ft2-base_interface.html#FT_Face">FT_Face</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>The source <a href="ft2-base_interface.html#FT_Face">FT_Face</a> handle.</p>
+</td></tr>
+<tr><td class="val" id="gindex">gindex</td><td class="desc">
+<p>The glyph index.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>A set of bit flags similar to those used when calling <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>, used to determine what kind of advances you need.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="padvance">padvance</td><td class="desc">
+<p>The advance value. If scaling is performed (based on the value of &lsquo;load_flags&rsquo;), the advance value is in 16.16 format. Otherwise, it is in font units.</p>
+<p>If <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_VERTICAL_LAYOUT</a> is set, this is the vertical advance corresponding to a vertical layout. Otherwise, it is the horizontal advance in a horizontal layout.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0 means success.</p>
+
+<h4>note</h4>
+<p>This function may fail if you use <a href="ft2-quick_advance.html#FT_ADVANCE_FLAG_FAST_ONLY">FT_ADVANCE_FLAG_FAST_ONLY</a> and if the corresponding font backend doesn't have a quick way to retrieve the advances.</p>
+<p>A scaled advance is returned in 16.16 format but isn't transformed by the affine transformation specified by <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Advances">FT_Get_Advances</h3>
+<p>Defined in FT_ADVANCES_H (freetype/ftadvanc.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Advances</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                   <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    start,
+                   <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    count,
+                   <a href="ft2-basic_types.html#FT_Int32">FT_Int32</a>   load_flags,
+                   <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  *padvances );
+</pre>
+
+<p>Retrieve the advance values of several glyph outlines in an <a href="ft2-base_interface.html#FT_Face">FT_Face</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>The source <a href="ft2-base_interface.html#FT_Face">FT_Face</a> handle.</p>
+</td></tr>
+<tr><td class="val" id="start">start</td><td class="desc">
+<p>The first glyph index.</p>
+</td></tr>
+<tr><td class="val" id="count">count</td><td class="desc">
+<p>The number of advance values you want to retrieve.</p>
+</td></tr>
+<tr><td class="val" id="load_flags">load_flags</td><td class="desc">
+<p>A set of bit flags similar to those used when calling <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="padvance">padvance</td><td class="desc">
+<p>The advance values. This array, to be provided by the caller, must contain at least &lsquo;count&rsquo; elements.</p>
+<p>If scaling is performed (based on the value of &lsquo;load_flags&rsquo;), the advance values are in 16.16 format. Otherwise, they are in font units.</p>
+<p>If <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_VERTICAL_LAYOUT</a> is set, these are the vertical advances corresponding to a vertical layout. Otherwise, they are the horizontal advances in a horizontal layout.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0 means success.</p>
+
+<h4>note</h4>
+<p>This function may fail if you use <a href="ft2-quick_advance.html#FT_ADVANCE_FLAG_FAST_ONLY">FT_ADVANCE_FLAG_FAST_ONLY</a> and if the corresponding font backend doesn't have a quick way to retrieve the advances.</p>
+<p>Scaled advances are returned in 16.16 format but aren't transformed by the affine transformation specified by <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_ADVANCE_FLAG_FAST_ONLY">FT_ADVANCE_FLAG_FAST_ONLY</h3>
+<p>Defined in FT_ADVANCES_H (freetype/ftadvanc.h).</p>
+<pre>
+#define <b>FT_ADVANCE_FLAG_FAST_ONLY</b>  0x20000000L
+</pre>
+
+<p>A bit-flag to be OR-ed with the &lsquo;flags&rsquo; parameter of the <a href="ft2-quick_advance.html#FT_Get_Advance">FT_Get_Advance</a> and <a href="ft2-quick_advance.html#FT_Get_Advances">FT_Get_Advances</a> functions.</p>
+<p>If set, it indicates that you want these functions to fail if the corresponding hinting mode or font driver doesn't allow for very quick advance computation.</p>
+<p>Typically, glyphs that are either unscaled, unhinted, bitmapped, or light-hinted can have their advance width computed very quickly.</p>
+<p>Normal and bytecode hinted modes that require loading, scaling, and hinting of the glyph outline, are extremely slow by comparison.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-raster.html freetype-2.10.0.aros/docs/reference/ft2-raster.html
--- freetype-2.10.0/docs/reference/ft2-raster.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-raster.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,531 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="raster">Scanline Converter</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Raster">FT_Raster</a></td><td>&nbsp;</td><td><a href="#FT_Raster_Funcs">FT_Raster_Funcs</a></td></tr>
+<tr><td><a href="#FT_Span">FT_Span</a></td><td><a href="#FT_Raster_NewFunc">FT_Raster_NewFunc</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FT_SpanFunc">FT_SpanFunc</a></td><td><a href="#FT_Raster_DoneFunc">FT_Raster_DoneFunc</a></td><td><a href="#FT_Raster_BitTest_Func">FT_Raster_BitTest_Func</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Raster_ResetFunc">FT_Raster_ResetFunc</a></td><td><a href="#FT_Raster_BitSet_Func">FT_Raster_BitSet_Func</a></td></tr>
+<tr><td><a href="#FT_Raster_Params">FT_Raster_Params</a></td><td><a href="#FT_Raster_SetModeFunc">FT_Raster_SetModeFunc</a></td><td></td></tr>
+<tr><td><a href="#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_XXX</a></td><td><a href="#FT_Raster_RenderFunc">FT_Raster_RenderFunc</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains technical definitions.</p>
+
+<div class="section">
+<h3 id="FT_Raster">FT_Raster</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_RasterRec_*  <b>FT_Raster</b>;
+</pre>
+
+<p>An opaque handle (pointer) to a raster object. Each object can be used independently to convert an outline into a bitmap or pixmap.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Span">FT_Span</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Span_
+  {
+    <span class="keyword">short</span>           x;
+    <span class="keyword">unsigned</span> <span class="keyword">short</span>  len;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>   coverage;
+
+  } <b>FT_Span</b>;
+</pre>
+
+<p>A structure used to model a single span of gray pixels when rendering an anti-aliased bitmap.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="x">x</td><td class="desc">
+<p>The span's horizontal start position.</p>
+</td></tr>
+<tr><td class="val" id="len">len</td><td class="desc">
+<p>The span's length in pixels.</p>
+</td></tr>
+<tr><td class="val" id="coverage">coverage</td><td class="desc">
+<p>The span color/coverage, ranging from 0 (background) to 255 (foreground).</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This structure is used by the span drawing callback type named <a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a> that takes the y&nbsp;coordinate of the span as a parameter.</p>
+<p>The coverage value is always between 0 and 255. If you want less gray values, the callback function has to reduce them.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SpanFunc">FT_SpanFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_SpanFunc</b>)( <span class="keyword">int</span>             y,
+                  <span class="keyword">int</span>             count,
+                  <span class="keyword">const</span> <a href="ft2-raster.html#FT_Span">FT_Span</a>*  spans,
+                  <span class="keyword">void</span>*           user );
+
+#define FT_Raster_Span_Func  <b>FT_SpanFunc</b>
+</pre>
+
+<p>A function used as a call-back by the anti-aliased renderer in order to let client applications draw themselves the gray pixel spans on each scan line.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="y">y</td><td class="desc">
+<p>The scanline's y&nbsp;coordinate.</p>
+</td></tr>
+<tr><td class="val" id="count">count</td><td class="desc">
+<p>The number of spans to draw on this scanline.</p>
+</td></tr>
+<tr><td class="val" id="spans">spans</td><td class="desc">
+<p>A table of &lsquo;count&rsquo; spans to draw on the scanline.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>User-supplied data that is passed to the callback.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This callback allows client applications to directly render the gray spans of the anti-aliased bitmap to any kind of surfaces.</p>
+<p>This can be used to write anti-aliased outlines directly to a given background bitmap, and even perform translucency.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_Params">FT_Raster_Params</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Raster_Params_
+  {
+    <span class="keyword">const</span> <a href="ft2-basic_types.html#FT_Bitmap">FT_Bitmap</a>*        target;
+    <span class="keyword">const</span> <span class="keyword">void</span>*             source;
+    <span class="keyword">int</span>                     flags;
+    <a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a>             gray_spans;
+    <a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a>             black_spans;  /* unused */
+    <a href="ft2-raster.html#FT_Raster_BitTest_Func">FT_Raster_BitTest_Func</a>  bit_test;     /* unused */
+    <a href="ft2-raster.html#FT_Raster_BitSet_Func">FT_Raster_BitSet_Func</a>   bit_set;      /* unused */
+    <span class="keyword">void</span>*                   user;
+    <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>                 clip_box;
+
+  } <b>FT_Raster_Params</b>;
+</pre>
+
+<p>A structure to hold the arguments used by a raster's render function.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="target">target</td><td class="desc">
+<p>The target bitmap.</p>
+</td></tr>
+<tr><td class="val" id="source">source</td><td class="desc">
+<p>A pointer to the source glyph image (e.g., an <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a>).</p>
+</td></tr>
+<tr><td class="val" id="flags">flags</td><td class="desc">
+<p>The rendering flags.</p>
+</td></tr>
+<tr><td class="val" id="gray_spans">gray_spans</td><td class="desc">
+<p>The gray span drawing callback.</p>
+</td></tr>
+<tr><td class="val" id="black_spans">black_spans</td><td class="desc">
+<p>Unused.</p>
+</td></tr>
+<tr><td class="val" id="bit_test">bit_test</td><td class="desc">
+<p>Unused.</p>
+</td></tr>
+<tr><td class="val" id="bit_set">bit_set</td><td class="desc">
+<p>Unused.</p>
+</td></tr>
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>User-supplied data that is passed to each drawing callback.</p>
+</td></tr>
+<tr><td class="val" id="clip_box">clip_box</td><td class="desc">
+<p>An optional clipping box. It is only used in direct rendering mode. Note that coordinates here should be expressed in <i>integer</i> pixels (and not in 26.6 fixed-point units).</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>An anti-aliased glyph bitmap is drawn if the <a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_AA</a> bit flag is set in the &lsquo;flags&rsquo; field, otherwise a monochrome bitmap is generated.</p>
+<p>If the <a href="ft2-raster.html#FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_DIRECT</a> bit flag is set in &lsquo;flags&rsquo;, the raster will call the &lsquo;gray_spans&rsquo; callback to draw gray pixel spans. This allows direct composition over a pre-existing bitmap through user-provided callbacks to perform the span drawing and composition. Not supported by the monochrome rasterizer.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_RASTER_FLAG_XXX">FT_RASTER_FLAG_XXX</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+#define <a href="ft2-raster.html#FT_RASTER_FLAG_DEFAULT">FT_RASTER_FLAG_DEFAULT</a>  0x0
+#define <a href="ft2-raster.html#FT_RASTER_FLAG_AA">FT_RASTER_FLAG_AA</a>       0x1
+#define <a href="ft2-raster.html#FT_RASTER_FLAG_DIRECT">FT_RASTER_FLAG_DIRECT</a>   0x2
+#define <a href="ft2-raster.html#FT_RASTER_FLAG_CLIP">FT_RASTER_FLAG_CLIP</a>     0x4
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>FT_RASTER_FLAG_XXX</b>' values instead                   */
+#define ft_raster_flag_default  <a href="ft2-raster.html#FT_RASTER_FLAG_DEFAULT">FT_RASTER_FLAG_DEFAULT</a>
+#define ft_raster_flag_aa       <a href="ft2-raster.html#FT_RASTER_FLAG_AA">FT_RASTER_FLAG_AA</a>
+#define ft_raster_flag_direct   <a href="ft2-raster.html#FT_RASTER_FLAG_DIRECT">FT_RASTER_FLAG_DIRECT</a>
+#define ft_raster_flag_clip     <a href="ft2-raster.html#FT_RASTER_FLAG_CLIP">FT_RASTER_FLAG_CLIP</a>
+</pre>
+
+<p>A list of bit flag constants as used in the &lsquo;flags&rsquo; field of a <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_RASTER_FLAG_DEFAULT">FT_RASTER_FLAG_DEFAULT</td><td class="desc">
+<p>This value is 0.</p>
+</td></tr>
+<tr><td class="val" id="FT_RASTER_FLAG_AA">FT_RASTER_FLAG_AA</td><td class="desc">
+<p>This flag is set to indicate that an anti-aliased glyph image should be generated. Otherwise, it will be monochrome (1-bit).</p>
+</td></tr>
+<tr><td class="val" id="FT_RASTER_FLAG_DIRECT">FT_RASTER_FLAG_DIRECT</td><td class="desc">
+<p>This flag is set to indicate direct rendering. In this mode, client applications must provide their own span callback. This lets them directly draw or compose over an existing bitmap. If this bit is not set, the target pixmap's buffer <i>must</i> be zeroed before rendering.</p>
+<p>Direct rendering is only possible with anti-aliased glyphs.</p>
+</td></tr>
+<tr><td class="val" id="FT_RASTER_FLAG_CLIP">FT_RASTER_FLAG_CLIP</td><td class="desc">
+<p>This flag is only used in direct rendering mode. If set, the output will be clipped to a box specified in the &lsquo;clip_box&rsquo; field of the <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure.</p>
+<p>Note that by default, the glyph bitmap is clipped to the target pixmap, except in direct rendering mode where all spans are generated if no clipping box is set.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_NewFunc">FT_Raster_NewFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Raster_NewFunc</b>)( <span class="keyword">void</span>*       memory,
+                        <a href="ft2-raster.html#FT_Raster">FT_Raster</a>*  raster );
+
+#define FT_Raster_New_Func  <b>FT_Raster_NewFunc</b>
+</pre>
+
+<p>A function used to create a new raster object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A handle to the memory allocator.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="raster">raster</td><td class="desc">
+<p>A handle to the new raster object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The &lsquo;memory&rsquo; parameter is a typeless pointer in order to avoid un-wanted dependencies on the rest of the FreeType code. In practice, it is an <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a> object, i.e., a handle to the standard FreeType memory allocator. However, this field can be completely ignored by a given raster implementation.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_DoneFunc">FT_Raster_DoneFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Raster_DoneFunc</b>)( <a href="ft2-raster.html#FT_Raster">FT_Raster</a>  raster );
+
+#define FT_Raster_Done_Func  <b>FT_Raster_DoneFunc</b>
+</pre>
+
+<p>A function used to destroy a given raster object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="raster">raster</td><td class="desc">
+<p>A handle to the raster object.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_ResetFunc">FT_Raster_ResetFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Raster_ResetFunc</b>)( <a href="ft2-raster.html#FT_Raster">FT_Raster</a>       raster,
+                          <span class="keyword">unsigned</span> <span class="keyword">char</span>*  pool_base,
+                          <span class="keyword">unsigned</span> <span class="keyword">long</span>   pool_size );
+
+#define FT_Raster_Reset_Func  <b>FT_Raster_ResetFunc</b>
+</pre>
+
+<p>FreeType used to provide an area of memory called the &lsquo;render pool&rsquo; available to all registered rasterizers. This was not thread safe, however, and now FreeType never allocates this pool.</p>
+<p>This function is called after a new raster object is created.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="raster">raster</td><td class="desc">
+<p>A handle to the new raster object.</p>
+</td></tr>
+<tr><td class="val" id="pool_base">pool_base</td><td class="desc">
+<p>Previously, the address in memory of the render pool. Set this to NULL.</p>
+</td></tr>
+<tr><td class="val" id="pool_size">pool_size</td><td class="desc">
+<p>Previously, the size in bytes of the render pool. Set this to 0.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Rasterizers should rely on dynamic or stack allocation if they want to (a handle to the memory allocator is passed to the rasterizer constructor).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_SetModeFunc">FT_Raster_SetModeFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Raster_SetModeFunc</b>)( <a href="ft2-raster.html#FT_Raster">FT_Raster</a>      raster,
+                            <span class="keyword">unsigned</span> <span class="keyword">long</span>  mode,
+                            <span class="keyword">void</span>*          args );
+
+#define FT_Raster_Set_Mode_Func  <b>FT_Raster_SetModeFunc</b>
+</pre>
+
+<p>This function is a generic facility to change modes or attributes in a given raster. This can be used for debugging purposes, or simply to allow implementation-specific &lsquo;features&rsquo; in a given raster module.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="raster">raster</td><td class="desc">
+<p>A handle to the new raster object.</p>
+</td></tr>
+<tr><td class="val" id="mode">mode</td><td class="desc">
+<p>A 4-byte tag used to name the mode or property.</p>
+</td></tr>
+<tr><td class="val" id="args">args</td><td class="desc">
+<p>A pointer to the new mode/property to use.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_RenderFunc">FT_Raster_RenderFunc</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Raster_RenderFunc</b>)( <a href="ft2-raster.html#FT_Raster">FT_Raster</a>                raster,
+                           <span class="keyword">const</span> <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a>*  params );
+
+#define FT_Raster_Render_Func  <b>FT_Raster_RenderFunc</b>
+</pre>
+
+<p>Invoke a given raster to scan-convert a given glyph image into a target bitmap.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="raster">raster</td><td class="desc">
+<p>A handle to the raster object.</p>
+</td></tr>
+<tr><td class="val" id="params">params</td><td class="desc">
+<p>A pointer to an <a href="ft2-raster.html#FT_Raster_Params">FT_Raster_Params</a> structure used to store the rendering parameters.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The exact format of the source image depends on the raster's glyph format defined in its <a href="ft2-raster.html#FT_Raster_Funcs">FT_Raster_Funcs</a> structure. It can be an <a href="ft2-outline_processing.html#FT_Outline">FT_Outline</a> or anything else in order to support a large array of glyph formats.</p>
+<p>Note also that the render function can fail and return a &lsquo;FT_Err_Unimplemented_Feature&rsquo; error code if the raster used does not support direct composition.</p>
+<p>XXX: For now, the standard raster doesn't support direct composition but this should change for the final release (see the files &lsquo;demos/src/ftgrays.c&rsquo; and &lsquo;demos/src/ftgrays2.c&rsquo; for examples of distinct implementations that support direct composition).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_Funcs">FT_Raster_Funcs</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Raster_Funcs_
+  {
+    <a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a>        glyph_format;
+
+    <a href="ft2-raster.html#FT_Raster_NewFunc">FT_Raster_NewFunc</a>      raster_new;
+    <a href="ft2-raster.html#FT_Raster_ResetFunc">FT_Raster_ResetFunc</a>    raster_reset;
+    <a href="ft2-raster.html#FT_Raster_SetModeFunc">FT_Raster_SetModeFunc</a>  raster_set_mode;
+    <a href="ft2-raster.html#FT_Raster_RenderFunc">FT_Raster_RenderFunc</a>   raster_render;
+    <a href="ft2-raster.html#FT_Raster_DoneFunc">FT_Raster_DoneFunc</a>     raster_done;
+
+  } <b>FT_Raster_Funcs</b>;
+</pre>
+
+<p>A structure used to describe a given raster class to the library.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="glyph_format">glyph_format</td><td class="desc">
+<p>The supported glyph format for this raster.</p>
+</td></tr>
+<tr><td class="val" id="raster_new">raster_new</td><td class="desc">
+<p>The raster constructor.</p>
+</td></tr>
+<tr><td class="val" id="raster_reset">raster_reset</td><td class="desc">
+<p>Used to reset the render pool within the raster.</p>
+</td></tr>
+<tr><td class="val" id="raster_render">raster_render</td><td class="desc">
+<p>A function to render a glyph into a given bitmap.</p>
+</td></tr>
+<tr><td class="val" id="raster_done">raster_done</td><td class="desc">
+<p>The raster destructor.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_BitTest_Func">FT_Raster_BitTest_Func</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">int</span>
+  (*<b>FT_Raster_BitTest_Func</b>)( <span class="keyword">int</span>    y,
+                             <span class="keyword">int</span>    x,
+                             <span class="keyword">void</span>*  user );
+</pre>
+
+<p>Deprecated, unimplemented.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Raster_BitSet_Func">FT_Raster_BitSet_Func</h3>
+<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Raster_BitSet_Func</b>)( <span class="keyword">int</span>    y,
+                            <span class="keyword">int</span>    x,
+                            <span class="keyword">void</span>*  user );
+</pre>
+
+<p>Deprecated, unimplemented.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-sfnt_names.html freetype-2.10.0.aros/docs/reference/ft2-sfnt_names.html
--- freetype-2.10.0/docs/reference/ft2-sfnt_names.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-sfnt_names.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="sfnt_names">SFNT Names</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_SfntName">FT_SfntName</a></td><td><a href="#FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</a></td><td><a href="#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a></td></tr>
+<tr><td><a href="#FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</a></td><td><a href="#FT_SfntLangTag">FT_SfntLangTag</a></td><td></td></tr>
+</table>
+
+
+<p>The TrueType and OpenType specifications allow the inclusion of a special names table (&lsquo;name&rsquo;) in font files. This table contains textual (and internationalized) information regarding the font, like family name, copyright, version, etc.</p>
+<p>The definitions below are used to access them if available.</p>
+<p>Note that this has nothing to do with glyph names!</p>
+
+<div class="section">
+<h3 id="FT_SfntName">FT_SfntName</h3>
+<p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_SfntName_
+  {
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  platform_id;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  encoding_id;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  language_id;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  name_id;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*   string;      /* this string is *not* null-terminated! */
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    string_len;  /* in bytes                              */
+
+  } <b>FT_SfntName</b>;
+</pre>
+
+<p>A structure used to model an SFNT &lsquo;name&rsquo; table entry.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="platform_id">platform_id</td><td class="desc">
+<p>The platform ID for &lsquo;string&rsquo;. See <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a> for possible values.</p>
+</td></tr>
+<tr><td class="val" id="encoding_id">encoding_id</td><td class="desc">
+<p>The encoding ID for &lsquo;string&rsquo;. See <a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a>, and <a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</a> for possible values.</p>
+</td></tr>
+<tr><td class="val" id="language_id">language_id</td><td class="desc">
+<p>The language ID for &lsquo;string&rsquo;. See <a href="ft2-truetype_tables.html#TT_MAC_LANGID_XXX">TT_MAC_LANGID_XXX</a> and <a href="ft2-truetype_tables.html#TT_MS_LANGID_XXX">TT_MS_LANGID_XXX</a> for possible values.</p>
+<p>Registered OpenType values for &lsquo;language_id&rsquo; are always smaller than 0x8000; values equal or larger than 0x8000 usually indicate a language tag string (introduced in OpenType version 1.6). Use function <a href="ft2-sfnt_names.html#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a> with &lsquo;language_id&rsquo; as its argument to retrieve the associated language tag.</p>
+</td></tr>
+<tr><td class="val" id="name_id">name_id</td><td class="desc">
+<p>An identifier for &lsquo;string&rsquo;. See <a href="ft2-truetype_tables.html#TT_NAME_ID_XXX">TT_NAME_ID_XXX</a> for possible values.</p>
+</td></tr>
+<tr><td class="val" id="string">string</td><td class="desc">
+<p>The &lsquo;name&rsquo; string. Note that its format differs depending on the (platform,encoding) pair, being either a string of bytes (without a terminating NULL byte) or containing UTF-16BE entities.</p>
+</td></tr>
+<tr><td class="val" id="string_len">string_len</td><td class="desc">
+<p>The length of &lsquo;string&rsquo; in bytes.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Please refer to the TrueType or OpenType specification for more details.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</h3>
+<p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
+  <b>FT_Get_Sfnt_Name_Count</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Retrieve the number of name strings in the SFNT &lsquo;name&rsquo; table.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The number of strings in the &lsquo;name&rsquo; table.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</h3>
+<p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Sfnt_Name</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>       face,
+                    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>       idx,
+                    <a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a>  *aname );
+</pre>
+
+<p>Retrieve a string of the SFNT &lsquo;name&rsquo; table for a given index.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="idx">idx</td><td class="desc">
+<p>The index of the &lsquo;name&rsquo; string.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aname">aname</td><td class="desc">
+<p>The indexed <a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a> structure.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The &lsquo;string&rsquo; array returned in the &lsquo;aname&rsquo; structure is not null-terminated. Note that you don't have to deallocate &lsquo;string&rsquo; by yourself; FreeType takes care of it if you call <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+<p>Use <a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</a> to get the total number of available &lsquo;name&rsquo; table entries, then do a loop until you get the right platform, encoding, and name ID.</p>
+<p>&lsquo;name&rsquo; table format&nbsp;1 entries can use language tags also, see <a href="ft2-sfnt_names.html#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_SfntLangTag">FT_SfntLangTag</h3>
+<p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_SfntLangTag_
+  {
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*  string;      /* this string is *not* null-terminated! */
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>   string_len;  /* in bytes                              */
+
+  } <b>FT_SfntLangTag</b>;
+</pre>
+
+<p>A structure to model a language tag entry from an SFNT &lsquo;name&rsquo; table.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="string">string</td><td class="desc">
+<p>The language tag string, encoded in UTF-16BE (without trailing NULL bytes).</p>
+</td></tr>
+<tr><td class="val" id="string_len">string_len</td><td class="desc">
+<p>The length of &lsquo;string&rsquo; in <b>bytes</b>.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>Please refer to the TrueType or OpenType specification for more details.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</h3>
+<p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_Sfnt_LangTag</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>          face,
+                       <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>          langID,
+                       <a href="ft2-sfnt_names.html#FT_SfntLangTag">FT_SfntLangTag</a>  *alangTag );
+</pre>
+
+<p>Retrieve the language tag associated with a language ID of an SFNT &lsquo;name&rsquo; table entry.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="langID">langID</td><td class="desc">
+<p>The language ID, as returned by <a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</a>. This is always a value larger than 0x8000.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="alangTag">alangTag</td><td class="desc">
+<p>The language tag associated with the &lsquo;name&rsquo; table entry's language ID.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The &lsquo;string&rsquo; array returned in the &lsquo;alangTag&rsquo; structure is not null-terminated. Note that you don't have to deallocate &lsquo;string&rsquo; by yourself; FreeType takes care of it if you call <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+<p>Only &lsquo;name&rsquo; table format&nbsp;1 supports language tags. For format&nbsp;0 tables, this function always returns FT_Err_Invalid_Table. For invalid format&nbsp;1 language ID values, FT_Err_Invalid_Argument is returned.</p>
+
+<h4>since</h4>
+<p>2.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-sizes_management.html freetype-2.10.0.aros/docs/reference/ft2-sizes_management.html
--- freetype-2.10.0/docs/reference/ft2-sizes_management.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-sizes_management.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="sizes_management">Size Management</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_New_Size">FT_New_Size</a></td><td><a href="#FT_Done_Size">FT_Done_Size</a></td><td><a href="#FT_Activate_Size">FT_Activate_Size</a></td><td></td></tr>
+</table>
+
+
+<p>When creating a new face object (e.g., with <a href="ft2-base_interface.html#FT_New_Face">FT_New_Face</a>), an <a href="ft2-base_interface.html#FT_Size">FT_Size</a> object is automatically created and used to store all pixel-size dependent information, available in the &lsquo;face-&gt;size&rsquo; field.</p>
+<p>It is however possible to create more sizes for a given face, mostly in order to manage several character pixel sizes of the same font family and style. See <a href="ft2-sizes_management.html#FT_New_Size">FT_New_Size</a> and <a href="ft2-sizes_management.html#FT_Done_Size">FT_Done_Size</a>.</p>
+<p>Note that <a href="ft2-base_interface.html#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a> and <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> only modify the contents of the current &lsquo;active&rsquo; size; you thus need to use <a href="ft2-sizes_management.html#FT_Activate_Size">FT_Activate_Size</a> to change it.</p>
+<p>99% of applications won't need the functions provided here, especially if they use the caching sub-system, so be cautious when using these.</p>
+
+<div class="section">
+<h3 id="FT_New_Size">FT_New_Size</h3>
+<p>Defined in FT_SIZES_H (freetype/ftsizes.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_New_Size</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>   face,
+               <a href="ft2-base_interface.html#FT_Size">FT_Size</a>*  size );
+</pre>
+
+<p>Create a new size object from a given face object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to a parent face object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="asize">asize</td><td class="desc">
+<p>A handle to a new size object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>You need to call <a href="ft2-sizes_management.html#FT_Activate_Size">FT_Activate_Size</a> in order to select the new size for upcoming calls to <a href="ft2-base_interface.html#FT_Set_Pixel_Sizes">FT_Set_Pixel_Sizes</a>, <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a>, <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>, <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>, etc.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Done_Size">FT_Done_Size</h3>
+<p>Defined in FT_SIZES_H (freetype/ftsizes.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Done_Size</b>( <a href="ft2-base_interface.html#FT_Size">FT_Size</a>  size );
+</pre>
+
+<p>Discard a given size object. Note that <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a> automatically discards all size objects allocated with <a href="ft2-sizes_management.html#FT_New_Size">FT_New_Size</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>A handle to a target size object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Activate_Size">FT_Activate_Size</h3>
+<p>Defined in FT_SIZES_H (freetype/ftsizes.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Activate_Size</b>( <a href="ft2-base_interface.html#FT_Size">FT_Size</a>  size );
+</pre>
+
+<p>Even though it is possible to create several size objects for a given face (see <a href="ft2-sizes_management.html#FT_New_Size">FT_New_Size</a> for details), functions like <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a> or <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a> only use the one that has been activated last to determine the &lsquo;current character pixel size&rsquo;.</p>
+<p>This function can be used to &lsquo;activate&rsquo; a previously created size object.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>A handle to a target size object.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If &lsquo;face&rsquo; is the size's parent face object, this function changes the value of &lsquo;face-&gt;size&rsquo; to the input size handle.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-system_interface.html freetype-2.10.0.aros/docs/reference/ft2-system_interface.html
--- freetype-2.10.0/docs/reference/ft2-system_interface.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-system_interface.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,405 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="system_interface">System Interface</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Memory">FT_Memory</a></td><td><a href="#FT_MemoryRec">FT_MemoryRec</a></td><td><a href="#FT_Stream_CloseFunc">FT_Stream_CloseFunc</a></td></tr>
+<tr><td><a href="#FT_Alloc_Func">FT_Alloc_Func</a></td><td><a href="#FT_Stream">FT_Stream</a></td><td><a href="#FT_StreamRec">FT_StreamRec</a></td></tr>
+<tr><td><a href="#FT_Free_Func">FT_Free_Func</a></td><td><a href="#FT_StreamDesc">FT_StreamDesc</a></td><td></td></tr>
+<tr><td><a href="#FT_Realloc_Func">FT_Realloc_Func</a></td><td><a href="#FT_Stream_IoFunc">FT_Stream_IoFunc</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains various definitions related to memory management and i/o access. You need to understand this information if you want to use a custom memory manager or you own i/o streams.</p>
+
+<div class="section">
+<h3 id="FT_Memory">FT_Memory</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_MemoryRec_*  <b>FT_Memory</b>;
+</pre>
+
+<p>A handle to a given memory manager object, defined with an <a href="ft2-system_interface.html#FT_MemoryRec">FT_MemoryRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Alloc_Func">FT_Alloc_Func</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>*
+  (*<b>FT_Alloc_Func</b>)( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>  memory,
+                    <span class="keyword">long</span>       size );
+</pre>
+
+<p>A function used to allocate &lsquo;size&rsquo; bytes from &lsquo;memory&rsquo;.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A handle to the source memory manager.</p>
+</td></tr>
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>The size in bytes to allocate.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Address of new memory block. 0&nbsp;in case of failure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Free_Func">FT_Free_Func</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Free_Func</b>)( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>  memory,
+                   <span class="keyword">void</span>*      block );
+</pre>
+
+<p>A function used to release a given block of memory.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A handle to the source memory manager.</p>
+</td></tr>
+<tr><td class="val" id="block">block</td><td class="desc">
+<p>The address of the target memory block.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Realloc_Func">FT_Realloc_Func</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>*
+  (*<b>FT_Realloc_Func</b>)( <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>  memory,
+                      <span class="keyword">long</span>       cur_size,
+                      <span class="keyword">long</span>       new_size,
+                      <span class="keyword">void</span>*      block );
+</pre>
+
+<p>A function used to re-allocate a given block of memory.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>A handle to the source memory manager.</p>
+</td></tr>
+<tr><td class="val" id="cur_size">cur_size</td><td class="desc">
+<p>The block's current size in bytes.</p>
+</td></tr>
+<tr><td class="val" id="new_size">new_size</td><td class="desc">
+<p>The block's requested new size.</p>
+</td></tr>
+<tr><td class="val" id="block">block</td><td class="desc">
+<p>The block's current address.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>New block address. 0&nbsp;in case of memory shortage.</p>
+
+<h4>note</h4>
+<p>In case of error, the old block must still be available.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_MemoryRec">FT_MemoryRec</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">struct</span>  FT_MemoryRec_
+  {
+    <span class="keyword">void</span>*            user;
+    <a href="ft2-system_interface.html#FT_Alloc_Func">FT_Alloc_Func</a>    alloc;
+    <a href="ft2-system_interface.html#FT_Free_Func">FT_Free_Func</a>     free;
+    <a href="ft2-system_interface.html#FT_Realloc_Func">FT_Realloc_Func</a>  realloc;
+  };
+</pre>
+
+<p>A structure used to describe a given memory manager to FreeType&nbsp;2.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="user">user</td><td class="desc">
+<p>A generic typeless pointer for user data.</p>
+</td></tr>
+<tr><td class="val" id="alloc">alloc</td><td class="desc">
+<p>A pointer type to an allocation function.</p>
+</td></tr>
+<tr><td class="val" id="free">free</td><td class="desc">
+<p>A pointer type to an memory freeing function.</p>
+</td></tr>
+<tr><td class="val" id="realloc">realloc</td><td class="desc">
+<p>A pointer type to a reallocation function.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stream">FT_Stream</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_StreamRec_*  <b>FT_Stream</b>;
+</pre>
+
+<p>A handle to an input stream.</p>
+
+<h4>also</h4>
+<p>See <a href="ft2-system_interface.html#FT_StreamRec">FT_StreamRec</a> for the publicly accessible fields of a given stream object.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_StreamDesc">FT_StreamDesc</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">union</span>  FT_StreamDesc_
+  {
+    <span class="keyword">long</span>   value;
+    <span class="keyword">void</span>*  pointer;
+
+  } <b>FT_StreamDesc</b>;
+</pre>
+
+<p>A union type used to store either a long or a pointer. This is used to store a file descriptor or a &lsquo;FILE*&rsquo; in an input stream.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stream_IoFunc">FT_Stream_IoFunc</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">long</span>
+  (*<b>FT_Stream_IoFunc</b>)( <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>       stream,
+                       <span class="keyword">unsigned</span> <span class="keyword">long</span>   offset,
+                       <span class="keyword">unsigned</span> <span class="keyword">char</span>*  buffer,
+                       <span class="keyword">unsigned</span> <span class="keyword">long</span>   count );
+</pre>
+
+<p>A function used to seek and read data from a given input stream.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>A handle to the source stream.</p>
+</td></tr>
+<tr><td class="val" id="offset">offset</td><td class="desc">
+<p>The offset of read in stream (always from start).</p>
+</td></tr>
+<tr><td class="val" id="buffer">buffer</td><td class="desc">
+<p>The address of the read buffer.</p>
+</td></tr>
+<tr><td class="val" id="count">count</td><td class="desc">
+<p>The number of bytes to read from the stream.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The number of bytes effectively read by the stream.</p>
+
+<h4>note</h4>
+<p>This function might be called to perform a seek or skip operation with a &lsquo;count&rsquo; of&nbsp;0. A non-zero return value then indicates an error.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Stream_CloseFunc">FT_Stream_CloseFunc</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">void</span>
+  (*<b>FT_Stream_CloseFunc</b>)( <a href="ft2-system_interface.html#FT_Stream">FT_Stream</a>  stream );
+</pre>
+
+<p>A function used to close a given input stream.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="stream">stream</td><td class="desc">
+<p>A handle to the target stream.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_StreamRec">FT_StreamRec</h3>
+<p>Defined in FT_SYSTEM_H (freetype/ftsystem.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_StreamRec_
+  {
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>*       base;
+    <span class="keyword">unsigned</span> <span class="keyword">long</span>        size;
+    <span class="keyword">unsigned</span> <span class="keyword">long</span>        pos;
+
+    <a href="ft2-system_interface.html#FT_StreamDesc">FT_StreamDesc</a>        descriptor;
+    <a href="ft2-system_interface.html#FT_StreamDesc">FT_StreamDesc</a>        pathname;
+    <a href="ft2-system_interface.html#FT_Stream_IoFunc">FT_Stream_IoFunc</a>     read;
+    <a href="ft2-system_interface.html#FT_Stream_CloseFunc">FT_Stream_CloseFunc</a>  close;
+
+    <a href="ft2-system_interface.html#FT_Memory">FT_Memory</a>            memory;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>*       cursor;
+    <span class="keyword">unsigned</span> <span class="keyword">char</span>*       limit;
+
+  } <b>FT_StreamRec</b>;
+</pre>
+
+<p>A structure used to describe an input stream.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="base">base</td><td class="desc">
+<p>For memory-based streams, this is the address of the first stream byte in memory. This field should always be set to NULL for disk-based streams.</p>
+</td></tr>
+<tr><td class="val" id="size">size</td><td class="desc">
+<p>The stream size in bytes.</p>
+<p>In case of compressed streams where the size is unknown before actually doing the decompression, the value is set to 0x7FFFFFFF. (Note that this size value can occur for normal streams also; it is thus just a hint.)</p>
+</td></tr>
+<tr><td class="val" id="pos">pos</td><td class="desc">
+<p>The current position within the stream.</p>
+</td></tr>
+<tr><td class="val" id="descriptor">descriptor</td><td class="desc">
+<p>This field is a union that can hold an integer or a pointer. It is used by stream implementations to store file descriptors or &lsquo;FILE*&rsquo; pointers.</p>
+</td></tr>
+<tr><td class="val" id="pathname">pathname</td><td class="desc">
+<p>This field is completely ignored by FreeType. However, it is often useful during debugging to use it to store the stream's filename (where available).</p>
+</td></tr>
+<tr><td class="val" id="read">read</td><td class="desc">
+<p>The stream's input function.</p>
+</td></tr>
+<tr><td class="val" id="close">close</td><td class="desc">
+<p>The stream's close function.</p>
+</td></tr>
+<tr><td class="val" id="memory">memory</td><td class="desc">
+<p>The memory manager to use to preload frames. This is set internally by FreeType and shouldn't be touched by stream implementations.</p>
+</td></tr>
+<tr><td class="val" id="cursor">cursor</td><td class="desc">
+<p>This field is set and used internally by FreeType when parsing frames.</p>
+</td></tr>
+<tr><td class="val" id="limit">limit</td><td class="desc">
+<p>This field is set and used internally by FreeType when parsing frames.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-t1_cid_driver.html freetype-2.10.0.aros/docs/reference/ft2-t1_cid_driver.html
--- freetype-2.10.0/docs/reference/ft2-t1_cid_driver.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-t1_cid_driver.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="t1_cid_driver">The Type 1 and CID drivers</h1>
+
+<p>It is possible to control the behaviour of FreeType's Type&nbsp;1 and Type&nbsp;1 CID drivers with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>.</p>
+<p>Behind the scenes, both drivers use the Adobe CFF engine for hinting; however, the used properties must be specified separately.</p>
+<p>The Type&nbsp;1 driver's module name is &lsquo;type1&rsquo;; the CID driver's module name is &lsquo;t1cid&rsquo;.</p>
+<p>Available properties are <a href="ft2-properties.html#hinting-engine">hinting-engine</a>, <a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a>, <a href="ft2-properties.html#darkening-parameters">darkening-parameters</a>, and <a href="ft2-properties.html#random-seed">random-seed</a>, as documented in the &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; section.</p>
+<p>Please see the &lsquo;<a href="ft2-cff_driver.html#cff_driver">The CFF driver</a>&rsquo; section for more details on the new hinting engine.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-toc.html freetype-2.10.0.aros/docs/reference/ft2-toc.html
--- freetype-2.10.0/docs/reference/ft2-toc.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-toc.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1>Table of Contents</h1>
+<div class="section">
+<h2>General Remarks</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-header_inclusion.html">FreeType's header inclusion scheme</a></td><td class="desc">
+<p>How client applications should include FreeType header files.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-user_allocation.html">User allocation</a></td><td class="desc">
+<p>How client applications should allocate FreeType data structures.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Core API</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-version.html">FreeType Version</a></td><td class="desc">
+<p>Functions and macros related to FreeType versions.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-basic_types.html">Basic Data Types</a></td><td class="desc">
+<p>The basic data types defined by the library.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-base_interface.html">Base Interface</a></td><td class="desc">
+<p>The FreeType&nbsp;2 base font interface.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-glyph_variants.html">Unicode Variation Sequences</a></td><td class="desc">
+<p>The FreeType&nbsp;2 interface to Unicode Variation Sequences (UVS), using the SFNT cmap format&nbsp;14.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-glyph_management.html">Glyph Management</a></td><td class="desc">
+<p>Generic interface to manage individual glyph data.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-mac_specific.html">Mac Specific Interface</a></td><td class="desc">
+<p>Only available on the Macintosh.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-sizes_management.html">Size Management</a></td><td class="desc">
+<p>Managing multiple sizes per face.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-header_file_macros.html">Header File Macros</a></td><td class="desc">
+<p>Macro definitions used to #include specific header files.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Format-Specific API</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-multiple_masters.html">Multiple Masters</a></td><td class="desc">
+<p>How to manage Multiple Masters fonts.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-truetype_tables.html">TrueType Tables</a></td><td class="desc">
+<p>TrueType specific table types and functions.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-type1_tables.html">Type 1 Tables</a></td><td class="desc">
+<p>Type&nbsp;1 (PostScript) specific font tables.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-sfnt_names.html">SFNT Names</a></td><td class="desc">
+<p>Access the names embedded in TrueType and OpenType files.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-bdf_fonts.html">BDF and PCF Files</a></td><td class="desc">
+<p>BDF and PCF specific API.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-cid_fonts.html">CID Fonts</a></td><td class="desc">
+<p>CID-keyed font specific API.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-pfr_fonts.html">PFR Fonts</a></td><td class="desc">
+<p>PFR/TrueDoc specific API.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-winfnt_fonts.html">Window FNT Files</a></td><td class="desc">
+<p>Windows FNT specific API.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-font_formats.html">Font Formats</a></td><td class="desc">
+<p>Getting the font format.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-gasp_table.html">Gasp Table</a></td><td class="desc">
+<p>Retrieving TrueType &lsquo;gasp&rsquo; table entries.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Controlling FreeType Modules</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-auto_hinter.html">The auto-hinter</a></td><td class="desc">
+<p>Controlling the auto-hinting module.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-cff_driver.html">The CFF driver</a></td><td class="desc">
+<p>Controlling the CFF driver module.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-t1_cid_driver.html">The Type 1 and CID drivers</a></td><td class="desc">
+<p>Controlling the Type&nbsp;1 and CID driver modules.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-tt_driver.html">The TrueType driver</a></td><td class="desc">
+<p>Controlling the TrueType driver module.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-pcf_driver.html">The PCF driver</a></td><td class="desc">
+<p>Controlling the PCF driver module.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-properties.html">Driver properties</a></td><td class="desc">
+<p>Controlling driver modules.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-parameter_tags.html">Parameter Tags</a></td><td class="desc">
+<p>Macros for driver property and font loading parameter tags.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Cache Sub-System</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-cache_subsystem.html">Cache Sub-System</a></td><td class="desc">
+<p>How to cache face, size, and glyph data with FreeType&nbsp;2.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Support API</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-computations.html">Computations</a></td><td class="desc">
+<p>Crunching fixed numbers and vectors.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-list_processing.html">List Processing</a></td><td class="desc">
+<p>Simple management of lists.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-outline_processing.html">Outline Processing</a></td><td class="desc">
+<p>Functions to create, transform, and render vectorial glyph images.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-quick_advance.html">Quick retrieval of advance values</a></td><td class="desc">
+<p>Retrieve horizontal and vertical advance values without processing glyph outlines, if possible.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-bitmap_handling.html">Bitmap Handling</a></td><td class="desc">
+<p>Handling FT_Bitmap objects.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-raster.html">Scanline Converter</a></td><td class="desc">
+<p>How vectorial outlines are converted into bitmaps and pixmaps.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-glyph_stroker.html">Glyph Stroker</a></td><td class="desc">
+<p>Generating bordered and stroked glyphs.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-system_interface.html">System Interface</a></td><td class="desc">
+<p>How FreeType manages memory and i/o.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-module_management.html">Module Management</a></td><td class="desc">
+<p>How to add, upgrade, remove, and control modules from FreeType.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-gzip.html">GZIP Streams</a></td><td class="desc">
+<p>Using gzip-compressed font files.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-lzw.html">LZW Streams</a></td><td class="desc">
+<p>Using LZW-compressed font files.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-bzip2.html">BZIP2 Streams</a></td><td class="desc">
+<p>Using bzip2-compressed font files.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-lcd_filtering.html">LCD Filtering</a></td><td class="desc">
+<p>Reduce color fringes of subpixel-rendered bitmaps.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Error Codes</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-error_enumerations.html">Error Enumerations</a></td><td class="desc">
+<p>How to handle errors and error strings.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-error_code_values.html">Error Code Values</a></td><td class="desc">
+<p>All possible error codes returned by FreeType functions.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2>Miscellaneous</h2>
+<table class="toc">
+<tr><td class="link"><a href="ft2-ot_validation.html">OpenType Validation</a></td><td class="desc">
+<p>An API to validate OpenType tables.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-incremental.html">Incremental Loading</a></td><td class="desc">
+<p>Custom Glyph Loading.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-truetype_engine.html">The TrueType Engine</a></td><td class="desc">
+<p>TrueType bytecode support.</p>
+</td></tr>
+<tr><td class="link"><a href="ft2-gx_validation.html">TrueTypeGX/AAT Validation</a></td><td class="desc">
+<p>An API to validate TrueTypeGX/AAT tables.</p>
+</td></tr>
+</table>
+</div>
+<div class="section">
+<h2><a href="ft2-index.html">Global Index</a></h2></div>
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td></tr></table>
+
+<div class="timestamp">generated on Tue May  1 23:34:43 2018</div></body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-truetype_engine.html freetype-2.10.0.aros/docs/reference/ft2-truetype_engine.html
--- freetype-2.10.0/docs/reference/ft2-truetype_engine.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-truetype_engine.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="truetype_engine">The TrueType Engine</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_TrueTypeEngineType">FT_TrueTypeEngineType</a></td><td><a href="#FT_Get_TrueType_Engine_Type">FT_Get_TrueType_Engine_Type</a></td></tr>
+</table>
+
+
+<p>This section contains a function used to query the level of TrueType bytecode support compiled in this version of the library.</p>
+
+<div class="section">
+<h3 id="FT_TrueTypeEngineType">FT_TrueTypeEngineType</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_TrueTypeEngineType_
+  {
+    <a href="ft2-truetype_engine.html#FT_TRUETYPE_ENGINE_TYPE_NONE">FT_TRUETYPE_ENGINE_TYPE_NONE</a> = 0,
+    <a href="ft2-truetype_engine.html#FT_TRUETYPE_ENGINE_TYPE_UNPATENTED">FT_TRUETYPE_ENGINE_TYPE_UNPATENTED</a>,
+    <a href="ft2-truetype_engine.html#FT_TRUETYPE_ENGINE_TYPE_PATENTED">FT_TRUETYPE_ENGINE_TYPE_PATENTED</a>
+
+  } <b>FT_TrueTypeEngineType</b>;
+</pre>
+
+<p>A list of values describing which kind of TrueType bytecode engine is implemented in a given FT_Library instance. It is used by the <a href="ft2-truetype_engine.html#FT_Get_TrueType_Engine_Type">FT_Get_TrueType_Engine_Type</a> function.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_TRUETYPE_ENGINE_TYPE_NONE">FT_TRUETYPE_ENGINE_TYPE_NONE</td><td class="desc">
+<p>The library doesn't implement any kind of bytecode interpreter.</p>
+</td></tr>
+<tr><td class="val" id="FT_TRUETYPE_ENGINE_TYPE_UNPATENTED">FT_TRUETYPE_ENGINE_TYPE_UNPATENTED</td><td class="desc">
+<p>Deprecated and removed.</p>
+</td></tr>
+<tr><td class="val" id="FT_TRUETYPE_ENGINE_TYPE_PATENTED">FT_TRUETYPE_ENGINE_TYPE_PATENTED</td><td class="desc">
+<p>The library implements a bytecode interpreter that covers the full instruction set of the TrueType virtual machine (this was governed by patents until May 2010, hence the name).</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.2</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_TrueType_Engine_Type">FT_Get_TrueType_Engine_Type</h3>
+<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TrueTypeEngineType</a> )
+  <b>FT_Get_TrueType_Engine_Type</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library );
+</pre>
+
+<p>Return an <a href="ft2-truetype_engine.html#FT_TrueTypeEngineType">FT_TrueTypeEngineType</a> value to indicate which level of the TrueType virtual machine a given library instance supports.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A library instance.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A value indicating which level is supported.</p>
+
+<h4>since</h4>
+<p>2.2</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-truetype_tables.html freetype-2.10.0.aros/docs/reference/ft2-truetype_tables.html
--- freetype-2.10.0/docs/reference/ft2-truetype_tables.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-truetype_tables.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,1869 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="truetype_tables">TrueType Tables</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#TT_Header">TT_Header</a></td><td><a href="#FT_Load_Sfnt_Table">FT_Load_Sfnt_Table</a></td><td><a href="#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a></td></tr>
+<tr><td><a href="#TT_HoriHeader">TT_HoriHeader</a></td><td><a href="#FT_Sfnt_Table_Info">FT_Sfnt_Table_Info</a></td><td><a href="#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a></td></tr>
+<tr><td><a href="#TT_VertHeader">TT_VertHeader</a></td><td>&nbsp;</td><td><a href="#TT_MS_ID_XXX">TT_MS_ID_XXX</a></td></tr>
+<tr><td><a href="#TT_OS2">TT_OS2</a></td><td><a href="#FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</a></td><td><a href="#TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</a></td></tr>
+<tr><td><a href="#TT_Postscript">TT_Postscript</a></td><td><a href="#FT_Get_CMap_Format">FT_Get_CMap_Format</a></td><td><a href="#TT_MAC_LANGID_XXX">TT_MAC_LANGID_XXX</a></td></tr>
+<tr><td><a href="#TT_PCLT">TT_PCLT</a></td><td>&nbsp;</td><td><a href="#TT_MS_LANGID_XXX">TT_MS_LANGID_XXX</a></td></tr>
+<tr><td><a href="#TT_MaxProfile">TT_MaxProfile</a></td><td><a href="#FT_PARAM_TAG_UNPATENTED_HINTING">FT_PARAM_TAG_UNPATENTED_HINTING</a></td><td><a href="#TT_NAME_ID_XXX">TT_NAME_ID_XXX</a></td></tr>
+<tr><td>&nbsp;</td><td>&nbsp;</td><td><a href="#TT_UCR_XXX">TT_UCR_XXX</a></td></tr>
+<tr><td><a href="#FT_Sfnt_Tag">FT_Sfnt_Tag</a></td><td><a href="#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a></td><td></td></tr>
+<tr><td><a href="#FT_Get_Sfnt_Table">FT_Get_Sfnt_Table</a></td><td><a href="#TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains definitions of some basic tables specific to TrueType and OpenType as well as some routines used to access and process them.</p>
+
+<div class="section">
+<h3 id="TT_Header">TT_Header</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_Header_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   Table_Version;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   Font_Revision;
+
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    CheckSum_Adjust;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    Magic_Number;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Flags;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Units_Per_EM;
+
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    Created [2];
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    Modified[2];
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   xMin;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   yMin;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   xMax;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   yMax;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Mac_Style;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Lowest_Rec_PPEM;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Font_Direction;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Index_To_Loc_Format;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Glyph_Data_Format;
+
+  } <b>TT_Header</b>;
+</pre>
+
+<p>A structure to model a TrueType font header table. All fields follow the OpenType specification.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_HoriHeader">TT_HoriHeader</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_HoriHeader_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   Version;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Ascender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Descender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Line_Gap;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  advance_Width_Max;      /* advance width maximum */
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   min_Left_Side_Bearing;  /* minimum left-sb       */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   min_Right_Side_Bearing; /* minimum right-sb      */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   xMax_Extent;            /* xmax extents          */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Slope_Rise;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Slope_Run;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Offset;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Reserved[4];
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   metric_Data_Format;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  number_Of_HMetrics;
+
+    /* The following fields are not defined by the OpenType specification */
+    /* but they are used to connect the metrics header to the relevant    */
+    /* `hmtx' table.                                                      */
+
+    <span class="keyword">void</span>*      long_metrics;
+    <span class="keyword">void</span>*      short_metrics;
+
+  } <b>TT_HoriHeader</b>;
+</pre>
+
+<p>A structure to model a TrueType horizontal header, the &lsquo;hhea&rsquo; table, as well as the corresponding horizontal metrics table, &lsquo;hmtx&rsquo;.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="Version">Version</td><td class="desc">
+<p>The table version.</p>
+</td></tr>
+<tr><td class="val" id="Ascender">Ascender</td><td class="desc">
+<p>The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.</p>
+<p>This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).</p>
+<p>You should use the &lsquo;sTypoAscender&rsquo; field of the &lsquo;OS/2&rsquo; table instead if you want the correct one.</p>
+</td></tr>
+<tr><td class="val" id="Descender">Descender</td><td class="desc">
+<p>The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.</p>
+<p>This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).</p>
+<p>You should use the &lsquo;sTypoDescender&rsquo; field of the &lsquo;OS/2&rsquo; table instead if you want the correct one.</p>
+</td></tr>
+<tr><td class="val" id="Line_Gap">Line_Gap</td><td class="desc">
+<p>The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.</p>
+</td></tr>
+<tr><td class="val" id="advance_Width_Max">advance_Width_Max</td><td class="desc">
+<p>This field is the maximum of all advance widths found in the font. It can be used to compute the maximum width of an arbitrary string of text.</p>
+</td></tr>
+<tr><td class="val" id="min_Left_Side_Bearing">min_Left_Side_Bearing</td><td class="desc">
+<p>The minimum left side bearing of all glyphs within the font.</p>
+</td></tr>
+<tr><td class="val" id="min_Right_Side_Bearing">min_Right_Side_Bearing</td><td class="desc">
+<p>The minimum right side bearing of all glyphs within the font.</p>
+</td></tr>
+<tr><td class="val" id="xMax_Extent">xMax_Extent</td><td class="desc">
+<p>The maximum horizontal extent (i.e., the &lsquo;width&rsquo; of a glyph's bounding box) for all glyphs in the font.</p>
+</td></tr>
+<tr><td class="val" id="caret_Slope_Rise">caret_Slope_Rise</td><td class="desc">
+<p>The rise coefficient of the cursor's slope of the cursor (slope=rise/run).</p>
+</td></tr>
+<tr><td class="val" id="caret_Slope_Run">caret_Slope_Run</td><td class="desc">
+<p>The run coefficient of the cursor's slope.</p>
+</td></tr>
+<tr><td class="val" id="caret_Offset">caret_Offset</td><td class="desc">
+<p>The cursor's offset for slanted fonts.</p>
+</td></tr>
+<tr><td class="val" id="Reserved">Reserved</td><td class="desc">
+<p>8&nbsp;reserved bytes.</p>
+</td></tr>
+<tr><td class="val" id="metric_Data_Format">metric_Data_Format</td><td class="desc">
+<p>Always&nbsp;0.</p>
+</td></tr>
+<tr><td class="val" id="number_Of_HMetrics">number_Of_HMetrics</td><td class="desc">
+<p>Number of HMetrics entries in the &lsquo;hmtx&rsquo; table -- this value can be smaller than the total number of glyphs in the font.</p>
+</td></tr>
+<tr><td class="val" id="long_metrics">long_metrics</td><td class="desc">
+<p>A pointer into the &lsquo;hmtx&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="short_metrics">short_metrics</td><td class="desc">
+<p>A pointer into the &lsquo;hmtx&rsquo; table.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>For an OpenType variation font, the values of the following fields can change after a call to <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> (and friends) if the font contains an &lsquo;MVAR&rsquo; table: &lsquo;caret_Slope_Rise&rsquo;, &lsquo;caret_Slope_Run&rsquo;, and &lsquo;caret_Offset&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_VertHeader">TT_VertHeader</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_VertHeader_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   Version;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Ascender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Descender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Line_Gap;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  advance_Height_Max;      /* advance height maximum */
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   min_Top_Side_Bearing;    /* minimum top-sb          */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   min_Bottom_Side_Bearing; /* minimum bottom-sb       */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   yMax_Extent;             /* ymax extents            */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Slope_Rise;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Slope_Run;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   caret_Offset;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   Reserved[4];
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   metric_Data_Format;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  number_Of_VMetrics;
+
+    /* The following fields are not defined by the OpenType specification */
+    /* but they are used to connect the metrics header to the relevant    */
+    /* `vmtx' table.                                                      */
+
+    <span class="keyword">void</span>*      long_metrics;
+    <span class="keyword">void</span>*      short_metrics;
+
+  } <b>TT_VertHeader</b>;
+</pre>
+
+<p>A structure used to model a TrueType vertical header, the &lsquo;vhea&rsquo; table, as well as the corresponding vertical metrics table, &lsquo;vmtx&rsquo;.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="Version">Version</td><td class="desc">
+<p>The table version.</p>
+</td></tr>
+<tr><td class="val" id="Ascender">Ascender</td><td class="desc">
+<p>The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.</p>
+<p>This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).</p>
+<p>You should use the &lsquo;sTypoAscender&rsquo; field of the &lsquo;OS/2&rsquo; table instead if you want the correct one.</p>
+</td></tr>
+<tr><td class="val" id="Descender">Descender</td><td class="desc">
+<p>The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.</p>
+<p>This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).</p>
+<p>You should use the &lsquo;sTypoDescender&rsquo; field of the &lsquo;OS/2&rsquo; table instead if you want the correct one.</p>
+</td></tr>
+<tr><td class="val" id="Line_Gap">Line_Gap</td><td class="desc">
+<p>The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.</p>
+</td></tr>
+<tr><td class="val" id="advance_Height_Max">advance_Height_Max</td><td class="desc">
+<p>This field is the maximum of all advance heights found in the font. It can be used to compute the maximum height of an arbitrary string of text.</p>
+</td></tr>
+<tr><td class="val" id="min_Top_Side_Bearing">min_Top_Side_Bearing</td><td class="desc">
+<p>The minimum top side bearing of all glyphs within the font.</p>
+</td></tr>
+<tr><td class="val" id="min_Bottom_Side_Bearing">min_Bottom_Side_Bearing</td><td class="desc">
+<p>The minimum bottom side bearing of all glyphs within the font.</p>
+</td></tr>
+<tr><td class="val" id="yMax_Extent">yMax_Extent</td><td class="desc">
+<p>The maximum vertical extent (i.e., the &lsquo;height&rsquo; of a glyph's bounding box) for all glyphs in the font.</p>
+</td></tr>
+<tr><td class="val" id="caret_Slope_Rise">caret_Slope_Rise</td><td class="desc">
+<p>The rise coefficient of the cursor's slope of the cursor (slope=rise/run).</p>
+</td></tr>
+<tr><td class="val" id="caret_Slope_Run">caret_Slope_Run</td><td class="desc">
+<p>The run coefficient of the cursor's slope.</p>
+</td></tr>
+<tr><td class="val" id="caret_Offset">caret_Offset</td><td class="desc">
+<p>The cursor's offset for slanted fonts.</p>
+</td></tr>
+<tr><td class="val" id="Reserved">Reserved</td><td class="desc">
+<p>8&nbsp;reserved bytes.</p>
+</td></tr>
+<tr><td class="val" id="metric_Data_Format">metric_Data_Format</td><td class="desc">
+<p>Always&nbsp;0.</p>
+</td></tr>
+<tr><td class="val" id="number_Of_VMetrics">number_Of_VMetrics</td><td class="desc">
+<p>Number of VMetrics entries in the &lsquo;vmtx&rsquo; table -- this value can be smaller than the total number of glyphs in the font.</p>
+</td></tr>
+<tr><td class="val" id="long_metrics">long_metrics</td><td class="desc">
+<p>A pointer into the &lsquo;vmtx&rsquo; table.</p>
+</td></tr>
+<tr><td class="val" id="short_metrics">short_metrics</td><td class="desc">
+<p>A pointer into the &lsquo;vmtx&rsquo; table.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>For an OpenType variation font, the values of the following fields can change after a call to <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> (and friends) if the font contains an &lsquo;MVAR&rsquo; table: &lsquo;Ascender&rsquo;, &lsquo;Descender&rsquo;, &lsquo;Line_Gap&rsquo;, &lsquo;caret_Slope_Rise&rsquo;, &lsquo;caret_Slope_Run&rsquo;, and &lsquo;caret_Offset&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_OS2">TT_OS2</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_OS2_
+  {
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  version;                /* 0x0001 - more or 0xFFFF */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   xAvgCharWidth;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usWeightClass;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usWidthClass;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  fsType;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySubscriptXSize;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySubscriptYSize;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySubscriptXOffset;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySubscriptYOffset;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySuperscriptXSize;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySuperscriptYSize;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySuperscriptXOffset;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   ySuperscriptYOffset;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   yStrikeoutSize;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   yStrikeoutPosition;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sFamilyClass;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    panose[10];
+
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulUnicodeRange1;        /* Bits 0-31   */
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulUnicodeRange2;        /* Bits 32-63  */
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulUnicodeRange3;        /* Bits 64-95  */
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulUnicodeRange4;        /* Bits 96-127 */
+
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    achVendID[4];
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  fsSelection;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usFirstCharIndex;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usLastCharIndex;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sTypoAscender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sTypoDescender;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sTypoLineGap;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usWinAscent;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usWinDescent;
+
+    /* only version 1 and higher: */
+
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulCodePageRange1;       /* Bits 0-31   */
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   ulCodePageRange2;       /* Bits 32-63  */
+
+    /* only version 2 and higher: */
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sxHeight;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   sCapHeight;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usDefaultChar;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usBreakChar;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usMaxContext;
+
+    /* only version 5 and higher: */
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usLowerOpticalPointSize;       /* in twips (1/20th points) */
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  usUpperOpticalPointSize;       /* in twips (1/20th points) */
+
+  } <b>TT_OS2</b>;
+</pre>
+
+<p>A structure to model a TrueType &lsquo;OS/2&rsquo; table. All fields comply to the OpenType specification.</p>
+<p>Note that we now support old Mac fonts that do not include an &lsquo;OS/2&rsquo; table. In this case, the &lsquo;version&rsquo; field is always set to 0xFFFF.</p>
+
+<h4>note</h4>
+<p>For an OpenType variation font, the values of the following fields can change after a call to <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> (and friends) if the font contains an &lsquo;MVAR&rsquo; table: &lsquo;sCapHeight&rsquo;, &lsquo;sTypoAscender&rsquo;, &lsquo;sTypoDescender&rsquo;, &lsquo;sTypoLineGap&rsquo;, &lsquo;sxHeight&rsquo;, &lsquo;usWinAscent&rsquo;, &lsquo;usWinDescent&rsquo;, &lsquo;yStrikeoutPosition&rsquo;, &lsquo;yStrikeoutSize&rsquo;, &lsquo;ySubscriptXOffset&rsquo;, &lsquo;ySubScriptXSize&rsquo;, &lsquo;ySubscriptYOffset&rsquo;, &lsquo;ySubscriptYSize&rsquo;, &lsquo;ySuperscriptXOffset&rsquo;, &lsquo;ySuperscriptXSize&rsquo;, &lsquo;ySuperscriptYOffset&rsquo;, and &lsquo;ySuperscriptYSize&rsquo;.</p>
+<p>Possible values for bits in the &lsquo;ulUnicodeRangeX&rsquo; fields are given by the <a href="ft2-truetype_tables.html#TT_UCR_XXX">TT_UCR_XXX</a> macros.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_Postscript">TT_Postscript</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_Postscript_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  FormatType;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>  italicAngle;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>  underlinePosition;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>  underlineThickness;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  isFixedPitch;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  minMemType42;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  maxMemType42;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  minMemType1;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  maxMemType1;
+
+    /* Glyph names follow in the `post' table, but we don't */
+    /* load them by default.                                */
+
+  } <b>TT_Postscript</b>;
+</pre>
+
+<p>A structure to model a TrueType &lsquo;post&rsquo; table. All fields comply to the OpenType specification. This structure does not reference a font's PostScript glyph names; use <a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a> to retrieve them.</p>
+
+<h4>note</h4>
+<p>For an OpenType variation font, the values of the following fields can change after a call to <a href="ft2-multiple_masters.html#FT_Set_Var_Design_Coordinates">FT_Set_Var_Design_Coordinates</a> (and friends) if the font contains an &lsquo;MVAR&rsquo; table: &lsquo;underlinePosition&rsquo; and &lsquo;underlineThickness&rsquo;.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_PCLT">TT_PCLT</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_PCLT_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   Version;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   FontNumber;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Pitch;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  xHeight;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  Style;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  TypeFamily;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  CapHeight;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  SymbolSet;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    TypeFace[16];
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    CharacterComplement[8];
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    FileName[6];
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    StrokeWeight;
+    <a href="ft2-basic_types.html#FT_Char">FT_Char</a>    WidthType;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    SerifStyle;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    Reserved;
+
+  } <b>TT_PCLT</b>;
+</pre>
+
+<p>A structure to model a TrueType &lsquo;PCLT&rsquo; table. All fields comply to the OpenType specification.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_MaxProfile">TT_MaxProfile</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  TT_MaxProfile_
+  {
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   version;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  numGlyphs;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxPoints;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxContours;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxCompositePoints;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxCompositeContours;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxZones;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxTwilightPoints;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxStorage;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxFunctionDefs;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxInstructionDefs;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxStackElements;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxSizeOfInstructions;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxComponentElements;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  maxComponentDepth;
+
+  } <b>TT_MaxProfile</b>;
+</pre>
+
+<p>The maximum profile (&lsquo;maxp&rsquo;) table contains many max values, which can be used to pre-allocate arrays for speeding up glyph loading and hinting.</p>
+
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="version">version</td><td class="desc">
+<p>The version number.</p>
+</td></tr>
+<tr><td class="val" id="numGlyphs">numGlyphs</td><td class="desc">
+<p>The number of glyphs in this TrueType font.</p>
+</td></tr>
+<tr><td class="val" id="maxPoints">maxPoints</td><td class="desc">
+<p>The maximum number of points in a non-composite TrueType glyph. See also &lsquo;maxCompositePoints&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="maxContours">maxContours</td><td class="desc">
+<p>The maximum number of contours in a non-composite TrueType glyph. See also &lsquo;maxCompositeContours&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="maxCompositePoints">maxCompositePoints</td><td class="desc">
+<p>The maximum number of points in a composite TrueType glyph. See also &lsquo;maxPoints&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="maxCompositeContours">maxCompositeContours</td><td class="desc">
+<p>The maximum number of contours in a composite TrueType glyph. See also &lsquo;maxContours&rsquo;.</p>
+</td></tr>
+<tr><td class="val" id="maxZones">maxZones</td><td class="desc">
+<p>The maximum number of zones used for glyph hinting.</p>
+</td></tr>
+<tr><td class="val" id="maxTwilightPoints">maxTwilightPoints</td><td class="desc">
+<p>The maximum number of points in the twilight zone used for glyph hinting.</p>
+</td></tr>
+<tr><td class="val" id="maxStorage">maxStorage</td><td class="desc">
+<p>The maximum number of elements in the storage area used for glyph hinting.</p>
+</td></tr>
+<tr><td class="val" id="maxFunctionDefs">maxFunctionDefs</td><td class="desc">
+<p>The maximum number of function definitions in the TrueType bytecode for this font.</p>
+</td></tr>
+<tr><td class="val" id="maxInstructionDefs">maxInstructionDefs</td><td class="desc">
+<p>The maximum number of instruction definitions in the TrueType bytecode for this font.</p>
+</td></tr>
+<tr><td class="val" id="maxStackElements">maxStackElements</td><td class="desc">
+<p>The maximum number of stack elements used during bytecode interpretation.</p>
+</td></tr>
+<tr><td class="val" id="maxSizeOfInstructions">maxSizeOfInstructions</td><td class="desc">
+<p>The maximum number of TrueType opcodes used for glyph hinting.</p>
+</td></tr>
+<tr><td class="val" id="maxComponentElements">maxComponentElements</td><td class="desc">
+<p>The maximum number of simple (i.e., non- composite) glyphs in a composite glyph.</p>
+</td></tr>
+<tr><td class="val" id="maxComponentDepth">maxComponentDepth</td><td class="desc">
+<p>The maximum nesting depth of composite glyphs.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>This structure is only used during font loading.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Sfnt_Tag">FT_Sfnt_Tag</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Sfnt_Tag_
+  {
+    <a href="ft2-truetype_tables.html#FT_SFNT_HEAD">FT_SFNT_HEAD</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_MAXP">FT_SFNT_MAXP</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_OS2">FT_SFNT_OS2</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_HHEA">FT_SFNT_HHEA</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_VHEA">FT_SFNT_VHEA</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_POST">FT_SFNT_POST</a>,
+    <a href="ft2-truetype_tables.html#FT_SFNT_PCLT">FT_SFNT_PCLT</a>,
+
+    FT_SFNT_MAX
+
+  } <b>FT_Sfnt_Tag</b>;
+
+  /* these constants are deprecated; use the corresponding `<b>FT_Sfnt_Tag</b>' */
+  /* values instead                                                      */
+#define ft_sfnt_head  <a href="ft2-truetype_tables.html#FT_SFNT_HEAD">FT_SFNT_HEAD</a>
+#define ft_sfnt_maxp  <a href="ft2-truetype_tables.html#FT_SFNT_MAXP">FT_SFNT_MAXP</a>
+#define ft_sfnt_os2   <a href="ft2-truetype_tables.html#FT_SFNT_OS2">FT_SFNT_OS2</a>
+#define ft_sfnt_hhea  <a href="ft2-truetype_tables.html#FT_SFNT_HHEA">FT_SFNT_HHEA</a>
+#define ft_sfnt_vhea  <a href="ft2-truetype_tables.html#FT_SFNT_VHEA">FT_SFNT_VHEA</a>
+#define ft_sfnt_post  <a href="ft2-truetype_tables.html#FT_SFNT_POST">FT_SFNT_POST</a>
+#define ft_sfnt_pclt  <a href="ft2-truetype_tables.html#FT_SFNT_PCLT">FT_SFNT_PCLT</a>
+</pre>
+
+<p>An enumeration to specify indices of SFNT tables loaded and parsed by FreeType during initialization of an SFNT font. Used in the <a href="ft2-truetype_tables.html#FT_Get_Sfnt_Table">FT_Get_Sfnt_Table</a> API function.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_SFNT_HEAD">FT_SFNT_HEAD</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_Header">TT_Header</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_MAXP">FT_SFNT_MAXP</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_MaxProfile">TT_MaxProfile</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_OS2">FT_SFNT_OS2</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_OS2">TT_OS2</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_HHEA">FT_SFNT_HHEA</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_HoriHeader">TT_HoriHeader</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_VHEA">FT_SFNT_VHEA</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_POST">FT_SFNT_POST</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_Postscript">TT_Postscript</a> structure.</p>
+</td></tr>
+<tr><td class="val" id="FT_SFNT_PCLT">FT_SFNT_PCLT</td><td class="desc">
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_PCLT">TT_PCLT</a> structure.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_Sfnt_Table">FT_Get_Sfnt_Table</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span>* )
+  <b>FT_Get_Sfnt_Table</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face,
+                     <a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_Sfnt_Tag</a>  tag );
+</pre>
+
+<p>Return a pointer to a given SFNT table stored within a face.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source.</p>
+</td></tr>
+<tr><td class="val" id="tag">tag</td><td class="desc">
+<p>The index of the SFNT table.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>A type-less pointer to the table. This will be NULL in case of error, or if the corresponding table was not found <b>OR</b> loaded from the file.</p>
+<p>Use a typecast according to &lsquo;tag&rsquo; to access the structure elements.</p>
+
+<h4>note</h4>
+<p>The table is owned by the face object and disappears with it.</p>
+<p>This function is only useful to access SFNT tables that are loaded by the sfnt, truetype, and opentype drivers. See <a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_Sfnt_Tag</a> for a list.</p>
+<p>Here an example how to access the &lsquo;vhea&rsquo; table:</p>
+<pre class="colored">
+  TT_VertHeader*  vert_header;
+
+
+  vert_header =
+    (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA );
+</pre>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Load_Sfnt_Table">FT_Load_Sfnt_Table</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Load_Sfnt_Table</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   tag,
+                      <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    offset,
+                      <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>*   buffer,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>*  length );
+</pre>
+
+<p>Load any SFNT font table into client memory.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="tag">tag</td><td class="desc">
+<p>The four-byte tag of the table to load. Use value&nbsp;0 if you want to access the whole font file. Otherwise, you can use one of the definitions found in the <a href="ft2-header_file_macros.html#FT_TRUETYPE_TAGS_H">FT_TRUETYPE_TAGS_H</a> file, or forge a new one with <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>.</p>
+</td></tr>
+<tr><td class="val" id="offset">offset</td><td class="desc">
+<p>The starting offset in the table (or file if tag&nbsp;==&nbsp;0).</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="buffer">buffer</td><td class="desc">
+<p>The target buffer address. The client must ensure that the memory array is big enough to hold the data.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="length">length</td><td class="desc">
+<p>If the &lsquo;length&rsquo; parameter is NULL, try to load the whole table. Return an error code if it fails.</p>
+<p>Else, if &lsquo;*length&rsquo; is&nbsp;0, exit immediately while returning the table's (or file) full size in it.</p>
+<p>Else the number of bytes to read from the table or file, from the starting offset.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>If you need to determine the table's length you should first call this function with &lsquo;*length&rsquo; set to&nbsp;0, as in the following example:</p>
+<pre class="colored">
+  FT_ULong  length = 0;
+
+
+  error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &amp;length );
+  if ( error ) { ... table does not exist ... }
+
+  buffer = malloc( length );
+  if ( buffer == NULL ) { ... not enough memory ... }
+
+  error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &amp;length );
+  if ( error ) { ... could not load table ... }
+</pre>
+<p>Note that structures like <a href="ft2-truetype_tables.html#TT_Header">TT_Header</a> or <a href="ft2-truetype_tables.html#TT_OS2">TT_OS2</a> can't be used with this function; they are limited to <a href="ft2-truetype_tables.html#FT_Get_Sfnt_Table">FT_Get_Sfnt_Table</a>. Reason is that those structures depend on the processor architecture, with varying size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian).</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Sfnt_Table_Info">FT_Sfnt_Table_Info</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Sfnt_Table_Info</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>    face,
+                      <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>    table_index,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  *tag,
+                      <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>  *length );
+</pre>
+
+<p>Return information on an SFNT table.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face.</p>
+</td></tr>
+<tr><td class="val" id="table_index">table_index</td><td class="desc">
+<p>The index of an SFNT table. The function returns FT_Err_Table_Missing for an invalid value.</p>
+</td></tr>
+</table>
+
+<h4>inout</h4>
+<table class="fields">
+<tr><td class="val" id="tag">tag</td><td class="desc">
+<p>The name tag of the SFNT table. If the value is NULL, &lsquo;table_index&rsquo; is ignored, and &lsquo;length&rsquo; returns the number of SFNT tables in the font.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="length">length</td><td class="desc">
+<p>The length of the SFNT table (or the number of SFNT tables, depending on &lsquo;tag&rsquo;).</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>While parsing fonts, FreeType handles SFNT tables with length zero as missing.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a> )
+  <b>FT_Get_CMap_Language_ID</b>( <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>  charmap );
+</pre>
+
+<p>Return cmap language ID as specified in the OpenType standard. Definitions of language ID values are in file <a href="ft2-header_file_macros.html#FT_TRUETYPE_IDS_H">FT_TRUETYPE_IDS_H</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="charmap">charmap</td><td class="desc">
+<p>The target charmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The language ID of &lsquo;charmap&rsquo;. If &lsquo;charmap&rsquo; doesn't belong to an SFNT face, just return&nbsp;0 as the default value.</p>
+<p>For a format&nbsp;14 cmap (to access Unicode IVS), the return value is 0xFFFFFFFF.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_CMap_Format">FT_Get_CMap_Format</h3>
+<p>Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Long">FT_Long</a> )
+  <b>FT_Get_CMap_Format</b>( <a href="ft2-base_interface.html#FT_CharMap">FT_CharMap</a>  charmap );
+</pre>
+
+<p>Return the format of an SFNT &lsquo;cmap&rsquo; table.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="charmap">charmap</td><td class="desc">
+<p>The target charmap.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The format of &lsquo;charmap&rsquo;. If &lsquo;charmap&rsquo; doesn't belong to an SFNT face, return -1.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_PARAM_TAG_UNPATENTED_HINTING">FT_PARAM_TAG_UNPATENTED_HINTING</h3>
+<pre>
+#define <b>FT_PARAM_TAG_UNPATENTED_HINTING</b> \
+          <a href="ft2-basic_types.html#FT_MAKE_TAG">FT_MAKE_TAG</a>( 'u', 'n', 'p', 'a' )
+</pre>
+
+<p>Deprecated, no effect.</p>
+<p>Previously: A constant used as the tag of an <a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> structure to indicate that unpatented methods only should be used by the TrueType bytecode interpreter for a typeface opened by <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_PLATFORM_XXX">TT_PLATFORM_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_APPLE_UNICODE">TT_PLATFORM_APPLE_UNICODE</a>  0
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_MACINTOSH">TT_PLATFORM_MACINTOSH</a>      1
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_ISO">TT_PLATFORM_ISO</a>            2 /* deprecated */
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_MICROSOFT">TT_PLATFORM_MICROSOFT</a>      3
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_CUSTOM">TT_PLATFORM_CUSTOM</a>         4
+#define <a href="ft2-truetype_tables.html#TT_PLATFORM_ADOBE">TT_PLATFORM_ADOBE</a>          7 /* artificial */
+</pre>
+
+<p>A list of valid values for the &lsquo;platform_id&rsquo; identifier code in <a href="ft2-base_interface.html#FT_CharMapRec">FT_CharMapRec</a> and <a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a> structures.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_PLATFORM_APPLE_UNICODE">TT_PLATFORM_APPLE_UNICODE</td><td class="desc">
+<p>Used by Apple to indicate a Unicode character map and/or name entry. See <a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</a> for corresponding &lsquo;encoding_id&rsquo; values. Note that name entries in this format are coded as big-endian UCS-2 character codes <i>only</i>.</p>
+</td></tr>
+<tr><td class="val" id="TT_PLATFORM_MACINTOSH">TT_PLATFORM_MACINTOSH</td><td class="desc">
+<p>Used by Apple to indicate a MacOS-specific charmap and/or name entry. See <a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a> for corresponding &lsquo;encoding_id&rsquo; values. Note that most TrueType fonts contain an Apple roman charmap to be usable on MacOS systems (even if they contain a Microsoft charmap as well).</p>
+</td></tr>
+<tr><td class="val" id="TT_PLATFORM_ISO">TT_PLATFORM_ISO</td><td class="desc">
+<p>This value was used to specify ISO/IEC 10646 charmaps. It is however now deprecated. See <a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a> for a list of corresponding &lsquo;encoding_id&rsquo; values.</p>
+</td></tr>
+<tr><td class="val" id="TT_PLATFORM_MICROSOFT">TT_PLATFORM_MICROSOFT</td><td class="desc">
+<p>Used by Microsoft to indicate Windows-specific charmaps. See <a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a> for a list of corresponding &lsquo;encoding_id&rsquo; values. Note that most fonts contain a Unicode charmap using (TT_PLATFORM_MICROSOFT, <a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UNICODE_CS</a>).</p>
+</td></tr>
+<tr><td class="val" id="TT_PLATFORM_CUSTOM">TT_PLATFORM_CUSTOM</td><td class="desc">
+<p>Used to indicate application-specific charmaps.</p>
+</td></tr>
+<tr><td class="val" id="TT_PLATFORM_ADOBE">TT_PLATFORM_ADOBE</td><td class="desc">
+<p>This value isn't part of any font format specification, but is used by FreeType to report Adobe-specific charmaps in an <a href="ft2-base_interface.html#FT_CharMapRec">FT_CharMapRec</a> structure. See <a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</a>.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_DEFAULT">TT_APPLE_ID_DEFAULT</a>           0 /* Unicode 1.0                   */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_UNICODE_1_1">TT_APPLE_ID_UNICODE_1_1</a>       1 /* specify Hangul at U+34xx      */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_ISO_10646">TT_APPLE_ID_ISO_10646</a>         2 /* deprecated                    */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_UNICODE_2_0">TT_APPLE_ID_UNICODE_2_0</a>       3 /* or later                      */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_UNICODE_32">TT_APPLE_ID_UNICODE_32</a>        4 /* 2.0 or later, full repertoire */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_VARIANT_SELECTOR">TT_APPLE_ID_VARIANT_SELECTOR</a>  5 /* variation selector data       */
+#define <a href="ft2-truetype_tables.html#TT_APPLE_ID_FULL_UNICODE">TT_APPLE_ID_FULL_UNICODE</a>      6 /* used with type 13 cmaps       */
+</pre>
+
+<p>A list of valid values for the &lsquo;encoding_id&rsquo; for <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_APPLE_UNICODE</a> charmaps and name entries.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_APPLE_ID_DEFAULT">TT_APPLE_ID_DEFAULT</td><td class="desc">
+<p>Unicode version 1.0.</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_UNICODE_1_1">TT_APPLE_ID_UNICODE_1_1</td><td class="desc">
+<p>Unicode 1.1; specifies Hangul characters starting at U+34xx.</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_ISO_10646">TT_APPLE_ID_ISO_10646</td><td class="desc">
+<p>Deprecated (identical to preceding).</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_UNICODE_2_0">TT_APPLE_ID_UNICODE_2_0</td><td class="desc">
+<p>Unicode 2.0 and beyond (UTF-16 BMP only).</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_UNICODE_32">TT_APPLE_ID_UNICODE_32</td><td class="desc">
+<p>Unicode 3.1 and beyond, using UTF-32.</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_VARIANT_SELECTOR">TT_APPLE_ID_VARIANT_SELECTOR</td><td class="desc">
+<p>From Adobe, not Apple. Not a normal cmap. Specifies variations on a real cmap.</p>
+</td></tr>
+<tr><td class="val" id="TT_APPLE_ID_FULL_UNICODE">TT_APPLE_ID_FULL_UNICODE</td><td class="desc">
+<p>Used for fallback fonts that provide complete Unicode coverage with a type&nbsp;13 cmap.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_MAC_ID_XXX">TT_MAC_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define TT_MAC_ID_ROMAN                 0
+#define TT_MAC_ID_JAPANESE              1
+#define TT_MAC_ID_TRADITIONAL_CHINESE   2
+#define TT_MAC_ID_KOREAN                3
+#define TT_MAC_ID_ARABIC                4
+#define TT_MAC_ID_HEBREW                5
+#define TT_MAC_ID_GREEK                 6
+#define TT_MAC_ID_RUSSIAN               7
+#define TT_MAC_ID_RSYMBOL               8
+#define TT_MAC_ID_DEVANAGARI            9
+#define TT_MAC_ID_GURMUKHI             10
+#define TT_MAC_ID_GUJARATI             11
+#define TT_MAC_ID_ORIYA                12
+#define TT_MAC_ID_BENGALI              13
+#define TT_MAC_ID_TAMIL                14
+#define TT_MAC_ID_TELUGU               15
+#define TT_MAC_ID_KANNADA              16
+#define TT_MAC_ID_MALAYALAM            17
+#define TT_MAC_ID_SINHALESE            18
+#define TT_MAC_ID_BURMESE              19
+#define TT_MAC_ID_KHMER                20
+#define TT_MAC_ID_THAI                 21
+#define TT_MAC_ID_LAOTIAN              22
+#define TT_MAC_ID_GEORGIAN             23
+#define TT_MAC_ID_ARMENIAN             24
+#define TT_MAC_ID_MALDIVIAN            25
+#define TT_MAC_ID_SIMPLIFIED_CHINESE   25
+#define TT_MAC_ID_TIBETAN              26
+#define TT_MAC_ID_MONGOLIAN            27
+#define TT_MAC_ID_GEEZ                 28
+#define TT_MAC_ID_SLAVIC               29
+#define TT_MAC_ID_VIETNAMESE           30
+#define TT_MAC_ID_SINDHI               31
+#define TT_MAC_ID_UNINTERP             32
+</pre>
+
+<p>A list of valid values for the &lsquo;encoding_id&rsquo; for <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a> charmaps and name entries.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_ISO_ID_XXX">TT_ISO_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define <a href="ft2-truetype_tables.html#TT_ISO_ID_7BIT_ASCII">TT_ISO_ID_7BIT_ASCII</a>  0
+#define <a href="ft2-truetype_tables.html#TT_ISO_ID_10646">TT_ISO_ID_10646</a>       1
+#define <a href="ft2-truetype_tables.html#TT_ISO_ID_8859_1">TT_ISO_ID_8859_1</a>      2
+</pre>
+
+<p>A list of valid values for the &lsquo;encoding_id&rsquo; for <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ISO</a> charmaps and name entries.</p>
+<p>Their use is now deprecated.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_ISO_ID_7BIT_ASCII">TT_ISO_ID_7BIT_ASCII</td><td class="desc">
+<p>ASCII.</p>
+</td></tr>
+<tr><td class="val" id="TT_ISO_ID_10646">TT_ISO_ID_10646</td><td class="desc">
+<p>ISO/10646.</p>
+</td></tr>
+<tr><td class="val" id="TT_ISO_ID_8859_1">TT_ISO_ID_8859_1</td><td class="desc">
+<p>Also known as Latin-1.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_MS_ID_XXX">TT_MS_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_SYMBOL_CS">TT_MS_ID_SYMBOL_CS</a>    0
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_UNICODE_CS">TT_MS_ID_UNICODE_CS</a>   1
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_SJIS">TT_MS_ID_SJIS</a>         2
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_PRC">TT_MS_ID_PRC</a>          3
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_BIG_5">TT_MS_ID_BIG_5</a>        4
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_WANSUNG">TT_MS_ID_WANSUNG</a>      5
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_JOHAB">TT_MS_ID_JOHAB</a>        6
+#define <a href="ft2-truetype_tables.html#TT_MS_ID_UCS_4">TT_MS_ID_UCS_4</a>       10
+
+  /* this value is deprecated */
+#define TT_MS_ID_GB2312  <a href="ft2-truetype_tables.html#TT_MS_ID_PRC">TT_MS_ID_PRC</a>
+</pre>
+
+<p>A list of valid values for the &lsquo;encoding_id&rsquo; for <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MICROSOFT</a> charmaps and name entries.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_MS_ID_SYMBOL_CS">TT_MS_ID_SYMBOL_CS</td><td class="desc">
+<p>Microsoft symbol encoding. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_MS_SYMBOL</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_UNICODE_CS">TT_MS_ID_UNICODE_CS</td><td class="desc">
+<p>Microsoft WGL4 charmap, matching Unicode. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_UNICODE</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_SJIS">TT_MS_ID_SJIS</td><td class="desc">
+<p>Shift JIS Japanese encoding. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_SJIS</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_PRC">TT_MS_ID_PRC</td><td class="desc">
+<p>Chinese encodings as used in the People's Republic of China (PRC). This means the encodings GB&nbsp;2312 and its supersets GBK and GB&nbsp;18030. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_PRC</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_BIG_5">TT_MS_ID_BIG_5</td><td class="desc">
+<p>Traditional Chinese as used in Taiwan and Hong Kong. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_BIG5</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_WANSUNG">TT_MS_ID_WANSUNG</td><td class="desc">
+<p>Korean Extended Wansung encoding. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_WANSUNG</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_JOHAB">TT_MS_ID_JOHAB</td><td class="desc">
+<p>Korean Johab encoding. See <a href="ft2-base_interface.html#FT_Encoding">FT_ENCODING_JOHAB</a>.</p>
+</td></tr>
+<tr><td class="val" id="TT_MS_ID_UCS_4">TT_MS_ID_UCS_4</td><td class="desc">
+<p>UCS-4 or UTF-32 charmaps. This has been added to the OpenType specification version 1.4 (mid-2001).</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define <a href="ft2-truetype_tables.html#TT_ADOBE_ID_STANDARD">TT_ADOBE_ID_STANDARD</a>  0
+#define <a href="ft2-truetype_tables.html#TT_ADOBE_ID_EXPERT">TT_ADOBE_ID_EXPERT</a>    1
+#define <a href="ft2-truetype_tables.html#TT_ADOBE_ID_CUSTOM">TT_ADOBE_ID_CUSTOM</a>    2
+#define <a href="ft2-truetype_tables.html#TT_ADOBE_ID_LATIN_1">TT_ADOBE_ID_LATIN_1</a>   3
+</pre>
+
+<p>A list of valid values for the &lsquo;encoding_id&rsquo; for <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ADOBE</a> charmaps. This is a FreeType-specific extension!</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="TT_ADOBE_ID_STANDARD">TT_ADOBE_ID_STANDARD</td><td class="desc">
+<p>Adobe standard encoding.</p>
+</td></tr>
+<tr><td class="val" id="TT_ADOBE_ID_EXPERT">TT_ADOBE_ID_EXPERT</td><td class="desc">
+<p>Adobe expert encoding.</p>
+</td></tr>
+<tr><td class="val" id="TT_ADOBE_ID_CUSTOM">TT_ADOBE_ID_CUSTOM</td><td class="desc">
+<p>Adobe custom encoding.</p>
+</td></tr>
+<tr><td class="val" id="TT_ADOBE_ID_LATIN_1">TT_ADOBE_ID_LATIN_1</td><td class="desc">
+<p>Adobe Latin&nbsp;1 encoding.</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_MAC_LANGID_XXX">TT_MAC_LANGID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define TT_MAC_LANGID_ENGLISH                       0
+#define TT_MAC_LANGID_FRENCH                        1
+#define TT_MAC_LANGID_GERMAN                        2
+#define TT_MAC_LANGID_ITALIAN                       3
+#define TT_MAC_LANGID_DUTCH                         4
+#define TT_MAC_LANGID_SWEDISH                       5
+#define TT_MAC_LANGID_SPANISH                       6
+#define TT_MAC_LANGID_DANISH                        7
+#define TT_MAC_LANGID_PORTUGUESE                    8
+#define TT_MAC_LANGID_NORWEGIAN                     9
+#define TT_MAC_LANGID_HEBREW                       10
+#define TT_MAC_LANGID_JAPANESE                     11
+#define TT_MAC_LANGID_ARABIC                       12
+#define TT_MAC_LANGID_FINNISH                      13
+#define TT_MAC_LANGID_GREEK                        14
+#define TT_MAC_LANGID_ICELANDIC                    15
+#define TT_MAC_LANGID_MALTESE                      16
+#define TT_MAC_LANGID_TURKISH                      17
+#define TT_MAC_LANGID_CROATIAN                     18
+#define TT_MAC_LANGID_CHINESE_TRADITIONAL          19
+#define TT_MAC_LANGID_URDU                         20
+#define TT_MAC_LANGID_HINDI                        21
+#define TT_MAC_LANGID_THAI                         22
+#define TT_MAC_LANGID_KOREAN                       23
+#define TT_MAC_LANGID_LITHUANIAN                   24
+#define TT_MAC_LANGID_POLISH                       25
+#define TT_MAC_LANGID_HUNGARIAN                    26
+#define TT_MAC_LANGID_ESTONIAN                     27
+#define TT_MAC_LANGID_LETTISH                      28
+#define TT_MAC_LANGID_SAAMISK                      29
+#define TT_MAC_LANGID_FAEROESE                     30
+#define TT_MAC_LANGID_FARSI                        31
+#define TT_MAC_LANGID_RUSSIAN                      32
+#define TT_MAC_LANGID_CHINESE_SIMPLIFIED           33
+#define TT_MAC_LANGID_FLEMISH                      34
+#define TT_MAC_LANGID_IRISH                        35
+#define TT_MAC_LANGID_ALBANIAN                     36
+#define TT_MAC_LANGID_ROMANIAN                     37
+#define TT_MAC_LANGID_CZECH                        38
+#define TT_MAC_LANGID_SLOVAK                       39
+#define TT_MAC_LANGID_SLOVENIAN                    40
+#define TT_MAC_LANGID_YIDDISH                      41
+#define TT_MAC_LANGID_SERBIAN                      42
+#define TT_MAC_LANGID_MACEDONIAN                   43
+#define TT_MAC_LANGID_BULGARIAN                    44
+#define TT_MAC_LANGID_UKRAINIAN                    45
+#define TT_MAC_LANGID_BYELORUSSIAN                 46
+#define TT_MAC_LANGID_UZBEK                        47
+#define TT_MAC_LANGID_KAZAKH                       48
+#define TT_MAC_LANGID_AZERBAIJANI                  49
+#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT  49
+#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT    50
+#define TT_MAC_LANGID_ARMENIAN                     51
+#define TT_MAC_LANGID_GEORGIAN                     52
+#define TT_MAC_LANGID_MOLDAVIAN                    53
+#define TT_MAC_LANGID_KIRGHIZ                      54
+#define TT_MAC_LANGID_TAJIKI                       55
+#define TT_MAC_LANGID_TURKMEN                      56
+#define TT_MAC_LANGID_MONGOLIAN                    57
+#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT   57
+#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT    58
+#define TT_MAC_LANGID_PASHTO                       59
+#define TT_MAC_LANGID_KURDISH                      60
+#define TT_MAC_LANGID_KASHMIRI                     61
+#define TT_MAC_LANGID_SINDHI                       62
+#define TT_MAC_LANGID_TIBETAN                      63
+#define TT_MAC_LANGID_NEPALI                       64
+#define TT_MAC_LANGID_SANSKRIT                     65
+#define TT_MAC_LANGID_MARATHI                      66
+#define TT_MAC_LANGID_BENGALI                      67
+#define TT_MAC_LANGID_ASSAMESE                     68
+#define TT_MAC_LANGID_GUJARATI                     69
+#define TT_MAC_LANGID_PUNJABI                      70
+#define TT_MAC_LANGID_ORIYA                        71
+#define TT_MAC_LANGID_MALAYALAM                    72
+#define TT_MAC_LANGID_KANNADA                      73
+#define TT_MAC_LANGID_TAMIL                        74
+#define TT_MAC_LANGID_TELUGU                       75
+#define TT_MAC_LANGID_SINHALESE                    76
+#define TT_MAC_LANGID_BURMESE                      77
+#define TT_MAC_LANGID_KHMER                        78
+#define TT_MAC_LANGID_LAO                          79
+#define TT_MAC_LANGID_VIETNAMESE                   80
+#define TT_MAC_LANGID_INDONESIAN                   81
+#define TT_MAC_LANGID_TAGALOG                      82
+#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT           83
+#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT          84
+#define TT_MAC_LANGID_AMHARIC                      85
+#define TT_MAC_LANGID_TIGRINYA                     86
+#define TT_MAC_LANGID_GALLA                        87
+#define TT_MAC_LANGID_SOMALI                       88
+#define TT_MAC_LANGID_SWAHILI                      89
+#define TT_MAC_LANGID_RUANDA                       90
+#define TT_MAC_LANGID_RUNDI                        91
+#define TT_MAC_LANGID_CHEWA                        92
+#define TT_MAC_LANGID_MALAGASY                     93
+#define TT_MAC_LANGID_ESPERANTO                    94
+#define TT_MAC_LANGID_WELSH                       128
+#define TT_MAC_LANGID_BASQUE                      129
+#define TT_MAC_LANGID_CATALAN                     130
+#define TT_MAC_LANGID_LATIN                       131
+#define TT_MAC_LANGID_QUECHUA                     132
+#define TT_MAC_LANGID_GUARANI                     133
+#define TT_MAC_LANGID_AYMARA                      134
+#define TT_MAC_LANGID_TATAR                       135
+#define TT_MAC_LANGID_UIGHUR                      136
+#define TT_MAC_LANGID_DZONGKHA                    137
+#define TT_MAC_LANGID_JAVANESE                    138
+#define TT_MAC_LANGID_SUNDANESE                   139
+
+  /* The following codes are new as of 2000-03-10 */
+#define TT_MAC_LANGID_GALICIAN                    140
+#define TT_MAC_LANGID_AFRIKAANS                   141
+#define TT_MAC_LANGID_BRETON                      142
+#define TT_MAC_LANGID_INUKTITUT                   143
+#define TT_MAC_LANGID_SCOTTISH_GAELIC             144
+#define TT_MAC_LANGID_MANX_GAELIC                 145
+#define TT_MAC_LANGID_IRISH_GAELIC                146
+#define TT_MAC_LANGID_TONGAN                      147
+#define TT_MAC_LANGID_GREEK_POLYTONIC             148
+#define TT_MAC_LANGID_GREELANDIC                  149
+#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT    150
+</pre>
+
+<p>Possible values of the language identifier field in the name records of the SFNT &lsquo;name&rsquo; table if the &lsquo;platform&rsquo; identifier code is <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a>. These values are also used as return values for function <a href="ft2-truetype_tables.html#FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</a>.</p>
+<p>The canonical source for Apple's IDs is</p>
+<p><a href="https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html">https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html</a></p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_MS_LANGID_XXX">TT_MS_LANGID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA               0x0401
+#define TT_MS_LANGID_ARABIC_IRAQ                       0x0801
+#define TT_MS_LANGID_ARABIC_EGYPT                      0x0C01
+#define TT_MS_LANGID_ARABIC_LIBYA                      0x1001
+#define TT_MS_LANGID_ARABIC_ALGERIA                    0x1401
+#define TT_MS_LANGID_ARABIC_MOROCCO                    0x1801
+#define TT_MS_LANGID_ARABIC_TUNISIA                    0x1C01
+#define TT_MS_LANGID_ARABIC_OMAN                       0x2001
+#define TT_MS_LANGID_ARABIC_YEMEN                      0x2401
+#define TT_MS_LANGID_ARABIC_SYRIA                      0x2801
+#define TT_MS_LANGID_ARABIC_JORDAN                     0x2C01
+#define TT_MS_LANGID_ARABIC_LEBANON                    0x3001
+#define TT_MS_LANGID_ARABIC_KUWAIT                     0x3401
+#define TT_MS_LANGID_ARABIC_UAE                        0x3801
+#define TT_MS_LANGID_ARABIC_BAHRAIN                    0x3C01
+#define TT_MS_LANGID_ARABIC_QATAR                      0x4001
+#define TT_MS_LANGID_BULGARIAN_BULGARIA                0x0402
+#define TT_MS_LANGID_CATALAN_CATALAN                   0x0403
+#define TT_MS_LANGID_CHINESE_TAIWAN                    0x0404
+#define TT_MS_LANGID_CHINESE_PRC                       0x0804
+#define TT_MS_LANGID_CHINESE_HONG_KONG                 0x0C04
+#define TT_MS_LANGID_CHINESE_SINGAPORE                 0x1004
+#define TT_MS_LANGID_CHINESE_MACAO                     0x1404
+#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC              0x0405
+#define TT_MS_LANGID_DANISH_DENMARK                    0x0406
+#define TT_MS_LANGID_GERMAN_GERMANY                    0x0407
+#define TT_MS_LANGID_GERMAN_SWITZERLAND                0x0807
+#define TT_MS_LANGID_GERMAN_AUSTRIA                    0x0C07
+#define TT_MS_LANGID_GERMAN_LUXEMBOURG                 0x1007
+#define TT_MS_LANGID_GERMAN_LIECHTENSTEIN              0x1407
+#define TT_MS_LANGID_GREEK_GREECE                      0x0408
+#define TT_MS_LANGID_ENGLISH_UNITED_STATES             0x0409
+#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM            0x0809
+#define TT_MS_LANGID_ENGLISH_AUSTRALIA                 0x0C09
+#define TT_MS_LANGID_ENGLISH_CANADA                    0x1009
+#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND               0x1409
+#define TT_MS_LANGID_ENGLISH_IRELAND                   0x1809
+#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA              0x1C09
+#define TT_MS_LANGID_ENGLISH_JAMAICA                   0x2009
+#define TT_MS_LANGID_ENGLISH_CARIBBEAN                 0x2409
+#define TT_MS_LANGID_ENGLISH_BELIZE                    0x2809
+#define TT_MS_LANGID_ENGLISH_TRINIDAD                  0x2C09
+#define TT_MS_LANGID_ENGLISH_ZIMBABWE                  0x3009
+#define TT_MS_LANGID_ENGLISH_PHILIPPINES               0x3409
+#define TT_MS_LANGID_ENGLISH_INDIA                     0x4009
+#define TT_MS_LANGID_ENGLISH_MALAYSIA                  0x4409
+#define TT_MS_LANGID_ENGLISH_SINGAPORE                 0x4809
+#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT    0x040A
+#define TT_MS_LANGID_SPANISH_MEXICO                    0x080A
+#define TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT         0x0C0A
+#define TT_MS_LANGID_SPANISH_GUATEMALA                 0x100A
+#define TT_MS_LANGID_SPANISH_COSTA_RICA                0x140A
+#define TT_MS_LANGID_SPANISH_PANAMA                    0x180A
+#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC        0x1C0A
+#define TT_MS_LANGID_SPANISH_VENEZUELA                 0x200A
+#define TT_MS_LANGID_SPANISH_COLOMBIA                  0x240A
+#define TT_MS_LANGID_SPANISH_PERU                      0x280A
+#define TT_MS_LANGID_SPANISH_ARGENTINA                 0x2C0A
+#define TT_MS_LANGID_SPANISH_ECUADOR                   0x300A
+#define TT_MS_LANGID_SPANISH_CHILE                     0x340A
+#define TT_MS_LANGID_SPANISH_URUGUAY                   0x380A
+#define TT_MS_LANGID_SPANISH_PARAGUAY                  0x3C0A
+#define TT_MS_LANGID_SPANISH_BOLIVIA                   0x400A
+#define TT_MS_LANGID_SPANISH_EL_SALVADOR               0x440A
+#define TT_MS_LANGID_SPANISH_HONDURAS                  0x480A
+#define TT_MS_LANGID_SPANISH_NICARAGUA                 0x4C0A
+#define TT_MS_LANGID_SPANISH_PUERTO_RICO               0x500A
+#define TT_MS_LANGID_SPANISH_UNITED_STATES             0x540A
+#define TT_MS_LANGID_FINNISH_FINLAND                   0x040B
+#define TT_MS_LANGID_FRENCH_FRANCE                     0x040C
+#define TT_MS_LANGID_FRENCH_BELGIUM                    0x080C
+#define TT_MS_LANGID_FRENCH_CANADA                     0x0C0C
+#define TT_MS_LANGID_FRENCH_SWITZERLAND                0x100C
+#define TT_MS_LANGID_FRENCH_LUXEMBOURG                 0x140C
+#define TT_MS_LANGID_FRENCH_MONACO                     0x180C
+#define TT_MS_LANGID_HEBREW_ISRAEL                     0x040D
+#define TT_MS_LANGID_HUNGARIAN_HUNGARY                 0x040E
+#define TT_MS_LANGID_ICELANDIC_ICELAND                 0x040F
+#define TT_MS_LANGID_ITALIAN_ITALY                     0x0410
+#define TT_MS_LANGID_ITALIAN_SWITZERLAND               0x0810
+#define TT_MS_LANGID_JAPANESE_JAPAN                    0x0411
+#define TT_MS_LANGID_KOREAN_KOREA                      0x0412
+#define TT_MS_LANGID_DUTCH_NETHERLANDS                 0x0413
+#define TT_MS_LANGID_DUTCH_BELGIUM                     0x0813
+#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL           0x0414
+#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK          0x0814
+#define TT_MS_LANGID_POLISH_POLAND                     0x0415
+#define TT_MS_LANGID_PORTUGUESE_BRAZIL                 0x0416
+#define TT_MS_LANGID_PORTUGUESE_PORTUGAL               0x0816
+#define TT_MS_LANGID_ROMANSH_SWITZERLAND               0x0417
+#define TT_MS_LANGID_ROMANIAN_ROMANIA                  0x0418
+#define TT_MS_LANGID_RUSSIAN_RUSSIA                    0x0419
+#define TT_MS_LANGID_CROATIAN_CROATIA                  0x041A
+#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN              0x081A
+#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC           0x0C1A
+#define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA       0x101A
+#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA        0x141A
+#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN         0x181A
+#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC      0x1C1A
+#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC      0x201A
+#define TT_MS_LANGID_SLOVAK_SLOVAKIA                   0x041B
+#define TT_MS_LANGID_ALBANIAN_ALBANIA                  0x041C
+#define TT_MS_LANGID_SWEDISH_SWEDEN                    0x041D
+#define TT_MS_LANGID_SWEDISH_FINLAND                   0x081D
+#define TT_MS_LANGID_THAI_THAILAND                     0x041E
+#define TT_MS_LANGID_TURKISH_TURKEY                    0x041F
+#define TT_MS_LANGID_URDU_PAKISTAN                     0x0420
+#define TT_MS_LANGID_INDONESIAN_INDONESIA              0x0421
+#define TT_MS_LANGID_UKRAINIAN_UKRAINE                 0x0422
+#define TT_MS_LANGID_BELARUSIAN_BELARUS                0x0423
+#define TT_MS_LANGID_SLOVENIAN_SLOVENIA                0x0424
+#define TT_MS_LANGID_ESTONIAN_ESTONIA                  0x0425
+#define TT_MS_LANGID_LATVIAN_LATVIA                    0x0426
+#define TT_MS_LANGID_LITHUANIAN_LITHUANIA              0x0427
+#define TT_MS_LANGID_TAJIK_TAJIKISTAN                  0x0428
+#define TT_MS_LANGID_VIETNAMESE_VIET_NAM               0x042A
+#define TT_MS_LANGID_ARMENIAN_ARMENIA                  0x042B
+#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN            0x042C
+#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC         0x082C
+#define TT_MS_LANGID_BASQUE_BASQUE                     0x042D
+#define TT_MS_LANGID_UPPER_SORBIAN_GERMANY             0x042E
+#define TT_MS_LANGID_LOWER_SORBIAN_GERMANY             0x082E
+#define TT_MS_LANGID_MACEDONIAN_MACEDONIA              0x042F
+#define TT_MS_LANGID_SETSWANA_SOUTH_AFRICA             0x0432
+#define TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA             0x0434
+#define TT_MS_LANGID_ISIZULU_SOUTH_AFRICA              0x0435
+#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA            0x0436
+#define TT_MS_LANGID_GEORGIAN_GEORGIA                  0x0437
+#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS           0x0438
+#define TT_MS_LANGID_HINDI_INDIA                       0x0439
+#define TT_MS_LANGID_MALTESE_MALTA                     0x043A
+#define TT_MS_LANGID_SAMI_NORTHERN_NORWAY              0x043B
+#define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN              0x083B
+#define TT_MS_LANGID_SAMI_NORTHERN_FINLAND             0x0C3B
+#define TT_MS_LANGID_SAMI_LULE_NORWAY                  0x103B
+#define TT_MS_LANGID_SAMI_LULE_SWEDEN                  0x143B
+#define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY              0x183B
+#define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN              0x1C3B
+#define TT_MS_LANGID_SAMI_SKOLT_FINLAND                0x203B
+#define TT_MS_LANGID_SAMI_INARI_FINLAND                0x243B
+#define TT_MS_LANGID_IRISH_IRELAND                     0x083C
+#define TT_MS_LANGID_MALAY_MALAYSIA                    0x043E
+#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM           0x083E
+#define TT_MS_LANGID_KAZAKH_KAZAKHSTAN                 0x043F
+#define TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic*/   0x0440
+#define TT_MS_LANGID_KISWAHILI_KENYA                   0x0441
+#define TT_MS_LANGID_TURKMEN_TURKMENISTAN              0x0442
+#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN            0x0443
+#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC         0x0843
+#define TT_MS_LANGID_TATAR_RUSSIA                      0x0444
+#define TT_MS_LANGID_BENGALI_INDIA                     0x0445
+#define TT_MS_LANGID_BENGALI_BANGLADESH                0x0845
+#define TT_MS_LANGID_PUNJABI_INDIA                     0x0446
+#define TT_MS_LANGID_GUJARATI_INDIA                    0x0447
+#define TT_MS_LANGID_ODIA_INDIA                        0x0448
+#define TT_MS_LANGID_TAMIL_INDIA                       0x0449
+#define TT_MS_LANGID_TELUGU_INDIA                      0x044A
+#define TT_MS_LANGID_KANNADA_INDIA                     0x044B
+#define TT_MS_LANGID_MALAYALAM_INDIA                   0x044C
+#define TT_MS_LANGID_ASSAMESE_INDIA                    0x044D
+#define TT_MS_LANGID_MARATHI_INDIA                     0x044E
+#define TT_MS_LANGID_SANSKRIT_INDIA                    0x044F
+#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450
+#define TT_MS_LANGID_MONGOLIAN_PRC                     0x0850
+#define TT_MS_LANGID_TIBETAN_PRC                       0x0451
+#define TT_MS_LANGID_WELSH_UNITED_KINGDOM              0x0452
+#define TT_MS_LANGID_KHMER_CAMBODIA                    0x0453
+#define TT_MS_LANGID_LAO_LAOS                          0x0454
+#define TT_MS_LANGID_GALICIAN_GALICIAN                 0x0456
+#define TT_MS_LANGID_KONKANI_INDIA                     0x0457
+#define TT_MS_LANGID_SYRIAC_SYRIA                      0x045A
+#define TT_MS_LANGID_SINHALA_SRI_LANKA                 0x045B
+#define TT_MS_LANGID_INUKTITUT_CANADA                  0x045D
+#define TT_MS_LANGID_INUKTITUT_CANADA_LATIN            0x085D
+#define TT_MS_LANGID_AMHARIC_ETHIOPIA                  0x045E
+#define TT_MS_LANGID_TAMAZIGHT_ALGERIA                 0x085F
+#define TT_MS_LANGID_NEPALI_NEPAL                      0x0461
+#define TT_MS_LANGID_FRISIAN_NETHERLANDS               0x0462
+#define TT_MS_LANGID_PASHTO_AFGHANISTAN                0x0463
+#define TT_MS_LANGID_FILIPINO_PHILIPPINES              0x0464
+#define TT_MS_LANGID_DHIVEHI_MALDIVES                  0x0465
+#define TT_MS_LANGID_HAUSA_NIGERIA                     0x0468
+#define TT_MS_LANGID_YORUBA_NIGERIA                    0x046A
+#define TT_MS_LANGID_QUECHUA_BOLIVIA                   0x046B
+#define TT_MS_LANGID_QUECHUA_ECUADOR                   0x086B
+#define TT_MS_LANGID_QUECHUA_PERU                      0x0C6B
+#define TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA     0x046C
+#define TT_MS_LANGID_BASHKIR_RUSSIA                    0x046D
+#define TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG          0x046E
+#define TT_MS_LANGID_GREENLANDIC_GREENLAND             0x046F
+#define TT_MS_LANGID_IGBO_NIGERIA                      0x0470
+#define TT_MS_LANGID_YI_PRC                            0x0478
+#define TT_MS_LANGID_MAPUDUNGUN_CHILE                  0x047A
+#define TT_MS_LANGID_MOHAWK_MOHAWK                     0x047C
+#define TT_MS_LANGID_BRETON_FRANCE                     0x047E
+#define TT_MS_LANGID_UIGHUR_PRC                        0x0480
+#define TT_MS_LANGID_MAORI_NEW_ZEALAND                 0x0481
+#define TT_MS_LANGID_OCCITAN_FRANCE                    0x0482
+#define TT_MS_LANGID_CORSICAN_FRANCE                   0x0483
+#define TT_MS_LANGID_ALSATIAN_FRANCE                   0x0484
+#define TT_MS_LANGID_YAKUT_RUSSIA                      0x0485
+#define TT_MS_LANGID_KICHE_GUATEMALA                   0x0486
+#define TT_MS_LANGID_KINYARWANDA_RWANDA                0x0487
+#define TT_MS_LANGID_WOLOF_SENEGAL                     0x0488
+#define TT_MS_LANGID_DARI_AFGHANISTAN                  0x048C
+</pre>
+
+<p>Possible values of the language identifier field in the name records of the SFNT &lsquo;name&rsquo; table if the &lsquo;platform&rsquo; identifier code is <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MICROSOFT</a>. These values are also used as return values for function <a href="ft2-truetype_tables.html#FT_Get_CMap_Language_ID">FT_Get_CMap_Language_ID</a>.</p>
+<p>The canonical source for Microsoft's IDs is</p>
+<p><a href="https://www.microsoft.com/globaldev/reference/lcid-all.mspx">https://www.microsoft.com/globaldev/reference/lcid-all.mspx</a> ,</p>
+<p>however, we only provide macros for language identifiers present in the OpenType specification: Microsoft has abandoned the concept of LCIDs (language code identifiers), and format&nbsp;1 of the &lsquo;name&rsquo; table provides a better mechanism for languages not covered here.</p>
+<p>More legacy values not listed in the reference can be found in the <a href="ft2-header_file_macros.html#FT_TRUETYPE_IDS_H">FT_TRUETYPE_IDS_H</a> header file.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_NAME_ID_XXX">TT_NAME_ID_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+#define TT_NAME_ID_COPYRIGHT              0
+#define TT_NAME_ID_FONT_FAMILY            1
+#define TT_NAME_ID_FONT_SUBFAMILY         2
+#define TT_NAME_ID_UNIQUE_ID              3
+#define TT_NAME_ID_FULL_NAME              4
+#define TT_NAME_ID_VERSION_STRING         5
+#define TT_NAME_ID_PS_NAME                6
+#define TT_NAME_ID_TRADEMARK              7
+
+  /* the following values are from the OpenType spec */
+#define TT_NAME_ID_MANUFACTURER           8
+#define TT_NAME_ID_DESIGNER               9
+#define TT_NAME_ID_DESCRIPTION            10
+#define TT_NAME_ID_VENDOR_URL             11
+#define TT_NAME_ID_DESIGNER_URL           12
+#define TT_NAME_ID_LICENSE                13
+#define TT_NAME_ID_LICENSE_URL            14
+  /* number 15 is reserved */
+#define TT_NAME_ID_TYPOGRAPHIC_FAMILY     16
+#define TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY  17
+#define TT_NAME_ID_MAC_FULL_NAME          18
+
+  /* The following code is new as of 2000-01-21 */
+#define TT_NAME_ID_SAMPLE_TEXT            19
+
+  /* This is new in OpenType 1.3 */
+#define TT_NAME_ID_CID_FINDFONT_NAME      20
+
+  /* This is new in OpenType 1.5 */
+#define TT_NAME_ID_WWS_FAMILY             21
+#define TT_NAME_ID_WWS_SUBFAMILY          22
+
+  /* This is new in OpenType 1.7 */
+#define TT_NAME_ID_LIGHT_BACKGROUND       23
+#define TT_NAME_ID_DARK_BACKGROUND        24
+
+  /* This is new in OpenType 1.8 */
+#define TT_NAME_ID_VARIATIONS_PREFIX      25
+
+  /* these two values are deprecated */
+#define TT_NAME_ID_PREFERRED_FAMILY     TT_NAME_ID_TYPOGRAPHIC_FAMILY
+#define TT_NAME_ID_PREFERRED_SUBFAMILY  TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY
+</pre>
+
+<p>Possible values of the &lsquo;name&rsquo; identifier field in the name records of an SFNT &lsquo;name&rsquo; table. These values are platform independent.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="TT_UCR_XXX">TT_UCR_XXX</h3>
+<p>Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h).</p>
+<pre>
+  /* ulUnicodeRange1 */
+  /* --------------- */
+
+  /* Bit  0   Basic Latin */
+#define TT_UCR_BASIC_LATIN                     (1L &lt;&lt;  0) /* U+0020-U+007E */
+  /* Bit  1   C1 Controls and Latin-1 Supplement */
+#define TT_UCR_LATIN1_SUPPLEMENT               (1L &lt;&lt;  1) /* U+0080-U+00FF */
+  /* Bit  2   Latin Extended-A */
+#define TT_UCR_LATIN_EXTENDED_A                (1L &lt;&lt;  2) /* U+0100-U+017F */
+  /* Bit  3   Latin Extended-B */
+#define TT_UCR_LATIN_EXTENDED_B                (1L &lt;&lt;  3) /* U+0180-U+024F */
+  /* Bit  4   IPA Extensions                 */
+  /*          Phonetic Extensions            */
+  /*          Phonetic Extensions Supplement */
+#define TT_UCR_IPA_EXTENSIONS                  (1L &lt;&lt;  4) /* U+0250-U+02AF */
+                                                          /* U+1D00-U+1D7F */
+                                                          /* U+1D80-U+1DBF */
+  /* Bit  5   Spacing Modifier Letters */
+  /*          Modifier Tone Letters    */
+#define TT_UCR_SPACING_MODIFIER                (1L &lt;&lt;  5) /* U+02B0-U+02FF */
+                                                          /* U+A700-U+A71F */
+  /* Bit  6   Combining Diacritical Marks            */
+  /*          Combining Diacritical Marks Supplement */
+#define TT_UCR_COMBINING_DIACRITICAL_MARKS     (1L &lt;&lt;  6) /* U+0300-U+036F */
+                                                          /* U+1DC0-U+1DFF */
+  /* Bit  7   Greek and Coptic */
+#define TT_UCR_GREEK                           (1L &lt;&lt;  7) /* U+0370-U+03FF */
+  /* Bit  8   Coptic */
+#define TT_UCR_COPTIC                          (1L &lt;&lt;  8) /* U+2C80-U+2CFF */
+  /* Bit  9   Cyrillic            */
+  /*          Cyrillic Supplement */
+  /*          Cyrillic Extended-A */
+  /*          Cyrillic Extended-B */
+#define TT_UCR_CYRILLIC                        (1L &lt;&lt;  9) /* U+0400-U+04FF */
+                                                          /* U+0500-U+052F */
+                                                          /* U+2DE0-U+2DFF */
+                                                          /* U+A640-U+A69F */
+  /* Bit 10   Armenian */
+#define TT_UCR_ARMENIAN                        (1L &lt;&lt; 10) /* U+0530-U+058F */
+  /* Bit 11   Hebrew */
+#define TT_UCR_HEBREW                          (1L &lt;&lt; 11) /* U+0590-U+05FF */
+  /* Bit 12   Vai */
+#define TT_UCR_VAI                             (1L &lt;&lt; 12) /* U+A500-U+A63F */
+  /* Bit 13   Arabic            */
+  /*          Arabic Supplement */
+#define TT_UCR_ARABIC                          (1L &lt;&lt; 13) /* U+0600-U+06FF */
+                                                          /* U+0750-U+077F */
+  /* Bit 14   NKo */
+#define TT_UCR_NKO                             (1L &lt;&lt; 14) /* U+07C0-U+07FF */
+  /* Bit 15   Devanagari */
+#define TT_UCR_DEVANAGARI                      (1L &lt;&lt; 15) /* U+0900-U+097F */
+  /* Bit 16   Bengali */
+#define TT_UCR_BENGALI                         (1L &lt;&lt; 16) /* U+0980-U+09FF */
+  /* Bit 17   Gurmukhi */
+#define TT_UCR_GURMUKHI                        (1L &lt;&lt; 17) /* U+0A00-U+0A7F */
+  /* Bit 18   Gujarati */
+#define TT_UCR_GUJARATI                        (1L &lt;&lt; 18) /* U+0A80-U+0AFF */
+  /* Bit 19   Oriya */
+#define TT_UCR_ORIYA                           (1L &lt;&lt; 19) /* U+0B00-U+0B7F */
+  /* Bit 20   Tamil */
+#define TT_UCR_TAMIL                           (1L &lt;&lt; 20) /* U+0B80-U+0BFF */
+  /* Bit 21   Telugu */
+#define TT_UCR_TELUGU                          (1L &lt;&lt; 21) /* U+0C00-U+0C7F */
+  /* Bit 22   Kannada */
+#define TT_UCR_KANNADA                         (1L &lt;&lt; 22) /* U+0C80-U+0CFF */
+  /* Bit 23   Malayalam */
+#define TT_UCR_MALAYALAM                       (1L &lt;&lt; 23) /* U+0D00-U+0D7F */
+  /* Bit 24   Thai */
+#define TT_UCR_THAI                            (1L &lt;&lt; 24) /* U+0E00-U+0E7F */
+  /* Bit 25   Lao */
+#define TT_UCR_LAO                             (1L &lt;&lt; 25) /* U+0E80-U+0EFF */
+  /* Bit 26   Georgian            */
+  /*          Georgian Supplement */
+#define TT_UCR_GEORGIAN                        (1L &lt;&lt; 26) /* U+10A0-U+10FF */
+                                                          /* U+2D00-U+2D2F */
+  /* Bit 27   Balinese */
+#define TT_UCR_BALINESE                        (1L &lt;&lt; 27) /* U+1B00-U+1B7F */
+  /* Bit 28   Hangul Jamo */
+#define TT_UCR_HANGUL_JAMO                     (1L &lt;&lt; 28) /* U+1100-U+11FF */
+  /* Bit 29   Latin Extended Additional */
+  /*          Latin Extended-C          */
+  /*          Latin Extended-D          */
+#define TT_UCR_LATIN_EXTENDED_ADDITIONAL       (1L &lt;&lt; 29) /* U+1E00-U+1EFF */
+                                                          /* U+2C60-U+2C7F */
+                                                          /* U+A720-U+A7FF */
+  /* Bit 30   Greek Extended */
+#define TT_UCR_GREEK_EXTENDED                  (1L &lt;&lt; 30) /* U+1F00-U+1FFF */
+  /* Bit 31   General Punctuation      */
+  /*          Supplemental Punctuation */
+#define TT_UCR_GENERAL_PUNCTUATION             (1L &lt;&lt; 31) /* U+2000-U+206F */
+                                                          /* U+2E00-U+2E7F */
+
+  /* ulUnicodeRange2 */
+  /* --------------- */
+
+  /* Bit 32   Superscripts And Subscripts */
+#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS         (1L &lt;&lt;  0) /* U+2070-U+209F */
+  /* Bit 33   Currency Symbols */
+#define TT_UCR_CURRENCY_SYMBOLS                (1L &lt;&lt;  1) /* U+20A0-U+20CF */
+  /* Bit 34   Combining Diacritical Marks For Symbols */
+#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \
+                                               (1L &lt;&lt;  2) /* U+20D0-U+20FF */
+  /* Bit 35   Letterlike Symbols */
+#define TT_UCR_LETTERLIKE_SYMBOLS              (1L &lt;&lt;  3) /* U+2100-U+214F */
+  /* Bit 36   Number Forms */
+#define TT_UCR_NUMBER_FORMS                    (1L &lt;&lt;  4) /* U+2150-U+218F */
+  /* Bit 37   Arrows                           */
+  /*          Supplemental Arrows-A            */
+  /*          Supplemental Arrows-B            */
+  /*          Miscellaneous Symbols and Arrows */
+#define TT_UCR_ARROWS                          (1L &lt;&lt;  5) /* U+2190-U+21FF */
+                                                          /* U+27F0-U+27FF */
+                                                          /* U+2900-U+297F */
+                                                          /* U+2B00-U+2BFF */
+  /* Bit 38   Mathematical Operators               */
+  /*          Supplemental Mathematical Operators  */
+  /*          Miscellaneous Mathematical Symbols-A */
+  /*          Miscellaneous Mathematical Symbols-B */
+#define TT_UCR_MATHEMATICAL_OPERATORS          (1L &lt;&lt;  6) /* U+2200-U+22FF */
+                                                          /* U+2A00-U+2AFF */
+                                                          /* U+27C0-U+27EF */
+                                                          /* U+2980-U+29FF */
+  /* Bit 39 Miscellaneous Technical */
+#define TT_UCR_MISCELLANEOUS_TECHNICAL         (1L &lt;&lt;  7) /* U+2300-U+23FF */
+  /* Bit 40   Control Pictures */
+#define TT_UCR_CONTROL_PICTURES                (1L &lt;&lt;  8) /* U+2400-U+243F */
+  /* Bit 41   Optical Character Recognition */
+#define TT_UCR_OCR                             (1L &lt;&lt;  9) /* U+2440-U+245F */
+  /* Bit 42   Enclosed Alphanumerics */
+#define TT_UCR_ENCLOSED_ALPHANUMERICS          (1L &lt;&lt; 10) /* U+2460-U+24FF */
+  /* Bit 43   Box Drawing */
+#define TT_UCR_BOX_DRAWING                     (1L &lt;&lt; 11) /* U+2500-U+257F */
+  /* Bit 44   Block Elements */
+#define TT_UCR_BLOCK_ELEMENTS                  (1L &lt;&lt; 12) /* U+2580-U+259F */
+  /* Bit 45   Geometric Shapes */
+#define TT_UCR_GEOMETRIC_SHAPES                (1L &lt;&lt; 13) /* U+25A0-U+25FF */
+  /* Bit 46   Miscellaneous Symbols */
+#define TT_UCR_MISCELLANEOUS_SYMBOLS           (1L &lt;&lt; 14) /* U+2600-U+26FF */
+  /* Bit 47   Dingbats */
+#define TT_UCR_DINGBATS                        (1L &lt;&lt; 15) /* U+2700-U+27BF */
+  /* Bit 48   CJK Symbols and Punctuation */
+#define TT_UCR_CJK_SYMBOLS                     (1L &lt;&lt; 16) /* U+3000-U+303F */
+  /* Bit 49   Hiragana */
+#define TT_UCR_HIRAGANA                        (1L &lt;&lt; 17) /* U+3040-U+309F */
+  /* Bit 50   Katakana                     */
+  /*          Katakana Phonetic Extensions */
+#define TT_UCR_KATAKANA                        (1L &lt;&lt; 18) /* U+30A0-U+30FF */
+                                                          /* U+31F0-U+31FF */
+  /* Bit 51   Bopomofo          */
+  /*          Bopomofo Extended */
+#define TT_UCR_BOPOMOFO                        (1L &lt;&lt; 19) /* U+3100-U+312F */
+                                                          /* U+31A0-U+31BF */
+  /* Bit 52   Hangul Compatibility Jamo */
+#define TT_UCR_HANGUL_COMPATIBILITY_JAMO       (1L &lt;&lt; 20) /* U+3130-U+318F */
+  /* Bit 53   Phags-Pa */
+#define TT_UCR_CJK_MISC                        (1L &lt;&lt; 21) /* U+A840-U+A87F */
+#define TT_UCR_KANBUN  TT_UCR_CJK_MISC /* deprecated */
+#define TT_UCR_PHAGSPA
+  /* Bit 54   Enclosed CJK Letters and Months */
+#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS     (1L &lt;&lt; 22) /* U+3200-U+32FF */
+  /* Bit 55   CJK Compatibility */
+#define TT_UCR_CJK_COMPATIBILITY               (1L &lt;&lt; 23) /* U+3300-U+33FF */
+  /* Bit 56   Hangul Syllables */
+#define TT_UCR_HANGUL                          (1L &lt;&lt; 24) /* U+AC00-U+D7A3 */
+  /* Bit 57   High Surrogates              */
+  /*          High Private Use Surrogates  */
+  /*          Low Surrogates               */
+
+  /* According to OpenType specs v.1.3+,   */
+  /* setting bit 57 implies that there is  */
+  /* at least one codepoint beyond the     */
+  /* Basic Multilingual Plane that is      */
+  /* supported by this font.  So it really */
+  /* means &gt;= U+10000.                     */
+#define TT_UCR_SURROGATES                      (1L &lt;&lt; 25) /* U+D800-U+DB7F */
+                                                          /* U+DB80-U+DBFF */
+                                                          /* U+DC00-U+DFFF */
+#define TT_UCR_NON_PLANE_0  TT_UCR_SURROGATES
+  /* Bit 58  Phoenician */
+#define TT_UCR_PHOENICIAN                      (1L &lt;&lt; 26) /*U+10900-U+1091F*/
+  /* Bit 59   CJK Unified Ideographs             */
+  /*          CJK Radicals Supplement            */
+  /*          Kangxi Radicals                    */
+  /*          Ideographic Description Characters */
+  /*          CJK Unified Ideographs Extension A */
+  /*          CJK Unified Ideographs Extension B */
+  /*          Kanbun                             */
+#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS          (1L &lt;&lt; 27) /* U+4E00-U+9FFF */
+                                                          /* U+2E80-U+2EFF */
+                                                          /* U+2F00-U+2FDF */
+                                                          /* U+2FF0-U+2FFF */
+                                                          /* U+3400-U+4DB5 */
+                                                          /*U+20000-U+2A6DF*/
+                                                          /* U+3190-U+319F */
+  /* Bit 60   Private Use */
+#define TT_UCR_PRIVATE_USE                     (1L &lt;&lt; 28) /* U+E000-U+F8FF */
+  /* Bit 61   CJK Strokes                             */
+  /*          CJK Compatibility Ideographs            */
+  /*          CJK Compatibility Ideographs Supplement */
+#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS    (1L &lt;&lt; 29) /* U+31C0-U+31EF */
+                                                          /* U+F900-U+FAFF */
+                                                          /*U+2F800-U+2FA1F*/
+  /* Bit 62   Alphabetic Presentation Forms */
+#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS   (1L &lt;&lt; 30) /* U+FB00-U+FB4F */
+  /* Bit 63   Arabic Presentation Forms-A */
+#define TT_UCR_ARABIC_PRESENTATION_FORMS_A     (1L &lt;&lt; 31) /* U+FB50-U+FDFF */
+
+  /* ulUnicodeRange3 */
+  /* --------------- */
+
+  /* Bit 64   Combining Half Marks */
+#define TT_UCR_COMBINING_HALF_MARKS            (1L &lt;&lt;  0) /* U+FE20-U+FE2F */
+  /* Bit 65   Vertical forms          */
+  /*          CJK Compatibility Forms */
+#define TT_UCR_CJK_COMPATIBILITY_FORMS         (1L &lt;&lt;  1) /* U+FE10-U+FE1F */
+                                                          /* U+FE30-U+FE4F */
+  /* Bit 66   Small Form Variants */
+#define TT_UCR_SMALL_FORM_VARIANTS             (1L &lt;&lt;  2) /* U+FE50-U+FE6F */
+  /* Bit 67   Arabic Presentation Forms-B */
+#define TT_UCR_ARABIC_PRESENTATION_FORMS_B     (1L &lt;&lt;  3) /* U+FE70-U+FEFE */
+  /* Bit 68   Halfwidth and Fullwidth Forms */
+#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS       (1L &lt;&lt;  4) /* U+FF00-U+FFEF */
+  /* Bit 69   Specials */
+#define TT_UCR_SPECIALS                        (1L &lt;&lt;  5) /* U+FFF0-U+FFFD */
+  /* Bit 70   Tibetan */
+#define TT_UCR_TIBETAN                         (1L &lt;&lt;  6) /* U+0F00-U+0FFF */
+  /* Bit 71   Syriac */
+#define TT_UCR_SYRIAC                          (1L &lt;&lt;  7) /* U+0700-U+074F */
+  /* Bit 72   Thaana */
+#define TT_UCR_THAANA                          (1L &lt;&lt;  8) /* U+0780-U+07BF */
+  /* Bit 73   Sinhala */
+#define TT_UCR_SINHALA                         (1L &lt;&lt;  9) /* U+0D80-U+0DFF */
+  /* Bit 74   Myanmar */
+#define TT_UCR_MYANMAR                         (1L &lt;&lt; 10) /* U+1000-U+109F */
+  /* Bit 75   Ethiopic            */
+  /*          Ethiopic Supplement */
+  /*          Ethiopic Extended   */
+#define TT_UCR_ETHIOPIC                        (1L &lt;&lt; 11) /* U+1200-U+137F */
+                                                          /* U+1380-U+139F */
+                                                          /* U+2D80-U+2DDF */
+  /* Bit 76   Cherokee */
+#define TT_UCR_CHEROKEE                        (1L &lt;&lt; 12) /* U+13A0-U+13FF */
+  /* Bit 77   Unified Canadian Aboriginal Syllabics */
+#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS   (1L &lt;&lt; 13) /* U+1400-U+167F */
+  /* Bit 78   Ogham */
+#define TT_UCR_OGHAM                           (1L &lt;&lt; 14) /* U+1680-U+169F */
+  /* Bit 79   Runic */
+#define TT_UCR_RUNIC                           (1L &lt;&lt; 15) /* U+16A0-U+16FF */
+  /* Bit 80   Khmer         */
+  /*          Khmer Symbols */
+#define TT_UCR_KHMER                           (1L &lt;&lt; 16) /* U+1780-U+17FF */
+                                                          /* U+19E0-U+19FF */
+  /* Bit 81   Mongolian */
+#define TT_UCR_MONGOLIAN                       (1L &lt;&lt; 17) /* U+1800-U+18AF */
+  /* Bit 82   Braille Patterns */
+#define TT_UCR_BRAILLE                         (1L &lt;&lt; 18) /* U+2800-U+28FF */
+  /* Bit 83   Yi Syllables */
+  /*          Yi Radicals  */
+#define TT_UCR_YI                              (1L &lt;&lt; 19) /* U+A000-U+A48F */
+                                                          /* U+A490-U+A4CF */
+  /* Bit 84   Tagalog  */
+  /*          Hanunoo  */
+  /*          Buhid    */
+  /*          Tagbanwa */
+#define TT_UCR_PHILIPPINE                      (1L &lt;&lt; 20) /* U+1700-U+171F */
+                                                          /* U+1720-U+173F */
+                                                          /* U+1740-U+175F */
+                                                          /* U+1760-U+177F */
+  /* Bit 85   Old Italic */
+#define TT_UCR_OLD_ITALIC                      (1L &lt;&lt; 21) /*U+10300-U+1032F*/
+  /* Bit 86   Gothic */
+#define TT_UCR_GOTHIC                          (1L &lt;&lt; 22) /*U+10330-U+1034F*/
+  /* Bit 87   Deseret */
+#define TT_UCR_DESERET                         (1L &lt;&lt; 23) /*U+10400-U+1044F*/
+  /* Bit 88   Byzantine Musical Symbols      */
+  /*          Musical Symbols                */
+  /*          Ancient Greek Musical Notation */
+#define TT_UCR_MUSICAL_SYMBOLS                 (1L &lt;&lt; 24) /*U+1D000-U+1D0FF*/
+                                                          /*U+1D100-U+1D1FF*/
+                                                          /*U+1D200-U+1D24F*/
+  /* Bit 89   Mathematical Alphanumeric Symbols */
+#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS       (1L &lt;&lt; 25) /*U+1D400-U+1D7FF*/
+  /* Bit 90   Private Use (plane 15) */
+  /*          Private Use (plane 16) */
+#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY       (1L &lt;&lt; 26) /*U+F0000-U+FFFFD*/
+                                                        /*U+100000-U+10FFFD*/
+  /* Bit 91   Variation Selectors            */
+  /*          Variation Selectors Supplement */
+#define TT_UCR_VARIATION_SELECTORS             (1L &lt;&lt; 27) /* U+FE00-U+FE0F */
+                                                          /*U+E0100-U+E01EF*/
+  /* Bit 92   Tags */
+#define TT_UCR_TAGS                            (1L &lt;&lt; 28) /*U+E0000-U+E007F*/
+  /* Bit 93   Limbu */
+#define TT_UCR_LIMBU                           (1L &lt;&lt; 29) /* U+1900-U+194F */
+  /* Bit 94   Tai Le */
+#define TT_UCR_TAI_LE                          (1L &lt;&lt; 30) /* U+1950-U+197F */
+  /* Bit 95   New Tai Lue */
+#define TT_UCR_NEW_TAI_LUE                     (1L &lt;&lt; 31) /* U+1980-U+19DF */
+
+  /* ulUnicodeRange4 */
+  /* --------------- */
+
+  /* Bit 96   Buginese */
+#define TT_UCR_BUGINESE                        (1L &lt;&lt;  0) /* U+1A00-U+1A1F */
+  /* Bit 97   Glagolitic */
+#define TT_UCR_GLAGOLITIC                      (1L &lt;&lt;  1) /* U+2C00-U+2C5F */
+  /* Bit 98   Tifinagh */
+#define TT_UCR_TIFINAGH                        (1L &lt;&lt;  2) /* U+2D30-U+2D7F */
+  /* Bit 99   Yijing Hexagram Symbols */
+#define TT_UCR_YIJING                          (1L &lt;&lt;  3) /* U+4DC0-U+4DFF */
+  /* Bit 100  Syloti Nagri */
+#define TT_UCR_SYLOTI_NAGRI                    (1L &lt;&lt;  4) /* U+A800-U+A82F */
+  /* Bit 101  Linear B Syllabary */
+  /*          Linear B Ideograms */
+  /*          Aegean Numbers     */
+#define TT_UCR_LINEAR_B                        (1L &lt;&lt;  5) /*U+10000-U+1007F*/
+                                                          /*U+10080-U+100FF*/
+                                                          /*U+10100-U+1013F*/
+  /* Bit 102  Ancient Greek Numbers */
+#define TT_UCR_ANCIENT_GREEK_NUMBERS           (1L &lt;&lt;  6) /*U+10140-U+1018F*/
+  /* Bit 103  Ugaritic */
+#define TT_UCR_UGARITIC                        (1L &lt;&lt;  7) /*U+10380-U+1039F*/
+  /* Bit 104  Old Persian */
+#define TT_UCR_OLD_PERSIAN                     (1L &lt;&lt;  8) /*U+103A0-U+103DF*/
+  /* Bit 105  Shavian */
+#define TT_UCR_SHAVIAN                         (1L &lt;&lt;  9) /*U+10450-U+1047F*/
+  /* Bit 106  Osmanya */
+#define TT_UCR_OSMANYA                         (1L &lt;&lt; 10) /*U+10480-U+104AF*/
+  /* Bit 107  Cypriot Syllabary */
+#define TT_UCR_CYPRIOT_SYLLABARY               (1L &lt;&lt; 11) /*U+10800-U+1083F*/
+  /* Bit 108  Kharoshthi */
+#define TT_UCR_KHAROSHTHI                      (1L &lt;&lt; 12) /*U+10A00-U+10A5F*/
+  /* Bit 109  Tai Xuan Jing Symbols */
+#define TT_UCR_TAI_XUAN_JING                   (1L &lt;&lt; 13) /*U+1D300-U+1D35F*/
+  /* Bit 110  Cuneiform                         */
+  /*          Cuneiform Numbers and Punctuation */
+#define TT_UCR_CUNEIFORM                       (1L &lt;&lt; 14) /*U+12000-U+123FF*/
+                                                          /*U+12400-U+1247F*/
+  /* Bit 111  Counting Rod Numerals */
+#define TT_UCR_COUNTING_ROD_NUMERALS           (1L &lt;&lt; 15) /*U+1D360-U+1D37F*/
+  /* Bit 112  Sundanese */
+#define TT_UCR_SUNDANESE                       (1L &lt;&lt; 16) /* U+1B80-U+1BBF */
+  /* Bit 113  Lepcha */
+#define TT_UCR_LEPCHA                          (1L &lt;&lt; 17) /* U+1C00-U+1C4F */
+  /* Bit 114  Ol Chiki */
+#define TT_UCR_OL_CHIKI                        (1L &lt;&lt; 18) /* U+1C50-U+1C7F */
+  /* Bit 115  Saurashtra */
+#define TT_UCR_SAURASHTRA                      (1L &lt;&lt; 19) /* U+A880-U+A8DF */
+  /* Bit 116  Kayah Li */
+#define TT_UCR_KAYAH_LI                        (1L &lt;&lt; 20) /* U+A900-U+A92F */
+  /* Bit 117  Rejang */
+#define TT_UCR_REJANG                          (1L &lt;&lt; 21) /* U+A930-U+A95F */
+  /* Bit 118  Cham */
+#define TT_UCR_CHAM                            (1L &lt;&lt; 22) /* U+AA00-U+AA5F */
+  /* Bit 119  Ancient Symbols */
+#define TT_UCR_ANCIENT_SYMBOLS                 (1L &lt;&lt; 23) /*U+10190-U+101CF*/
+  /* Bit 120  Phaistos Disc */
+#define TT_UCR_PHAISTOS_DISC                   (1L &lt;&lt; 24) /*U+101D0-U+101FF*/
+  /* Bit 121  Carian */
+  /*          Lycian */
+  /*          Lydian */
+#define TT_UCR_OLD_ANATOLIAN                   (1L &lt;&lt; 25) /*U+102A0-U+102DF*/
+                                                          /*U+10280-U+1029F*/
+                                                          /*U+10920-U+1093F*/
+  /* Bit 122  Domino Tiles  */
+  /*          Mahjong Tiles */
+#define TT_UCR_GAME_TILES                      (1L &lt;&lt; 26) /*U+1F030-U+1F09F*/
+                                                          /*U+1F000-U+1F02F*/
+  /* Bit 123-127 Reserved for process-internal usage */
+</pre>
+
+<p>Possible bit mask values for the &lsquo;ulUnicodeRangeX&rsquo; fields in an SFNT &lsquo;OS/2&rsquo; table.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-tt_driver.html freetype-2.10.0.aros/docs/reference/ft2-tt_driver.html
--- freetype-2.10.0/docs/reference/ft2-tt_driver.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-tt_driver.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="tt_driver">The TrueType driver</h1>
+
+<p>While FreeType's TrueType driver doesn't expose API functions by itself, it is possible to control its behaviour with <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a> and <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a>. The following lists the available properties together with the necessary macros and structures.</p>
+<p>The TrueType driver's module name is &lsquo;truetype&rsquo;.</p>
+<p>A single property <a href="ft2-properties.html#interpreter-version">interpreter-version</a> is available, as documented in the &lsquo;<a href="ft2-properties.html#properties">Driver properties</a>&rsquo; section.</p>
+<p>We start with a list of definitions, kindly provided by Greg Hitchcock.</p>
+<p><i>Bi-Level</i> <i>Rendering</i></p>
+<p>Monochromatic rendering, exclusively used in the early days of TrueType by both Apple and Microsoft. Microsoft's GDI interface supported hinting of the right-side bearing point, such that the advance width could be non-linear. Most often this was done to achieve some level of glyph symmetry. To enable reasonable performance (e.g., not having to run hinting on all glyphs just to get the widths) there was a bit in the head table indicating if the side bearing was hinted, and additional tables, &lsquo;hdmx&rsquo; and &lsquo;LTSH&rsquo;, to cache hinting widths across multiple sizes and device aspect ratios.</p>
+<p><i>Font</i> <i>Smoothing</i></p>
+<p>Microsoft's GDI implementation of anti-aliasing. Not traditional anti-aliasing as the outlines were hinted before the sampling. The widths matched the bi-level rendering.</p>
+<p><i>ClearType</i> <i>Rendering</i></p>
+<p>Technique that uses physical subpixels to improve rendering on LCD (and other) displays. Because of the higher resolution, many methods of improving symmetry in glyphs through hinting the right-side bearing were no longer necessary. This lead to what GDI calls &lsquo;natural widths&rsquo; ClearType, see <a href="http://www.beatstamm.com/typography/RTRCh4.htm#Sec21">http://www.beatstamm.com/typography/RTRCh4.htm#Sec21</a>. Since hinting has extra resolution, most non-linearity went away, but it is still possible for hints to change the advance widths in this mode.</p>
+<p><i>ClearType</i> <i>Compatible</i> <i>Widths</i></p>
+<p>One of the earliest challenges with ClearType was allowing the implementation in GDI to be selected without requiring all UI and documents to reflow. To address this, a compatible method of rendering ClearType was added where the font hints are executed once to determine the width in bi-level rendering, and then re-run in ClearType, with the difference in widths being absorbed in the font hints for ClearType (mostly in the white space of hints); see <a href="http://www.beatstamm.com/typography/RTRCh4.htm#Sec20">http://www.beatstamm.com/typography/RTRCh4.htm#Sec20</a>. Somewhat by definition, compatible width ClearType allows for non-linear widths, but only when the bi-level version has non-linear widths.</p>
+<p><i>ClearType</i> <i>Subpixel</i> <i>Positioning</i></p>
+<p>One of the nice benefits of ClearType is the ability to more crisply display fractional widths; unfortunately, the GDI model of integer bitmaps did not support this. However, the WPF and Direct Write frameworks do support fractional widths. DWrite calls this &lsquo;natural mode&rsquo;, not to be confused with GDI's &lsquo;natural widths&rsquo;. Subpixel positioning, in the current implementation of Direct Write, unfortunately does not support hinted advance widths, see <a href="http://www.beatstamm.com/typography/RTRCh4.htm#Sec22">http://www.beatstamm.com/typography/RTRCh4.htm#Sec22</a>. Note that the TrueType interpreter fully allows the advance width to be adjusted in this mode, just the DWrite client will ignore those changes.</p>
+<p><i>ClearType</i> <i>Backward</i> <i>Compatibility</i></p>
+<p>This is a set of exceptions made in the TrueType interpreter to minimize hinting techniques that were problematic with the extra resolution of ClearType; see <a href="http://www.beatstamm.com/typography/RTRCh4.htm#Sec1">http://www.beatstamm.com/typography/RTRCh4.htm#Sec1</a> and <a href="https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx">https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx</a>. This technique is not to be confused with ClearType compatible widths. ClearType backward compatibility has no direct impact on changing advance widths, but there might be an indirect impact on disabling some deltas. This could be worked around in backward compatibility mode.</p>
+<p><i>Native</i> <i>ClearType</i> <i>Mode</i></p>
+<p>(Not to be confused with &lsquo;natural widths&rsquo;.) This mode removes all the exceptions in the TrueType interpreter when running with ClearType. Any issues on widths would still apply, though.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-type1_tables.html freetype-2.10.0.aros/docs/reference/ft2-type1_tables.html
--- freetype-2.10.0/docs/reference/ft2-type1_tables.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-type1_tables.html	2019-04-10 15:33:37.301922086 +0200
@@ -0,0 +1,867 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="type1_tables">Type 1 Tables</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#PS_FontInfoRec">PS_FontInfoRec</a></td><td><a href="#CID_FaceInfo">CID_FaceInfo</a></td><td><a href="#T1_EncodingType">T1_EncodingType</a></td></tr>
+<tr><td><a href="#PS_FontInfo">PS_FontInfo</a></td><td>&nbsp;</td><td><a href="#PS_Dict_Keys">PS_Dict_Keys</a></td></tr>
+<tr><td><a href="#PS_PrivateRec">PS_PrivateRec</a></td><td><a href="#FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#PS_Private">PS_Private</a></td><td><a href="#FT_Get_PS_Font_Info">FT_Get_PS_Font_Info</a></td><td><a href="#T1_FontInfo">T1_FontInfo</a></td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Get_PS_Font_Private">FT_Get_PS_Font_Private</a></td><td><a href="#T1_Private">T1_Private</a></td></tr>
+<tr><td><a href="#CID_FaceDictRec">CID_FaceDictRec</a></td><td><a href="#FT_Get_PS_Font_Value">FT_Get_PS_Font_Value</a></td><td><a href="#CID_FontDict">CID_FontDict</a></td></tr>
+<tr><td><a href="#CID_FaceDict">CID_FaceDict</a></td><td>&nbsp;</td><td><a href="#CID_Info">CID_Info</a></td></tr>
+<tr><td><a href="#CID_FaceInfoRec">CID_FaceInfoRec</a></td><td><a href="#T1_Blend_Flags">T1_Blend_Flags</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the definition of Type 1-specific tables, including structures related to other PostScript font formats.</p>
+
+<div class="section">
+<h3 id="PS_FontInfoRec">PS_FontInfoRec</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  PS_FontInfoRec_
+  {
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  version;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  notice;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  full_name;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  family_name;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*  weight;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>     italic_angle;
+    <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>     is_fixed_pitch;
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>    underline_position;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>   underline_thickness;
+
+  } <b>PS_FontInfoRec</b>;
+</pre>
+
+<p>A structure used to model a Type&nbsp;1 or Type&nbsp;2 FontInfo dictionary. Note that for Multiple Master fonts, each instance has its own FontInfo dictionary.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="PS_FontInfo">PS_FontInfo</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> PS_FontInfoRec_*  <b>PS_FontInfo</b>;
+</pre>
+
+<p>A handle to a <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="PS_PrivateRec">PS_PrivateRec</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  PS_PrivateRec_
+  {
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     unique_id;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     lenIV;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_blue_values;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_other_blues;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_family_blues;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_family_other_blues;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   blue_values[14];
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   other_blues[10];
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   family_blues      [14];
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   family_other_blues[10];
+
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   blue_scale;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     blue_shift;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     blue_fuzz;
+
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  standard_width[1];
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  standard_height[1];
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_snap_widths;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    num_snap_heights;
+    <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>    force_bold;
+    <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>    round_stem_up;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   snap_widths [13];  /* including std width  */
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   snap_heights[13];  /* including std height */
+
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   expansion_factor;
+
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    language_group;
+    <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    password;
+
+    <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   min_feature[2];
+
+  } <b>PS_PrivateRec</b>;
+</pre>
+
+<p>A structure used to model a Type&nbsp;1 or Type&nbsp;2 private dictionary. Note that for Multiple Master fonts, each instance has its own Private dictionary.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="PS_Private">PS_Private</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> PS_PrivateRec_*  <b>PS_Private</b>;
+</pre>
+
+<p>A handle to a <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_FaceDictRec">CID_FaceDictRec</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  CID_FaceDictRec_
+  {
+    <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a>  private_dict;
+
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>        len_buildchar;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>       forcebold_threshold;
+    <a href="ft2-basic_types.html#FT_Pos">FT_Pos</a>         stroke_width;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>       expansion_factor;
+
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>        paint_type;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>        font_type;
+    <a href="ft2-basic_types.html#FT_Matrix">FT_Matrix</a>      font_matrix;
+    <a href="ft2-basic_types.html#FT_Vector">FT_Vector</a>      font_offset;
+
+    <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>        num_subrs;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>       subrmap_offset;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>         sd_bytes;
+
+  } <b>CID_FaceDictRec</b>;
+</pre>
+
+<p>A structure used to represent data in a CID top-level dictionary.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_FaceDict">CID_FaceDict</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> CID_FaceDictRec_*  <b>CID_FaceDict</b>;
+</pre>
+
+<p>A handle to a <a href="ft2-type1_tables.html#CID_FaceDictRec">CID_FaceDictRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_FaceInfoRec">CID_FaceInfoRec</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  CID_FaceInfoRec_
+  {
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*      cid_font_name;
+    <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>        cid_version;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          cid_font_type;
+
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*      registry;
+    <a href="ft2-basic_types.html#FT_String">FT_String</a>*      ordering;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          supplement;
+
+    <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a>  font_info;
+    <a href="ft2-basic_types.html#FT_BBox">FT_BBox</a>         font_bbox;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        uid_base;
+
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          num_xuid;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        xuid[16];
+
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        cidmap_offset;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          fd_bytes;
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          gd_bytes;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        cid_count;
+
+    <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          num_dicts;
+    <a href="ft2-type1_tables.html#CID_FaceDict">CID_FaceDict</a>    font_dicts;
+
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>        data_offset;
+
+  } <b>CID_FaceInfoRec</b>;
+</pre>
+
+<p>A structure used to represent CID Face information.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_FaceInfo">CID_FaceInfo</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> CID_FaceInfoRec_*  <b>CID_FaceInfo</b>;
+</pre>
+
+<p>A handle to a <a href="ft2-type1_tables.html#CID_FaceInfoRec">CID_FaceInfoRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Int">FT_Int</a> )
+  <b>FT_Has_PS_Glyph_Names</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Return true if a given face provides reliable PostScript glyph names. This is similar to using the <a href="ft2-base_interface.html#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a> macro, except that certain fonts (mostly TrueType) contain incorrect glyph name tables.</p>
+<p>When this function returns true, the caller is sure that the glyph names returned by <a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a> are reliable.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>face handle</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Boolean. True if glyph names are reliable.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_PS_Font_Info">FT_Get_PS_Font_Info</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_PS_Font_Info</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>      face,
+                       <a href="ft2-type1_tables.html#PS_FontInfo">PS_FontInfo</a>  afont_info );
+</pre>
+
+<p>Retrieve the <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a> structure corresponding to a given PostScript font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>PostScript face handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="afont_info">afont_info</td><td class="desc">
+<p>Output font info structure pointer.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>String pointers within the <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a> structure are owned by the face and don't need to be freed by the caller. Missing entries in the font's FontInfo dictionary are represented by NULL pointers.</p>
+<p>If the font's format is not PostScript-based, this function will return the &lsquo;FT_Err_Invalid_Argument&rsquo; error code.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_PS_Font_Private">FT_Get_PS_Font_Private</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_PS_Font_Private</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face,
+                          <a href="ft2-type1_tables.html#PS_Private">PS_Private</a>  afont_private );
+</pre>
+
+<p>Retrieve the <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a> structure corresponding to a given PostScript font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>PostScript face handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="afont_private">afont_private</td><td class="desc">
+<p>Output private dictionary structure pointer.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>The string pointers within the <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a> structure are owned by the face and don't need to be freed by the caller.</p>
+<p>If the font's format is not PostScript-based, this function returns the &lsquo;FT_Err_Invalid_Argument&rsquo; error code.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_PS_Font_Value">FT_Get_PS_Font_Value</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Long">FT_Long</a> )
+  <b>FT_Get_PS_Font_Value</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>       face,
+                        <a href="ft2-type1_tables.html#PS_Dict_Keys">PS_Dict_Keys</a>  key,
+                        <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>       idx,
+                        <span class="keyword">void</span>         *value,
+                        <a href="ft2-basic_types.html#FT_Long">FT_Long</a>       value_len );
+</pre>
+
+<p>Retrieve the value for the supplied key from a PostScript font.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>PostScript face handle.</p>
+</td></tr>
+<tr><td class="val" id="key">key</td><td class="desc">
+<p>An enumeration value representing the dictionary key to retrieve.</p>
+</td></tr>
+<tr><td class="val" id="idx">idx</td><td class="desc">
+<p>For array values, this specifies the index to be returned.</p>
+</td></tr>
+<tr><td class="val" id="value">value</td><td class="desc">
+<p>A pointer to memory into which to write the value.</p>
+</td></tr>
+<tr><td class="val" id="valen_len">valen_len</td><td class="desc">
+<p>The size, in bytes, of the memory supplied for the value.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="value">value</td><td class="desc">
+<p>The value matching the above key, if it exists.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>The amount of memory (in bytes) required to hold the requested value (if it exists, -1 otherwise).</p>
+
+<h4>note</h4>
+<p>The values returned are not pointers into the internal structures of the face, but are &lsquo;fresh&rsquo; copies, so that the memory containing them belongs to the calling application. This also enforces the &lsquo;read-only&rsquo; nature of these values, i.e., this function cannot be used to manipulate the face.</p>
+<p>&lsquo;value&rsquo; is a void pointer because the values returned can be of various types.</p>
+<p>If either &lsquo;value&rsquo; is NULL or &lsquo;value_len&rsquo; is too small, just the required memory size for the requested entry is returned.</p>
+<p>The &lsquo;idx&rsquo; parameter is used, not only to retrieve elements of, for example, the FontMatrix or FontBBox, but also to retrieve name keys from the CharStrings dictionary, and the charstrings themselves. It is ignored for atomic values.</p>
+<p>PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To get the value as in the font stream, you need to divide by 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale).</p>
+<p>IMPORTANT: Only key/value pairs read by the FreeType interpreter can be retrieved. So, for example, PostScript procedures such as NP, ND, and RD are not available. Arbitrary keys are, obviously, not be available either.</p>
+<p>If the font's format is not PostScript-based, this function returns the &lsquo;FT_Err_Invalid_Argument&rsquo; error code.</p>
+
+<h4>since</h4>
+<p>2.4.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="T1_Blend_Flags">T1_Blend_Flags</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  T1_Blend_Flags_
+  {
+    /* required fields in a FontInfo blend dictionary */
+    <a href="ft2-type1_tables.html#T1_BLEND_UNDERLINE_POSITION">T1_BLEND_UNDERLINE_POSITION</a> = 0,
+    <a href="ft2-type1_tables.html#T1_BLEND_UNDERLINE_THICKNESS">T1_BLEND_UNDERLINE_THICKNESS</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_ITALIC_ANGLE">T1_BLEND_ITALIC_ANGLE</a>,
+
+    /* required fields in a Private blend dictionary */
+    <a href="ft2-type1_tables.html#T1_BLEND_BLUE_VALUES">T1_BLEND_BLUE_VALUES</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_OTHER_BLUES">T1_BLEND_OTHER_BLUES</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_STANDARD_WIDTH">T1_BLEND_STANDARD_WIDTH</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_STANDARD_HEIGHT">T1_BLEND_STANDARD_HEIGHT</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_STEM_SNAP_WIDTHS">T1_BLEND_STEM_SNAP_WIDTHS</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_STEM_SNAP_HEIGHTS">T1_BLEND_STEM_SNAP_HEIGHTS</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_BLUE_SCALE">T1_BLEND_BLUE_SCALE</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_BLUE_SHIFT">T1_BLEND_BLUE_SHIFT</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_FAMILY_BLUES">T1_BLEND_FAMILY_BLUES</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_FAMILY_OTHER_BLUES">T1_BLEND_FAMILY_OTHER_BLUES</a>,
+    <a href="ft2-type1_tables.html#T1_BLEND_FORCE_BOLD">T1_BLEND_FORCE_BOLD</a>,
+
+    T1_BLEND_MAX    /* do not remove */
+
+  } <b>T1_Blend_Flags</b>;
+
+
+  /* these constants are deprecated; use the corresponding */
+  /* `<b>T1_Blend_Flags</b>' values instead                       */
+#define t1_blend_underline_position   <a href="ft2-type1_tables.html#T1_BLEND_UNDERLINE_POSITION">T1_BLEND_UNDERLINE_POSITION</a>
+#define t1_blend_underline_thickness  <a href="ft2-type1_tables.html#T1_BLEND_UNDERLINE_THICKNESS">T1_BLEND_UNDERLINE_THICKNESS</a>
+#define t1_blend_italic_angle         <a href="ft2-type1_tables.html#T1_BLEND_ITALIC_ANGLE">T1_BLEND_ITALIC_ANGLE</a>
+#define t1_blend_blue_values          <a href="ft2-type1_tables.html#T1_BLEND_BLUE_VALUES">T1_BLEND_BLUE_VALUES</a>
+#define t1_blend_other_blues          <a href="ft2-type1_tables.html#T1_BLEND_OTHER_BLUES">T1_BLEND_OTHER_BLUES</a>
+#define t1_blend_standard_widths      <a href="ft2-type1_tables.html#T1_BLEND_STANDARD_WIDTH">T1_BLEND_STANDARD_WIDTH</a>
+#define t1_blend_standard_height      <a href="ft2-type1_tables.html#T1_BLEND_STANDARD_HEIGHT">T1_BLEND_STANDARD_HEIGHT</a>
+#define t1_blend_stem_snap_widths     <a href="ft2-type1_tables.html#T1_BLEND_STEM_SNAP_WIDTHS">T1_BLEND_STEM_SNAP_WIDTHS</a>
+#define t1_blend_stem_snap_heights    <a href="ft2-type1_tables.html#T1_BLEND_STEM_SNAP_HEIGHTS">T1_BLEND_STEM_SNAP_HEIGHTS</a>
+#define t1_blend_blue_scale           <a href="ft2-type1_tables.html#T1_BLEND_BLUE_SCALE">T1_BLEND_BLUE_SCALE</a>
+#define t1_blend_blue_shift           <a href="ft2-type1_tables.html#T1_BLEND_BLUE_SHIFT">T1_BLEND_BLUE_SHIFT</a>
+#define t1_blend_family_blues         <a href="ft2-type1_tables.html#T1_BLEND_FAMILY_BLUES">T1_BLEND_FAMILY_BLUES</a>
+#define t1_blend_family_other_blues   <a href="ft2-type1_tables.html#T1_BLEND_FAMILY_OTHER_BLUES">T1_BLEND_FAMILY_OTHER_BLUES</a>
+#define t1_blend_force_bold           <a href="ft2-type1_tables.html#T1_BLEND_FORCE_BOLD">T1_BLEND_FORCE_BOLD</a>
+#define t1_blend_max                  T1_BLEND_MAX
+</pre>
+
+<p>A set of flags used to indicate which fields are present in a given blend dictionary (font info or private). Used to support Multiple Masters fonts.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="T1_BLEND_UNDERLINE_POSITION">T1_BLEND_UNDERLINE_POSITION</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_UNDERLINE_THICKNESS">T1_BLEND_UNDERLINE_THICKNESS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_ITALIC_ANGLE">T1_BLEND_ITALIC_ANGLE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_BLUE_VALUES">T1_BLEND_BLUE_VALUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_OTHER_BLUES">T1_BLEND_OTHER_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_STANDARD_WIDTH">T1_BLEND_STANDARD_WIDTH</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_STANDARD_HEIGHT">T1_BLEND_STANDARD_HEIGHT</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_STEM_SNAP_WIDTHS">T1_BLEND_STEM_SNAP_WIDTHS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_STEM_SNAP_HEIGHTS">T1_BLEND_STEM_SNAP_HEIGHTS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_BLUE_SCALE">T1_BLEND_BLUE_SCALE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_BLUE_SHIFT">T1_BLEND_BLUE_SHIFT</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_FAMILY_BLUES">T1_BLEND_FAMILY_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_FAMILY_OTHER_BLUES">T1_BLEND_FAMILY_OTHER_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_BLEND_FORCE_BOLD">T1_BLEND_FORCE_BOLD</td><td class="desc">
+<p></p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="T1_EncodingType">T1_EncodingType</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  T1_EncodingType_
+  {
+    <a href="ft2-type1_tables.html#T1_ENCODING_TYPE_NONE">T1_ENCODING_TYPE_NONE</a> = 0,
+    <a href="ft2-type1_tables.html#T1_ENCODING_TYPE_ARRAY">T1_ENCODING_TYPE_ARRAY</a>,
+    <a href="ft2-type1_tables.html#T1_ENCODING_TYPE_STANDARD">T1_ENCODING_TYPE_STANDARD</a>,
+    <a href="ft2-type1_tables.html#T1_ENCODING_TYPE_ISOLATIN1">T1_ENCODING_TYPE_ISOLATIN1</a>,
+    <a href="ft2-type1_tables.html#T1_ENCODING_TYPE_EXPERT">T1_ENCODING_TYPE_EXPERT</a>
+
+  } <b>T1_EncodingType</b>;
+</pre>
+
+<p>An enumeration describing the &lsquo;Encoding&rsquo; entry in a Type 1 dictionary.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="T1_ENCODING_TYPE_NONE">T1_ENCODING_TYPE_NONE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_ENCODING_TYPE_ARRAY">T1_ENCODING_TYPE_ARRAY</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_ENCODING_TYPE_STANDARD">T1_ENCODING_TYPE_STANDARD</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_ENCODING_TYPE_ISOLATIN1">T1_ENCODING_TYPE_ISOLATIN1</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="T1_ENCODING_TYPE_EXPERT">T1_ENCODING_TYPE_EXPERT</td><td class="desc">
+<p></p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.4.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="PS_Dict_Keys">PS_Dict_Keys</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">enum</span>  PS_Dict_Keys_
+  {
+    /* conventionally in the font dictionary */
+    <a href="ft2-type1_tables.html#PS_DICT_FONT_TYPE">PS_DICT_FONT_TYPE</a>,              /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>         */
+    <a href="ft2-type1_tables.html#PS_DICT_FONT_MATRIX">PS_DICT_FONT_MATRIX</a>,            /* <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>        */
+    <a href="ft2-type1_tables.html#PS_DICT_FONT_BBOX">PS_DICT_FONT_BBOX</a>,              /* <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>        */
+    <a href="ft2-type1_tables.html#PS_DICT_PAINT_TYPE">PS_DICT_PAINT_TYPE</a>,             /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>         */
+    <a href="ft2-type1_tables.html#PS_DICT_FONT_NAME">PS_DICT_FONT_NAME</a>,              /* <a href="ft2-basic_types.html#FT_String">FT_String</a>*      */
+    <a href="ft2-type1_tables.html#PS_DICT_UNIQUE_ID">PS_DICT_UNIQUE_ID</a>,              /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_CHAR_STRINGS">PS_DICT_NUM_CHAR_STRINGS</a>,       /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>          */
+    <a href="ft2-type1_tables.html#PS_DICT_CHAR_STRING_KEY">PS_DICT_CHAR_STRING_KEY</a>,        /* <a href="ft2-basic_types.html#FT_String">FT_String</a>*      */
+    <a href="ft2-type1_tables.html#PS_DICT_CHAR_STRING">PS_DICT_CHAR_STRING</a>,            /* <a href="ft2-basic_types.html#FT_String">FT_String</a>*      */
+    <a href="ft2-type1_tables.html#PS_DICT_ENCODING_TYPE">PS_DICT_ENCODING_TYPE</a>,          /* <a href="ft2-type1_tables.html#T1_EncodingType">T1_EncodingType</a> */
+    <a href="ft2-type1_tables.html#PS_DICT_ENCODING_ENTRY">PS_DICT_ENCODING_ENTRY</a>,         /* <a href="ft2-basic_types.html#FT_String">FT_String</a>*      */
+
+    /* conventionally in the font Private dictionary */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_SUBRS">PS_DICT_NUM_SUBRS</a>,              /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     */
+    <a href="ft2-type1_tables.html#PS_DICT_SUBR">PS_DICT_SUBR</a>,                   /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_STD_HW">PS_DICT_STD_HW</a>,                 /* <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  */
+    <a href="ft2-type1_tables.html#PS_DICT_STD_VW">PS_DICT_STD_VW</a>,                 /* <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_BLUE_VALUES">PS_DICT_NUM_BLUE_VALUES</a>,        /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_BLUE_VALUE">PS_DICT_BLUE_VALUE</a>,             /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_BLUE_FUZZ">PS_DICT_BLUE_FUZZ</a>,              /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_OTHER_BLUES">PS_DICT_NUM_OTHER_BLUES</a>,        /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_OTHER_BLUE">PS_DICT_OTHER_BLUE</a>,             /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_FAMILY_BLUES">PS_DICT_NUM_FAMILY_BLUES</a>,       /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_FAMILY_BLUE">PS_DICT_FAMILY_BLUE</a>,            /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_FAMILY_OTHER_BLUES">PS_DICT_NUM_FAMILY_OTHER_BLUES</a>, /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_FAMILY_OTHER_BLUE">PS_DICT_FAMILY_OTHER_BLUE</a>,      /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_BLUE_SCALE">PS_DICT_BLUE_SCALE</a>,             /* <a href="ft2-basic_types.html#FT_Fixed">FT_Fixed</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_BLUE_SHIFT">PS_DICT_BLUE_SHIFT</a>,             /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_STEM_SNAP_H">PS_DICT_NUM_STEM_SNAP_H</a>,        /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_STEM_SNAP_H">PS_DICT_STEM_SNAP_H</a>,            /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_NUM_STEM_SNAP_V">PS_DICT_NUM_STEM_SNAP_V</a>,        /* <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_STEM_SNAP_V">PS_DICT_STEM_SNAP_V</a>,            /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_FORCE_BOLD">PS_DICT_FORCE_BOLD</a>,             /* <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_RND_STEM_UP">PS_DICT_RND_STEM_UP</a>,            /* <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_MIN_FEATURE">PS_DICT_MIN_FEATURE</a>,            /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_LEN_IV">PS_DICT_LEN_IV</a>,                 /* <a href="ft2-basic_types.html#FT_Int">FT_Int</a>     */
+    <a href="ft2-type1_tables.html#PS_DICT_PASSWORD">PS_DICT_PASSWORD</a>,               /* <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_LANGUAGE_GROUP">PS_DICT_LANGUAGE_GROUP</a>,         /* <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    */
+
+    /* conventionally in the font FontInfo dictionary */
+    <a href="ft2-type1_tables.html#PS_DICT_VERSION">PS_DICT_VERSION</a>,                /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_NOTICE">PS_DICT_NOTICE</a>,                 /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_FULL_NAME">PS_DICT_FULL_NAME</a>,              /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_FAMILY_NAME">PS_DICT_FAMILY_NAME</a>,            /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_WEIGHT">PS_DICT_WEIGHT</a>,                 /* <a href="ft2-basic_types.html#FT_String">FT_String</a>* */
+    <a href="ft2-type1_tables.html#PS_DICT_IS_FIXED_PITCH">PS_DICT_IS_FIXED_PITCH</a>,         /* <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>    */
+    <a href="ft2-type1_tables.html#PS_DICT_UNDERLINE_POSITION">PS_DICT_UNDERLINE_POSITION</a>,     /* <a href="ft2-basic_types.html#FT_Short">FT_Short</a>   */
+    <a href="ft2-type1_tables.html#PS_DICT_UNDERLINE_THICKNESS">PS_DICT_UNDERLINE_THICKNESS</a>,    /* <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  */
+    <a href="ft2-type1_tables.html#PS_DICT_FS_TYPE">PS_DICT_FS_TYPE</a>,                /* <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  */
+    <a href="ft2-type1_tables.html#PS_DICT_ITALIC_ANGLE">PS_DICT_ITALIC_ANGLE</a>,           /* <a href="ft2-basic_types.html#FT_Long">FT_Long</a>    */
+
+    PS_DICT_MAX = <a href="ft2-type1_tables.html#PS_DICT_ITALIC_ANGLE">PS_DICT_ITALIC_ANGLE</a>
+
+  } <b>PS_Dict_Keys</b>;
+</pre>
+
+<p>An enumeration used in calls to <a href="ft2-type1_tables.html#FT_Get_PS_Font_Value">FT_Get_PS_Font_Value</a> to identify the Type&nbsp;1 dictionary entry to retrieve.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="PS_DICT_FONT_TYPE">PS_DICT_FONT_TYPE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FONT_MATRIX">PS_DICT_FONT_MATRIX</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FONT_BBOX">PS_DICT_FONT_BBOX</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_PAINT_TYPE">PS_DICT_PAINT_TYPE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FONT_NAME">PS_DICT_FONT_NAME</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_UNIQUE_ID">PS_DICT_UNIQUE_ID</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_CHAR_STRINGS">PS_DICT_NUM_CHAR_STRINGS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_CHAR_STRING_KEY">PS_DICT_CHAR_STRING_KEY</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_CHAR_STRING">PS_DICT_CHAR_STRING</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_ENCODING_TYPE">PS_DICT_ENCODING_TYPE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_ENCODING_ENTRY">PS_DICT_ENCODING_ENTRY</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_SUBRS">PS_DICT_NUM_SUBRS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_SUBR">PS_DICT_SUBR</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_STD_HW">PS_DICT_STD_HW</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_STD_VW">PS_DICT_STD_VW</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_BLUE_VALUES">PS_DICT_NUM_BLUE_VALUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_BLUE_VALUE">PS_DICT_BLUE_VALUE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_BLUE_FUZZ">PS_DICT_BLUE_FUZZ</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_OTHER_BLUES">PS_DICT_NUM_OTHER_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_OTHER_BLUE">PS_DICT_OTHER_BLUE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_FAMILY_BLUES">PS_DICT_NUM_FAMILY_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FAMILY_BLUE">PS_DICT_FAMILY_BLUE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_FAMILY_OTHER_BLUES">PS_DICT_NUM_FAMILY_OTHER_BLUES</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FAMILY_OTHER_BLUE">PS_DICT_FAMILY_OTHER_BLUE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_BLUE_SCALE">PS_DICT_BLUE_SCALE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_BLUE_SHIFT">PS_DICT_BLUE_SHIFT</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_STEM_SNAP_H">PS_DICT_NUM_STEM_SNAP_H</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_STEM_SNAP_H">PS_DICT_STEM_SNAP_H</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NUM_STEM_SNAP_V">PS_DICT_NUM_STEM_SNAP_V</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_STEM_SNAP_V">PS_DICT_STEM_SNAP_V</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FORCE_BOLD">PS_DICT_FORCE_BOLD</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_RND_STEM_UP">PS_DICT_RND_STEM_UP</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_MIN_FEATURE">PS_DICT_MIN_FEATURE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_LEN_IV">PS_DICT_LEN_IV</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_PASSWORD">PS_DICT_PASSWORD</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_LANGUAGE_GROUP">PS_DICT_LANGUAGE_GROUP</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_VERSION">PS_DICT_VERSION</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_NOTICE">PS_DICT_NOTICE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FULL_NAME">PS_DICT_FULL_NAME</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FAMILY_NAME">PS_DICT_FAMILY_NAME</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_WEIGHT">PS_DICT_WEIGHT</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_IS_FIXED_PITCH">PS_DICT_IS_FIXED_PITCH</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_UNDERLINE_POSITION">PS_DICT_UNDERLINE_POSITION</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_UNDERLINE_THICKNESS">PS_DICT_UNDERLINE_THICKNESS</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_FS_TYPE">PS_DICT_FS_TYPE</td><td class="desc">
+<p></p>
+</td></tr>
+<tr><td class="val" id="PS_DICT_ITALIC_ANGLE">PS_DICT_ITALIC_ANGLE</td><td class="desc">
+<p></p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+<p>2.4.8</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="T1_FontInfo">T1_FontInfo</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a>  <b>T1_FontInfo</b>;
+</pre>
+
+<p>This type is equivalent to <a href="ft2-type1_tables.html#PS_FontInfoRec">PS_FontInfoRec</a>. It is deprecated but kept to maintain source compatibility between various versions of FreeType.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="T1_Private">T1_Private</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a>  <b>T1_Private</b>;
+</pre>
+
+<p>This type is equivalent to <a href="ft2-type1_tables.html#PS_PrivateRec">PS_PrivateRec</a>. It is deprecated but kept to maintain source compatibility between various versions of FreeType.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_FontDict">CID_FontDict</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-type1_tables.html#CID_FaceDictRec">CID_FaceDictRec</a>  <b>CID_FontDict</b>;
+</pre>
+
+<p>This type is equivalent to <a href="ft2-type1_tables.html#CID_FaceDictRec">CID_FaceDictRec</a>. It is deprecated but kept to maintain source compatibility between various versions of FreeType.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="CID_Info">CID_Info</h3>
+<p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <a href="ft2-type1_tables.html#CID_FaceInfoRec">CID_FaceInfoRec</a>  <b>CID_Info</b>;
+</pre>
+
+<p>This type is equivalent to <a href="ft2-type1_tables.html#CID_FaceInfoRec">CID_FaceInfoRec</a>. It is deprecated but kept to maintain source compatibility between various versions of FreeType.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-user_allocation.html freetype-2.10.0.aros/docs/reference/ft2-user_allocation.html
--- freetype-2.10.0/docs/reference/ft2-user_allocation.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-user_allocation.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="user_allocation">User allocation</h1>
+
+<p>FreeType assumes that structures allocated by the user and passed as arguments are zeroed out except for the actual data. In other words, it is recommended to use &lsquo;calloc&rsquo; (or variants of it) instead of &lsquo;malloc&rsquo; for allocation.</p>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-version.html freetype-2.10.0.aros/docs/reference/ft2-version.html
--- freetype-2.10.0/docs/reference/ft2-version.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-version.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="version">FreeType Version</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_Library_Version">FT_Library_Version</a></td><td>&nbsp;</td></tr>
+<tr><td>&nbsp;</td><td><a href="#FT_Face_CheckTrueTypePatents">FT_Face_CheckTrueTypePatents</a></td></tr>
+<tr><td><a href="#FREETYPE_MAJOR">FREETYPE_MAJOR</a></td><td><a href="#FT_Face_SetUnpatentedHinting">FT_Face_SetUnpatentedHinting</a></td></tr>
+<tr><td><a href="#FREETYPE_MINOR">FREETYPE_MINOR</a></td><td>&nbsp;</td></tr>
+<tr><td><a href="#FREETYPE_PATCH">FREETYPE_PATCH</a></td><td><a href="#FREETYPE_XXX">FREETYPE_XXX</a></td></tr>
+</table>
+
+
+<p>Note that those functions and macros are of limited use because even a new release of FreeType with only documentation changes increases the version number.</p>
+
+<div class="section">
+<h3 id="FT_Library_Version">FT_Library_Version</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <span class="keyword">void</span> )
+  <b>FT_Library_Version</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a>   library,
+                      <a href="ft2-basic_types.html#FT_Int">FT_Int</a>      *amajor,
+                      <a href="ft2-basic_types.html#FT_Int">FT_Int</a>      *aminor,
+                      <a href="ft2-basic_types.html#FT_Int">FT_Int</a>      *apatch );
+</pre>
+
+<p>Return the version of the FreeType library being used. This is useful when dynamically linking to the library, since one cannot use the macros <a href="ft2-version.html#FREETYPE_XXX">FREETYPE_MAJOR</a>, <a href="ft2-version.html#FREETYPE_XXX">FREETYPE_MINOR</a>, and <a href="ft2-version.html#FREETYPE_XXX">FREETYPE_PATCH</a>.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="library">library</td><td class="desc">
+<p>A source library handle.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="amajor">amajor</td><td class="desc">
+<p>The major version number.</p>
+</td></tr>
+<tr><td class="val" id="aminor">aminor</td><td class="desc">
+<p>The minor version number.</p>
+</td></tr>
+<tr><td class="val" id="apatch">apatch</td><td class="desc">
+<p>The patch version number.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The reason why this function takes a &lsquo;library&rsquo; argument is because certain programs implement library initialization in a custom way that doesn't use <a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a>.</p>
+<p>In such cases, the library version might not be available before the library object has been created.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_CheckTrueTypePatents">FT_Face_CheckTrueTypePatents</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a> )
+  <b>FT_Face_CheckTrueTypePatents</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face );
+</pre>
+
+<p>Deprecated, does nothing.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A face handle.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Always returns false.</p>
+
+<h4>note</h4>
+<p>Since May 2010, TrueType hinting is no longer patented.</p>
+
+<h4>since</h4>
+<p>2.3.5</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Face_SetUnpatentedHinting">FT_Face_SetUnpatentedHinting</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a> )
+  <b>FT_Face_SetUnpatentedHinting</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>  face,
+                                <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>  value );
+</pre>
+
+<p>Deprecated, does nothing.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A face handle.</p>
+</td></tr>
+<tr><td class="val" id="value">value</td><td class="desc">
+<p>New boolean setting.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>Always returns false.</p>
+
+<h4>note</h4>
+<p>Since May 2010, TrueType hinting is no longer patented.</p>
+
+<h4>since</h4>
+<p>2.3.5</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FREETYPE_XXX">FREETYPE_XXX</h3>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<pre>
+#define <a href="ft2-version.html#FREETYPE_MAJOR">FREETYPE_MAJOR</a>  2
+#define <a href="ft2-version.html#FREETYPE_MINOR">FREETYPE_MINOR</a>  9
+#define <a href="ft2-version.html#FREETYPE_PATCH">FREETYPE_PATCH</a>  1
+</pre>
+
+<p>These three macros identify the FreeType source code version. Use <a href="ft2-version.html#FT_Library_Version">FT_Library_Version</a> to access them at runtime.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FREETYPE_MAJOR">FREETYPE_MAJOR</td><td class="desc">
+<p>The major version number.</p>
+</td></tr>
+<tr><td class="val" id="FREETYPE_MINOR">FREETYPE_MINOR</td><td class="desc">
+<p>The minor version number.</p>
+</td></tr>
+<tr><td class="val" id="FREETYPE_PATCH">FREETYPE_PATCH</td><td class="desc">
+<p>The patch level.</p>
+</td></tr>
+</table>
+
+<h4>note</h4>
+<p>The version number of FreeType if built as a dynamic link library with the &lsquo;libtool&rsquo; package is <i>not</i> controlled by these three macros.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/docs/reference/ft2-winfnt_fonts.html freetype-2.10.0.aros/docs/reference/ft2-winfnt_fonts.html
--- freetype-2.10.0/docs/reference/ft2-winfnt_fonts.html	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/docs/reference/ft2-winfnt_fonts.html	2019-04-10 15:33:37.305922111 +0200
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>FreeType-2.9.1 API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
+<h1>FreeType-2.9.1 API Reference</h1>
+
+<h1 id="winfnt_fonts">Window FNT Files</h1>
+<h2>Synopsis</h2>
+<table class="synopsis">
+<tr><td><a href="#FT_WinFNT_ID_XXX">FT_WinFNT_ID_XXX</a></td><td><a href="#FT_WinFNT_Header">FT_WinFNT_Header</a></td><td></td></tr>
+<tr><td><a href="#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a></td><td><a href="#FT_Get_WinFNT_Header">FT_Get_WinFNT_Header</a></td><td></td></tr>
+</table>
+
+
+<p>This section contains the declaration of Windows FNT specific functions.</p>
+
+<div class="section">
+<h3 id="FT_WinFNT_ID_XXX">FT_WinFNT_ID_XXX</h3>
+<p>Defined in FT_WINFONTS_H (freetype/ftwinfnt.h).</p>
+<pre>
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1252">FT_WinFNT_ID_CP1252</a>    0
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_DEFAULT">FT_WinFNT_ID_DEFAULT</a>   1
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_SYMBOL">FT_WinFNT_ID_SYMBOL</a>    2
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_MAC">FT_WinFNT_ID_MAC</a>      77
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP932">FT_WinFNT_ID_CP932</a>   128
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP949">FT_WinFNT_ID_CP949</a>   129
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1361">FT_WinFNT_ID_CP1361</a>  130
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP936">FT_WinFNT_ID_CP936</a>   134
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP950">FT_WinFNT_ID_CP950</a>   136
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1253">FT_WinFNT_ID_CP1253</a>  161
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1254">FT_WinFNT_ID_CP1254</a>  162
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1258">FT_WinFNT_ID_CP1258</a>  163
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1255">FT_WinFNT_ID_CP1255</a>  177
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1256">FT_WinFNT_ID_CP1256</a>  178
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1257">FT_WinFNT_ID_CP1257</a>  186
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1251">FT_WinFNT_ID_CP1251</a>  204
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP874">FT_WinFNT_ID_CP874</a>   222
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_CP1250">FT_WinFNT_ID_CP1250</a>  238
+#define <a href="ft2-winfnt_fonts.html#FT_WinFNT_ID_OEM">FT_WinFNT_ID_OEM</a>     255
+</pre>
+
+<p>A list of valid values for the &lsquo;charset&rsquo; byte in <a href="ft2-winfnt_fonts.html#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a>. Exact mapping tables for the various cpXXXX encodings (except for cp1361) can be found at <a href="ftp://ftp.unicode.org/Public">ftp://ftp.unicode.org/Public</a> in the MAPPINGS/VENDORS/MICSFT/WINDOWS subdirectory. cp1361 is roughly a superset of MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.</p>
+
+<h4>values</h4>
+<table class="fields">
+<tr><td class="val" id="FT_WinFNT_ID_DEFAULT">FT_WinFNT_ID_DEFAULT</td><td class="desc">
+<p>This is used for font enumeration and font creation as a &lsquo;don't care&rsquo; value. Valid font files don't contain this value. When querying for information about the character set of the font that is currently selected into a specified device context, this return value (of the related Windows API) simply denotes failure.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_SYMBOL">FT_WinFNT_ID_SYMBOL</td><td class="desc">
+<p>There is no known mapping table available.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_MAC">FT_WinFNT_ID_MAC</td><td class="desc">
+<p>Mac Roman encoding.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_OEM">FT_WinFNT_ID_OEM</td><td class="desc">
+<p>From Michael Poettgen &lt;michael@poettgen.de&gt;:</p>
+<p>The &lsquo;Windows Font Mapping&rsquo; article says that FT_WinFNT_ID_OEM is used for the charset of vector fonts, like &lsquo;modern.fon&rsquo;, &lsquo;roman.fon&rsquo;, and &lsquo;script.fon&rsquo; on Windows.</p>
+<p>The &lsquo;CreateFont&rsquo; documentation says: The FT_WinFNT_ID_OEM value specifies a character set that is operating-system dependent.</p>
+<p>The &lsquo;IFIMETRICS&rsquo; documentation from the &lsquo;Windows Driver Development Kit&rsquo; says: This font supports an OEM-specific character set. The OEM character set is system dependent.</p>
+<p>In general OEM, as opposed to ANSI (i.e., cp1252), denotes the second default codepage that most international versions of Windows have. It is one of the OEM codepages from</p>
+<p><a href="https://msdn.microsoft.com/en-us/goglobal/bb964655">https://msdn.microsoft.com/en-us/goglobal/bb964655</a>,</p>
+<p>and is used for the &lsquo;DOS boxes&rsquo;, to support legacy applications. A German Windows version for example usually uses ANSI codepage 1252 and OEM codepage 850.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP874">FT_WinFNT_ID_CP874</td><td class="desc">
+<p>A superset of Thai TIS 620 and ISO 8859-11.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP932">FT_WinFNT_ID_CP932</td><td class="desc">
+<p>A superset of Japanese Shift-JIS (with minor deviations).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP936">FT_WinFNT_ID_CP936</td><td class="desc">
+<p>A superset of simplified Chinese GB 2312-1980 (with different ordering and minor deviations).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP949">FT_WinFNT_ID_CP949</td><td class="desc">
+<p>A superset of Korean Hangul KS&nbsp;C 5601-1987 (with different ordering and minor deviations).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP950">FT_WinFNT_ID_CP950</td><td class="desc">
+<p>A superset of traditional Chinese Big&nbsp;5 ETen (with different ordering and minor deviations).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1250">FT_WinFNT_ID_CP1250</td><td class="desc">
+<p>A superset of East European ISO 8859-2 (with slightly different ordering).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1251">FT_WinFNT_ID_CP1251</td><td class="desc">
+<p>A superset of Russian ISO 8859-5 (with different ordering).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1252">FT_WinFNT_ID_CP1252</td><td class="desc">
+<p>ANSI encoding. A superset of ISO 8859-1.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1253">FT_WinFNT_ID_CP1253</td><td class="desc">
+<p>A superset of Greek ISO 8859-7 (with minor modifications).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1254">FT_WinFNT_ID_CP1254</td><td class="desc">
+<p>A superset of Turkish ISO 8859-9.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1255">FT_WinFNT_ID_CP1255</td><td class="desc">
+<p>A superset of Hebrew ISO 8859-8 (with some modifications).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1256">FT_WinFNT_ID_CP1256</td><td class="desc">
+<p>A superset of Arabic ISO 8859-6 (with different ordering).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1257">FT_WinFNT_ID_CP1257</td><td class="desc">
+<p>A superset of Baltic ISO 8859-13 (with some deviations).</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1258">FT_WinFNT_ID_CP1258</td><td class="desc">
+<p>For Vietnamese. This encoding doesn't cover all necessary characters.</p>
+</td></tr>
+<tr><td class="val" id="FT_WinFNT_ID_CP1361">FT_WinFNT_ID_CP1361</td><td class="desc">
+<p>Korean (Johab).</p>
+</td></tr>
+</table>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</h3>
+<p>Defined in FT_WINFONTS_H (freetype/ftwinfnt.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_WinFNT_HeaderRec_
+  {
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  version;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   file_size;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    copyright[60];
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  file_type;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  nominal_point_size;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  vertical_resolution;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  horizontal_resolution;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  ascent;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  internal_leading;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  external_leading;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    italic;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    underline;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    strike_out;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  weight;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    charset;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  pixel_width;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  pixel_height;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    pitch_and_family;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  avg_width;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  max_width;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    first_char;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    last_char;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    default_char;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    break_char;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  bytes_per_row;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   device_offset;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   face_name_offset;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   bits_pointer;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   bits_offset;
+    <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>    reserved;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   flags;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  A_space;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  B_space;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  C_space;
+    <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a>  color_table_offset;
+    <a href="ft2-basic_types.html#FT_ULong">FT_ULong</a>   reserved1[4];
+
+  } <b>FT_WinFNT_HeaderRec</b>;
+</pre>
+
+<p>Windows FNT Header info.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_WinFNT_Header">FT_WinFNT_Header</h3>
+<p>Defined in FT_WINFONTS_H (freetype/ftwinfnt.h).</p>
+<pre>
+  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_WinFNT_HeaderRec_*  <b>FT_WinFNT_Header</b>;
+</pre>
+
+<p>A handle to an <a href="ft2-winfnt_fonts.html#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a> structure.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+<div class="section">
+<h3 id="FT_Get_WinFNT_Header">FT_Get_WinFNT_Header</h3>
+<p>Defined in FT_WINFONTS_H (freetype/ftwinfnt.h).</p>
+<pre>
+  FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
+  <b>FT_Get_WinFNT_Header</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a>               face,
+                        <a href="ft2-winfnt_fonts.html#FT_WinFNT_HeaderRec">FT_WinFNT_HeaderRec</a>  *aheader );
+</pre>
+
+<p>Retrieve a Windows FNT font info header.</p>
+
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the input face.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="aheader">aheader</td><td class="desc">
+<p>The WinFNT header.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+<p>FreeType error code. 0&nbsp;means success.</p>
+
+<h4>note</h4>
+<p>This function only works with Windows FNT faces, returning an error otherwise.</p>
+
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
+
+</body>
+</html>
diff -ruN freetype-2.10.0/include/freetype/config/mmakefile freetype-2.10.0.aros/include/freetype/config/mmakefile
--- freetype-2.10.0/include/freetype/config/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/config/mmakefile	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,81 @@
+# $Id: mmakefile.src 55827 2019-03-15 03:55:40Z NicJA $
+
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+#MM- includes-copy : workbench-libs-freetype-genincludes
+
+FT2OPTIONFILE := ftoption.h
+
+INCLUDE_FILES := $(filter-out $(FT2OPTIONFILE),$(call WILDCARD, *.h))
+
+
+ifeq ($(findstring target,host kernel target),)
+$(error %copy_includes: compiler argument (target) has to be host, kernel or target)
+endif
+
+ifneq (,)
+TMP_DIR := 
+$(eval TMP_DIRREMAIN := $$$(TMP_DIR))
+TMP_DIRFIRST := $(subst $(TMP_DIRREMAIN),,$(TMP_DIR))
+BD_INCL_FILES := $(subst ,$(GENINCDIR)/freetype/config,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/config/,$(notdir $(INCLUDE_FILES)))
+ifeq ($(TMP_DIRFIRST),/)
+BD_INC_PATH := /
+else
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)//
+endif
+else
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/config/,$(INCLUDE_FILES))
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)/
+endif
+
+$(BD_INCL_FILES) : $(GENINCDIR)/freetype/config/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+
+ifeq (target,target)
+
+ifneq (,)
+BD_INCL_FILES2 := $(subst ,$(AROS_INCLUDES)/freetype/config,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/config/,$(notdir $(INCLUDE_FILES)))
+else
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/config/,$(INCLUDE_FILES))
+endif
+
+BD_INCL_FILES += $(BD_INCL_FILES2)
+
+$(BD_INCL_FILES2) : $(AROS_INCLUDES)/freetype/config/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+endif
+
+#MM
+includes-copy : $(BD_INCL_FILES)
+
+.PHONY: includes-copy
+
+$(BD_INCL_FILES) : | $(dir $(BD_INCL_FILES))
+
+setup :: $(dir $(BD_INCL_FILES))
+
+GLOB_MKDIRS += $(dir $(BD_INCL_FILES))
+
+
+$(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE) : $(SRCDIR)/$(CURDIR)/$(FT2OPTIONFILE)
+	@$(ECHO) "Generating Freetype2 build options ..."
+	$(Q)$(IF) $(TEST) ! -d $(AROS_INCLUDES)/freetype/config ; then $(MKDIR) $(AROS_INCLUDES)/freetype/config ; else $(NOP) ; fi
+	@$(SED) "s|.*FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES.*|/*define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES*/\\n|g" $< > $@
+
+#MM
+workbench-libs-freetype-genincludes : $(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE)
+	$(NOP)
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/include/freetype/config/mmakefile.src freetype-2.10.0.aros/include/freetype/config/mmakefile.src
--- freetype-2.10.0/include/freetype/config/mmakefile.src	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/config/mmakefile.src	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,23 @@
+# $Id: mmakefile.src 55827 2019-03-15 03:55:40Z NicJA $
+
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+#MM- includes-copy : workbench-libs-freetype-genincludes
+
+FT2OPTIONFILE := ftoption.h
+
+INCLUDE_FILES := $(filter-out $(FT2OPTIONFILE),$(call WILDCARD, *.h))
+
+%copy_includes path=freetype/config
+
+$(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE) : $(SRCDIR)/$(CURDIR)/$(FT2OPTIONFILE)
+	@$(ECHO) "Generating Freetype2 build options ..."
+	%mkdir_q dir=$(AROS_INCLUDES)/freetype/config
+	@$(SED) "s|.*FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES.*|/*define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES*/\\n|g" $< > $@
+
+#MM
+workbench-libs-freetype-genincludes : $(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE)
+	$(NOP)
diff -ruN freetype-2.10.0/include/freetype/internal/ftobjs.h freetype-2.10.0.aros/include/freetype/internal/ftobjs.h
--- freetype-2.10.0/include/freetype/internal/ftobjs.h	2019-03-07 09:32:29.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/ftobjs.h	2019-04-10 16:20:12.862487008 +0200
@@ -912,7 +912,9 @@
 #ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
     FT_LcdFiveTapFilter      lcd_weights;      /* filter weights, if any */
     FT_Bitmap_LcdFilterFunc  lcd_filter_func;  /* filtering callback     */
+    REALLY!
 #else
+    NO!
     FT_Vector                lcd_geometry[3];  /* RGB subpixel positions */
 #endif
 
diff -ruN freetype-2.10.0/include/freetype/internal/ftpic.h freetype-2.10.0.aros/include/freetype/internal/ftpic.h
--- freetype-2.10.0/include/freetype/internal/ftpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/ftpic.h	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,71 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftpic.h                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services (declaration).       */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+  /*************************************************************************/
+  /*                                                                       */
+  /*  Modules that ordinarily have const global data that need address     */
+  /*  can instead define pointers here.                                    */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+#ifndef FTPIC_H_
+#define FTPIC_H_
+
+
+FT_BEGIN_HEADER
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  typedef struct  FT_PIC_Container_
+  {
+    /* pic containers for base */
+    void*  base;
+
+    /* pic containers for modules */
+    void*  autofit;
+    void*  cff;
+    void*  pshinter;
+    void*  psnames;
+    void*  raster;
+    void*  sfnt;
+    void*  smooth;
+    void*  truetype;
+
+  } FT_PIC_Container;
+
+
+  /* Initialize the various function tables, structs, etc. */
+  /* stored in the container.                              */
+  FT_BASE( FT_Error )
+  ft_pic_container_init( FT_Library  library );
+
+
+  /* Destroy the contents of the container. */
+  FT_BASE( void )
+  ft_pic_container_destroy( FT_Library  library );
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+FT_END_HEADER
+
+#endif /* FTPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/include/freetype/internal/mmakefile freetype-2.10.0.aros/include/freetype/internal/mmakefile
--- freetype-2.10.0/include/freetype/internal/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/mmakefile	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,66 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, ./*.h)
+
+
+ifeq ($(findstring target,host kernel target),)
+$(error %copy_includes: compiler argument (target) has to be host, kernel or target)
+endif
+
+ifneq (,)
+TMP_DIR := 
+$(eval TMP_DIRREMAIN := $$$(TMP_DIR))
+TMP_DIRFIRST := $(subst $(TMP_DIRREMAIN),,$(TMP_DIR))
+BD_INCL_FILES := $(subst ,$(GENINCDIR)/freetype/internal,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/internal/,$(notdir $(INCLUDE_FILES)))
+ifeq ($(TMP_DIRFIRST),/)
+BD_INC_PATH := /
+else
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)//
+endif
+else
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/internal/,$(INCLUDE_FILES))
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)/
+endif
+
+$(BD_INCL_FILES) : $(GENINCDIR)/freetype/internal/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+
+ifeq (target,target)
+
+ifneq (,)
+BD_INCL_FILES2 := $(subst ,$(AROS_INCLUDES)/freetype/internal,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/internal/,$(notdir $(INCLUDE_FILES)))
+else
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/internal/,$(INCLUDE_FILES))
+endif
+
+BD_INCL_FILES += $(BD_INCL_FILES2)
+
+$(BD_INCL_FILES2) : $(AROS_INCLUDES)/freetype/internal/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+endif
+
+#MM
+includes-copy : $(BD_INCL_FILES)
+
+.PHONY: includes-copy
+
+$(BD_INCL_FILES) : | $(dir $(BD_INCL_FILES))
+
+setup :: $(dir $(BD_INCL_FILES))
+
+GLOB_MKDIRS += $(dir $(BD_INCL_FILES))
+
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/include/freetype/internal/mmakefile.src freetype-2.10.0.aros/include/freetype/internal/mmakefile.src
--- freetype-2.10.0/include/freetype/internal/mmakefile.src	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/mmakefile.src	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,8 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, ./*.h)
+
+%copy_includes path=freetype/internal
diff -ruN freetype-2.10.0/include/freetype/internal/services/mmakefile freetype-2.10.0.aros/include/freetype/internal/services/mmakefile
--- freetype-2.10.0/include/freetype/internal/services/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/services/mmakefile	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,66 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, ./*.h)
+
+
+ifeq ($(findstring target,host kernel target),)
+$(error %copy_includes: compiler argument (target) has to be host, kernel or target)
+endif
+
+ifneq (,)
+TMP_DIR := 
+$(eval TMP_DIRREMAIN := $$$(TMP_DIR))
+TMP_DIRFIRST := $(subst $(TMP_DIRREMAIN),,$(TMP_DIR))
+BD_INCL_FILES := $(subst ,$(GENINCDIR)/freetype/internal/services,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/internal/services/,$(notdir $(INCLUDE_FILES)))
+ifeq ($(TMP_DIRFIRST),/)
+BD_INC_PATH := /
+else
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)//
+endif
+else
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/internal/services/,$(INCLUDE_FILES))
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)/
+endif
+
+$(BD_INCL_FILES) : $(GENINCDIR)/freetype/internal/services/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+
+ifeq (target,target)
+
+ifneq (,)
+BD_INCL_FILES2 := $(subst ,$(AROS_INCLUDES)/freetype/internal/services,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/internal/services/,$(notdir $(INCLUDE_FILES)))
+else
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/internal/services/,$(INCLUDE_FILES))
+endif
+
+BD_INCL_FILES += $(BD_INCL_FILES2)
+
+$(BD_INCL_FILES2) : $(AROS_INCLUDES)/freetype/internal/services/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+endif
+
+#MM
+includes-copy : $(BD_INCL_FILES)
+
+.PHONY: includes-copy
+
+$(BD_INCL_FILES) : | $(dir $(BD_INCL_FILES))
+
+setup :: $(dir $(BD_INCL_FILES))
+
+GLOB_MKDIRS += $(dir $(BD_INCL_FILES))
+
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/include/freetype/internal/services/mmakefile.src freetype-2.10.0.aros/include/freetype/internal/services/mmakefile.src
--- freetype-2.10.0/include/freetype/internal/services/mmakefile.src	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/internal/services/mmakefile.src	2019-04-10 15:33:37.309922136 +0200
@@ -0,0 +1,8 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, ./*.h)
+
+%copy_includes path=freetype/internal/services
diff -ruN freetype-2.10.0/include/freetype/mmakefile freetype-2.10.0.aros/include/freetype/mmakefile
--- freetype-2.10.0/include/freetype/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/mmakefile	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,66 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, *.h)
+
+
+ifeq ($(findstring target,host kernel target),)
+$(error %copy_includes: compiler argument (target) has to be host, kernel or target)
+endif
+
+ifneq (,)
+TMP_DIR := 
+$(eval TMP_DIRREMAIN := $$$(TMP_DIR))
+TMP_DIRFIRST := $(subst $(TMP_DIRREMAIN),,$(TMP_DIR))
+BD_INCL_FILES := $(subst ,$(GENINCDIR)/freetype,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/,$(notdir $(INCLUDE_FILES)))
+ifeq ($(TMP_DIRFIRST),/)
+BD_INC_PATH := /
+else
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)//
+endif
+else
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/freetype/,$(INCLUDE_FILES))
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)/
+endif
+
+$(BD_INCL_FILES) : $(GENINCDIR)/freetype/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+
+ifeq (target,target)
+
+ifneq (,)
+BD_INCL_FILES2 := $(subst ,$(AROS_INCLUDES)/freetype,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/,$(notdir $(INCLUDE_FILES)))
+else
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/freetype/,$(INCLUDE_FILES))
+endif
+
+BD_INCL_FILES += $(BD_INCL_FILES2)
+
+$(BD_INCL_FILES2) : $(AROS_INCLUDES)/freetype/% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+endif
+
+#MM
+includes-copy : $(BD_INCL_FILES)
+
+.PHONY: includes-copy
+
+$(BD_INCL_FILES) : | $(dir $(BD_INCL_FILES))
+
+setup :: $(dir $(BD_INCL_FILES))
+
+GLOB_MKDIRS += $(dir $(BD_INCL_FILES))
+
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/include/freetype/mmakefile.src freetype-2.10.0.aros/include/freetype/mmakefile.src
--- freetype-2.10.0/include/freetype/mmakefile.src	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/freetype/mmakefile.src	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,8 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, *.h)
+
+%copy_includes path=freetype
diff -ruN freetype-2.10.0/include/mmakefile freetype-2.10.0.aros/include/mmakefile
--- freetype-2.10.0/include/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/mmakefile	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,66 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, *.h)
+
+
+ifeq ($(findstring target,host kernel target),)
+$(error %copy_includes: compiler argument (target) has to be host, kernel or target)
+endif
+
+ifneq (,)
+TMP_DIR := 
+$(eval TMP_DIRREMAIN := $$$(TMP_DIR))
+TMP_DIRFIRST := $(subst $(TMP_DIRREMAIN),,$(TMP_DIR))
+BD_INCL_FILES := $(subst ,$(GENINCDIR)/.,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/./,$(notdir $(INCLUDE_FILES)))
+ifeq ($(TMP_DIRFIRST),/)
+BD_INC_PATH := /
+else
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)//
+endif
+else
+BD_INCL_FILES := $(addprefix $(GENINCDIR)/./,$(INCLUDE_FILES))
+BD_INC_PATH := $(SRCDIR)/$(CURDIR)/
+endif
+
+$(BD_INCL_FILES) : $(GENINCDIR)/./% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+
+ifeq (target,target)
+
+ifneq (,)
+BD_INCL_FILES2 := $(subst ,$(AROS_INCLUDES)/.,$(dir $(INCLUDE_FILES)))
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/./,$(notdir $(INCLUDE_FILES)))
+else
+BD_INCL_FILES2 := $(addprefix $(AROS_INCLUDES)/./,$(INCLUDE_FILES))
+endif
+
+BD_INCL_FILES += $(BD_INCL_FILES2)
+
+$(BD_INCL_FILES2) : $(AROS_INCLUDES)/./% : $(BD_INC_PATH)%
+	$(Q)$(CP) $< $@
+endif
+
+#MM
+includes-copy : $(BD_INCL_FILES)
+
+.PHONY: includes-copy
+
+$(BD_INCL_FILES) : | $(dir $(BD_INCL_FILES))
+
+setup :: $(dir $(BD_INCL_FILES))
+
+GLOB_MKDIRS += $(dir $(BD_INCL_FILES))
+
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/include/mmakefile.src freetype-2.10.0.aros/include/mmakefile.src
--- freetype-2.10.0/include/mmakefile.src	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/include/mmakefile.src	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,8 @@
+include $(SRCDIR)/config/aros.cfg
+
+#MM
+workbench-libs-freetype-includes : includes-copy
+
+INCLUDE_FILES := $(call WILDCARD, *.h)
+
+%copy_includes
diff -ruN freetype-2.10.0/mmakefile freetype-2.10.0.aros/mmakefile
--- freetype-2.10.0/mmakefile	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/mmakefile	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,2189 @@
+# $Id: mmakefile.src 55827 2019-03-15 03:55:40Z NicJA $
+
+include $(SRCDIR)/config/aros.cfg
+
+#MM- workbench-libs-freetype-complete : \
+#MM     workbench-libs-freetype-linklib \
+#MM     workbench-libs-freetype-module
+
+FT2AROSBUILDDIR := $(SRCDIR)/$(CURDIR)/builds/aros
+
+TARGET_FUNCINSTR := yes
+
+FT2AUXFILES := \
+    cache/ftcache \
+    gzip/ftgzip \
+    lzw/ftlzw \
+    psaux/psaux \
+    psnames/psnames
+
+#    gxvalid/gxvalid \
+#    otvalid/otvalid
+
+FT2RASTFILES := \
+    raster/raster \
+    smooth/smooth
+
+FT2FONTFILES := \
+    cff/cff \
+    sfnt/sfnt \
+    truetype/truetype \
+    type1/type1 \
+    cid/type1cid \
+    type42/type42 \
+    pcf/pcf \
+    pfr/pfr \
+    winfonts/winfnt \
+    bdf/bdf
+    
+
+FT2HINTFILES := \
+    autofit/autofit
+FT2HINTFILES += \
+    pshinter/pshinter
+
+FT2BASEFILES := \
+    ftapi \
+    ftinit \
+    ftdebug \
+    ftsystem
+    
+FT2BASEEXTFILES := \
+    ftbbox \
+    ftbdf \
+    ftbitmap \
+    ftcid \
+    ftfstype \
+    ftgasp \
+    ftglyph \
+    ftgxval \
+    ftmm \
+    ftotval \
+    ftpatent \
+    ftpfr \
+    ftstroke \
+    ftsynth \
+    fttype1 \
+    ftwinfnt
+
+# substitute BASEFILES with AROS specific versions
+FT2BASEARCHFILES  := $(basename $(wildcard $(FT2AROSBUILDDIR)/src/base/*.c))
+FT2BASENARCHFILES := $(addprefix src/base/,ftbase $(filter-out $(notdir $(FT2BASEARCHFILES)),$(FT2BASEFILES) $(FT2BASEEXTFILES)))
+
+SHFILES := \
+    ftglyphengine \
+    kerning \
+    glyph \
+    openengine \
+    closeengine \
+    setinfoa \
+    obtaininfoa \
+    releaseinfoa
+
+USER_INCLUDES := -I$(SRCDIR)/$(CURDIR)/src $(addprefix -I,$(DIRS))
+
+# Unfortunately, this code is not yet gcc 4.6.1 paranoia clean
+NOWARN_FLAGS := $(NOWARN_ERROR)
+USER_CFLAGS := $(NOWARN_FLAGS)
+USER_CPPFLAGS := -DFT2_BUILD_LIBRARY
+
+#MM- workbench-libs : workbench-libs-freetype-module
+#MM workbench-libs-freetype-linklib : workbench-libs-freetype-includes workbench-libs-freetype-pkgconfig
+#MM workbench-libs-freetype-module : workbench-libs-freetype-includes
+#MM- workbench-libs-freetype-linklibs : workbench-libs-freetype-linklib workbench-libs-freetype-module-linklib
+
+FT2FILES := $(addprefix src/,$(FT2AUXFILES) $(FT2RASTFILES) $(FT2FONTFILES) $(FT2HINTFILES)) $(FT2BASEARCHFILES) $(FT2BASENARCHFILES)
+
+
+# assign and generate the local variables used in this macro
+workbench-libs-freetype-linklib_LIBNAME           := freetype2.static
+workbench-libs-freetype-linklib_LINKLIB           := $(AROS_LIB)/libfreetype2.static.a
+
+workbench-libs-freetype-linklib_FILES             ?= $(FT2FILES)
+workbench-libs-freetype-linklib_ASMFILES          := 
+workbench-libs-freetype-linklib_OBJCFILES         := 
+workbench-libs-freetype-linklib_CXXFILES          := 
+
+workbench-libs-freetype-linklib_OBJDIR            ?= $(OBJDIR)/freetype2_static
+workbench-libs-freetype-linklib_ARCHOBJS          := $(wildcard $(workbench-libs-freetype-linklib_OBJDIR)/arch/*.o)
+ifeq (no,no)
+    workbench-libs-freetype-linklib_ARCHFILES     := $(basename $(notdir $(workbench-libs-freetype-linklib_ARCHOBJS)))
+else
+    workbench-libs-freetype-linklib_ARCHFILES     := $(basename $(patsubst $(workbench-libs-freetype-linklib_OBJDIR)/%,%,$(workbench-libs-freetype-linklib_ARCHOBJS)))
+endif
+workbench-libs-freetype-linklib_C_NARCHFILES      := $(filter-out $(workbench-libs-freetype-linklib_ARCHFILES),$(workbench-libs-freetype-linklib_FILES))
+workbench-libs-freetype-linklib_C_FILES           ?= $(workbench-libs-freetype-linklib_C_NARCHFILES)
+workbench-libs-freetype-linklib_CXX_NARCHFILES    := $(filter-out $(workbench-libs-freetype-linklib_ARCHFILES),$(workbench-libs-freetype-linklib_CXXFILES))
+workbench-libs-freetype-linklib_CXX_FILES         ?= $(workbench-libs-freetype-linklib_CXX_NARCHFILES)
+workbench-libs-freetype-linklib_OBJC_NARCHFILES   := $(filter-out $(workbench-libs-freetype-linklib_ARCHFILES),$(workbench-libs-freetype-linklib_OBJCFILES))
+workbench-libs-freetype-linklib_OBJC_FILES        ?= $(workbench-libs-freetype-linklib_OBJC_NARCHFILES)
+
+ifeq (no,no)
+    workbench-libs-freetype-linklib_OBJ_FILES     ?= $(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(workbench-libs-freetype-linklib_C_NARCHFILES:=.o) $(workbench-libs-freetype-linklib_CXX_NARCHFILES:=.o) $(workbench-libs-freetype-linklib_ASMFILES:=.o) $(workbench-libs-freetype-linklib_OBJC_NARCHFILES:=.o)))
+else
+    workbench-libs-freetype-linklib_OBJ_FILES     ?= $(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(workbench-libs-freetype-linklib_C_NARCHFILES:=.o) $(workbench-libs-freetype-linklib_CXX_NARCHFILES:=.o) $(workbench-libs-freetype-linklib_ASMFILES:=.o) $(workbench-libs-freetype-linklib_OBJC_NARCHFILES:=.o))
+endif
+workbench-libs-freetype-linklib_OBJS              ?= $(workbench-libs-freetype-linklib_ARCHOBJS) $(workbench-libs-freetype-linklib_OBJ_FILES) 
+workbench-libs-freetype-linklib_DEPS              := $(patsubst %.o,%.d,$(workbench-libs-freetype-linklib_OBJS))
+
+workbench-libs-freetype-linklib_CPPFLAGS          := $(CPPFLAGS)
+ifneq (,)
+    workbench-libs-freetype-linklib_CPPFLAGS      += -I
+endif
+workbench-libs-freetype-linklib_CFLAGS            := $(CFLAGS)
+workbench-libs-freetype-linklib_CXXFLAGS          := $(CXXFLAGS)
+ifeq ($(TARGET_LTO),yes)
+ifeq (target,target)
+        workbench-libs-freetype-linklib_CFLAGS    := $(strip $(LTO_CFLAGS) $(workbench-libs-freetype-linklib_CFLAGS))
+        workbench-libs-freetype-linklib_CXXFLAGS  := $(strip $(LTO_CFLAGS) $(workbench-libs-freetype-linklib_CXXFLAGS))
+endif
+endif
+workbench-libs-freetype-linklib_AFLAGS            := $(AFLAGS)
+workbench-libs-freetype-linklib_DFLAGS            := 
+ifneq (,)
+    workbench-libs-freetype-linklib_DFLAGS        := 
+else
+    workbench-libs-freetype-linklib_DFLAGS        := $(workbench-libs-freetype-linklib_CFLAGS)
+endif
+workbench-libs-freetype-linklib_DXXFLAGS          := 
+ifneq (,)
+    workbench-libs-freetype-linklib_DXXFLAGS      := 
+else
+    workbench-libs-freetype-linklib_DXXFLAGS      := $(workbench-libs-freetype-linklib_CXXFLAGS)
+endif
+
+.PHONY : workbench-libs-freetype-linklib workbench-libs-freetype-linklib-clean workbench-libs-freetype-linklib-quick
+
+#MM
+workbench-libs-freetype-linklib-quick : workbench-libs-freetype-linklib
+
+#MM workbench-libs-freetype-linklib : includes-generate-deps
+workbench-libs-freetype-linklib : $(workbench-libs-freetype-linklib_LINKLIB)
+
+ifneq ($(filter $(TARGET),workbench-libs-freetype-linklib workbench-libs-freetype-linklib-quick),)
+
+
+workbench-libs-freetype-linklib_CXXABSBASENAMES := $(foreach workbench-libs-freetype-linklib_CXXBASE,$(workbench-libs-freetype-linklib_CXX_FILES),$(if $(filter /%,$(workbench-libs-freetype-linklib_CXXBASE)),$(workbench-libs-freetype-linklib_CXXBASE),$(abspath $(SRCDIR)/$(CURDIR)/$(workbench-libs-freetype-linklib_CXXBASE))))
+
+ifneq ($(workbench-libs-freetype-linklib_CXXABSBASENAMES),)
+
+workbench-libs-freetype-linklib_CXXBASENAMES := $(basename $(workbench-libs-freetype-linklib_CXXABSBASENAMES))
+
+# Identify the "real" c++ files from the passed in basenames
+workbench-libs-freetype-linklib_MCXX_FILES  := $(strip $(foreach workbench-libs-freetype-linklib_CXXBASE,$(workbench-libs-freetype-linklib_CXXABSBASENAMES), $(firstword $(wildcard $(foreach workbench-libs-freetype-linklib_EXT, $(AROS_CXXEXTS),$(addsuffix .$(workbench-libs-freetype-linklib_EXT),$(workbench-libs-freetype-linklib_CXXBASE)))))))
+
+ifeq (,)
+workbench-libs-freetype-linklib_MCXX_SRCWILDCARD := %
+else
+workbench-libs-freetype-linklib_MCXX_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-linklib_OBJDIR),)
+  workbench-libs-freetype-linklib_CXXTARGETS := $(notdir $(workbench-libs-freetype-linklib_CXXBASENAMES:=.o))
+  workbench-libs-freetype-linklib_CXXDTARGETS := $(notdir $(workbench-libs-freetype-linklib_CXXBASENAMES:=.d))
+  workbench-libs-freetype-linklib_MCXX_WILDCARD := %
+else
+  workbench-libs-freetype-linklib_CXXTARGETS := $(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(workbench-libs-freetype-linklib_CXXBASENAMES:=.o)))
+  workbench-libs-freetype-linklib_CXXDTARGETS := $(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(workbench-libs-freetype-linklib_CXXBASENAMES:=.d)))
+  workbench-libs-freetype-linklib_MCXX_WILDCARD := $(workbench-libs-freetype-linklib_OBJDIR)/%
+
+  # Be sure that all source files are generated
+  $(workbench-libs-freetype-linklib_CXXTARGETS) $(workbench-libs-freetype-linklib_CXXDTARGETS) : | $(workbench-libs-freetype-linklib_MCXX_FILES)
+endif
+
+# Adjust compiler flags to suit C++
+workbench-libs-freetype-linklib_MCXX_CPPFLAGS := $(workbench-libs-freetype-linklib_CPPFLAGS)
+workbench-libs-freetype-linklib_CXXFLAGS := $(workbench-libs-freetype-linklib_CXXFLAGS)
+ifeq ($(workbench-libs-freetype-linklib_DXXFLAGS),)
+  workbench-libs-freetype-linklib_DXXFLAGS := $(workbench-libs-freetype-linklib_CXXFLAGS)
+else
+  workbench-libs-freetype-linklib_DXXFLAGS := $(workbench-libs-freetype-linklib_DXXFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,host)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(HOST_CXX) $(HOST_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(HOST_STRIP)
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(HOST_CC) $(HOST_SYSROOT))
+  workbench-libs-freetype-linklib_CXXCMD:=$(HOST_CXX)
+  workbench-libs-freetype-linklib_MCXX_CPPFLAGS := $(strip $(HOST_MCXX_CPPFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS) $(workbench-libs-freetype-linklib_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-linklib_CXXFLAGS := $(strip $(HOST_CXXFLAGS) $(workbench-libs-freetype-linklib_CXXFLAGS))
+  workbench-libs-freetype-linklib_DXXFLAGS := $(strip $(HOST_CXXFLAGS) $(workbench-libs-freetype-linklib_DXXFLAGS))
+  workbench-libs-freetype-linklib_CXXIQUOTE:=$(HOST_IQUOTE)
+  workbench-libs-freetype-linklib_CXXIQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,target)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(AROS_CXX) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(TARGET_STRIP)
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+  workbench-libs-freetype-linklib_CXXCMD:=$(strip $(AROS_CXX) $(TARGET_SYSROOT))
+  workbench-libs-freetype-linklib_MCXX_CPPFLAGS := $(strip $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS) $(workbench-libs-freetype-linklib_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-linklib_CXXFLAGS := $(strip $(workbench-libs-freetype-linklib_CXXFLAGS) $(SAFETY_CFLAGS))
+  workbench-libs-freetype-linklib_DXXFLAGS := $(workbench-libs-freetype-linklib_DXXFLAGS)
+  workbench-libs-freetype-linklib_CXXIQUOTE:=$(CFLAGS_IQUOTE)
+  workbench-libs-freetype-linklib_CXXIQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,kernel)
+  KERNEL_CXX ?= $(KERNEL_CC)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(KERNEL_CXX) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(ECHO) >/dev/null
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+  workbench-libs-freetype-linklib_CXXCMD:=$(strip $(KERNEL_CXX) $(KERNEL_SYSROOT))
+  workbench-libs-freetype-linklib_CXXFLAGS := $(strip $(KERNEL_MCXX_CPPFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS) $(workbench-libs-freetype-linklib_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-linklib_CXXFLAGS := $(strip $(KERNEL_CXXFLAGS) $(workbench-libs-freetype-linklib_CXXFLAGS))
+  workbench-libs-freetype-linklib_DXXFLAGS := $(strip $(KERNEL_CXXFLAGS) $(workbench-libs-freetype-linklib_DXXFLAGS))
+  workbench-libs-freetype-linklib_CXXIQUOTE:=$(KERNEL_IQUOTE)
+  workbench-libs-freetype-linklib_CXXIQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+define cxx_multi_recipe_template
+ $(1).o : $(2)
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$(2)),$(if $(filter $(SRCDIR)/%,$(abspath $(2))),$(patsubst $(SRCDIR)/%,%,$(abspath $(2))),$(patsubst $(TOP)/%,%,$(abspath $(2)))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$(2))))"
+	$(Q)$(IF) $(workbench-libs-freetype-linklib_CXXCMD) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_CXXIQUOTE) . $(workbench-libs-freetype-linklib_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-linklib_CXXFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))"\" -c $(2) -o $(1).o > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(2): $(workbench-libs-freetype-linklib_CXXCMD) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_CXXIQUOTE) . $(workbench-libs-freetype-linklib_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-linklib_CXXFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))\" -c $(2) -o $(1).o" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(workbench-libs-freetype-linklib_CXXCMD) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-linklib_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_CXXIQUOTE) . $(workbench-libs-freetype-linklib_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-linklib_CXXFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))\" -c $(2) -o $(1).o" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+ $(1).d : $(2)
+	$(Q)$(IF) $(TEST) ! -d $(dir $(1).d) ; then $(MKDIR) $(dir $(1).d) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$(2)),$(if $(filter $(SRCDIR)/%,$(abspath $(2))),$(patsubst $(SRCDIR)/%,%,$(abspath $(2))),$(patsubst $(TOP)/%,%,$(abspath $(2)))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$(2))))..."
+	$(Q)AROS_CC="$(workbench-libs-freetype-linklib_CXXCMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-linklib_DXXFLAGS) $(workbench-libs-freetype-linklib_MCXX_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $(2) -o $(1).d
+endef
+ifeq ($(workbench-libs-freetype-linklib_OBJDIR),)
+  $(foreach workbench-libs-freetype-linklib_CXXFILE,$(workbench-libs-freetype-linklib_MCXX_FILES),$(eval $(call cxx_multi_recipe_template,$(notdir $(basename $(workbench-libs-freetype-linklib_CXXFILE))),$(workbench-libs-freetype-linklib_CXXFILE))))
+else
+  $(foreach workbench-libs-freetype-linklib_CXXFILE,$(workbench-libs-freetype-linklib_MCXX_FILES),$(eval $(call cxx_multi_recipe_template,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(basename $(workbench-libs-freetype-linklib_CXXFILE)))),$(workbench-libs-freetype-linklib_CXXFILE))))
+endif
+
+endif
+
+
+ifneq ($(workbench-libs-freetype-linklib_OBJC_FILES),)
+
+ifeq (,)
+workbench-libs-freetype-linklib_MOBJC_SRCWILDCARD := %
+else
+workbench-libs-freetype-linklib_MOBJC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-linklib_OBJDIR),)
+  workbench-libs-freetype-linklib_MOBJC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-linklib_OBJC_FILES))
+  workbench-libs-freetype-linklib_MOBJC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-linklib_OBJC_FILES))
+  workbench-libs-freetype-linklib_MOBJC_WILDCARD := %
+else
+  workbench-libs-freetype-linklib_MOBJC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(workbench-libs-freetype-linklib_OBJC_FILES)))
+  workbench-libs-freetype-linklib_MOBJC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(workbench-libs-freetype-linklib_OBJC_FILES)))
+  workbench-libs-freetype-linklib_MOBJC_WILDCARD := $(workbench-libs-freetype-linklib_OBJDIR)/%
+
+  # Be sure that all .m files are generated
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : | $(addsuffix .m,$(workbench-libs-freetype-linklib_OBJC_FILES))
+
+  # Be sure that all .m files are found
+  workbench-libs-freetype-linklib_MOBJC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+  workbench-libs-freetype-linklib_MOBJC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-linklib_OBJC_FILES))) | sed 's/\(.\):\//\/\1\//g')
+  workbench-libs-freetype-linklib_MOBJC_DIRS := $(foreach dir, $(workbench-libs-freetype-linklib_MOBJC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-linklib_MOBJC_SRCDIR)/$(CURDIR)/$(dir)))
+  ifneq ($(workbench-libs-freetype-linklib_MOBJC_DIRS),)
+    workbench-libs-freetype-linklib_MOBJC_DIRS := $(shell echo $(workbench-libs-freetype-linklib_MOBJC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.m $(workbench-libs-freetype-linklib_MOBJC_DIRS)
+  endif
+endif
+
+# Define the use of cross compiler
+ifeq ($(TARGET_OBJC),)
+  workbench-libs-freetype-linklib_CC := $(TARGET_CC)
+else
+  workbench-libs-freetype-linklib_CC := $(TARGET_OBJC)
+endif
+
+# Adjust compiler flags to suit ObjC
+workbench-libs-freetype-linklib_MOBJC_CPPFLAGS := $(workbench-libs-freetype-linklib_CPPFLAGS)
+workbench-libs-freetype-linklib_OBJCFLAGS := $(workbench-libs-freetype-linklib_CFLAGS)
+workbench-libs-freetype-linklib_OBJCFLAGS := $(workbench-libs-freetype-linklib_OBJCFLAGS) -isystem $(AROS_DEVELOPER)/include
+workbench-libs-freetype-linklib_OBJCFLAGS := $(subst -Wno-pointer-sign,, $(subst -Werror-implicit-function-declaration,, $(workbench-libs-freetype-linklib_OBJCFLAGS)))
+ifeq ($(workbench-libs-freetype-linklib_DFLAGS),)
+  workbench-libs-freetype-linklib_OBJCDFLAGS := $(workbench-libs-freetype-linklib_CFLAGS)
+else
+  workbench-libs-freetype-linklib_OBJCDFLAGS := $(workbench-libs-freetype-linklib_DFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(workbench-libs-freetype-linklib_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(TARGET_STRIP)
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : CMD:=$(strip $(workbench-libs-freetype-linklib_CC) $(TARGET_SYSROOT))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_MOBJC_CPPFLAGS:=$(strip $(workbench-libs-freetype-linklib_MOBJC_CPPFLAGS) $(workbench-libs-freetype-linklib_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCFLAGS:=$(strip $(workbench-libs-freetype-linklib_OBJCFLAGS) $(SAFETY_CFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCDFLAGS:=$(workbench-libs-freetype-linklib_OBJCDFLAGS)
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(CFLAGS_IQUOTE)
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(HOST_OBJC) $(HOST_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(HOST_STRIP)
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(HOST_CC) $(HOST_SYSROOT))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : CMD:=$(HOST_OBJC)
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_MOBJC_CPPFLAGS:=$(strip $(HOST_MOBJC_CPPFLAGS) $(workbench-libs-freetype-linklib_MOBJC_CPPFLAGS) $(workbench-libs-freetype-linklib_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-linklib_OBJCFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCDFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-linklib_OBJCDFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(HOST_IQUOTE)
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+  KERNEL_OBJC ?= $(KERNEL_CC)
+  workbench-libs-freetype-linklib_LINK ?= $(strip $(KERNEL_OBJC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+  workbench-libs-freetype-linklib_STRIP ?= $(ECHO) >/dev/null
+  workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : CMD:=$(strip $(KERNEL_OBJC) $(KERNEL_SYSROOT))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_MOBJC_CPPFLAGS:=$(strip $(KERNEL_MOBJC_CPPFLAGS) $(workbench-libs-freetype-linklib_MOBJC_CPPFLAGS) $(workbench-libs-freetype-linklib_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-linklib_OBJCFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_OBJCDFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-linklib_OBJCDFLAGS))
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(KERNEL_IQUOTE)
+  $(workbench-libs-freetype-linklib_MOBJC_TARGETS) $(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-linklib_MOBJC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-linklib_MOBJC_CPPFLAGS)
+$(workbench-libs-freetype-linklib_MOBJC_TARGETS) : CFLAGS := $(workbench-libs-freetype-linklib_OBJCFLAGS)
+$(workbench-libs-freetype-linklib_MOBJC_TARGETS) : $(workbench-libs-freetype-linklib_MOBJC_WILDCARD).o : $(workbench-libs-freetype-linklib_MOBJC_SRCWILDCARD).m
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-linklib_MOBJC_DTARGETS) : $(workbench-libs-freetype-linklib_MOBJC_WILDCARD).d : $(workbench-libs-freetype-linklib_MOBJC_SRCWILDCARD).m
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-linklib_OBJCDFLAGS) $(workbench-libs-freetype-linklib_MOBJC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+endif
+
+
+ifeq (,)
+workbench-libs-freetype-linklib_MC_SRCWILDCARD := %
+else
+workbench-libs-freetype-linklib_MC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-linklib_OBJDIR),)
+workbench-libs-freetype-linklib_MC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-linklib_C_FILES))
+workbench-libs-freetype-linklib_MC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-linklib_C_FILES))
+workbench-libs-freetype-linklib_MC_TGTWILDCARD := %
+else
+ifeq (no,no)
+    workbench-libs-freetype-linklib_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(workbench-libs-freetype-linklib_C_FILES))))
+    workbench-libs-freetype-linklib_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(notdir $(workbench-libs-freetype-linklib_C_FILES))))
+else
+ifeq (,)
+    workbench-libs-freetype-linklib_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(workbench-libs-freetype-linklib_C_FILES)))
+    workbench-libs-freetype-linklib_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(workbench-libs-freetype-linklib_C_FILES)))
+else
+    workbench-libs-freetype-linklib_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-linklib_C_FILES))))
+    workbench-libs-freetype-linklib_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-linklib_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-linklib_C_FILES))))
+endif
+endif
+workbench-libs-freetype-linklib_MC_TGTWILDCARD := $(workbench-libs-freetype-linklib_OBJDIR)/%
+
+# Be sure that all .c files are generated
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : | $(addsuffix .c,$(workbench-libs-freetype-linklib_C_FILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-linklib_MC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-linklib_MC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-linklib_C_FILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-linklib_MC_DIRS := $(foreach dir, $(workbench-libs-freetype-linklib_MC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-linklib_MC_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-linklib_MC_DIRS),)
+    workbench-libs-freetype-linklib_MC_DIRS := $(shell echo $(workbench-libs-freetype-linklib_MC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.c $(workbench-libs-freetype-linklib_MC_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-linklib_MC_CPPFLAGS := $(workbench-libs-freetype-linklib_CPPFLAGS)
+workbench-libs-freetype-linklib_CFLAGS := $(workbench-libs-freetype-linklib_CFLAGS)
+ifeq ($(workbench-libs-freetype-linklib_DFLAGS),)
+  workbench-libs-freetype-linklib_DFLAGS := $(workbench-libs-freetype-linklib_CFLAGS)
+else
+  workbench-libs-freetype-linklib_DFLAGS := $(workbench-libs-freetype-linklib_DFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+workbench-libs-freetype-linklib_LINK ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+workbench-libs-freetype-linklib_STRIP ?= $(TARGET_STRIP)
+workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : CMD:=$(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_MC_CPPFLAGS:=$(strip $(workbench-libs-freetype-linklib_MC_CPPFLAGS) $(workbench-libs-freetype-linklib_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_CFLAGS:=$(strip $(workbench-libs-freetype-linklib_CFLAGS) $(SAFETY_CFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_DFLAGS:=$(workbench-libs-freetype-linklib_DFLAGS)
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(CFLAGS_IQUOTE)
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+workbench-libs-freetype-linklib_LINK ?= $(strip $(HOST_CC) $(HOST_LDFLAGS))
+workbench-libs-freetype-linklib_STRIP ?= $(HOST_STRIP)
+workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $HOST_CC) $(HOST_SYSROOT))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : CMD:=$(HOST_CC)
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_MC_CPPFLAGS:=$(strip $(HOST_MC_CPPFLAGS) $(workbench-libs-freetype-linklib_MC_CPPFLAGS) $(workbench-libs-freetype-linklib_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_CFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-linklib_CFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_DFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-linklib_DFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(HOST_IQUOTE)
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+workbench-libs-freetype-linklib_LINK ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+workbench-libs-freetype-linklib_STRIP ?= $(ECHO) >/dev/null
+workbench-libs-freetype-linklib_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : CMD:=$(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_MC_CPPFLAGS:=$(strip $(KERNEL_MC_CPPFLAGS) $(workbench-libs-freetype-linklib_MC_CPPFLAGS) $(workbench-libs-freetype-linklib_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_CFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-linklib_CFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_DFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-linklib_DFLAGS))
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE:=$(KERNEL_IQUOTE)
+$(workbench-libs-freetype-linklib_MC_TARGETS) $(workbench-libs-freetype-linklib_MC_DTARGETS) : workbench-libs-freetype-linklib_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-linklib_MC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-linklib_MC_CPPFLAGS)
+$(workbench-libs-freetype-linklib_MC_TARGETS) : CFLAGS := $(workbench-libs-freetype-linklib_CFLAGS)
+$(workbench-libs-freetype-linklib_MC_TARGETS) : $(workbench-libs-freetype-linklib_MC_TGTWILDCARD).o : $(workbench-libs-freetype-linklib_MC_SRCWILDCARD).c
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-linklib_IQUOTE) $(dir $<) $(workbench-libs-freetype-linklib_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-linklib_IQUOTE) . $(workbench-libs-freetype-linklib_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-linklib_MC_DTARGETS) : $(workbench-libs-freetype-linklib_MC_TGTWILDCARD).d : $(workbench-libs-freetype-linklib_MC_SRCWILDCARD).c
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-linklib_DFLAGS) $(workbench-libs-freetype-linklib_MC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+ifeq ($(workbench-libs-freetype-linklib_OBJDIR),)
+%.o : CPPFLAGS := $(CPPFLAGS)
+%.o : AFLAGS := $(workbench-libs-freetype-linklib_AFLAGS)
+%.o : %.s
+	$(Q)$(ECHO) "Assembling $(notdir $<)..."
+	$(Q)$(IF) $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(notdir $<): $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" >> $(GENDIR)/errors ; \
+			$(CAT) $(GENDIR)/cerrors >> $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Assemble failed: $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+%.o : %.S
+	$(Q)$(ECHO) "Assembling $(notdir $<)..."
+	$(Q)$(IF) $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(notdir $<): $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" >> $(GENDIR)/errors ; \
+			$(CAT) $(GENDIR)/cerrors >> $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Assemble failed: $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+else
+$(workbench-libs-freetype-linklib_OBJDIR)/$(notdir %).o : CPPFLAGS := $(CPPFLAGS)
+$(workbench-libs-freetype-linklib_OBJDIR)/$(notdir %).o : AFLAGS := $(workbench-libs-freetype-linklib_AFLAGS)
+$(workbench-libs-freetype-linklib_OBJDIR)/$(notdir %).o : %.s
+	$(Q)$(ECHO) "Assembling $(notdir $<)..."
+	$(Q)$(IF) $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(notdir $<): $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" >> $(GENDIR)/errors ; \
+			$(CAT) $(GENDIR)/cerrors >> $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Assemble failed: $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+$(workbench-libs-freetype-linklib_OBJDIR)/$(notdir %).o : %.S
+	$(Q)$(ECHO) "Assembling $(notdir $<)..."
+	$(Q)$(IF) $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(notdir $<): $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" >> $(GENDIR)/errors ; \
+			$(CAT) $(GENDIR)/cerrors >> $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Assemble failed: $(strip $(CC) $(TARGET_SYSROOT)) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+endif
+
+
+ifeq (target,target)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_AR:=$(AR)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_RANLIB:=$(RANLIB)
+endif
+ifeq (target,host)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_AR:=$(HOST_AR)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_RANLIB:=$(HOST_RANLIB)
+endif
+ifeq (target,kernel)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_AR:=$(KERNEL_AR)
+$(AROS_LIB)/libfreetype2.static.a : workbench-libs-freetype-linklib_RANLIB:=$(KERNEL_RANLIB)
+endif
+
+$(AROS_LIB)/libfreetype2.static.a : $(workbench-libs-freetype-linklib_OBJS)
+	$(Q)$(ECHO) "Creating   $(subst $(TARGETDIR)/,,$@)..."
+	$(Q)$(workbench-libs-freetype-linklib_AR) $@ $^
+	$(Q)$(workbench-libs-freetype-linklib_RANLIB) $@
+endif
+
+ifneq ($(workbench-libs-freetype-linklib_DEPS),)
+  ifneq (workbench-libs-freetype-linklib workbench-libs-freetype-linklib-quick,)
+    ifneq ($(findstring $(TARGET),workbench-libs-freetype-linklib workbench-libs-freetype-linklib-quick),)
+      -include $(workbench-libs-freetype-linklib_DEPS)
+    endif
+  else
+    ifeq (,$(filter clean% %clean %clean% setup% includes% %setup,$(TARGET)))
+      -include $(workbench-libs-freetype-linklib_DEPS)
+    endif
+  endif
+endif
+
+$(workbench-libs-freetype-linklib_OBJS) $(workbench-libs-freetype-linklib_DEPS) : | $(workbench-libs-freetype-linklib_OBJDIR)
+$(workbench-libs-freetype-linklib_LINKLIB) : | $(AROS_LIB)
+
+setup :: $(workbench-libs-freetype-linklib_OBJDIR) $(AROS_LIB)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-linklib_OBJDIR) $(AROS_LIB)
+
+
+workbench-libs-freetype-linklib-clean : FILES := $(workbench-libs-freetype-linklib_OBJS) $(workbench-libs-freetype-linklib_LINKLIB) $(workbench-libs-freetype-linklib_DEPS)
+#MM
+workbench-libs-freetype-linklib-clean ::
+	$(Q)$(ECHO) "Cleaning up for metatarget workbench-libs-freetype-linklib"
+	$(Q)$(RM) $(FILES)
+
+
+
+
+# We will employ a terrifying, but unavoidable, hack here.
+# genmf has no concept of conditionals (ie %ifeq), and MetaMake
+# ignores GNU Make ifeq() statements, but will process any #MM
+# headed lines in the file.
+# 
+# So, to make the following #MM lines conditional on whether we want
+# to build the ABI, Library, or both, we define build_abi= and 
+# build_library as 'M' to enable, or '' to disable, which allows genmf
+# to do the following conversions:
+# 
+#  #MM includes-foo: foo-include
+#    becomes, when build_abi=M
+#  #MM includes-foo: foo-include   <= Processed by MetaMake
+#    but, when build_abi= ...
+#  #M includes-foo: foo-includes   <= ignored by MetaMake! Yes!
+# 
+# Taking full blame for this: Jason S. McMullan <jason.mcmullan@gmail.com>
+
+# Define metamake targets and their dependencies
+#MM workbench-libs-freetype-module
+#MM workbench-libs-freetype-module-quick
+#MM workbench-libs-freetype-module-makefile
+#MM workbench-libs-freetype-module-clean
+
+# ABI targets:
+#MM- includes-all : workbench-libs-freetype-module-includes
+#MM- linklibs-freetype2: workbench-libs-freetype-module-linklib
+#MM- linklibs-freetype2_rel : workbench-libs-freetype-module-linklib
+#MM- includes-freetype2: workbench-libs-freetype-module-includes
+#MM- includes-freetype2_rel : workbench-libs-freetype-module-includes
+#MM- workbench-libs-freetype-module : workbench-libs-freetype-module-includes core-linklibs linklibs-stdc
+#MM workbench-libs-freetype-module-linklib : workbench-libs-freetype-module-includes includes-stdc
+#MM- workbench-libs-freetype-module-quick : workbench-libs-freetype-module-includes-quick
+#MM workbench-libs-freetype-module-includes : workbench-libs-freetype-module-makefile workbench-libs-freetype-module-includes-dirs \
+#MM     includes-generate-deps workbench-libs-freetype-module-fd
+#MM workbench-libs-freetype-module-includes-quick
+#MM workbench-libs-freetype-module-includes-dirs
+#MM workbench-libs-freetype-module-fd
+
+# Library targets
+#MM workbench-libs-freetype-module-kobj : core-linklibs linklibs-stdc
+#MM workbench-libs-freetype-module-kobj-quick : 
+
+# Library with ABI targets:
+#MM workbench-libs-freetype-module-kobj : workbench-libs-freetype-module-includes core-linklibs linklibs-stdc
+#MM workbench-libs-freetype-module-kobj-quick : workbench-libs-freetype-module-includes-quick
+
+# All MetaMake targets defined by this macro
+workbench-libs-freetype-module_ALLTARGETS       := workbench-libs-freetype-module workbench-libs-freetype-module-quick workbench-libs-freetype-module-clean
+
+ifeq (M,M)
+workbench-libs-freetype-module_ALLTARGETS       += workbench-libs-freetype-module-kobj workbench-libs-freetype-module-kobj-quick
+endif
+
+ifeq (M,M)
+workbench-libs-freetype-module_ALLTARGETS += workbench-libs-freetype-module-includes \
+                 workbench-libs-freetype-module-includes-quick workbench-libs-freetype-module-includes-dirs  \
+                 workbench-libs-freetype-module-linklib workbench-libs-freetype-module-fd
+endif
+
+.PHONY : $(workbench-libs-freetype-module_ALLTARGETS) workbench-libs-freetype-module-makefile
+
+ifeq (freetype2,)
+$(error using %build_module: modname may not be empty)
+endif
+ifeq (library,)
+$(error using %build_module: $(MODTYPE) has to be defined with the type of the module)
+endif
+
+# Default values for variables and arguments
+ifneq (,)
+    workbench-libs-freetype-module_DEFNAME      := freetype2_
+else
+    workbench-libs-freetype-module_DEFNAME      := freetype2
+endif
+workbench-libs-freetype-module_DEFLINKLIBNAME   := $(workbench-libs-freetype-module_DEFNAME)
+ifneq (,)
+    workbench-libs-freetype-module_LINKLIBNAME  := 
+else
+    workbench-libs-freetype-module_LINKLIBNAME  = $(workbench-libs-freetype-module_DEFLINKLIBNAME)
+endif
+workbench-libs-freetype-module_DEFCPPFLAGS      := $(CPPFLAGS)
+ifneq (,)
+    workbench-libs-freetype-module_DEFCPPFLAGS  += -I
+endif
+workbench-libs-freetype-module_DEFDFLAGS        := $(CFLAGS)
+ifneq (,)
+    workbench-libs-freetype-module_DFLAGS       := 
+else
+    workbench-libs-freetype-module_DFLAGS       = $(workbench-libs-freetype-module_DEFDFLAGS)
+endif
+workbench-libs-freetype-module_DEFDXXFLAGS      := $(CXXFLAGS)
+ifneq (,)
+    workbench-libs-freetype-module_DXXFLAGS     := 
+else
+    workbench-libs-freetype-module_DXXFLAGS     = $(workbench-libs-freetype-module_DEFDXXFLAGS)
+endif
+ifeq (target,target)
+ifeq ($(TARGET_LTO),yes)
+workbench-libs-freetype-module_DEFDFLAGS        := $(strip $(LTO_BINARY_CFLAGS) $(CFLAGS_NO_STRICT_ALIASING) $(NOWARN_LTO_TYPE_MISMATCH) $(workbench-libs-freetype-module_DEFDFLAGS))
+workbench-libs-freetype-module_DEFDXXFLAGS      := $(strip $(LTO_BINARY_CFLAGS) $(CFLAGS_NO_STRICT_ALIASING) $(NOWARN_LTO_TYPE_MISMATCH) $(workbench-libs-freetype-module_DEFDXXFLAGS))
+endif
+ifeq ($(TARGET_FUNCINSTR),yes)
+workbench-libs-freetype-module_FUNCINSTR := yes
+workbench-libs-freetype-module_DEFDFLAGS        := $(strip $(FUNCINSTR_FLAGS) $(workbench-libs-freetype-module_DEFDFLAGS))
+workbench-libs-freetype-module_DEFDXXFLAGS      := $(strip $(FUNCINSTR_FLAGS) $(workbench-libs-freetype-module_DEFDXXFLAGS))
+endif
+endif
+OBJDIR                              ?= $(GENDIR)/$(CURDIR)
+ifneq (,)
+workbench-libs-freetype-module_OBJDIR                     := 
+ifneq (,)
+workbench-libs-freetype-module_OBJDIR           := 
+endif
+else
+workbench-libs-freetype-module_OBJDIR := $(OBJDIR)/freetype2
+ifneq (,)
+workbench-libs-freetype-module_OBJDIR           := $(OBJDIR)/$(workbench-libs-freetype-module_DEFNAME)
+endif
+endif
+
+## Create genmodule include Makefile for the module
+##
+workbench-libs-freetype-module-makefile : $(workbench-libs-freetype-module_OBJDIR)/Makefile.$(workbench-libs-freetype-module_DEFNAME)library
+
+
+TMP_OPTS := 
+ifneq (,)
+    TMP_OPTS += -f 
+    TMP_MODNAME := freetype2_
+else
+    TMP_MODNAME := freetype2
+endif
+TMP_TARGET := Makefile.$(TMP_MODNAME)library
+TMP_DEPS := $(GENMODULE)
+ifneq ($(FT2AROSBUILDDIR)/freetype2.conf,)
+    ifeq ($(dir $(FT2AROSBUILDDIR)/freetype2.conf),./)
+        TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+    else
+        TMP_OPTS += -c $(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(FT2AROSBUILDDIR)/freetype2.conf
+    endif 
+else
+    TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/freetype2.conf
+    TMP_DEPS += $(SRCDIR)/$(CURDIR)/freetype2.conf
+endif
+ifneq (,)
+    TMP_OPTS += -s 
+endif
+ifneq ($(workbench-libs-freetype-module_OBJDIR),)
+    TMP_OPTS += -d $(workbench-libs-freetype-module_OBJDIR)
+    TMP_TARGET := $(workbench-libs-freetype-module_OBJDIR)/$(TMP_TARGET)
+endif
+
+$(TMP_TARGET) : OPTS := $(TMP_OPTS)
+$(TMP_TARGET) : MODNAME := freetype2
+$(TMP_TARGET) : MODTYPE := library
+$(TMP_TARGET) : $(TMP_DEPS)
+	$(Q)$(GENMODULE) $(OPTS) writemakefile $(MODNAME) $(MODTYPE)
+
+$(workbench-libs-freetype-module_OBJDIR)/Makefile.$(workbench-libs-freetype-module_DEFNAME)library : | $(workbench-libs-freetype-module_OBJDIR)
+
+
+setup :: $(workbench-libs-freetype-module_OBJDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_OBJDIR)
+
+ifneq (,)
+
+setup :: $(workbench-libs-freetype-module_OBJDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_OBJDIR)
+
+endif
+
+# Do not parse these statements if metatarget is not appropriate
+ifneq ($(filter $(TARGET),$(workbench-libs-freetype-module_ALLTARGETS)),)
+
+# suppress makes warning that the Makefile doesnt yet exist
+# on early passes (it will generate the file as needed though)
+# when we include it.
+-include $(workbench-libs-freetype-module_OBJDIR)/Makefile.$(workbench-libs-freetype-module_DEFNAME)library
+
+workbench-libs-freetype-module_DEFMODDIR        := $($(workbench-libs-freetype-module_DEFNAME)_MODDIR)
+ifeq (no,yes)
+workbench-libs-freetype-module_DEFMODDIR        := $(AROS_DIR_ARCH)/$(workbench-libs-freetype-module_DEFMODDIR)
+endif
+ifneq (,)
+    workbench-libs-freetype-module_MODDIR       := 
+else
+    workbench-libs-freetype-module_MODDIR       := $(workbench-libs-freetype-module_DEFMODDIR)
+endif
+
+## include files generation
+##
+ifneq (,)
+workbench-libs-freetype-module_INCDIR           := 
+else
+workbench-libs-freetype-module_INCDIR           := $(AROSDIR)/$(AROS_DIR_DEVELOPER)/$(AROS_DIR_INCLUDE)
+endif
+workbench-libs-freetype-module_LIBDEFSINC       := $(workbench-libs-freetype-module_OBJDIR)/include/$(workbench-libs-freetype-module_DEFNAME)_libdefs.h
+workbench-libs-freetype-module_DEFLIBDEFSINC    := $(workbench-libs-freetype-module_OBJDIR)/include/$(workbench-libs-freetype-module_DEFNAME)_deflibdefs.h
+
+ifeq (M,M)
+workbench-libs-freetype-module-includes-quick : workbench-libs-freetype-module-includes
+workbench-libs-freetype-module-includes : $(addprefix $(GENINCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) \
+    $(addprefix $(workbench-libs-freetype-module_INCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) \
+    $(workbench-libs-freetype-module_LIBDEFSINC) $(workbench-libs-freetype-module_DEFLIBDEFSINC)
+
+ifneq ($($(workbench-libs-freetype-module_DEFNAME)_INCLUDES),)
+
+ifneq (,)
+    TMP_MODNAME := freetype2_
+else
+    TMP_MODNAME := freetype2
+endif
+
+ifneq ($($(TMP_MODNAME)_INCLUDES),)
+
+TMP_TARGETS := $($(TMP_MODNAME)_INCLUDES)
+
+TMP_DEPS := $(GENMODULE)
+TMP_OPTS :=
+
+ifneq ($(FT2AROSBUILDDIR)/freetype2.conf,)
+    ifeq ($(dir $(FT2AROSBUILDDIR)/freetype2.conf),./)
+        TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+    else
+        TMP_OPTS += -c $(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(FT2AROSBUILDDIR)/freetype2.conf
+    endif 
+else
+    TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/freetype2.conf
+    TMP_DEPS += $(SRCDIR)/$(CURDIR)/freetype2.conf
+endif
+ifneq (,)
+    TMP_OPTS += -s 
+endif
+ifneq ($(workbench-libs-freetype-module_OBJDIR)/include,)
+    TMP_OPTS += -d $(workbench-libs-freetype-module_OBJDIR)/include
+    TMP_TARGETS := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/include/,$(TMP_TARGETS))
+    TMP_GENINCFLAG=$(workbench-libs-freetype-module_OBJDIR)/include/.freetype2.library-includes
+else
+    TMP_GENINCFLAG=$(GENDIR)/$(CURDIR)/.freetype2.library-includes
+endif
+
+$(TMP_TARGETS) : $(TMP_DEPS) $(TMP_GENINCFLAG)
+
+$(TMP_GENINCFLAG) : OPTS := $(TMP_OPTS)
+$(TMP_GENINCFLAG) : MODNAME := freetype2
+$(TMP_GENINCFLAG) : MODTYPE := library
+$(TMP_GENINCFLAG) : $(TMP_DEPS)
+	$(Q)$(ECHO) "Generating $(MODNAME).$(MODTYPE) includes"
+	$(Q)$(GENMODULE) $(OPTS) writeincludes $(MODNAME) $(MODTYPE)
+	$(Q)$(TOUCH) $@
+endif
+
+
+TMP_SRCDIR := $(workbench-libs-freetype-module_OBJDIR)/include
+
+$(addprefix $(GENINCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) : | $(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc
+
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc : COPYSRCDIR := $(workbench-libs-freetype-module_OBJDIR)/include
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc : TGTDIR := $(GENINCDIR)
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc : FILES := $($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc : $(addprefix $(workbench-libs-freetype-module_OBJDIR)/include/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES))
+	$(Q)for f in $(FILES); do \
+		$(IF) ! $(CMP) -s $(COPYSRCDIR)/$$f $(TGTDIR)/$$f ; then \
+			$(CP) $(COPYSRCDIR)/$$f $(TGTDIR)/$$f ; \
+		fi ; \
+	done
+	$(Q)$(TOUCH) $@
+
+
+TMP_SRCDIR := $(workbench-libs-freetype-module_OBJDIR)/include
+
+$(addprefix $(workbench-libs-freetype-module_INCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) : | $(workbench-libs-freetype-module_OBJDIR)/freetype2_incs
+
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_incs : COPYSRCDIR := $(workbench-libs-freetype-module_OBJDIR)/include
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_incs : TGTDIR := $(workbench-libs-freetype-module_INCDIR)
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_incs : FILES := $($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)
+$(workbench-libs-freetype-module_OBJDIR)/freetype2_incs : $(addprefix $(workbench-libs-freetype-module_OBJDIR)/include/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES))
+	$(Q)for f in $(FILES); do \
+		$(IF) ! $(CMP) -s $(COPYSRCDIR)/$$f $(TGTDIR)/$$f ; then \
+			$(CP) $(COPYSRCDIR)/$$f $(TGTDIR)/$$f ; \
+		fi ; \
+	done
+	$(Q)$(TOUCH) $@
+
+workbench-libs-freetype-module_INCDIRS := $(filter-out ./,$(sort $(dir $($(workbench-libs-freetype-module_DEFNAME)_INCLUDES))))
+
+TMPfreetype2_INCDIRS := \
+    $(workbench-libs-freetype-module_OBJDIR)/include $(addprefix $(workbench-libs-freetype-module_OBJDIR)/include/,$(workbench-libs-freetype-module_INCDIRS)) \
+    $(GENINCDIR) $(addprefix $(GENINCDIR)/,$(workbench-libs-freetype-module_INCDIRS)) \
+    $(workbench-libs-freetype-module_INCDIR) $(addprefix $(workbench-libs-freetype-module_INCDIR)/,$(workbench-libs-freetype-module_INCDIRS))
+
+workbench-libs-freetype-module-includes-dirs :: $(TMPfreetype2_INCDIRS)
+
+GLOB_MKDIRS += $(TMPfreetype2_INCDIRS)
+
+
+endif
+
+endif
+
+
+TMP_OPTS := 
+ifneq (,)
+    TMP_OPTS += -f 
+    TMP_MODNAME := freetype2_
+else
+    TMP_MODNAME := freetype2
+endif
+TMP_TARGET := $(TMP_MODNAME)_libdefs.h
+TMP_DEPS := $(GENMODULE)
+ifneq ($(FT2AROSBUILDDIR)/freetype2.conf,)
+    ifeq ($(dir $(FT2AROSBUILDDIR)/freetype2.conf),./)
+        TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+    else
+        TMP_OPTS += -c $(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(FT2AROSBUILDDIR)/freetype2.conf
+    endif 
+else
+    TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/freetype2.conf
+    TMP_DEPS += $(SRCDIR)/$(CURDIR)/freetype2.conf
+endif
+ifneq (,)
+    TMP_OPTS += -s 
+endif
+ifneq ($(workbench-libs-freetype-module_OBJDIR)/include,)
+    TMP_OPTS += -d $(workbench-libs-freetype-module_OBJDIR)/include
+    TMP_TARGET := $(workbench-libs-freetype-module_OBJDIR)/include/$(TMP_TARGET)
+endif
+ifneq (,)
+    TMP_OPTS += -v 
+endif
+
+$(TMP_TARGET) : OPTS := $(TMP_OPTS)
+$(TMP_TARGET) : MODNAME := freetype2
+$(TMP_TARGET) : MODTYPE := library
+$(TMP_TARGET) : $(TMP_DEPS)
+	$(Q)$(ECHO) "Generating $(subst $(TARGETDIR)/,,$@)"
+	$(Q)$(GENMODULE) $(OPTS) writelibdefs $(MODNAME) $(MODTYPE)
+
+$(workbench-libs-freetype-module_DEFLIBDEFSINC) : FILENAME := $(workbench-libs-freetype-module_LIBDEFSINC)
+$(workbench-libs-freetype-module_DEFLIBDEFSINC) :
+	$(Q)$(ECHO) "Generating $(subst $(TARGETDIR)/,,$@)"
+	$(Q)$(ECHO) "#define LC_LIBDEFS_FILE \"$(FILENAME)\"" >$@
+
+$(workbench-libs-freetype-module_LIBDEFSINC) $(workbench-libs-freetype-module_DEFLIBDEFSINC) : | $(workbench-libs-freetype-module_OBJDIR)/include
+
+setup :: $(workbench-libs-freetype-module_OBJDIR)/include
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_OBJDIR)/include
+
+
+## Extra genmodule src files generation
+## 
+
+TMP_OPTS :=
+ifneq (,)
+    TMP_OPTS += -f 
+    TMP_MODNAME := freetype2_
+else
+    TMP_MODNAME := freetype2
+endif
+TMP_GENTARGETS := $($(TMP_MODNAME)_STARTFILES) $($(TMP_MODNAME)_ENDFILES)
+TMP_STUBTARGETS := $($(TMP_MODNAME)_LINKLIBFILES) $($(TMP_MODNAME)_RELLINKLIBFILES)
+TMP_GENTARGETS := $(addsuffix .c,$(TMP_GENTARGETS))
+TMP_STUBTARGETS := $(addsuffix .c,$(TMP_STUBTARGETS)) \
+               $(addsuffix .S, $($(TMP_MODNAME)_LINKLIBAFILES) $($(TMP_MODNAME)_RELLINKLIBAFILES))
+
+TMP_DEPS := $(GENMODULE)
+ifneq ($(FT2AROSBUILDDIR)/freetype2.conf,)
+    ifeq ($(dir $(FT2AROSBUILDDIR)/freetype2.conf),./)
+        TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+    else
+        TMP_OPTS += -c $(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(FT2AROSBUILDDIR)/freetype2.conf
+    endif 
+else
+    TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/freetype2.conf
+    TMP_DEPS += $(SRCDIR)/$(CURDIR)/freetype2.conf
+endif
+ifneq (,)
+    TMP_OPTS += -s 
+endif
+ifneq ($(workbench-libs-freetype-module_OBJDIR),)
+    TMP_OPTS += -d $(workbench-libs-freetype-module_OBJDIR)
+    TMP_TARGETDIR := $(shell echo $(workbench-libs-freetype-module_OBJDIR) | sed 's/^\(.\):\//\/\1\//')
+    TMP_GENTARGETS := $(addprefix $(TMP_TARGETDIR)/,$(TMP_GENTARGETS))
+    TMP_GENFILEFLAG=$(TMP_TARGETDIR)/.freetype2.library-genfiles
+else
+    TMP_GENFILEFLAG=$(GENDIR)/$(CURDIR)/.freetype2.library-genfiles
+endif
+ifneq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+    TMP_OPTS += -l $(workbench-libs-freetype-module_OBJDIR)/linklib
+    TMP_STUBTARGETDIR := $(shell echo $(workbench-libs-freetype-module_OBJDIR)/linklib | sed 's/^\(.\):\//\/\1\//')
+    TMP_STUBTARGETS := $(addprefix $(TMP_STUBTARGETDIR)/,$(TMP_STUBTARGETS))
+    TMP_TARGETDIRS += $(workbench-libs-freetype-module_OBJDIR)/linklib
+else
+ifneq ($(workbench-libs-freetype-module_OBJDIR),)
+    TMP_STUBTARGETS := $(addprefix $(TMP_TARGETDIR)/,$(TMP_STUBTARGETS))
+endif
+endif
+
+TMP_TARGETS := $(TMP_GENTARGETS) $(TMP_STUBTARGETS)
+ifneq ($(TMP_TARGETDIRS),)
+$(TMP_TARGETS) : | $(TMP_TARGETDIRS)
+endif
+
+$(TMP_TARGETS) : $(TMP_DEPS) $(TMP_GENFILEFLAG)
+
+$(TMP_GENFILEFLAG) : OPTS := $(TMP_OPTS)
+$(TMP_GENFILEFLAG) : MODNAME := freetype2
+$(TMP_GENFILEFLAG) : MODTYPE := library
+$(TMP_GENFILEFLAG) : $(TMP_DEPS)
+	$(Q)$(ECHO) "Generating support files for module $(MODNAME$(BDID))"
+	$(Q)$(IF) $(TEST) "$(FT2AROSBUILDDIR)/freetype2.conf" = "lib.conf" && $(TEST) -f lib.conf; then \
+		$(ECHO) "WARNING !!! $(CURDIR)/lib.conf may probably be removed"; \
+	fi
+	$(Q)$(IF) $(TEST) -f libdefs.h; then \
+		$(ECHO) "WARNING !!! $(CURDIR)/libdefs.h may probably be removed"; \
+	fi
+	$(Q)$(GENMODULE) $(OPTS) writefiles $(MODNAME) $(MODTYPE)
+	$(Q)$(TOUCH) $@
+
+
+setup :: $(workbench-libs-freetype-module_OBJDIR)/linklib
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_OBJDIR)/linklib
+
+
+ifeq (M,M)
+## Create FD file
+ifeq (,)
+workbench-libs-freetype-module_FDDIR            := $(AROSDIR)/$(AROS_DIR_DEVELOPER)/$(AROS_DIR_SDK)/$(AROS_DIR_FD)
+else
+workbench-libs-freetype-module_FDDIR            := /../$(AROS_DIR_FD)
+endif
+workbench-libs-freetype-module-fd : $(workbench-libs-freetype-module_FDDIR)/freetype2_lib.fd
+
+
+TMP_TARGET := freetype2_lib.fd
+TMP_DEPS := $(GENMODULE)
+TMP_OPTS := 
+ifneq ($(FT2AROSBUILDDIR)/freetype2.conf,)
+    ifeq ($(dir $(FT2AROSBUILDDIR)/freetype2.conf),./)
+        TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(SRCDIR)/$(CURDIR)/$(FT2AROSBUILDDIR)/freetype2.conf
+    else
+        TMP_OPTS += -c $(FT2AROSBUILDDIR)/freetype2.conf
+        TMP_DEPS += $(FT2AROSBUILDDIR)/freetype2.conf
+    endif 
+else
+    TMP_OPTS += -c $(SRCDIR)/$(CURDIR)/freetype2.conf
+    TMP_DEPS += $(SRCDIR)/$(CURDIR)/freetype2.conf
+endif
+ifneq (,)
+    TMP_OPTS += -s 
+endif
+ifneq ($(workbench-libs-freetype-module_FDDIR),)
+    TMP_OPTS += -d $(workbench-libs-freetype-module_FDDIR)
+    TMP_TARGET := $(workbench-libs-freetype-module_FDDIR)/$(TMP_TARGET)
+endif
+
+$(TMP_TARGET) : OPTS := $(TMP_OPTS)
+$(TMP_TARGET) : MODNAME := freetype2
+$(TMP_TARGET) : MODTYPE := library
+$(TMP_TARGET) : $(TMP_DEPS)
+	$(Q)$(ECHO) "Generating $(subst $(TARGETDIR)/,,$@)"
+	$(Q)$(GENMODULE) $(OPTS) writefd $(MODNAME) $(MODTYPE)
+
+$(workbench-libs-freetype-module_FDDIR)/freetype2_lib.fd : | $(workbench-libs-freetype-module_FDDIR)
+
+
+setup :: $(workbench-libs-freetype-module_FDDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_FDDIR)
+
+endif
+
+## Compilation
+##
+workbench-libs-freetype-module_FILES            := $(addprefix $(FT2AROSBUILDDIR)/,$(SHFILES)) $(FT2FILES)
+workbench-libs-freetype-module_OBJCFILES        := 
+workbench-libs-freetype-module_CXXFILES         := $(basename $(call WILDCARD $(foreach CXX_EXT, $(AROS_CXXEXTS), *.$(CXX_EXT))))
+
+workbench-libs-freetype-module_LIBFILES         := 
+workbench-libs-freetype-module_LIBS             := stdc
+
+workbench-libs-freetype-module_FDIRS            := $(sort $(dir $(workbench-libs-freetype-module_FILES)))
+
+workbench-libs-freetype-module_FILEMATCH        = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1)))
+workbench-libs-freetype-module_MATCHARCH        = $(foreach matchfile,$(2),$(foreach archfile,$(1),$(if $(call workbench-libs-freetype-module_FILEMATCH,$(archfile),$(notdir $(matchfile))),$(matchfile),)))
+workbench-libs-freetype-module_FILTERARCH       = $(filter-out $(call workbench-libs-freetype-module_MATCHARCH,$(1),$(2)),$(2))
+workbench-libs-freetype-module_STARTFILES       := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_STARTFILES))
+workbench-libs-freetype-module_ENDFILES         := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_ENDFILES))
+
+workbench-libs-freetype-module_ARCHOBJS         := $(wildcard $(workbench-libs-freetype-module_OBJDIR)/arch/*.o)
+workbench-libs-freetype-module_LIBARCHOBJS      := $(wildcard $(workbench-libs-freetype-module_OBJDIR)/linklib/arch/*.o)
+workbench-libs-freetype-module_ARCHFILES        := $(basename $(notdir $(workbench-libs-freetype-module_ARCHOBJS)))
+workbench-libs-freetype-module_LIBARCHFILES     := $(basename $(notdir $(workbench-libs-freetype-module_LIBARCHOBJS)))
+workbench-libs-freetype-module_C_NARCHFILES     := $(call workbench-libs-freetype-module_FILTERARCH,$(workbench-libs-freetype-module_ARCHFILES),$(workbench-libs-freetype-module_FILES))
+workbench-libs-freetype-module_CXX_NARCHFILES   := $(call workbench-libs-freetype-module_FILTERARCH,$(workbench-libs-freetype-module_ARCHFILES),$(workbench-libs-freetype-module_CXXFILES))
+workbench-libs-freetype-module_OBJC_NARCHFILES  := $(call workbench-libs-freetype-module_FILTERARCH,$(workbench-libs-freetype-module_ARCHFILES),$(workbench-libs-freetype-module_OBJCFILES))
+workbench-libs-freetype-module_NLIBARCHFILES    := $(call workbench-libs-freetype-module_FILTERARCH,$(workbench-libs-freetype-module_LIBARCHFILES),$(workbench-libs-freetype-module_LIBFILES))
+workbench-libs-freetype-module_ARCHNLIBFILES    := $(call workbench-libs-freetype-module_FILTERARCH,$(workbench-libs-freetype-module_LIBFILES),$(workbench-libs-freetype-module_LIBARCHFILES))
+
+workbench-libs-freetype-module_CPPFLAGS         := $(strip $(CPPFLAGS) -I$(workbench-libs-freetype-module_OBJDIR)/include -include $(workbench-libs-freetype-module_DEFLIBDEFSINC))
+ifneq (,)
+workbench-libs-freetype-module_CPPFLAGS         += -I
+endif
+workbench-libs-freetype-module_LINKLIBCPPFLAGS  := $(workbench-libs-freetype-module_CPPFLAGS)
+workbench-libs-freetype-module_CPPFLAGS         += $(strip $($(workbench-libs-freetype-module_DEFNAME)_CPPFLAGS))
+workbench-libs-freetype-module_LINKLIBCPPFLAGS  += $(strip $($(workbench-libs-freetype-module_DEFNAME)_LINKLIBCPPFLAGS))
+workbench-libs-freetype-module_CFLAGS           := $(strip $(CFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_CFLAGS))
+workbench-libs-freetype-module_LINKLIBCFLAGS    := $(strip $(CFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_LINKLIBCFLAGS))
+workbench-libs-freetype-module_CXXFLAGS         := $(strip $(CXXFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_CXXFLAGS))
+ifeq (target,target)
+ifeq ($(TARGET_LTO),yes)
+workbench-libs-freetype-module_LTOFLAGS         ?= $(strip $(LTO_BINARY_CFLAGS) $(CFLAGS_NO_STRICT_ALIASING) $(NOWARN_LTO_TYPE_MISMATCH))
+workbench-libs-freetype-module_CFLAGS           := $(strip $(workbench-libs-freetype-module_LTOFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+workbench-libs-freetype-module_LINKLIBCFLAGS    := $(strip $(workbench-libs-freetype-module_LTOFLAGS) $(workbench-libs-freetype-module_LINKLIBCFLAGS))
+workbench-libs-freetype-module_CXXFLAGS         := $(strip $(workbench-libs-freetype-module_LTOFLAGS) $(workbench-libs-freetype-module_CXXFLAGS))
+endif
+ifeq ($(TARGET_FUNCINSTR),yes)
+workbench-libs-freetype-module_SUBSTNULL        :=
+workbench-libs-freetype-module_SUBSTSPACE       := $(workbench-libs-freetype-module_SUBSTNULL) #
+workbench-libs-freetype-module_SUBSTCOMMA       := ,
+workbench-libs-freetype-module_INSTRFUNCFLAGS   ?= $(strip $(FUNCINSTR_FLAGS) -finstrument-functions-exclude-file-list=$(subst $(workbench-libs-freetype-module_SUBSTSPACE),$(workbench-libs-freetype-module_SUBSTCOMMA),$(strip $($(workbench-libs-freetype-module_DEFNAME)_STARTFILES))))
+workbench-libs-freetype-module_INSTRFUNCLIBS    ?= $(FUNCINSTR_LIBS)
+workbench-libs-freetype-module_CFLAGS           := $(strip $(workbench-libs-freetype-module_INSTRFUNCFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+workbench-libs-freetype-module_CXXFLAGS         := $(strip $(workbench-libs-freetype-module_INSTRFUNCFLAGS) $(workbench-libs-freetype-module_CXXFLAGS))
+workbench-libs-freetype-module_LIBS             += $(workbench-libs-freetype-module_INSTRFUNCLIBS)
+endif
+endif
+workbench-libs-freetype-module_DFLAGS           := $(strip $(workbench-libs-freetype-module_DFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_DFLAGS))
+workbench-libs-freetype-module_LINKLIBDFLAGS    := $(strip $(workbench-libs-freetype-module_DFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_LINKLIBDFLAGS))
+workbench-libs-freetype-module_DXXFLAGS         := $(strip $(workbench-libs-freetype-module_DXXFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_DXXFLAGS))
+
+ifeq (library,library)
+    workbench-libs-freetype-module_LIBSUFFIX    := 
+else
+    workbench-libs-freetype-module_LIBSUFFIX    := .library
+endif
+
+ifeq (,)
+workbench-libs-freetype-module_LIBDIR           := $(AROSDIR)/$(AROS_DIR_DEVELOPER)/$(AROS_DIR_LIB)
+else
+workbench-libs-freetype-module_LIBDIR           := 
+endif
+
+ifeq (M,M)
+workbench-libs-freetype-module_LINKLIBCFILES    := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$($(workbench-libs-freetype-module_DEFNAME)_LINKLIBFILES))
+workbench-libs-freetype-module_LINKLIBAFILES    := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$($(workbench-libs-freetype-module_DEFNAME)_LINKLIBAFILES))
+ifeq ($(strip $($(workbench-libs-freetype-module_DEFNAME)_LINKLIBFILES) $($(workbench-libs-freetype-module_DEFNAME)_LINKLIBAFILES)  $(workbench-libs-freetype-module_ARCHNLIBFILES)),)
+    workbench-libs-freetype-module_LINKLIB      :=
+else
+    workbench-libs-freetype-module_LINKLIB      := $(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a
+    ifneq (freetype2,$(workbench-libs-freetype-module_LINKLIBNAME))
+        workbench-libs-freetype-module_LINKLIB  += $(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a
+    endif
+endif
+workbench-libs-freetype-module_LINKLIBFILES     := $(workbench-libs-freetype-module_LINKLIBCFILES) $(workbench-libs-freetype-module_LINKLIBAFILES)
+
+workbench-libs-freetype-module_RELLINKLIBCFILES := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$($(workbench-libs-freetype-module_DEFNAME)_RELLINKLIBFILES))
+workbench-libs-freetype-module_RELLINKLIBAFILES := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$($(workbench-libs-freetype-module_DEFNAME)_RELLINKLIBAFILES))
+ifeq ($(strip $($(workbench-libs-freetype-module_DEFNAME)_RELLINKLIBFILES) $($(workbench-libs-freetype-module_DEFNAME)_RELLINKLIBAFILES)  $(workbench-libs-freetype-module_ARCHNLIBFILES)),)
+    workbench-libs-freetype-module_RELLINKLIB   :=
+else
+    workbench-libs-freetype-module_RELLINKLIB   := $(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a
+    ifneq (freetype2,$(workbench-libs-freetype-module_LINKLIBNAME))
+        workbench-libs-freetype-module_RELLINKLIB += $(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a
+    endif
+endif
+workbench-libs-freetype-module_RELLINKLIBFILES  := $(workbench-libs-freetype-module_RELLINKLIBCFILES) $(workbench-libs-freetype-module_RELLINKLIBAFILES)
+endif
+
+workbench-libs-freetype-module_ENDOBJS          := $(addsuffix .o,$(workbench-libs-freetype-module_ENDFILES))
+workbench-libs-freetype-module_LINKLIBOBJS      := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_NLIBARCHFILES))) $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/arch/,$(notdir $(workbench-libs-freetype-module_ARCHNLIBFILES))) $(workbench-libs-freetype-module_LINKLIBFILES)) \
+                 
+workbench-libs-freetype-module_RELLINKLIBOBJS   := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_NLIBARCHFILES))) $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/arch/,$(notdir $(workbench-libs-freetype-module_ARCHNLIBFILES))) $(workbench-libs-freetype-module_RELLINKLIBFILES)) \
+                 
+$(workbench-libs-freetype-module_LINKLIBFILES) $(workbench-libs-freetype-module_RELLINKLIBFILES) : | $(workbench-libs-freetype-module_OBJDIR)/linklib
+$(workbench-libs-freetype-module_LINKLIBOBJS) $(workbench-libs-freetype-module_RELLINKLIBOBJS) : | $(workbench-libs-freetype-module_OBJDIR)/linklib
+
+workbench-libs-freetype-module_CCFILES := $(workbench-libs-freetype-module_C_NARCHFILES)
+workbench-libs-freetype-module_TARGETCCFILES    := $(strip $(workbench-libs-freetype-module_STARTFILES) $(workbench-libs-freetype-module_ENDFILES))
+workbench-libs-freetype-module_LINKLIBCCFILES   := $(strip $(workbench-libs-freetype-module_NLIBARCHFILES) $(workbench-libs-freetype-module_LINKLIBCFILES) $(workbench-libs-freetype-module_RELLINKLIBCFILES))
+workbench-libs-freetype-module_LINKLIBCCGENFILES := $(strip $(workbench-libs-freetype-module_LINKLIBCFILES) $(workbench-libs-freetype-module_RELLINKLIBCFILES))
+
+
+workbench-libs-freetype-module_CXXABSBASENAMES := $(foreach workbench-libs-freetype-module_CXXBASE,$(workbench-libs-freetype-module_CXX_NARCHFILES),$(if $(filter /%,$(workbench-libs-freetype-module_CXXBASE)),$(workbench-libs-freetype-module_CXXBASE),$(abspath $(SRCDIR)/$(CURDIR)/$(workbench-libs-freetype-module_CXXBASE))))
+
+ifneq ($(workbench-libs-freetype-module_CXXABSBASENAMES),)
+
+workbench-libs-freetype-module_CXXBASENAMES := $(basename $(workbench-libs-freetype-module_CXXABSBASENAMES))
+
+# Identify the "real" c++ files from the passed in basenames
+workbench-libs-freetype-module_MCXX_FILES  := $(strip $(foreach workbench-libs-freetype-module_CXXBASE,$(workbench-libs-freetype-module_CXXABSBASENAMES), $(firstword $(wildcard $(foreach workbench-libs-freetype-module_EXT, $(AROS_CXXEXTS),$(addsuffix .$(workbench-libs-freetype-module_EXT),$(workbench-libs-freetype-module_CXXBASE)))))))
+
+ifeq (,)
+workbench-libs-freetype-module_MCXX_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MCXX_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR),)
+  workbench-libs-freetype-module_CXXTARGETS := $(notdir $(workbench-libs-freetype-module_CXXBASENAMES:=.o))
+  workbench-libs-freetype-module_CXXDTARGETS := $(notdir $(workbench-libs-freetype-module_CXXBASENAMES:=.d))
+  workbench-libs-freetype-module_MCXX_WILDCARD := %
+else
+  workbench-libs-freetype-module_CXXTARGETS := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_CXXBASENAMES:=.o)))
+  workbench-libs-freetype-module_CXXDTARGETS := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_CXXBASENAMES:=.d)))
+  workbench-libs-freetype-module_MCXX_WILDCARD := $(workbench-libs-freetype-module_OBJDIR)/%
+
+  # Be sure that all source files are generated
+  $(workbench-libs-freetype-module_CXXTARGETS) $(workbench-libs-freetype-module_CXXDTARGETS) : | $(workbench-libs-freetype-module_MCXX_FILES)
+endif
+
+# Adjust compiler flags to suit C++
+workbench-libs-freetype-module_MCXX_CPPFLAGS := $(workbench-libs-freetype-module_CPPFLAGS)
+workbench-libs-freetype-module_CXXFLAGS := $(workbench-libs-freetype-module_CXXFLAGS)
+ifeq ($(workbench-libs-freetype-module_DXXFLAGS),)
+  workbench-libs-freetype-module_DXXFLAGS := $(workbench-libs-freetype-module_CXXFLAGS)
+else
+  workbench-libs-freetype-module_DXXFLAGS := $(workbench-libs-freetype-module_DXXFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,host)
+  workbench-libs-freetype-module_LINK ?= $(strip $(HOST_CXX) $(HOST_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(HOST_CC) $(HOST_SYSROOT))
+  workbench-libs-freetype-module_CXXCMD:=$(HOST_CXX)
+  workbench-libs-freetype-module_MCXX_CPPFLAGS := $(strip $(HOST_MCXX_CPPFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS) $(workbench-libs-freetype-module_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-module_CXXFLAGS := $(strip $(HOST_CXXFLAGS) $(workbench-libs-freetype-module_CXXFLAGS))
+  workbench-libs-freetype-module_DXXFLAGS := $(strip $(HOST_CXXFLAGS) $(workbench-libs-freetype-module_DXXFLAGS))
+  workbench-libs-freetype-module_CXXIQUOTE:=$(HOST_IQUOTE)
+  workbench-libs-freetype-module_CXXIQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,target)
+  workbench-libs-freetype-module_LINK ?= $(strip $(AROS_CXX) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+  workbench-libs-freetype-module_CXXCMD:=$(strip $(AROS_CXX) $(TARGET_SYSROOT))
+  workbench-libs-freetype-module_MCXX_CPPFLAGS := $(strip $(workbench-libs-freetype-module_MCXX_CPPFLAGS) $(workbench-libs-freetype-module_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-module_CXXFLAGS := $(strip $(workbench-libs-freetype-module_CXXFLAGS) $(SAFETY_CFLAGS))
+  workbench-libs-freetype-module_DXXFLAGS := $(workbench-libs-freetype-module_DXXFLAGS)
+  workbench-libs-freetype-module_CXXIQUOTE:=$(CFLAGS_IQUOTE)
+  workbench-libs-freetype-module_CXXIQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,kernel)
+  KERNEL_CXX ?= $(KERNEL_CC)
+  workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_CXX) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+  workbench-libs-freetype-module_CXXCMD:=$(strip $(KERNEL_CXX) $(KERNEL_SYSROOT))
+  workbench-libs-freetype-module_CXXFLAGS := $(strip $(KERNEL_MCXX_CPPFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS) $(workbench-libs-freetype-module_MCXX_EXTRA_CPPFLAGS))
+  workbench-libs-freetype-module_CXXFLAGS := $(strip $(KERNEL_CXXFLAGS) $(workbench-libs-freetype-module_CXXFLAGS))
+  workbench-libs-freetype-module_DXXFLAGS := $(strip $(KERNEL_CXXFLAGS) $(workbench-libs-freetype-module_DXXFLAGS))
+  workbench-libs-freetype-module_CXXIQUOTE:=$(KERNEL_IQUOTE)
+  workbench-libs-freetype-module_CXXIQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+define cxx_multi_recipe_template
+ $(1).o : $(2)
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$(2)),$(if $(filter $(SRCDIR)/%,$(abspath $(2))),$(patsubst $(SRCDIR)/%,%,$(abspath $(2))),$(patsubst $(TOP)/%,%,$(abspath $(2)))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$(2))))"
+	$(Q)$(IF) $(workbench-libs-freetype-module_CXXCMD) $(workbench-libs-freetype-module_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-module_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_CXXIQUOTE) . $(workbench-libs-freetype-module_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-module_CXXFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))"\" -c $(2) -o $(1).o > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(2): $(workbench-libs-freetype-module_CXXCMD) $(workbench-libs-freetype-module_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-module_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_CXXIQUOTE) . $(workbench-libs-freetype-module_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-module_CXXFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))\" -c $(2) -o $(1).o" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(workbench-libs-freetype-module_CXXCMD) $(workbench-libs-freetype-module_CXXIQUOTE) $(dir $(2)) $(workbench-libs-freetype-module_CXXIQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_CXXIQUOTE) . $(workbench-libs-freetype-module_CXXIQUOTE_END) $(strip $(workbench-libs-freetype-module_CXXFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $(2))))\" -c $(2) -o $(1).o" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+ $(1).d : $(2)
+	$(Q)$(IF) $(TEST) ! -d $(dir $(1).d) ; then $(MKDIR) $(dir $(1).d) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$(2)),$(if $(filter $(SRCDIR)/%,$(abspath $(2))),$(patsubst $(SRCDIR)/%,%,$(abspath $(2))),$(patsubst $(TOP)/%,%,$(abspath $(2)))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$(2))))..."
+	$(Q)AROS_CC="$(workbench-libs-freetype-module_CXXCMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_DXXFLAGS) $(workbench-libs-freetype-module_MCXX_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $(2) -o $(1).d
+endef
+ifeq ($(workbench-libs-freetype-module_OBJDIR),)
+  $(foreach workbench-libs-freetype-module_CXXFILE,$(workbench-libs-freetype-module_MCXX_FILES),$(eval $(call cxx_multi_recipe_template,$(notdir $(basename $(workbench-libs-freetype-module_CXXFILE))),$(workbench-libs-freetype-module_CXXFILE))))
+else
+  $(foreach workbench-libs-freetype-module_CXXFILE,$(workbench-libs-freetype-module_MCXX_FILES),$(eval $(call cxx_multi_recipe_template,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(basename $(workbench-libs-freetype-module_CXXFILE)))),$(workbench-libs-freetype-module_CXXFILE))))
+endif
+
+endif
+
+
+ifneq ($(workbench-libs-freetype-module_OBJC_NARCHFILES),)
+
+ifeq (,)
+workbench-libs-freetype-module_MOBJC_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MOBJC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR),)
+  workbench-libs-freetype-module_MOBJC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_OBJC_NARCHFILES))
+  workbench-libs-freetype-module_MOBJC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-module_OBJC_NARCHFILES))
+  workbench-libs-freetype-module_MOBJC_WILDCARD := %
+else
+  workbench-libs-freetype-module_MOBJC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_OBJC_NARCHFILES)))
+  workbench-libs-freetype-module_MOBJC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_OBJC_NARCHFILES)))
+  workbench-libs-freetype-module_MOBJC_WILDCARD := $(workbench-libs-freetype-module_OBJDIR)/%
+
+  # Be sure that all .m files are generated
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : | $(addsuffix .m,$(workbench-libs-freetype-module_OBJC_NARCHFILES))
+
+  # Be sure that all .m files are found
+  workbench-libs-freetype-module_MOBJC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+  workbench-libs-freetype-module_MOBJC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_OBJC_NARCHFILES))) | sed 's/\(.\):\//\/\1\//g')
+  workbench-libs-freetype-module_MOBJC_DIRS := $(foreach dir, $(workbench-libs-freetype-module_MOBJC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module_MOBJC_SRCDIR)/$(CURDIR)/$(dir)))
+  ifneq ($(workbench-libs-freetype-module_MOBJC_DIRS),)
+    workbench-libs-freetype-module_MOBJC_DIRS := $(shell echo $(workbench-libs-freetype-module_MOBJC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.m $(workbench-libs-freetype-module_MOBJC_DIRS)
+  endif
+endif
+
+# Define the use of cross compiler
+ifeq ($(TARGET_OBJC),)
+  workbench-libs-freetype-module_CC := $(TARGET_CC)
+else
+  workbench-libs-freetype-module_CC := $(TARGET_OBJC)
+endif
+
+# Adjust compiler flags to suit ObjC
+workbench-libs-freetype-module_MOBJC_CPPFLAGS := $(workbench-libs-freetype-module_CPPFLAGS)
+workbench-libs-freetype-module_OBJCFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+workbench-libs-freetype-module_OBJCFLAGS := $(workbench-libs-freetype-module_OBJCFLAGS) -isystem $(AROS_DEVELOPER)/include
+workbench-libs-freetype-module_OBJCFLAGS := $(subst -Wno-pointer-sign,, $(subst -Werror-implicit-function-declaration,, $(workbench-libs-freetype-module_OBJCFLAGS)))
+ifeq ($(workbench-libs-freetype-module_DFLAGS),)
+  workbench-libs-freetype-module_OBJCDFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+else
+  workbench-libs-freetype-module_OBJCDFLAGS := $(workbench-libs-freetype-module_DFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+  workbench-libs-freetype-module_LINK ?= $(strip $(workbench-libs-freetype-module_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : CMD:=$(strip $(workbench-libs-freetype-module_CC) $(TARGET_SYSROOT))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_MOBJC_CPPFLAGS:=$(strip $(workbench-libs-freetype-module_MOBJC_CPPFLAGS) $(workbench-libs-freetype-module_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCFLAGS:=$(strip $(workbench-libs-freetype-module_OBJCFLAGS) $(SAFETY_CFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCDFLAGS:=$(workbench-libs-freetype-module_OBJCDFLAGS)
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(CFLAGS_IQUOTE)
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+  workbench-libs-freetype-module_LINK ?= $(strip $(HOST_OBJC) $(HOST_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(HOST_CC) $(HOST_SYSROOT))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : CMD:=$(HOST_OBJC)
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_MOBJC_CPPFLAGS:=$(strip $(HOST_MOBJC_CPPFLAGS) $(workbench-libs-freetype-module_MOBJC_CPPFLAGS) $(workbench-libs-freetype-module_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_OBJCFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCDFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_OBJCDFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(HOST_IQUOTE)
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+  KERNEL_OBJC ?= $(KERNEL_CC)
+  workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_OBJC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+  workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+  workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : CMD:=$(strip $(KERNEL_OBJC) $(KERNEL_SYSROOT))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_MOBJC_CPPFLAGS:=$(strip $(KERNEL_MOBJC_CPPFLAGS) $(workbench-libs-freetype-module_MOBJC_CPPFLAGS) $(workbench-libs-freetype-module_MOBJC_EXTRA_CPPFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_OBJCFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_OBJCDFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_OBJCDFLAGS))
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(KERNEL_IQUOTE)
+  $(workbench-libs-freetype-module_MOBJC_TARGETS) $(workbench-libs-freetype-module_MOBJC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-module_MOBJC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-module_MOBJC_CPPFLAGS)
+$(workbench-libs-freetype-module_MOBJC_TARGETS) : CFLAGS := $(workbench-libs-freetype-module_OBJCFLAGS)
+$(workbench-libs-freetype-module_MOBJC_TARGETS) : $(workbench-libs-freetype-module_MOBJC_WILDCARD).o : $(workbench-libs-freetype-module_MOBJC_SRCWILDCARD).m
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-module_MOBJC_DTARGETS) : $(workbench-libs-freetype-module_MOBJC_WILDCARD).d : $(workbench-libs-freetype-module_MOBJC_SRCWILDCARD).m
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_OBJCDFLAGS) $(workbench-libs-freetype-module_MOBJC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+endif
+
+
+ifeq (,)
+workbench-libs-freetype-module_MC_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR),)
+workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_CCFILES))
+workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-module_CCFILES))
+workbench-libs-freetype-module_MC_TGTWILDCARD := %
+else
+ifeq (no,no)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_CCFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_CCFILES))))
+else
+ifeq (,)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_CCFILES)))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_CCFILES)))
+else
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-module_CCFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-module_CCFILES))))
+endif
+endif
+workbench-libs-freetype-module_MC_TGTWILDCARD := $(workbench-libs-freetype-module_OBJDIR)/%
+
+# Be sure that all .c files are generated
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : | $(addsuffix .c,$(workbench-libs-freetype-module_CCFILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-module_MC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-module_MC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_CCFILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-module_MC_DIRS := $(foreach dir, $(workbench-libs-freetype-module_MC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module_MC_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-module_MC_DIRS),)
+    workbench-libs-freetype-module_MC_DIRS := $(shell echo $(workbench-libs-freetype-module_MC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.c $(workbench-libs-freetype-module_MC_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-module_MC_CPPFLAGS := $(workbench-libs-freetype-module_CPPFLAGS)
+workbench-libs-freetype-module_CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+ifeq ($(workbench-libs-freetype-module_DFLAGS),)
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+else
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_DFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+workbench-libs-freetype-module_LINK ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(workbench-libs-freetype-module_CFLAGS) $(SAFETY_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(workbench-libs-freetype-module_DFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(CFLAGS_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+workbench-libs-freetype-module_LINK ?= $(strip $(HOST_CC) $(HOST_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $HOST_CC) $(HOST_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(HOST_CC)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(HOST_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(HOST_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(KERNEL_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(KERNEL_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-module_MC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-module_MC_CPPFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).o : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-module_MC_DTARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).d : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_DFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+ifeq (,)
+workbench-libs-freetype-module_MC_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR),)
+workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_TARGETCCFILES))
+workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-module_TARGETCCFILES))
+workbench-libs-freetype-module_MC_TGTWILDCARD := %
+else
+ifeq (no,no)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_TARGETCCFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_TARGETCCFILES))))
+else
+ifeq (,)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_TARGETCCFILES)))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(workbench-libs-freetype-module_TARGETCCFILES)))
+else
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-module_TARGETCCFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(patsubst /%,%,$(workbench-libs-freetype-module_TARGETCCFILES))))
+endif
+endif
+workbench-libs-freetype-module_MC_TGTWILDCARD := $(workbench-libs-freetype-module_OBJDIR)/%
+
+# Be sure that all .c files are generated
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : | $(addsuffix .c,$(workbench-libs-freetype-module_TARGETCCFILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-module_MC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-module_MC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_TARGETCCFILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-module_MC_DIRS := $(foreach dir, $(workbench-libs-freetype-module_MC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module_MC_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-module_MC_DIRS),)
+    workbench-libs-freetype-module_MC_DIRS := $(shell echo $(workbench-libs-freetype-module_MC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.c $(workbench-libs-freetype-module_MC_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-module_MC_CPPFLAGS := $(workbench-libs-freetype-module_CPPFLAGS) -D__AROS__
+workbench-libs-freetype-module_CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+ifeq ($(workbench-libs-freetype-module_DFLAGS),)
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+else
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_DFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+workbench-libs-freetype-module_LINK ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(workbench-libs-freetype-module_CFLAGS) $(SAFETY_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(workbench-libs-freetype-module_DFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(CFLAGS_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+workbench-libs-freetype-module_LINK ?= $(strip $(HOST_CC) $(HOST_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $HOST_CC) $(HOST_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(HOST_CC)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(HOST_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(HOST_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(KERNEL_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(KERNEL_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-module_MC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-module_MC_CPPFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).o : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-module_MC_DTARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).d : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_DFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+ifeq (,)
+workbench-libs-freetype-module_MC_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MC_SRCWILDCARD := /%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_NLIBARCHFILES))
+workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-module_NLIBARCHFILES))
+workbench-libs-freetype-module_MC_TGTWILDCARD := %
+else
+ifeq (no,no)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_NLIBARCHFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_NLIBARCHFILES))))
+else
+ifeq (,)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(workbench-libs-freetype-module_NLIBARCHFILES)))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(workbench-libs-freetype-module_NLIBARCHFILES)))
+else
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(patsubst /%,%,$(workbench-libs-freetype-module_NLIBARCHFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(patsubst /%,%,$(workbench-libs-freetype-module_NLIBARCHFILES))))
+endif
+endif
+workbench-libs-freetype-module_MC_TGTWILDCARD := $(workbench-libs-freetype-module_OBJDIR)/linklib/%
+
+# Be sure that all .c files are generated
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : | $(addsuffix .c,$(workbench-libs-freetype-module_NLIBARCHFILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-module_MC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-module_MC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_NLIBARCHFILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-module_MC_DIRS := $(foreach dir, $(workbench-libs-freetype-module_MC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module_MC_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-module_MC_DIRS),)
+    workbench-libs-freetype-module_MC_DIRS := $(shell echo $(workbench-libs-freetype-module_MC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.c $(workbench-libs-freetype-module_MC_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-module_MC_CPPFLAGS := $(workbench-libs-freetype-module_LINKLIBCPPFLAGS) -D__AROS__
+workbench-libs-freetype-module_CFLAGS := $(workbench-libs-freetype-module_LINKLIBCFLAGS)
+ifeq ($(workbench-libs-freetype-module_LINKLIBDFLAGS),)
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_LINKLIBCFLAGS)
+else
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_LINKLIBDFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+workbench-libs-freetype-module_LINK ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(workbench-libs-freetype-module_CFLAGS) $(SAFETY_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(workbench-libs-freetype-module_DFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(CFLAGS_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+workbench-libs-freetype-module_LINK ?= $(strip $(HOST_CC) $(HOST_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $HOST_CC) $(HOST_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(HOST_CC)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(HOST_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(HOST_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(KERNEL_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(KERNEL_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-module_MC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-module_MC_CPPFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).o : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-module_MC_DTARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).d : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_DFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+workbench-libs-freetype-module_MC_SRCWILDCARD := %
+else
+workbench-libs-freetype-module_MC_SRCWILDCARD := $(workbench-libs-freetype-module_OBJDIR)/linklib/%
+endif
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_LINKLIBCCGENFILES))
+workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(workbench-libs-freetype-module_LINKLIBCCGENFILES))
+workbench-libs-freetype-module_MC_TGTWILDCARD := %
+else
+ifeq (no,no)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_LINKLIBCCGENFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_LINKLIBCCGENFILES))))
+else
+ifeq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(workbench-libs-freetype-module_LINKLIBCCGENFILES)))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(workbench-libs-freetype-module_LINKLIBCCGENFILES)))
+else
+    workbench-libs-freetype-module_MC_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(patsubst $(workbench-libs-freetype-module_OBJDIR)/linklib/%,%,$(workbench-libs-freetype-module_LINKLIBCCGENFILES))))
+    workbench-libs-freetype-module_MC_DTARGETS := $(addsuffix .d,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(patsubst $(workbench-libs-freetype-module_OBJDIR)/linklib/%,%,$(workbench-libs-freetype-module_LINKLIBCCGENFILES))))
+endif
+endif
+workbench-libs-freetype-module_MC_TGTWILDCARD := $(workbench-libs-freetype-module_OBJDIR)/linklib/%
+
+# Be sure that all .c files are generated
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : | $(addsuffix .c,$(workbench-libs-freetype-module_LINKLIBCCGENFILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-module_MC_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-module_MC_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_LINKLIBCCGENFILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-module_MC_DIRS := $(foreach dir, $(workbench-libs-freetype-module_MC_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module_MC_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-module_MC_DIRS),)
+    workbench-libs-freetype-module_MC_DIRS := $(shell echo $(workbench-libs-freetype-module_MC_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.c $(workbench-libs-freetype-module_MC_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-module_MC_CPPFLAGS := $(workbench-libs-freetype-module_LINKLIBCPPFLAGS) -D__AROS__
+workbench-libs-freetype-module_CFLAGS := $(workbench-libs-freetype-module_LINKLIBCFLAGS)
+ifeq ($(workbench-libs-freetype-module_LINKLIBDFLAGS),)
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_LINKLIBCFLAGS)
+else
+  workbench-libs-freetype-module_DFLAGS := $(workbench-libs-freetype-module_LINKLIBDFLAGS)
+endif
+
+ifeq ($(findstring target,host kernel target),)
+  $(error unknown compiler target)
+endif
+ifeq (target,target)
+workbench-libs-freetype-module_LINK ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT) $(TARGET_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(TARGET_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(TARGET_CC) $(TARGET_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(workbench-libs-freetype-module_CFLAGS) $(SAFETY_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(workbench-libs-freetype-module_DFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(CFLAGS_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(CFLAGS_IQUOTE_END)
+endif
+ifeq (target,host)
+workbench-libs-freetype-module_LINK ?= $(strip $(HOST_CC) $(HOST_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(HOST_STRIP)
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $HOST_CC) $(HOST_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(HOST_CC)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(HOST_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(HOST_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(HOST_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(HOST_IQUOTE_END)
+endif
+ifeq (target,kernel)
+workbench-libs-freetype-module_LINK ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT) $(KERNEL_LDFLAGS))
+workbench-libs-freetype-module_STRIP ?= $(ECHO) >/dev/null
+workbench-libs-freetype-module_ASSEMBLER ?= $(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : CMD:=$(strip $(KERNEL_CC) $(KERNEL_SYSROOT))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_MC_CPPFLAGS:=$(strip $(KERNEL_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS) $(workbench-libs-freetype-module_MC_EXTRA_CPPFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_CFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_CFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_DFLAGS:=$(strip $(TARGET_ISA_CFLAGS) $(KERNEL_CFLAGS) $(workbench-libs-freetype-module_DFLAGS))
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE:=$(KERNEL_IQUOTE)
+$(workbench-libs-freetype-module_MC_TARGETS) $(workbench-libs-freetype-module_MC_DTARGETS) : workbench-libs-freetype-module_IQUOTE_END:=$(KERNEL_IQUOTE_END)
+endif
+
+$(workbench-libs-freetype-module_MC_TARGETS) : CPPFLAGS := $(workbench-libs-freetype-module_MC_CPPFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : CFLAGS := $(workbench-libs-freetype-module_CFLAGS)
+$(workbench-libs-freetype-module_MC_TARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).o : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(ECHO) "Compiling  $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))"
+	$(Q)$(IF) $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__="\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))"\" -c $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$<: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" >> $(GENDIR)/errors ; \
+			tee < $(GENDIR)/cerrors -a $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Compile failed: $(CMD) $(workbench-libs-freetype-module_IQUOTE) $(dir $<) $(workbench-libs-freetype-module_IQUOTE) $(SRCDIR)/$(CURDIR) $(workbench-libs-freetype-module_IQUOTE) . $(workbench-libs-freetype-module_IQUOTE_END) $(strip $(CFLAGS) $(CPPFLAGS)) -D__SRCFILENAME__=\"$(subst $(TOP)/,,$(subst $(SRCDIR)/,,$(abspath $<)))\" -c $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+
+$(workbench-libs-freetype-module_MC_DTARGETS) : $(workbench-libs-freetype-module_MC_TGTWILDCARD).d : $(workbench-libs-freetype-module_MC_SRCWILDCARD).c
+	$(Q)$(IF) $(TEST) ! -d $(dir $@) ; then $(MKDIR) $(dir $@) ; else $(NOP) ; fi
+	$(Q)$(ECHO) "Makedepend $(if $(filter /%,$<),$(if $(filter $(SRCDIR)/%,$(abspath $<)),$(patsubst $(SRCDIR)/%,%,$(abspath $<)),$(patsubst $(TOP)/%,%,$(abspath $<))),$(patsubst $(SRCDIR)/%,%,$(abspath $(SRCDIR)/$(CURDIR)/$<)))..."
+	$(Q)AROS_CC="$(CMD)" $(MKDEPEND) $(strip $(workbench-libs-freetype-module_DFLAGS) $(workbench-libs-freetype-module_MC_CPPFLAGS)) -I$(TOP)/$(CURDIR) -I$(SRCDIR)/$(CURDIR) $< -o $@
+
+ifneq ($(workbench-libs-freetype-module_LINKLIBAFILES),)
+
+ifeq ($(workbench-libs-freetype-module_OBJDIR)/linklib,)
+workbench-libs-freetype-module-MA_TARGETS := $(addsuffix .o,$(workbench-libs-freetype-module_LINKLIBAFILES) $(workbench-libs-freetype-module_RELLINKLIBAFILES))
+workbench-libs-freetype-module-MA_WILDCARD := %
+else
+workbench-libs-freetype-module-MA_TARGETS := $(addsuffix .o,$(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_LINKLIBAFILES) $(workbench-libs-freetype-module_RELLINKLIBAFILES))))
+workbench-libs-freetype-module-MA_WILDCARD := $(workbench-libs-freetype-module_OBJDIR)/linklib/%
+
+# Be sure that all .s files are generated
+$(workbench-libs-freetype-module-MA_TARGETS) : | $(addsuffix .S,$(workbench-libs-freetype-module_LINKLIBAFILES) $(workbench-libs-freetype-module_RELLINKLIBAFILES))
+
+# Be sure that all .c files are found
+workbench-libs-freetype-module-MA_SRCDIR := $(shell echo $(SRCDIR) | sed 's/^\(.\):\//\/\1\//')
+workbench-libs-freetype-module-MA_BASEDIRS := $(shell echo $(sort $(dir $(workbench-libs-freetype-module_LINKLIBAFILES) $(workbench-libs-freetype-module_RELLINKLIBAFILES))) | sed 's/\(.\):\//\/\1\//g')
+workbench-libs-freetype-module-MA_DIRS := $(foreach dir, $(workbench-libs-freetype-module-MA_BASEDIRS), $(if $(filter /%,$(dir)),$(dir),$(workbench-libs-freetype-module-MA_SRCDIR)/$(CURDIR)/$(dir)))
+ifneq ($(workbench-libs-freetype-module-MA_DIRS),)
+    workbench-libs-freetype-module-MA_DIRS := $(shell echo $(workbench-libs-freetype-module-MA_DIRS) | sed 's/\(.\):\//\/\1\//g')
+    vpath %.S $(workbench-libs-freetype-module-MA_DIRS)
+endif
+
+endif
+
+workbench-libs-freetype-module-MA_ASSEMBLER ?= $(workbench-libs-freetype-module_ASSEMBLER)
+
+$(workbench-libs-freetype-module-MA_TARGETS) : workbench-libs-freetype-module-MA_CMD:= $(workbench-libs-freetype-module-MA_ASSEMBLER)
+
+$(workbench-libs-freetype-module-MA_TARGETS) : CPPFLAGS := $(CPPFLAGS)
+$(workbench-libs-freetype-module-MA_TARGETS) : AFLAGS := $(AFLAGS)
+$(workbench-libs-freetype-module-MA_TARGETS) : $(workbench-libs-freetype-module-MA_WILDCARD).o : %.S
+	$(Q)$(ECHO) "Assembling $(notdir $<)..."
+	$(Q)$(IF) $(workbench-libs-freetype-module-MA_CMD) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@ > $(GENDIR)/cerrors 2>&1 ; then \
+		$(IF) $(TEST) -s $(GENDIR)/cerrors ; then \
+			$(ECHO) "$(notdir $<): $(workbench-libs-freetype-module-MA_CMD) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" >> $(GENDIR)/errors ; \
+			$(CAT) $(GENDIR)/cerrors >> $(GENDIR)/errors ; \
+		else \
+			$(NOP) ; \
+		fi ; \
+	else \
+		$(ECHO) "Assemble failed: $(workbench-libs-freetype-module-MA_CMD) $(strip $(AFLAGS) $(CPPFLAGS)) $< -o $@" 1>&2 ; \
+		tee < $(GENDIR)/cerrors -a $(GENDIR)/errors 1>&2 ; \
+		exit 1 ; \
+	fi
+endif
+
+## Linking
+##
+ifeq (,)
+workbench-libs-freetype-module_SUFFIX           := library
+else
+workbench-libs-freetype-module_SUFFIX           := 
+endif
+
+ifeq (M,M)
+# Handlers use dash instead of dot in their names
+ifeq ($(workbench-libs-freetype-module_SUFFIX),handler)
+workbench-libs-freetype-module_MODULE           := $(AROSDIR)/$(workbench-libs-freetype-module_MODDIR)/$(workbench-libs-freetype-module_DEFNAME)-$(workbench-libs-freetype-module_SUFFIX)
+else
+workbench-libs-freetype-module_MODULE           := $(AROSDIR)/$(workbench-libs-freetype-module_MODDIR)/$(workbench-libs-freetype-module_DEFNAME).$(workbench-libs-freetype-module_SUFFIX)
+endif
+workbench-libs-freetype-module_KOBJ             := $(KOBJSDIR)/$(workbench-libs-freetype-module_DEFNAME)_$(workbench-libs-freetype-module_SUFFIX).o
+else
+workbench-libs-freetype-module_MODULE           :=
+workbench-libs-freetype-module_KOBJ             :=
+endif
+
+workbench-libs-freetype-module-quick      : workbench-libs-freetype-module
+workbench-libs-freetype-module            : $(workbench-libs-freetype-module_MODULE) $(workbench-libs-freetype-module_LINKLIB) $(workbench-libs-freetype-module_RELLINKLIB)
+ifeq (M,M)
+workbench-libs-freetype-module-kobj       : $(workbench-libs-freetype-module_KOBJ) $(workbench-libs-freetype-module_LINKLIB) $(workbench-libs-freetype-module_RELLINKLIB)
+workbench-libs-freetype-module-kobj-quick : $(workbench-libs-freetype-module_KOBJ) $(workbench-libs-freetype-module_LINKLIB) $(workbench-libs-freetype-module_RELLINKLIB)
+endif
+ifeq (M,M)
+workbench-libs-freetype-module-linklib    : $(workbench-libs-freetype-module_LINKLIB) $(workbench-libs-freetype-module_RELLINKLIB)
+endif
+
+workbench-libs-freetype-module_OBJS := $(addsuffix .o,$(workbench-libs-freetype-module_STARTFILES)) $(workbench-libs-freetype-module_ARCHOBJS) \
+           $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_C_NARCHFILES:=.o) $(workbench-libs-freetype-module_CXXFILES:=.o)))
+
+ifeq (yes,yes)
+# Handlers always have entry point
+ifneq (library,handler)
+workbench-libs-freetype-module_STARTOBJS        := $(addsuffix .o,$(addprefix $(GENDIR)/,$(RESIDENT_BEGIN)))
+endif
+endif
+
+# Under Windows con* is a reserved name, it refers to console. Files with such names can't be created.
+# This breaks con-handler build. Here we work around this
+ifeq (freetype2,con)
+    workbench-libs-freetype-module_ERR          := $(notdir $(workbench-libs-freetype-module_MODULE)).err
+else
+    workbench-libs-freetype-module_ERR          := freetype2.err
+endif
+
+ifeq (M,M)
+# The module is linked from all the compiled .o files
+
+TMP_LDFLAGS  := $(LDFLAGS) $($(workbench-libs-freetype-module_DEFNAME)_LDFLAGS)
+# Make a list of the lib files the programs depend on.
+# In LDFLAGS remove white space between -L and directory
+TMP_DIRS := $(subst -L ,-L,$(strip $(TMP_LDFLAGS)))
+# Filter out only the libdirs and remove -L
+TMP_DIRS := $(patsubst -L%,%,$(filter -L%,$(TMP_DIRS)))
+# Add trailing /
+TMP_DIRS := $(subst //,/,$(addsuffix /,$(TMP_DIRS)))
+# Add normal linklib path
+TMP_DIRS += $(AROS_LIB)/
+# add lib and .a to static linklib names
+TMP_LIBS := $(addprefix lib,$(addsuffix .a,$(workbench-libs-freetype-module_LIBS) $($(workbench-libs-freetype-module_DEFNAME)_LIBS)))
+# search for the linklibs in the given path, ignore ones not found
+TMP_DEPLIBS := $(foreach lib,$(TMP_LIBS), \
+    $(firstword $(wildcard $(addsuffix $(lib),$(TMP_DIRS)))) \
+)
+
+$(workbench-libs-freetype-module_MODULE) : LIB_NAMES := $(workbench-libs-freetype-module_LIBS) $($(workbench-libs-freetype-module_DEFNAME)_LIBS)
+$(workbench-libs-freetype-module_MODULE) : OBJS := $(workbench-libs-freetype-module_STARTOBJS) $(workbench-libs-freetype-module_OBJS) $(USER_OBJS)
+$(workbench-libs-freetype-module_MODULE) : ENDTAG := $(workbench-libs-freetype-module_ENDOBJS)
+$(workbench-libs-freetype-module_MODULE) : ERR := $(workbench-libs-freetype-module_ERR)
+$(workbench-libs-freetype-module_MODULE) : OBJDIR := $(workbench-libs-freetype-module_OBJDIR)
+$(workbench-libs-freetype-module_MODULE) : LDFLAGS := $(TMP_LDFLAGS)
+ifeq (,)
+$(workbench-libs-freetype-module_MODULE) : LIBS := $(addprefix -l,$(LIB_NAMES))
+else
+# Warning: the -L/usr/lib here can result in modules
+# linking against host libs instead of AROS libs (e.g stdc++) !!
+$(workbench-libs-freetype-module_MODULE) : LIBS := $(addprefix -l,$(LIB_NAMES)) \
+                    -L/usr/lib $(addprefix -l,)
+endif 
+$(workbench-libs-freetype-module_MODULE) : $(workbench-libs-freetype-module_STARTOBJS) $(workbench-libs-freetype-module_OBJS) $(USER_OBJS) $(workbench-libs-freetype-module_ENDOBJS) $(TMP_DEPLIBS) $(USER_DEPLIBS)
+	$(Q)$(ECHO) "Building   $(subst $(TARGETDIR)/,,$@) ..."
+	$(Q)$(IF) $(workbench-libs-freetype-module_LINK) $(NOSTARTUP_LDFLAGS) \
+		$(GENMAP) $(OBJDIR)/$(MODULE).map \
+		$(OBJS) $(LIBS) $(LDFLAGS) $(ENDTAG) \
+		-o $@ 2>&1 > $(OBJDIR)/$(ERR); \
+	then \
+		cat $(OBJDIR)/$(ERR); \
+	else \
+		echo "$(workbench-libs-freetype-module_LINK) $(NOSTARTUP_LDFLAGS) $(GENMAP) $(OBJDIR)/$(MODULE).map $(OBJS) $(LIBS) $(LDFLAGS) $(ENDTAG) -o $@"; \
+		cat $(OBJDIR)/$(ERR); \
+		exit 1; \
+	fi
+	$(Q)$(IF) $(TEST) ! -s $(OBJDIR)/$(ERR) ; then $(RM) $(OBJDIR)/$(ERR) ; fi
+	$(Q)$(IF) [ "$(DEBUG)" = "yes" ]; then \
+		$(STRIP) $@ --only-keep-debug -o $@.dbg; \
+	fi
+	$(Q)$(STRIP) $@
+	$(Q)$(IF) [ "$(DEBUG)" = "yes" ]; then \
+		$(IF) $(TEST) -s $@.dbg ; then \
+			$(OBJCOPY) --add-gnu-debuglink=$@.dbg $@; \
+		fi ; \
+	fi
+
+endif
+
+ifeq (M,M)
+# Link static lib
+workbench-libs-freetype-module_LC_LINKLIBNAME   := $(shell echo $(workbench-libs-freetype-module_LINKLIBNAME) | tr A-Z a-z)
+workbench-libs-freetype-module_LC_MODNAME       := $(shell echo freetype2 | tr A-Z a-z)
+ifneq ($(workbench-libs-freetype-module_LINKLIB),)
+
+ifeq (target,target)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(RANLIB)
+endif
+ifeq (target,host)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(HOST_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(HOST_RANLIB)
+endif
+ifeq (target,kernel)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(KERNEL_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(KERNEL_RANLIB)
+endif
+
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)$(workbench-libs-freetype-module_LIBSUFFIX).a : $(workbench-libs-freetype-module_LINKLIBOBJS)
+	$(Q)$(ECHO) "Creating   $(subst $(TARGETDIR)/,,$@)..."
+	$(Q)$(workbench-libs-freetype-module_AR) $@ $^
+	$(Q)$(workbench-libs-freetype-module_RANLIB) $@
+ifneq ($(workbench-libs-freetype-module_LC_MODNAME),$(workbench-libs-freetype-module_LC_LINKLIBNAME))
+
+ifeq (target,target)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(AR)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(RANLIB)
+endif
+ifeq (target,host)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(HOST_AR)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(HOST_RANLIB)
+endif
+ifeq (target,kernel)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(KERNEL_AR)
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(KERNEL_RANLIB)
+endif
+
+$(workbench-libs-freetype-module_LIBDIR)/libfreetype2$(workbench-libs-freetype-module_LIBSUFFIX).a : $(workbench-libs-freetype-module_LINKLIBOBJS)
+	$(Q)$(ECHO) "Creating   $(subst $(TARGETDIR)/,,$@)..."
+	$(Q)$(workbench-libs-freetype-module_AR) $@ $^
+	$(Q)$(workbench-libs-freetype-module_RANLIB) $@
+endif
+
+$(workbench-libs-freetype-module_LINKLIB) : | $(workbench-libs-freetype-module_LIBDIR)
+
+setup :: $(workbench-libs-freetype-module_LIBDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_LIBDIR)
+
+endif
+
+ifneq ($(workbench-libs-freetype-module_RELLINKLIB),)
+
+ifeq (target,target)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(RANLIB)
+endif
+ifeq (target,host)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(HOST_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(HOST_RANLIB)
+endif
+ifeq (target,kernel)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(KERNEL_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(KERNEL_RANLIB)
+endif
+
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_LINKLIBNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : $(workbench-libs-freetype-module_RELLINKLIBOBJS)
+	$(Q)$(ECHO) "Creating   $(subst $(TARGETDIR)/,,$@)..."
+	$(Q)$(workbench-libs-freetype-module_AR) $@ $^
+	$(Q)$(workbench-libs-freetype-module_RANLIB) $@
+ifneq ($(workbench-libs-freetype-module_LC_MODNAME),$(workbench-libs-freetype-module_LC_LINKLIBNAME))
+
+ifeq (target,target)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(RANLIB)
+endif
+ifeq (target,host)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(HOST_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(HOST_RANLIB)
+endif
+ifeq (target,kernel)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_AR:=$(KERNEL_AR)
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : workbench-libs-freetype-module_RANLIB:=$(KERNEL_RANLIB)
+endif
+
+$(workbench-libs-freetype-module_LIBDIR)/lib$(workbench-libs-freetype-module_DEFNAME)_rel$(workbench-libs-freetype-module_LIBSUFFIX).a : $(workbench-libs-freetype-module_RELLINKLIBOBJS)
+	$(Q)$(ECHO) "Creating   $(subst $(TARGETDIR)/,,$@)..."
+	$(Q)$(workbench-libs-freetype-module_AR) $@ $^
+	$(Q)$(workbench-libs-freetype-module_RANLIB) $@
+endif
+
+$(workbench-libs-freetype-module_RELLINKLIB) : | $(workbench-libs-freetype-module_LIBDIR)
+
+setup :: $(workbench-libs-freetype-module_LIBDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_LIBDIR)
+
+endif
+endif
+
+ifeq (M,M)
+# Link kernel object file
+workbench-libs-freetype-module_KAUTOLIB         := dos intuition layers graphics oop utility expansion keymap
+
+# Make these symbols local
+workbench-libs-freetype-module_KBASE            := DOSBase IntuitionBase LayersBase GfxBase OOPBase \
+	    UtilityBase ExpansionBase KeymapBase KernelBase
+
+workbench-libs-freetype-module_SYMBOLS := $(workbench-libs-freetype-module_KBASE)
+
+workbench-libs-freetype-module_KLIB             := hiddstubs amiga arossupport autoinit libinit
+workbench-libs-freetype-module_KOBJ_LIBS        := $(filter-out $(workbench-libs-freetype-module_KLIB),$(workbench-libs-freetype-module_LIBS)) $(workbench-libs-freetype-module_KAUTOLIB)
+$(workbench-libs-freetype-module_KOBJ) : LINKLIBS:=$(workbench-libs-freetype-module_KOBJ_LIBS) $($(workbench-libs-freetype-module_DEFNAME)_LIBS)
+$(workbench-libs-freetype-module_KOBJ) : FILTBASES:=$(addprefix -L ,$(workbench-libs-freetype-module_SYMBOLS))
+$(workbench-libs-freetype-module_KOBJ) : USER_LDFLAGS:=$(USER_LDFLAGS)
+$(workbench-libs-freetype-module_KOBJ) : $(workbench-libs-freetype-module_OBJS) $(USER_OBJS) $(workbench-libs-freetype-module_ENDOBJS)
+	$(Q)$(ECHO) "Linking    $(subst $(TARGETDIR)/,,$@)"
+	$(Q)$(AROS_LD) -Ur -o $@ $^ $(USER_LDFLAGS) -L$(AROS_LIB) $(addprefix -l,$(LINKLIBS))
+	$(Q)$(OBJCOPY) $@ $(FILTBASES) `$(NM_PLAIN) $@ | $(AWK) '($$3 ~ /^__.*_(LIST|END)__\r?$$/) || ($$3 ~ /^__aros_lib.*\r?$$/) {print "-L " $$3;}'`
+endif
+
+## Dependency fine-tuning
+##
+workbench-libs-freetype-module_DEPS             := $(addprefix $(workbench-libs-freetype-module_OBJDIR)/,$(notdir $(workbench-libs-freetype-module_CCFILES:=.d) $(workbench-libs-freetype-module_TARGETCCFILES:=.d) $(workbench-libs-freetype-module_CXXFILES:=.d))) $(addprefix $(workbench-libs-freetype-module_OBJDIR)/linklib/,$(notdir $(workbench-libs-freetype-module_LINKLIBCCFILES:=.d)))
+
+ifneq ($(workbench-libs-freetype-module_DEPS),)
+  ifneq (workbench-libs-freetype-module workbench-libs-freetype-module-quick workbench-libs-freetype-module-kobj workbench-libs-freetype-module-kobj-quick,)
+    ifneq ($(findstring $(TARGET),workbench-libs-freetype-module workbench-libs-freetype-module-quick workbench-libs-freetype-module-kobj workbench-libs-freetype-module-kobj-quick),)
+      -include $(workbench-libs-freetype-module_DEPS)
+    endif
+  else
+    ifeq (,$(filter clean% %clean %clean% setup% includes% %setup,$(TARGET)))
+      -include $(workbench-libs-freetype-module_DEPS)
+    endif
+  endif
+endif
+
+$(workbench-libs-freetype-module_OBJS) $(workbench-libs-freetype-module_DEPS) : | $(workbench-libs-freetype-module_OBJDIR) $(workbench-libs-freetype-module_OBJDIR)/linklib
+$(workbench-libs-freetype-module_MODULE) : | $(AROSDIR)/$(workbench-libs-freetype-module_MODDIR)
+$(workbench-libs-freetype-module_KOBJ)   : | $(KOBJSDIR)
+
+setup :: $(workbench-libs-freetype-module_OBJDIR) $(AROSDIR)/$(workbench-libs-freetype-module_MODDIR) $(KOBJSDIR)
+
+GLOB_MKDIRS += $(workbench-libs-freetype-module_OBJDIR) $(AROSDIR)/$(workbench-libs-freetype-module_MODDIR) $(KOBJSDIR)
+
+
+# Some include files need to be generated before the .c can be parsed.
+ifneq ($(filter $(TARGET),workbench-libs-freetype-module workbench-libs-freetype-module-includes workbench-libs-freetype-module-quick workbench-libs-freetype-module-kobj workbench-libs-freetype-module-kobj-quick),) # Only for this target these deps are wanted
+
+workbench-libs-freetype-module_DFILE_DEPS := $(workbench-libs-freetype-module_LIBDEFSINC) $(workbench-libs-freetype-module_DEFLIBDEFSINC) \
+    $(addprefix $(workbench-libs-freetype-module_INCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES))
+$(workbench-libs-freetype-module_DEPS) : $(workbench-libs-freetype-module_DFILE_DEPS)
+endif
+
+workbench-libs-freetype-module_TOCLEAN := $(workbench-libs-freetype-module_OBJS) $(workbench-libs-freetype-module_DEPS) \
+    $(workbench-libs-freetype-module_MODULE) $(workbench-libs-freetype-module_LINKLIB) $(workbench-libs-freetype-module_KOBJ) \
+    $(workbench-libs-freetype-module_OBJDIR)/Makefile.freetype2library \
+    $(addprefix $(workbench-libs-freetype-module_OBJDIR)/include/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) \
+    $(addprefix $(GENINCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) \
+    $(addprefix $(workbench-libs-freetype-module_INCDIR)/,$($(workbench-libs-freetype-module_DEFNAME)_INCLUDES)) \
+    $(workbench-libs-freetype-module_OBJDIR)/freetype2_geninc $(workbench-libs-freetype-module_OBJDIR)/freetype2_incs \
+    $(addsuffix .c,$(workbench-libs-freetype-module_LINKLIBFILES)) $(workbench-libs-freetype-module_LINKLIBOBJS) $(workbench-libs-freetype-module_LIBDEFSINC) \
+    $(workbench-libs-freetype-module_DEFLIBDEFSINC) $(addsuffix .c,$(workbench-libs-freetype-module_STARTFILES) $(workbench-libs-freetype-module_ENDFILES)) \
+    $(workbench-libs-freetype-module_ENDOBJS)
+workbench-libs-freetype-module-clean : FILES              := $(workbench-libs-freetype-module_TOCLEAN)
+workbench-libs-freetype-module-clean ::
+	$(Q)$(ECHO) "Cleaning up for module freetype2"
+	$(Q)$(RM) $(FILES)
+
+endif # $(TARGET) in $(workbench-libs-freetype-module_ALLTARGETS)
+
+
+#MM
+workbench-libs-freetype-pkgconfig : $(AROS_LIB)/pkgconfig/freetype2.pc
+
+$(AROS_LIB)/pkgconfig/freetype2.pc : $(SRCDIR)/$(CURDIR)/builds/unix/freetype2.in
+	$(Q)$(IF) $(TEST) ! -d $(AROS_LIB)/pkgconfig ; then $(MKDIR) $(AROS_LIB)/pkgconfig ; else $(NOP) ; fi
+	@$(SED) -e 's|%FT2_EXTRA_LIBS%||' \
+	       -e 's|%LIBBZ2%||' \
+	       -e 's|%LIBZ%|-L $(AROS_LIB) -lz|' \
+	       -e 's|%exec_prefix%|$${prefix}|' \
+	       -e 's|%ft_version%|2.5.0|' \
+	       -e 's|%includedir%|$${prefix}/include|' \
+	       -e 's|%libdir%|$(AROS_LIB)|' \
+	       -e 's|%prefix%|/Developer|' \
+	       $< >$@
+
+# Delete generated makefiles
+#MM
+clean ::
+	$(Q)$(RM) $(TOP)/$(CURDIR)/mmakefile $(TOP)/$(CURDIR)/mmakefile.bak
+
+include $(SRCDIR)/config/make.tail
+
+BDID := $(BDTARGETID)
diff -ruN freetype-2.10.0/README.AROS freetype-2.10.0.aros/README.AROS
--- freetype-2.10.0/README.AROS	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/README.AROS	2019-04-10 15:33:37.313922161 +0200
@@ -0,0 +1,34 @@
+# AROS Freetype2 Readme for v6.1 (freetype 2.9.1)
+#
+
+To make the freetype link lib:
+
+   make workbench-libs-freetype-linklib:
+
+To make two of the freetype test programs:
+
+   make test-freetype
+
+To make freetype graph lib (a linklib used by the freetype test programs)
+
+   make test-freetype-lib-graph
+
+#
+#
+#
+
+When importing a new version of the freetype code, also update the
+'demos' in developer/debug/test/freetype !!
+
+       o fix buggy graph AROS driver (only used by demo progs)
+       
+
+BUGS : o ftstring crashes if you rotate/scale for some time the
+         string with cursor keys/pageup/pagedown. When directly
+	 compiled for Linux/X11 this does not seem to happen.
+	 It segfaults in Exec_FreePooled so it probably happens
+	 in free (<-> malloc). Maybe some mem trashing.
+
+       o ftstring and ftview seem to eat memory and not free it
+         again.
+
diff -ruN freetype-2.10.0/src/autofit/afglobal.c freetype-2.10.0.aros/src/autofit/afglobal.c
--- freetype-2.10.0/src/autofit/afglobal.c	2019-02-23 10:06:07.000000000 +0100
+++ freetype-2.10.0.aros/src/autofit/afglobal.c	2019-04-10 15:33:37.353922411 +0200
@@ -21,6 +21,8 @@
 #include "afshaper.h"
 #include FT_INTERNAL_DEBUG_H
 
+#define DEBUG 1
+#include <aros/debug.h>
 
   /**************************************************************************
    *
@@ -428,6 +430,12 @@
     AF_WritingSystemClass  writing_system_class;
     AF_StyleClass          style_class;
 
+    bug("[%s:%s:%d] ============== %d\n", __FILE__, __func__, __LINE__);
+    bug("[%s:%s] sizeof(AF_FaceGlobals): %d\n", __FILE__, __func__, sizeof(AF_FaceGlobals));
+    bug("[%s:%s] sizeof(AF_Style): %d\n", __FILE__, __func__, sizeof(AF_Style));
+    bug("[%s:%s] sizeof(AF_WritingSystemClass): %d\n", __FILE__, __func__, sizeof(AF_WritingSystemClass));
+    bug("[%s:%s] sizeof(AF_StyleClass): %d\n", __FILE__, __func__, sizeof(AF_StyleClass));
+
     FT_Error  error = FT_Err_Ok;
 
 
@@ -452,6 +460,7 @@
     {
       /* create the global metrics object if necessary */
       FT_Memory  memory = globals->face->memory;
+      bug("[%s:%s] sizeof(FT_Memory): %d\n", __FILE__, __func__, sizeof(FT_Memory));
 
 
       if ( FT_ALLOC( metrics, writing_system_class->style_metrics_size ) )
diff -ruN freetype-2.10.0/src/autofit/aflatin.c freetype-2.10.0.aros/src/autofit/aflatin.c
--- freetype-2.10.0/src/autofit/aflatin.c	2019-02-23 10:06:07.000000000 +0100
+++ freetype-2.10.0.aros/src/autofit/aflatin.c	2019-04-10 15:33:37.353922411 +0200
@@ -29,6 +29,9 @@
 #include "afwarp.h"
 #endif
 
+#define DEBUG 1
+#include <aros/debug.h>
+
 
   /**************************************************************************
    *
@@ -61,7 +64,13 @@
                                 FT_Face          face )
   {
     /* scan the array of segments in each direction */
-    AF_GlyphHintsRec  hints[1];
+    //AF_GlyphHintsRec  hints[1];
+    AF_GlyphHintsRec  *hints;
+
+    hints=(AF_GlyphHintsRec *)AllocVec(sizeof(AF_GlyphHintsRec) * 2, MEMF_CLEAR);
+
+    bug("[%s:%s:%d] ============== %d\n", __FILE__, __func__,__LINE__);
+    bug("[%s:%s] sizeof(AF_GlyphHintsRec): %d\n", __FILE__, __func__, sizeof(AF_GlyphHintsRec));
 
 
     FT_TRACE5(( "\n"
@@ -79,12 +88,17 @@
       FT_Error            error;
       FT_ULong            glyph_index;
       int                 dim;
-      AF_LatinMetricsRec  dummy[1];
+      //AF_LatinMetricsRec  dummy[1];
+      AF_LatinMetricsRec  *dummy=(AF_LatinMetricsRec  *) AllocVec(sizeof(AF_LatinMetricsRec) * 2, MEMF_CLEAR);
       AF_Scaler           scaler = &dummy->root.scaler;
 
       AF_StyleClass   style_class  = metrics->root.style_class;
       AF_ScriptClass  script_class = af_script_classes[style_class->script];
 
+      bug("[%s:%s] sizeof(AF_LatinMetricsRec): %d\n", __FILE__, __func__, sizeof(AF_LatinMetricsRec));
+      bug("[%s:%s] sizeof(AF_Scaler): %d\n", __FILE__, __func__, sizeof(AF_Scaler));
+      bug("[%s:%s] sizeof(AF_StyleClass): %d\n", __FILE__, __func__, sizeof(AF_StyleClass));
+      bug("[%s:%s] sizeof(AF_ScriptClass): %d\n", __FILE__, __func__, sizeof(AF_ScriptClass));
       /* If HarfBuzz is not available, we need a pointer to a single */
       /* unsigned long value.                                        */
 #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
@@ -183,6 +197,7 @@
         AF_AxisHints  axhints = &hints->axis[dim];
         AF_Segment    seg, limit, link;
         FT_UInt       num_widths = 0;
+      bug("[%s:%s] sizeof(AF_Segment): %d\n", __FILE__, __func__, sizeof(AF_Segment));
 
 
         error = af_latin_hints_compute_segments( hints,
@@ -1118,6 +1133,8 @@
   {
     FT_CharMap  oldmap = face->charmap;
 
+    bug("[%s:%s:%d] ============== %d\n", __FILE__, __func__, __LINE__);
+    bug("[%s:%s] sizeof(FT_CharMap): %d\n", __FILE__, __func__, sizeof(FT_CharMap));
 
     metrics->units_per_em = face->units_per_EM;
 
diff -ruN freetype-2.10.0/src/autofit/afpic.c freetype-2.10.0.aros/src/autofit/afpic.c
--- freetype-2.10.0/src/autofit/afpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/autofit/afpic.c	2019-04-10 15:33:37.349922386 +0200
@@ -0,0 +1,152 @@
+/***************************************************************************/
+/*                                                                         */
+/*  afpic.c                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for autofit module.  */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "afpic.h"
+#include "afglobal.h"
+#include "aferrors.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from afmodule.c */
+  FT_Error
+  FT_Create_Class_af_services( FT_Library           library,
+                               FT_ServiceDescRec**  output_class );
+
+  void
+  FT_Destroy_Class_af_services( FT_Library          library,
+                                FT_ServiceDescRec*  clazz );
+
+  void
+  FT_Init_Class_af_service_properties( FT_Service_PropertiesRec*  clazz );
+
+  void FT_Init_Class_af_autofitter_interface(
+    FT_Library                   library,
+    FT_AutoHinter_InterfaceRec*  clazz );
+
+
+  /* forward declaration of PIC init functions from writing system classes */
+#undef  WRITING_SYSTEM
+#define WRITING_SYSTEM( ws, WS )  /* empty */
+
+#include "afwrtsys.h"
+
+
+  void
+  autofit_module_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->autofit )
+    {
+      AFModulePIC*  container = (AFModulePIC*)pic_container->autofit;
+
+
+      if ( container->af_services )
+        FT_Destroy_Class_af_services( library,
+                                      container->af_services );
+      container->af_services = NULL;
+
+      FT_FREE( container );
+      pic_container->autofit = NULL;
+    }
+  }
+
+
+  FT_Error
+  autofit_module_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_UInt            ss;
+    FT_Error           error         = FT_Err_Ok;
+    AFModulePIC*       container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC ( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->autofit = container;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    error = FT_Create_Class_af_services( library,
+                                         &container->af_services );
+    if ( error )
+      goto Exit;
+
+    FT_Init_Class_af_service_properties( &container->af_service_properties );
+
+    for ( ss = 0; ss < AF_WRITING_SYSTEM_MAX; ss++ )
+      container->af_writing_system_classes[ss] =
+        &container->af_writing_system_classes_rec[ss];
+    container->af_writing_system_classes[AF_WRITING_SYSTEM_MAX] = NULL;
+
+    for ( ss = 0; ss < AF_SCRIPT_MAX; ss++ )
+      container->af_script_classes[ss] =
+        &container->af_script_classes_rec[ss];
+    container->af_script_classes[AF_SCRIPT_MAX] = NULL;
+
+    for ( ss = 0; ss < AF_STYLE_MAX; ss++ )
+      container->af_style_classes[ss] =
+        &container->af_style_classes_rec[ss];
+    container->af_style_classes[AF_STYLE_MAX] = NULL;
+
+#undef  WRITING_SYSTEM
+#define WRITING_SYSTEM( ws, WS )                             \
+        FT_Init_Class_af_ ## ws ## _writing_system_class(    \
+          &container->af_writing_system_classes_rec[ss++] );
+
+    ss = 0;
+#include "afwrtsys.h"
+
+#undef  SCRIPT
+#define SCRIPT( s, S, d, h, H, sss )                 \
+        FT_Init_Class_af_ ## s ## _script_class(     \
+          &container->af_script_classes_rec[ss++] );
+
+    ss = 0;
+#include "afscript.h"
+
+#undef  STYLE
+#define STYLE( s, S, d, ws, sc, bss, c )            \
+        FT_Init_Class_af_ ## s ## _style_class(     \
+          &container->af_style_classes_rec[ss++] );
+
+    ss = 0;
+#include "afstyles.h"
+
+    FT_Init_Class_af_autofitter_interface(
+      library, &container->af_autofitter_interface );
+
+  Exit:
+    if ( error )
+      autofit_module_class_pic_free( library );
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/autofit/afpic.h freetype-2.10.0.aros/src/autofit/afpic.h
--- freetype-2.10.0/src/autofit/afpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/autofit/afpic.h	2019-04-10 15:33:37.349922386 +0200
@@ -0,0 +1,105 @@
+/***************************************************************************/
+/*                                                                         */
+/*  afpic.h                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for autofit module.  */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef AFPIC_H_
+#define AFPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define AF_SERVICES_GET                af_services
+#define AF_SERVICE_PROPERTIES_GET      af_service_properties
+
+#define AF_WRITING_SYSTEM_CLASSES_GET  af_writing_system_classes
+#define AF_SCRIPT_CLASSES_GET          af_script_classes
+#define AF_STYLE_CLASSES_GET           af_style_classes
+#define AF_INTERFACE_GET               af_autofitter_interface
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+  /* some include files required for members of AFModulePIC */
+#include FT_SERVICE_PROPERTIES_H
+
+#include "aftypes.h"
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  AFModulePIC_
+  {
+    FT_ServiceDescRec*          af_services;
+    FT_Service_PropertiesRec    af_service_properties;
+
+    AF_WritingSystemClass       af_writing_system_classes
+                                  [AF_WRITING_SYSTEM_MAX + 1];
+    AF_WritingSystemClassRec    af_writing_system_classes_rec
+                                  [AF_WRITING_SYSTEM_MAX];
+
+    AF_ScriptClass              af_script_classes
+                                  [AF_SCRIPT_MAX + 1];
+    AF_ScriptClassRec           af_script_classes_rec
+                                  [AF_SCRIPT_MAX];
+
+    AF_StyleClass               af_style_classes
+                                  [AF_STYLE_MAX + 1];
+    AF_StyleClassRec            af_style_classes_rec
+                                  [AF_STYLE_MAX];
+
+    FT_AutoHinter_InterfaceRec  af_autofitter_interface;
+
+  } AFModulePIC;
+
+
+#define GET_PIC( lib )  \
+          ( (AFModulePIC*)( (lib)->pic_container.autofit ) )
+
+#define AF_SERVICES_GET  \
+          ( GET_PIC( library )->af_services )
+#define AF_SERVICE_PROPERTIES_GET  \
+          ( GET_PIC( library )->af_service_properties )
+
+#define AF_WRITING_SYSTEM_CLASSES_GET  \
+          ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_writing_system_classes )
+#define AF_SCRIPT_CLASSES_GET  \
+          ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_script_classes )
+#define AF_STYLE_CLASSES_GET  \
+          ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_style_classes )
+#define AF_INTERFACE_GET  \
+          ( GET_PIC( library )->af_autofitter_interface )
+
+
+  /* see afpic.c for the implementation */
+  void
+  autofit_module_class_pic_free( FT_Library  library );
+
+  FT_Error
+  autofit_module_class_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+#endif /* AFPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/base/basepic.c freetype-2.10.0.aros/src/base/basepic.c
--- freetype-2.10.0/src/base/basepic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/base/basepic.c	2019-04-10 15:33:37.329922261 +0200
@@ -0,0 +1,108 @@
+/***************************************************************************/
+/*                                                                         */
+/*  basepic.c                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for base.            */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "basepic.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from ftglyph.c */
+  void
+  FT_Init_Class_ft_outline_glyph_class( FT_Glyph_Class*  clazz );
+
+  void
+  FT_Init_Class_ft_bitmap_glyph_class( FT_Glyph_Class*  clazz );
+
+#ifdef FT_CONFIG_OPTION_MAC_FONTS
+  /* forward declaration of PIC init function from ftrfork.c */
+  /* (not modularized)                                       */
+  void
+  FT_Init_Table_ft_raccess_guess_table( ft_raccess_guess_rec*  record );
+#endif
+
+  /* forward declaration of PIC init functions from ftinit.c */
+  FT_Error
+  ft_create_default_module_classes( FT_Library  library );
+
+  void
+  ft_destroy_default_module_classes( FT_Library  library );
+
+
+  void
+  ft_base_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->base )
+    {
+      /* destroy default module classes            */
+      /* (in case FT_Add_Default_Modules was used) */
+      ft_destroy_default_module_classes( library );
+
+      FT_FREE( pic_container->base );
+      pic_container->base = NULL;
+    }
+  }
+
+
+  FT_Error
+  ft_base_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    BasePIC*           container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->base = container;
+
+    /* initialize default modules list and pointers */
+    error = ft_create_default_module_classes( library );
+    if ( error )
+      goto Exit;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    FT_Init_Class_ft_outline_glyph_class(
+      &container->ft_outline_glyph_class );
+    FT_Init_Class_ft_bitmap_glyph_class(
+      &container->ft_bitmap_glyph_class );
+#ifdef FT_CONFIG_OPTION_MAC_FONTS
+    FT_Init_Table_ft_raccess_guess_table(
+      (ft_raccess_guess_rec*)&container->ft_raccess_guess_table );
+#endif
+
+  Exit:
+    if ( error )
+      ft_base_pic_free( library );
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/base/basepic.h freetype-2.10.0.aros/src/base/basepic.h
--- freetype-2.10.0/src/base/basepic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/base/basepic.h	2019-04-10 15:33:37.325922236 +0200
@@ -0,0 +1,91 @@
+/***************************************************************************/
+/*                                                                         */
+/*  basepic.h                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for base.            */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef BASEPIC_H_
+#define BASEPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_OUTLINE_GLYPH_CLASS_GET  &ft_outline_glyph_class
+#define FT_BITMAP_GLYPH_CLASS_GET   &ft_bitmap_glyph_class
+#define FT_DEFAULT_MODULES_GET      ft_default_modules
+
+#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
+#define FT_RACCESS_GUESS_TABLE_GET  ft_raccess_guess_table
+#endif
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#include FT_GLYPH_H
+
+#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
+#include FT_INTERNAL_RFORK_H
+#endif
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  BasePIC_
+  {
+    FT_Module_Class**  default_module_classes;
+    FT_Glyph_Class     ft_outline_glyph_class;
+    FT_Glyph_Class     ft_bitmap_glyph_class;
+
+#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
+    ft_raccess_guess_rec  ft_raccess_guess_table[FT_RACCESS_N_RULES];
+#endif
+
+  } BasePIC;
+
+
+#define GET_PIC( lib )  ( (BasePIC*)( (lib)->pic_container.base ) )
+
+#define FT_OUTLINE_GLYPH_CLASS_GET                      \
+          ( &GET_PIC( library )->ft_outline_glyph_class )
+#define FT_BITMAP_GLYPH_CLASS_GET                        \
+          ( &GET_PIC( library )->ft_bitmap_glyph_class )
+#define FT_DEFAULT_MODULES_GET                           \
+          ( GET_PIC( library )->default_module_classes )
+
+#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
+#define FT_RACCESS_GUESS_TABLE_GET                       \
+          ( GET_PIC( library )->ft_raccess_guess_table )
+#endif
+
+
+  /* see basepic.c for the implementation */
+  void
+  ft_base_pic_free( FT_Library  library );
+
+  FT_Error
+  ft_base_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+  /* */
+
+#endif /* BASEPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/base/ftapi.c freetype-2.10.0.aros/src/base/ftapi.c
--- freetype-2.10.0/src/base/ftapi.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/base/ftapi.c	2019-04-10 15:33:37.329922261 +0200
@@ -0,0 +1,121 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftapi.c                                                                */
+/*                                                                         */
+/*    The FreeType compatibility functions (body).                         */
+/*                                                                         */
+/*  Copyright 2002-2018 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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_LIST_H
+#include FT_OUTLINE_H
+#include FT_INTERNAL_OBJECTS_H
+#include FT_INTERNAL_DEBUG_H
+#include FT_INTERNAL_STREAM_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_OUTLINE_H
+
+
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /****                                                                 ****/
+  /****                                                                 ****/
+  /****                 C O M P A T I B I L I T Y                       ****/
+  /****                                                                 ****/
+  /****                                                                 ****/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+
+  /* backward compatibility API */
+
+  FT_BASE_DEF( void )
+  FT_New_Memory_Stream( FT_Library  library,
+                        FT_Byte*    base,
+                        FT_ULong    size,
+                        FT_Stream   stream )
+  {
+    FT_UNUSED( library );
+
+    FT_Stream_OpenMemory( stream, base, size );
+  }
+
+
+  FT_BASE_DEF( FT_Error )
+  FT_Seek_Stream( FT_Stream  stream,
+                  FT_ULong   pos )
+  {
+    return FT_Stream_Seek( stream, pos );
+  }
+
+
+  FT_BASE_DEF( FT_Error )
+  FT_Skip_Stream( FT_Stream  stream,
+                  FT_Long    distance )
+  {
+    return FT_Stream_Skip( stream, distance );
+  }
+
+
+  FT_BASE_DEF( FT_Error )
+  FT_Read_Stream( FT_Stream  stream,
+                  FT_Byte*   buffer,
+                  FT_ULong   count )
+  {
+    return FT_Stream_Read( stream, buffer, count );
+  }
+
+
+  FT_BASE_DEF( FT_Error )
+  FT_Read_Stream_At( FT_Stream  stream,
+                     FT_ULong   pos,
+                     FT_Byte*   buffer,
+                     FT_ULong   count )
+  {
+    return FT_Stream_ReadAt( stream, pos, buffer, count );
+  }
+
+
+  FT_BASE_DEF( FT_Error )
+  FT_Extract_Frame( FT_Stream  stream,
+                    FT_ULong   count,
+                    FT_Byte**  pbytes )
+  {
+    return FT_Stream_ExtractFrame( stream, count, pbytes );
+  }
+
+
+  FT_BASE_DEF( void )
+  FT_Release_Frame( FT_Stream  stream,
+                    FT_Byte**  pbytes )
+  {
+    FT_Stream_ReleaseFrame( stream, pbytes );
+  }
+
+  FT_BASE_DEF( FT_Error )
+  FT_Access_Frame( FT_Stream  stream,
+                   FT_ULong   count )
+  {
+    return FT_Stream_EnterFrame( stream, count );
+  }
+
+
+  FT_BASE_DEF( void )
+  FT_Forget_Frame( FT_Stream  stream )
+  {
+    FT_Stream_ExitFrame( stream );
+  }
+
+
+/* END */
diff -ruN freetype-2.10.0/src/base/ftpic.c freetype-2.10.0.aros/src/base/ftpic.c
--- freetype-2.10.0/src/base/ftpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/base/ftpic.c	2019-04-10 15:33:37.329922261 +0200
@@ -0,0 +1,55 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftpic.c                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services (body).              */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "basepic.h"
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* documentation is in ftpic.h */
+
+  FT_BASE_DEF( FT_Error )
+  ft_pic_container_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error;
+
+
+    FT_MEM_SET( pic_container, 0, sizeof ( *pic_container ) );
+
+    error = ft_base_pic_init( library );
+    if ( error )
+      return error;
+
+    return FT_Err_Ok;
+  }
+
+
+  /* Destroy the contents of the container. */
+  FT_BASE_DEF( void )
+  ft_pic_container_destroy( FT_Library  library )
+  {
+    ft_base_pic_free( library );
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
Binary files freetype-2.10.0/src/base/.ftstream.c.swp and freetype-2.10.0.aros/src/base/.ftstream.c.swp differ
diff -ruN freetype-2.10.0/src/cff/cffpic.c freetype-2.10.0.aros/src/cff/cffpic.c
--- freetype-2.10.0/src/cff/cffpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/cff/cffpic.c	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,138 @@
+/***************************************************************************/
+/*                                                                         */
+/*  cffpic.c                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for cff module.      */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "cffcmap.h"
+#include "cffpic.h"
+#include "cfferrs.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from cffdrivr.c */
+  FT_Error
+  FT_Create_Class_cff_services( FT_Library           library,
+                                FT_ServiceDescRec**  output_class );
+  void
+  FT_Destroy_Class_cff_services( FT_Library          library,
+                                 FT_ServiceDescRec*  clazz );
+  void
+  FT_Init_Class_cff_service_ps_info( FT_Library             library,
+                                     FT_Service_PsInfoRec*  clazz );
+  void
+  FT_Init_Class_cff_service_glyph_dict( FT_Library                library,
+                                        FT_Service_GlyphDictRec*  clazz );
+  void
+  FT_Init_Class_cff_service_ps_name( FT_Library                 library,
+                                     FT_Service_PsFontNameRec*  clazz );
+  void
+  FT_Init_Class_cff_service_get_cmap_info( FT_Library              library,
+                                           FT_Service_TTCMapsRec*  clazz );
+  void
+  FT_Init_Class_cff_service_cid_info( FT_Library          library,
+                                      FT_Service_CIDRec*  clazz );
+
+  /* forward declaration of PIC init functions from cffparse.c */
+  FT_Error
+  FT_Create_Class_cff_field_handlers( FT_Library           library,
+                                      CFF_Field_Handler**  output_class );
+  void
+  FT_Destroy_Class_cff_field_handlers( FT_Library          library,
+                                       CFF_Field_Handler*  clazz );
+
+
+  void
+  cff_driver_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->cff )
+    {
+      CffModulePIC*  container = (CffModulePIC*)pic_container->cff;
+
+
+      if ( container->cff_services )
+        FT_Destroy_Class_cff_services( library,
+                                       container->cff_services );
+      container->cff_services = NULL;
+      if ( container->cff_field_handlers )
+        FT_Destroy_Class_cff_field_handlers(
+          library, container->cff_field_handlers );
+      container->cff_field_handlers = NULL;
+      FT_FREE( container );
+      pic_container->cff = NULL;
+    }
+  }
+
+
+  FT_Error
+  cff_driver_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    CffModulePIC*      container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC ( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->cff = container;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    error = FT_Create_Class_cff_services( library,
+                                          &container->cff_services );
+    if ( error )
+      goto Exit;
+
+    error = FT_Create_Class_cff_field_handlers(
+              library, &container->cff_field_handlers );
+    if ( error )
+      goto Exit;
+
+    FT_Init_Class_cff_service_ps_info(
+      library, &container->cff_service_ps_info );
+    FT_Init_Class_cff_service_glyph_dict(
+      library, &container->cff_service_glyph_dict );
+    FT_Init_Class_cff_service_ps_name(
+      library, &container->cff_service_ps_name );
+    FT_Init_Class_cff_service_get_cmap_info(
+      library, &container->cff_service_get_cmap_info );
+    FT_Init_Class_cff_service_cid_info(
+      library, &container->cff_service_cid_info );
+    FT_Init_Class_cff_cmap_encoding_class_rec(
+      library, &container->cff_cmap_encoding_class_rec );
+    FT_Init_Class_cff_cmap_unicode_class_rec(
+      library, &container->cff_cmap_unicode_class_rec );
+
+  Exit:
+    if ( error )
+      cff_driver_class_pic_free( library );
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/cff/cffpic.h freetype-2.10.0.aros/src/cff/cffpic.h
--- freetype-2.10.0/src/cff/cffpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/cff/cffpic.h	2019-04-10 15:33:37.333922286 +0200
@@ -0,0 +1,121 @@
+/***************************************************************************/
+/*                                                                         */
+/*  cffpic.h                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for cff module.      */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef CFFPIC_H_
+#define CFFPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define CFF_SERVICE_PS_INFO_GET          cff_service_ps_info
+#define CFF_SERVICE_GLYPH_DICT_GET       cff_service_glyph_dict
+#define CFF_SERVICE_PS_NAME_GET          cff_service_ps_name
+#define CFF_SERVICE_GET_CMAP_INFO_GET    cff_service_get_cmap_info
+#define CFF_SERVICE_CID_INFO_GET         cff_service_cid_info
+#define CFF_SERVICE_PROPERTIES_GET       cff_service_properties
+#define CFF_SERVICES_GET                 cff_services
+#define CFF_SERVICE_MULTI_MASTERS_GET    cff_service_multi_masters
+#define CFF_SERVICE_METRICS_VAR_GET      cff_service_metrics_variations
+#define CFF_SERVICE_CFF_LOAD_GET         cff_service_cff_load
+#define CFF_CMAP_ENCODING_CLASS_REC_GET  cff_cmap_encoding_class_rec
+#define CFF_CMAP_UNICODE_CLASS_REC_GET   cff_cmap_unicode_class_rec
+#define CFF_FIELD_HANDLERS_GET           cff_field_handlers
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#include FT_SERVICE_GLYPH_DICT_H
+#include "cffparse.h"
+#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include FT_SERVICE_POSTSCRIPT_NAME_H
+#include FT_SERVICE_TT_CMAP_H
+#include FT_SERVICE_CID_H
+#include FT_SERVICE_PROPERTIES_H
+#include FT_SERVICE_MULTIPLE_MASTERS_H
+#include FT_SERVICE_METRICS_VARIATIONS_H
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  CffModulePIC_
+  {
+    FT_ServiceDescRec*               cff_services;
+    CFF_Field_Handler*               cff_field_handlers;
+    FT_Service_PsInfoRec             cff_service_ps_info;
+    FT_Service_GlyphDictRec          cff_service_glyph_dict;
+    FT_Service_PsFontNameRec         cff_service_ps_name;
+    FT_Service_TTCMapsRec            cff_service_get_cmap_info;
+    FT_Service_CIDRec                cff_service_cid_info;
+    FT_Service_PropertiesRec         cff_service_properties;
+    FT_Service_MultiMastersRec       cff_service_multi_masters;
+    FT_Service_MetricsVariationsRec  cff_service_metrics_variations;
+    FT_Service_CFFLoadRec            cff_service_cff_load;
+    FT_CMap_ClassRec                 cff_cmap_encoding_class_rec;
+    FT_CMap_ClassRec                 cff_cmap_unicode_class_rec;
+
+  } CffModulePIC;
+
+
+#define GET_PIC( lib )                                    \
+          ( (CffModulePIC*)( (lib)->pic_container.cff ) )
+
+#define CFF_SERVICE_PS_INFO_GET                       \
+          ( GET_PIC( library )->cff_service_ps_info )
+#define CFF_SERVICE_GLYPH_DICT_GET                       \
+          ( GET_PIC( library )->cff_service_glyph_dict )
+#define CFF_SERVICE_PS_NAME_GET                       \
+          ( GET_PIC( library )->cff_service_ps_name )
+#define CFF_SERVICE_GET_CMAP_INFO_GET                       \
+          ( GET_PIC( library )->cff_service_get_cmap_info )
+#define CFF_SERVICE_CID_INFO_GET                       \
+          ( GET_PIC( library )->cff_service_cid_info )
+#define CFF_SERVICE_PROPERTIES_GET                       \
+          ( GET_PIC( library )->cff_service_properties )
+#define CFF_SERVICES_GET                       \
+          ( GET_PIC( library )->cff_services )
+#define CFF_SERVICE_MULTI_MASTERS_GET                       \
+          ( GET_PIC( library )->cff_service_multi_masters )
+#define CFF_SERVICE_METRICS_VAR_GET                              \
+          ( GET_PIC( library )->cff_service_metrics_variations )
+#define CFF_SERVICE_CFF_LOAD_GET                       \
+          ( GET_PIC( library )->cff_service_cff_load )
+#define CFF_CMAP_ENCODING_CLASS_REC_GET                       \
+          ( GET_PIC( library )->cff_cmap_encoding_class_rec )
+#define CFF_CMAP_UNICODE_CLASS_REC_GET                       \
+          ( GET_PIC( library )->cff_cmap_unicode_class_rec )
+#define CFF_FIELD_HANDLERS_GET                       \
+          ( GET_PIC( library )->cff_field_handlers )
+
+  /* see cffpic.c for the implementation */
+  void
+  cff_driver_class_pic_free( FT_Library  library );
+
+  FT_Error
+  cff_driver_class_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+#endif /* CFFPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/pshinter/pshpic.c freetype-2.10.0.aros/src/pshinter/pshpic.c
--- freetype-2.10.0/src/pshinter/pshpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/pshinter/pshpic.c	2019-04-10 15:33:37.325922236 +0200
@@ -0,0 +1,76 @@
+/***************************************************************************/
+/*                                                                         */
+/*  pshpic.c                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for pshinter module. */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "pshpic.h"
+#include "pshnterr.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from pshmod.c */
+  void
+  FT_Init_Class_pshinter_interface( FT_Library           library,
+                                    PSHinter_Interface*  clazz );
+
+  void
+  pshinter_module_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->pshinter )
+    {
+      FT_FREE( pic_container->pshinter );
+      pic_container->pshinter = NULL;
+    }
+  }
+
+
+  FT_Error
+  pshinter_module_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    PSHinterPIC*       container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->pshinter = container;
+
+    /* add call to initialization function when you add new scripts */
+    FT_Init_Class_pshinter_interface(
+      library, &container->pshinter_interface );
+
+    if ( error )
+      pshinter_module_class_pic_free( library );
+
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/pshinter/pshpic.h freetype-2.10.0.aros/src/pshinter/pshpic.h
--- freetype-2.10.0/src/pshinter/pshpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/pshinter/pshpic.h	2019-04-10 15:33:37.325922236 +0200
@@ -0,0 +1,63 @@
+/***************************************************************************/
+/*                                                                         */
+/*  pshpic.h                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for pshinter module. */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef PSHPIC_H_
+#define PSHPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define PSHINTER_INTERFACE_GET  pshinter_interface
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+
+FT_BEGIN_HEADER
+
+  typedef struct  PSHinterPIC_
+  {
+    PSHinter_Interface  pshinter_interface;
+
+  } PSHinterPIC;
+
+
+#define GET_PIC( lib )  ( (PSHinterPIC*)( (lib)->pic_container.pshinter ) )
+
+#define PSHINTER_INTERFACE_GET  ( GET_PIC( library )->pshinter_interface )
+
+  /* see pshpic.c for the implementation */
+  void
+  pshinter_module_class_pic_free( FT_Library  library );
+
+  FT_Error
+  pshinter_module_class_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+#endif /* PSHPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/psnames/pspic.c freetype-2.10.0.aros/src/psnames/pspic.c
--- freetype-2.10.0/src/psnames/pspic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/psnames/pspic.c	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,97 @@
+/***************************************************************************/
+/*                                                                         */
+/*  pspic.c                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for psnames module.  */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "pspic.h"
+#include "psnamerr.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from psmodule.c */
+  FT_Error
+  FT_Create_Class_pscmaps_services( FT_Library           library,
+                                    FT_ServiceDescRec**  output_class );
+  void
+  FT_Destroy_Class_pscmaps_services( FT_Library          library,
+                                     FT_ServiceDescRec*  clazz );
+
+  void
+  FT_Init_Class_pscmaps_interface( FT_Library              library,
+                                   FT_Service_PsCMapsRec*  clazz );
+
+
+  void
+  psnames_module_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->psnames )
+    {
+      PSModulePIC*  container = (PSModulePIC*)pic_container->psnames;
+
+
+      if ( container->pscmaps_services )
+        FT_Destroy_Class_pscmaps_services( library,
+                                           container->pscmaps_services );
+      container->pscmaps_services = NULL;
+      FT_FREE( container );
+      pic_container->psnames = NULL;
+    }
+  }
+
+
+  FT_Error
+  psnames_module_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    PSModulePIC*       container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->psnames = container;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    error = FT_Create_Class_pscmaps_services(
+              library, &container->pscmaps_services );
+    if ( error )
+      goto Exit;
+    FT_Init_Class_pscmaps_interface( library,
+                                     &container->pscmaps_interface );
+
+  Exit:
+    if ( error )
+      psnames_module_class_pic_free( library );
+    return error;
+  }
+
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/psnames/pspic.h freetype-2.10.0.aros/src/psnames/pspic.h
--- freetype-2.10.0/src/psnames/pspic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/psnames/pspic.h	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,68 @@
+/***************************************************************************/
+/*                                                                         */
+/*  pspic.h                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for psnames module.  */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef PSPIC_H_
+#define PSPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define PSCMAPS_SERVICES_GET   pscmaps_services
+#define PSCMAPS_INTERFACE_GET  pscmaps_interface
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  PSModulePIC_
+  {
+    FT_ServiceDescRec*     pscmaps_services;
+    FT_Service_PsCMapsRec  pscmaps_interface;
+
+  } PSModulePIC;
+
+
+#define GET_PIC( lib )                                     \
+          ( (PSModulePIC*)((lib)->pic_container.psnames) )
+#define PSCMAPS_SERVICES_GET   ( GET_PIC( library )->pscmaps_services )
+#define PSCMAPS_INTERFACE_GET  ( GET_PIC( library )->pscmaps_interface )
+
+
+  /* see pspic.c for the implementation */
+  void
+  psnames_module_class_pic_free( FT_Library  library );
+
+  FT_Error
+  psnames_module_class_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+#endif /* PSPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/raster/ftrend1.c freetype-2.10.0.aros/src/raster/ftrend1.c
--- freetype-2.10.0/src/raster/ftrend1.c	2019-02-23 10:06:07.000000000 +0100
+++ freetype-2.10.0.aros/src/raster/ftrend1.c	2019-04-10 15:33:37.345922361 +0200
@@ -127,11 +127,7 @@
       slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
     }
 
-    if ( ft_glyphslot_preset_bitmap( slot, mode, origin ) )
-    {
-      error = FT_THROW( Raster_Overflow );
-      goto Exit;
-    }
+    ft_glyphslot_preset_bitmap( slot, mode, origin ) ;
 
     /* allocate new one */
     if ( FT_ALLOC_MULT( bitmap->buffer, bitmap->rows, bitmap->pitch ) )
diff -ruN freetype-2.10.0/src/raster/rastpic.c freetype-2.10.0.aros/src/raster/rastpic.c
--- freetype-2.10.0/src/raster/rastpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/raster/rastpic.c	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,89 @@
+/***************************************************************************/
+/*                                                                         */
+/*  rastpic.c                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for raster module.   */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "rastpic.h"
+#include "rasterrs.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from ftraster.c */
+  void
+  FT_Init_Class_ft_standard_raster( FT_Raster_Funcs*  funcs );
+
+
+  void
+  ft_raster1_renderer_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->raster )
+    {
+      RasterPIC*  container = (RasterPIC*)pic_container->raster;
+
+
+      if ( --container->ref_count )
+        return;
+      FT_FREE( container );
+      pic_container->raster = NULL;
+    }
+  }
+
+
+  FT_Error
+  ft_raster1_renderer_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    RasterPIC*         container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* XXX: since this function also served the no longer available  */
+    /*      raster5 renderer it uses reference counting, which could */
+    /*      be removed now                                           */
+    if ( pic_container->raster )
+    {
+      ((RasterPIC*)pic_container->raster)->ref_count++;
+      return error;
+    }
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->raster = container;
+
+    container->ref_count = 1;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    FT_Init_Class_ft_standard_raster( &container->ft_standard_raster );
+
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/raster/rastpic.h freetype-2.10.0.aros/src/raster/rastpic.h
--- freetype-2.10.0/src/raster/rastpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/raster/rastpic.h	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,63 @@
+/***************************************************************************/
+/*                                                                         */
+/*  rastpic.h                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for raster module.   */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef RASTPIC_H_
+#define RASTPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+FT_BEGIN_HEADER
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_STANDARD_RASTER_GET  ft_standard_raster
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+  typedef struct  RasterPIC_
+  {
+    int              ref_count;
+    FT_Raster_Funcs  ft_standard_raster;
+
+  } RasterPIC;
+
+
+#define GET_PIC( lib )                                    \
+          ( (RasterPIC*)( (lib)->pic_container.raster ) )
+#define FT_STANDARD_RASTER_GET  ( GET_PIC( library )->ft_standard_raster )
+
+
+  /* see rastpic.c for the implementation */
+  void
+  ft_raster1_renderer_class_pic_free( FT_Library  library );
+
+  FT_Error
+  ft_raster1_renderer_class_pic_init( FT_Library  library );
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+FT_END_HEADER
+
+#endif /* RASTPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/sfnt/sfntpic.c freetype-2.10.0.aros/src/sfnt/sfntpic.c
--- freetype-2.10.0/src/sfnt/sfntpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/sfnt/sfntpic.c	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,143 @@
+/***************************************************************************/
+/*                                                                         */
+/*  sfntpic.c                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for sfnt module.     */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "sfntpic.h"
+#include "sferrors.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from sfdriver.c */
+  FT_Error
+  FT_Create_Class_sfnt_services( FT_Library           library,
+                                 FT_ServiceDescRec**  output_class );
+  void
+  FT_Destroy_Class_sfnt_services( FT_Library          library,
+                                  FT_ServiceDescRec*  clazz );
+  void
+  FT_Init_Class_sfnt_service_bdf( FT_Service_BDFRec*  clazz );
+  void
+  FT_Init_Class_sfnt_interface( FT_Library       library,
+                                SFNT_Interface*  clazz );
+  void
+  FT_Init_Class_sfnt_service_glyph_dict(
+    FT_Library                library,
+    FT_Service_GlyphDictRec*  clazz );
+  void
+  FT_Init_Class_sfnt_service_ps_name(
+    FT_Library                 library,
+    FT_Service_PsFontNameRec*  clazz );
+  void
+  FT_Init_Class_tt_service_get_cmap_info(
+    FT_Library              library,
+    FT_Service_TTCMapsRec*  clazz );
+  void
+  FT_Init_Class_sfnt_service_sfnt_table(
+    FT_Service_SFNT_TableRec*  clazz );
+
+
+  /* forward declaration of PIC init functions from ttcmap.c */
+  FT_Error
+  FT_Create_Class_tt_cmap_classes( FT_Library       library,
+                                   TT_CMap_Class**  output_class );
+  void
+  FT_Destroy_Class_tt_cmap_classes( FT_Library      library,
+                                    TT_CMap_Class*  clazz );
+
+
+  void
+  sfnt_module_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->sfnt )
+    {
+      sfntModulePIC*  container = (sfntModulePIC*)pic_container->sfnt;
+
+
+      if ( container->sfnt_services )
+        FT_Destroy_Class_sfnt_services( library,
+                                        container->sfnt_services );
+      container->sfnt_services = NULL;
+
+      if ( container->tt_cmap_classes )
+        FT_Destroy_Class_tt_cmap_classes( library,
+                                          container->tt_cmap_classes );
+      container->tt_cmap_classes = NULL;
+
+      FT_FREE( container );
+      pic_container->sfnt = NULL;
+    }
+  }
+
+
+  FT_Error
+  sfnt_module_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    sfntModulePIC*     container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->sfnt = container;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    error = FT_Create_Class_sfnt_services( library,
+                                           &container->sfnt_services );
+    if ( error )
+      goto Exit;
+
+    error = FT_Create_Class_tt_cmap_classes( library,
+                                             &container->tt_cmap_classes );
+    if ( error )
+      goto Exit;
+
+    FT_Init_Class_sfnt_service_glyph_dict(
+      library, &container->sfnt_service_glyph_dict );
+    FT_Init_Class_sfnt_service_ps_name(
+      library, &container->sfnt_service_ps_name );
+    FT_Init_Class_tt_service_get_cmap_info(
+      library, &container->tt_service_get_cmap_info );
+    FT_Init_Class_sfnt_service_sfnt_table(
+      &container->sfnt_service_sfnt_table );
+#ifdef TT_CONFIG_OPTION_BDF
+    FT_Init_Class_sfnt_service_bdf( &container->sfnt_service_bdf );
+#endif
+    FT_Init_Class_sfnt_interface( library, &container->sfnt_interface );
+
+  Exit:
+    if ( error )
+      sfnt_module_class_pic_free( library );
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/sfnt/sfntpic.h freetype-2.10.0.aros/src/sfnt/sfntpic.h
--- freetype-2.10.0/src/sfnt/sfntpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/sfnt/sfntpic.h	2019-04-10 15:33:37.345922361 +0200
@@ -0,0 +1,112 @@
+/***************************************************************************/
+/*                                                                         */
+/*  sfntpic.h                                                              */
+/*                                                                         */
+/*    The FreeType position independent code services for sfnt module.     */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef SFNTPIC_H_
+#define SFNTPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define SFNT_SERVICES_GET            sfnt_services
+#define SFNT_SERVICE_GLYPH_DICT_GET  sfnt_service_glyph_dict
+#define SFNT_SERVICE_PS_NAME_GET     sfnt_service_ps_name
+#define TT_SERVICE_CMAP_INFO_GET     tt_service_get_cmap_info
+#define TT_CMAP_CLASSES_GET          tt_cmap_classes
+#define SFNT_SERVICE_SFNT_TABLE_GET  sfnt_service_sfnt_table
+#define SFNT_SERVICE_BDF_GET         sfnt_service_bdf
+#define SFNT_INTERFACE_GET           sfnt_interface
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+  /* some include files required for members of sfntModulePIC */
+#include FT_SERVICE_GLYPH_DICT_H
+#include FT_SERVICE_POSTSCRIPT_NAME_H
+#include FT_SERVICE_SFNT_H
+#include FT_SERVICE_TT_CMAP_H
+
+#ifdef TT_CONFIG_OPTION_BDF
+#include "ttbdf.h"
+#include FT_SERVICE_BDF_H
+#endif
+
+#include FT_INTERNAL_DEBUG_H
+#include FT_INTERNAL_STREAM_H
+#include FT_INTERNAL_SFNT_H
+#include "ttcmap.h"
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  sfntModulePIC_
+  {
+    FT_ServiceDescRec*        sfnt_services;
+    FT_Service_GlyphDictRec   sfnt_service_glyph_dict;
+    FT_Service_PsFontNameRec  sfnt_service_ps_name;
+    FT_Service_TTCMapsRec     tt_service_get_cmap_info;
+    TT_CMap_Class*            tt_cmap_classes;
+    FT_Service_SFNT_TableRec  sfnt_service_sfnt_table;
+#ifdef TT_CONFIG_OPTION_BDF
+    FT_Service_BDFRec         sfnt_service_bdf;
+#endif
+    SFNT_Interface            sfnt_interface;
+
+  } sfntModulePIC;
+
+
+#define GET_PIC( lib )                                      \
+          ( (sfntModulePIC*)( (lib)->pic_container.sfnt ) )
+
+#define SFNT_SERVICES_GET                       \
+          ( GET_PIC( library )->sfnt_services )
+#define SFNT_SERVICE_GLYPH_DICT_GET                       \
+          ( GET_PIC( library )->sfnt_service_glyph_dict )
+#define SFNT_SERVICE_PS_NAME_GET                       \
+          ( GET_PIC( library )->sfnt_service_ps_name )
+#define TT_SERVICE_CMAP_INFO_GET                           \
+          ( GET_PIC( library )->tt_service_get_cmap_info )
+#define TT_CMAP_CLASSES_GET                       \
+          ( GET_PIC( library )->tt_cmap_classes )
+#define SFNT_SERVICE_SFNT_TABLE_GET                       \
+          ( GET_PIC( library )->sfnt_service_sfnt_table )
+#define SFNT_SERVICE_BDF_GET                       \
+          ( GET_PIC( library )->sfnt_service_bdf )
+#define SFNT_INTERFACE_GET                       \
+          ( GET_PIC( library )->sfnt_interface )
+
+
+  /* see sfntpic.c for the implementation */
+  void
+  sfnt_module_class_pic_free( FT_Library  library );
+
+  FT_Error
+  sfnt_module_class_pic_init( FT_Library  library );
+
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+  /* */
+
+#endif /* SFNTPIC_H_ */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/smooth/ftsmooth.c freetype-2.10.0.aros/src/smooth/ftsmooth.c
--- freetype-2.10.0/src/smooth/ftsmooth.c	2019-02-23 10:06:07.000000000 +0100
+++ freetype-2.10.0.aros/src/smooth/ftsmooth.c	2019-04-10 16:19:41.638298788 +0200
@@ -35,7 +35,6 @@
 
     FT_Vector*  sub = render->root.library->lcd_geometry;
 
-
     /* set up default subpixel geometry for striped RGB panels. */
     sub[0].x = -21;
     sub[0].y = 0;
diff -ruN freetype-2.10.0/src/smooth/ftspic.c freetype-2.10.0.aros/src/smooth/ftspic.c
--- freetype-2.10.0/src/smooth/ftspic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/smooth/ftspic.c	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,118 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftspic.c                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for smooth module.   */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "ftspic.h"
+#include "ftsmerrs.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from ftgrays.c */
+  void
+  FT_Init_Class_ft_grays_raster( FT_Raster_Funcs*  funcs );
+
+
+  void
+  ft_smooth_renderer_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->smooth )
+    {
+      SmoothPIC*  container = (SmoothPIC*)pic_container->smooth;
+
+
+      if ( --container->ref_count )
+        return;
+
+      FT_FREE( container );
+      pic_container->smooth = NULL;
+    }
+  }
+
+
+  FT_Error
+  ft_smooth_renderer_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    SmoothPIC*         container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* since this function also serve smooth_lcd and smooth_lcdv renderers,
+       it implements reference counting */
+    if ( pic_container->smooth )
+    {
+      ((SmoothPIC*)pic_container->smooth)->ref_count++;
+      return error;
+    }
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->smooth = container;
+
+    container->ref_count = 1;
+
+    /* initialize pointer table -                       */
+    /* this is how the module usually expects this data */
+    FT_Init_Class_ft_grays_raster( &container->ft_grays_raster );
+
+    return error;
+  }
+
+
+  /* re-route these init and free functions to the above functions */
+  FT_Error
+  ft_smooth_lcd_renderer_class_pic_init( FT_Library  library )
+  {
+    return ft_smooth_renderer_class_pic_init( library );
+  }
+
+
+  void
+  ft_smooth_lcd_renderer_class_pic_free( FT_Library  library )
+  {
+    ft_smooth_renderer_class_pic_free( library );
+  }
+
+
+  FT_Error
+  ft_smooth_lcdv_renderer_class_pic_init( FT_Library  library )
+  {
+    return ft_smooth_renderer_class_pic_init( library );
+  }
+
+
+  void
+  ft_smooth_lcdv_renderer_class_pic_free( FT_Library  library )
+  {
+    ft_smooth_renderer_class_pic_free( library );
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/smooth/ftspic.h freetype-2.10.0.aros/src/smooth/ftspic.h
--- freetype-2.10.0/src/smooth/ftspic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/smooth/ftspic.h	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,75 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftspic.h                                                               */
+/*                                                                         */
+/*    The FreeType position independent code services for smooth module.   */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef FTSPIC_H_
+#define FTSPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+FT_BEGIN_HEADER
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_GRAYS_RASTER_GET  ft_grays_raster
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+  typedef struct  SmoothPIC_
+  {
+    int              ref_count;
+    FT_Raster_Funcs  ft_grays_raster;
+
+  } SmoothPIC;
+
+
+#define GET_PIC( lib ) \
+          ( (SmoothPIC*)( (lib)->pic_container.smooth ) )
+#define FT_GRAYS_RASTER_GET  ( GET_PIC( library )->ft_grays_raster )
+
+
+  /* see ftspic.c for the implementation */
+  void
+  ft_smooth_renderer_class_pic_free( FT_Library  library );
+
+  void
+  ft_smooth_lcd_renderer_class_pic_free( FT_Library  library );
+
+  void
+  ft_smooth_lcdv_renderer_class_pic_free( FT_Library  library );
+
+  FT_Error
+  ft_smooth_renderer_class_pic_init( FT_Library  library );
+
+  FT_Error
+  ft_smooth_lcd_renderer_class_pic_init( FT_Library  library );
+
+  FT_Error
+  ft_smooth_lcdv_renderer_class_pic_init( FT_Library  library );
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+FT_END_HEADER
+
+#endif /* FTSPIC_H_ */
+
+
+/* END */
Binary files freetype-2.10.0/src/.swp and freetype-2.10.0.aros/src/.swp differ
diff -ruN freetype-2.10.0/src/tools/docmaker/content.py freetype-2.10.0.aros/src/tools/docmaker/content.py
--- freetype-2.10.0/src/tools/docmaker/content.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/content.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,672 @@
+#
+#  content.py
+#
+#    Parse comment blocks to build content blocks (library file).
+#
+#  Copyright 2002-2018 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.
+
+#
+# This file contains routines to parse documentation comment blocks,
+# building more structured objects out of them.
+#
+
+
+from sources import *
+from utils   import *
+
+import string, re
+
+
+#
+# Regular expressions to detect code sequences.  `Code sequences' are simply
+# code fragments embedded in '{' and '}', as demonstrated in the following
+# example.
+#
+#   {
+#     x = y + z;
+#     if ( zookoo == 2 )
+#     {
+#       foobar();
+#     }
+#   }
+#
+# Note that the indentation of the first opening brace and the last closing
+# brace must be exactly the same.  The code sequence itself should have a
+# larger indentation than the surrounding braces.
+#
+re_code_start = re.compile( r"(\s*){\s*$" )
+re_code_end   = re.compile( r"(\s*)}\s*$" )
+
+
+#
+# A regular expression to isolate identifiers from other text.  Two syntax
+# forms are supported:
+#
+#   <name>
+#   <name>[<id>]
+#
+# where both `<name>' and `<id>' consist of alphanumeric characters, `_',
+# and `-'.  Use `<id>' if there are multiple, valid `<name>' entries; in the
+# index, `<id>' will be appended in parentheses.
+#
+# For example,
+#
+#   stem_darkening[autofit]
+#
+# becomes `stem_darkening (autofit)' in the index.
+#
+re_identifier = re.compile( r"""
+                              ((?:\w|-)+
+                               (?:\[(?:\w|-)+\])?)
+                            """, re.VERBOSE )
+
+
+#
+# We collect macro names ending in `_H' (group 1), as defined in
+# `freetype/config/ftheader.h'.  While outputting the object data, we use
+# this info together with the object's file location (group 2) to emit the
+# appropriate header file macro and its associated file name before the
+# object itself.
+#
+# Example:
+#
+#   #define FT_FREETYPE_H <freetype.h>
+#
+re_header_macro = re.compile( r'^#define\s{1,}(\w{1,}_H)\s{1,}<(.*)>' )
+
+
+################################################################
+##
+##  DOC CODE CLASS
+##
+##  The `DocCode' class is used to store source code lines.
+##
+##  `self.lines' contains a set of source code lines that will be dumped as
+##  HTML in a <PRE> tag.
+##
+##  The object is filled line by line by the parser; it strips the leading
+##  `margin' space from each input line before storing it in `self.lines'.
+##
+class  DocCode:
+
+    def  __init__( self, margin, lines ):
+        self.lines = []
+        self.words = None
+
+        # remove margin spaces
+        for l in lines:
+            if string.strip( l[:margin] ) == "":
+                l = l[margin:]
+            self.lines.append( l )
+
+    def  dump( self, prefix = "", width = 60 ):
+        lines = self.dump_lines( 0, width )
+        for l in lines:
+            print( prefix + l )
+
+    def  dump_lines( self, margin = 0, width = 60 ):
+        result = []
+        for l in self.lines:
+            result.append( " " * margin + l )
+        return result
+
+
+
+################################################################
+##
+##  DOC PARA CLASS
+##
+##  `Normal' text paragraphs are stored in the `DocPara' class.
+##
+##  `self.words' contains the list of words that make up the paragraph.
+##
+class  DocPara:
+
+    def  __init__( self, lines ):
+        self.lines = None
+        self.words = []
+        for l in lines:
+            l = string.strip( l )
+            self.words.extend( string.split( l ) )
+
+    def  dump( self, prefix = "", width = 60 ):
+        lines = self.dump_lines( 0, width )
+        for l in lines:
+            print( prefix + l )
+
+    def  dump_lines( self, margin = 0, width = 60 ):
+        cur    = ""  # current line
+        col    = 0   # current width
+        result = []
+
+        for word in self.words:
+            ln = len( word )
+            if col > 0:
+                ln = ln + 1
+
+            if col + ln > width:
+                result.append( " " * margin + cur )
+                cur = word
+                col = len( word )
+            else:
+                if col > 0:
+                    cur = cur + " "
+                cur = cur + word
+                col = col + ln
+
+        if col > 0:
+            result.append( " " * margin + cur )
+
+        return result
+
+
+################################################################
+##
+##  DOC FIELD CLASS
+##
+##  The `DocField' class stores a list containing either `DocPara' or
+##  `DocCode' objects.  Each DocField object also has an optional `name'
+##  that is used when the object corresponds to a field or value definition.
+##
+class  DocField:
+
+    def  __init__( self, name, lines ):
+        self.name  = name  # can be `None' for normal paragraphs/sources
+        self.items = []    # list of items
+
+        mode_none  = 0     # start parsing mode
+        mode_code  = 1     # parsing code sequences
+        mode_para  = 3     # parsing normal paragraph
+
+        margin     = -1    # current code sequence indentation
+        cur_lines  = []
+
+        # analyze the markup lines to check whether they contain paragraphs,
+        # code sequences, or fields definitions
+        #
+        start = 0
+        mode  = mode_none
+
+        for l in lines:
+            # are we parsing a code sequence?
+            if mode == mode_code:
+                m = re_code_end.match( l )
+                if m and len( m.group( 1 ) ) <= margin:
+                    # that's it, we finished the code sequence
+                    code = DocCode( 0, cur_lines )
+                    self.items.append( code )
+                    margin    = -1
+                    cur_lines = []
+                    mode      = mode_none
+                else:
+                    # otherwise continue the code sequence
+                    cur_lines.append( l[margin:] )
+            else:
+                # start of code sequence?
+                m = re_code_start.match( l )
+                if m:
+                    # save current lines
+                    if cur_lines:
+                        para = DocPara( cur_lines )
+                        self.items.append( para )
+                        cur_lines = []
+
+                    # switch to code extraction mode
+                    margin = len( m.group( 1 ) )
+                    mode   = mode_code
+                else:
+                    if not string.split( l ) and cur_lines:
+                        # if the line is empty, we end the current paragraph,
+                        # if any
+                        para = DocPara( cur_lines )
+                        self.items.append( para )
+                        cur_lines = []
+                    else:
+                        # otherwise, simply add the line to the current
+                        # paragraph
+                        cur_lines.append( l )
+
+        if mode == mode_code:
+            # unexpected end of code sequence
+            code = DocCode( margin, cur_lines )
+            self.items.append( code )
+        elif cur_lines:
+            para = DocPara( cur_lines )
+            self.items.append( para )
+
+    def  dump( self, prefix = "" ):
+        if self.field:
+            print( prefix + self.field + " ::" )
+            prefix = prefix + "----"
+
+        first = 1
+        for p in self.items:
+            if not first:
+                print( "" )
+            p.dump( prefix )
+            first = 0
+
+    def  dump_lines( self, margin = 0, width = 60 ):
+        result = []
+        nl     = None
+
+        for p in self.items:
+            if nl:
+                result.append( "" )
+
+            result.extend( p.dump_lines( margin, width ) )
+            nl = 1
+
+        return result
+
+
+#
+# A regular expression to detect field definitions.
+#
+# Examples:
+#
+#   foo     ::
+#   foo.bar ::
+#
+re_field = re.compile( r"""
+                         \s*
+                           (
+                             \w*
+                           |
+                             \w (\w | \.)* \w
+                           )
+                         \s* ::
+                       """, re.VERBOSE )
+
+
+################################################################
+##
+##  DOC MARKUP CLASS
+##
+class  DocMarkup:
+
+    def  __init__( self, tag, lines ):
+        self.tag    = string.lower( tag )
+        self.fields = []
+
+        cur_lines = []
+        field     = None
+        mode      = 0
+
+        for l in lines:
+            m = re_field.match( l )
+            if m:
+                # We detected the start of a new field definition.
+
+                # first, save the current one
+                if cur_lines:
+                    f = DocField( field, cur_lines )
+                    self.fields.append( f )
+                    cur_lines = []
+                    field     = None
+
+                field     = m.group( 1 )   # record field name
+                ln        = len( m.group( 0 ) )
+                l         = " " * ln + l[ln:]
+                cur_lines = [l]
+            else:
+                cur_lines.append( l )
+
+        if field or cur_lines:
+            f = DocField( field, cur_lines )
+            self.fields.append( f )
+
+    def  get_name( self ):
+        try:
+            return self.fields[0].items[0].words[0]
+        except:
+            return None
+
+    def  dump( self, margin ):
+        print( " " * margin + "<" + self.tag + ">" )
+        for f in self.fields:
+            f.dump( "  " )
+        print( " " * margin + "</" + self.tag + ">" )
+
+
+################################################################
+##
+##  DOC CHAPTER CLASS
+##
+class  DocChapter:
+
+    def  __init__( self, block ):
+        self.block    = block
+        self.sections = []
+        if block:
+            self.name  = block.name
+            self.title = block.get_markup_words( "title" )
+            self.order = block.get_markup_words( "sections" )
+        else:
+            self.name  = "Other"
+            self.title = string.split( "Miscellaneous" )
+            self.order = []
+
+
+################################################################
+##
+##  DOC SECTION CLASS
+##
+class  DocSection:
+
+    def  __init__( self, name = "Other" ):
+        self.name        = name
+        self.blocks      = {}
+        self.block_names = []  # ordered block names in section
+        self.defs        = []
+        self.abstract    = ""
+        self.description = ""
+        self.order       = []
+        self.title       = "ERROR"
+        self.chapter     = None
+
+    def  add_def( self, block ):
+        self.defs.append( block )
+
+    def  add_block( self, block ):
+        self.block_names.append( block.name )
+        self.blocks[block.name] = block
+
+    def  process( self ):
+        # look up one block that contains a valid section description
+        for block in self.defs:
+            title = block.get_markup_text( "title" )
+            if title:
+                self.title       = title
+                self.abstract    = block.get_markup_words( "abstract" )
+                self.description = block.get_markup_items( "description" )
+                self.order       = block.get_markup_words_all( "order" )
+                return
+
+    def  reorder( self ):
+        self.block_names = sort_order_list( self.block_names, self.order )
+
+
+################################################################
+##
+##  CONTENT PROCESSOR CLASS
+##
+class  ContentProcessor:
+
+    def  __init__( self ):
+        """Initialize a block content processor."""
+        self.reset()
+
+        self.sections = {}    # dictionary of documentation sections
+        self.section  = None  # current documentation section
+
+        self.chapters = []    # list of chapters
+
+        self.headers  = {}    # dictionary of header macros
+
+    def  set_section( self, section_name ):
+        """Set current section during parsing."""
+        if not section_name in self.sections:
+            section = DocSection( section_name )
+            self.sections[section_name] = section
+            self.section                = section
+        else:
+            self.section = self.sections[section_name]
+
+    def  add_chapter( self, block ):
+        chapter = DocChapter( block )
+        self.chapters.append( chapter )
+
+    def  reset( self ):
+        """Reset the content processor for a new block."""
+        self.markups      = []
+        self.markup       = None
+        self.markup_lines = []
+
+    def  add_markup( self ):
+        """Add a new markup section."""
+        if self.markup and self.markup_lines:
+
+            # get rid of last line of markup if it's empty
+            marks = self.markup_lines
+            if len( marks ) > 0 and not string.strip( marks[-1] ):
+                self.markup_lines = marks[:-1]
+
+            m = DocMarkup( self.markup, self.markup_lines )
+
+            self.markups.append( m )
+
+            self.markup       = None
+            self.markup_lines = []
+
+    def  process_content( self, content ):
+        """Process a block content and return a list of DocMarkup objects
+           corresponding to it."""
+        markup       = None
+        markup_lines = []
+        first        = 1
+
+        margin  = -1
+        in_code = 0
+
+        for line in content:
+            if in_code:
+                m = re_code_end.match( line )
+                if m and len( m.group( 1 ) ) <= margin:
+                    in_code = 0
+                    margin  = -1
+            else:
+                m = re_code_start.match( line )
+                if m:
+                    in_code = 1
+                    margin  = len( m.group( 1 ) )
+
+            found = None
+
+            if not in_code:
+                for t in re_markup_tags:
+                    m = t.match( line )
+                    if m:
+                        found  = string.lower( m.group( 1 ) )
+                        prefix = len( m.group( 0 ) )
+                        # remove markup from line
+                        line   = " " * prefix + line[prefix:]
+                        break
+
+            # is it the start of a new markup section ?
+            if found:
+                first = 0
+                self.add_markup()  # add current markup content
+                self.markup = found
+                if len( string.strip( line ) ) > 0:
+                    self.markup_lines.append( line )
+            elif first == 0:
+                self.markup_lines.append( line )
+
+        self.add_markup()
+
+        return self.markups
+
+    def  parse_sources( self, source_processor ):
+        blocks = source_processor.blocks
+        count  = len( blocks )
+
+        for n in range( count ):
+            source = blocks[n]
+            if source.content:
+                # this is a documentation comment, we need to catch
+                # all following normal blocks in the "follow" list
+                #
+                follow = []
+                m = n + 1
+                while m < count and not blocks[m].content:
+                    follow.append( blocks[m] )
+                    m = m + 1
+
+                doc_block = DocBlock( source, follow, self )
+
+    def  finish( self ):
+        # process all sections to extract their abstract, description
+        # and ordered list of items
+        #
+        for sec in self.sections.values():
+            sec.process()
+
+        # process chapters to check that all sections are correctly
+        # listed there
+        for chap in self.chapters:
+            for sec in chap.order:
+                if sec in self.sections:
+                    section = self.sections[sec]
+                    section.chapter = chap
+                    section.reorder()
+                    chap.sections.append( section )
+                else:
+                    sys.stderr.write( "WARNING: chapter '" +          \
+                        chap.name + "' in " + chap.block.location() + \
+                        " lists unknown section '" + sec + "'\n" )
+
+        # check that all sections are in a chapter
+        #
+        others = []
+        for sec in self.sections.values():
+            if not sec.chapter:
+                sec.reorder()
+                others.append( sec )
+
+        # create a new special chapter for all remaining sections
+        # when necessary
+        #
+        if others:
+            chap = DocChapter( None )
+            chap.sections = others
+            self.chapters.append( chap )
+
+
+################################################################
+##
+##  DOC BLOCK CLASS
+##
+class  DocBlock:
+
+    def  __init__( self, source, follow, processor ):
+        processor.reset()
+
+        self.source  = source
+        self.code    = []
+        self.type    = "ERRTYPE"
+        self.name    = "ERRNAME"
+        self.section = processor.section
+        self.markups = processor.process_content( source.content )
+
+        # compute block type from first markup tag
+        try:
+            self.type = self.markups[0].tag
+        except:
+            pass
+
+        # compute block name from first markup paragraph
+        try:
+            markup = self.markups[0]
+            para   = markup.fields[0].items[0]
+            name   = para.words[0]
+            m = re_identifier.match( name )
+            if m:
+                name = m.group( 1 )
+            self.name = name
+        except:
+            pass
+
+        if self.type == "section":
+            # detect new section starts
+            processor.set_section( self.name )
+            processor.section.add_def( self )
+        elif self.type == "chapter":
+            # detect new chapter
+            processor.add_chapter( self )
+        else:
+            processor.section.add_block( self )
+
+        # now, compute the source lines relevant to this documentation
+        # block. We keep normal comments in for obvious reasons (??)
+        source = []
+        for b in follow:
+            if b.format:
+                break
+            for l in b.lines:
+                # collect header macro definitions
+                m = re_header_macro.match( l )
+                if m:
+                    processor.headers[m.group( 2 )] = m.group( 1 );
+
+                # we use "/* */" as a separator
+                if re_source_sep.match( l ):
+                    break
+                source.append( l )
+
+        # now strip the leading and trailing empty lines from the sources
+        start = 0
+        end   = len( source ) - 1
+
+        while start < end and not string.strip( source[start] ):
+            start = start + 1
+
+        while start < end and not string.strip( source[end] ):
+            end = end - 1
+
+        if start == end and not string.strip( source[start] ):
+            self.code = []
+        else:
+            self.code = source[start:end + 1]
+
+    def  location( self ):
+        return self.source.location()
+
+    def  get_markup( self, tag_name ):
+        """Return the DocMarkup corresponding to a given tag in a block."""
+        for m in self.markups:
+            if m.tag == string.lower( tag_name ):
+                return m
+        return None
+
+    def  get_markup_words( self, tag_name ):
+        try:
+            m = self.get_markup( tag_name )
+            return m.fields[0].items[0].words
+        except:
+            return []
+
+    def  get_markup_words_all( self, tag_name ):
+        try:
+            m = self.get_markup( tag_name )
+            words = []
+            for item in m.fields[0].items:
+                # We honour empty lines in an `<Order>' section element by
+                # adding the sentinel `/empty/'.  The formatter should then
+                # convert it to an appropriate representation in the
+                # `section_enter' function.
+                words += item.words
+                words.append( "/empty/" )
+            return words
+        except:
+            return []
+
+    def  get_markup_text( self, tag_name ):
+        result = self.get_markup_words( tag_name )
+        return string.join( result )
+
+    def  get_markup_items( self, tag_name ):
+        try:
+            m = self.get_markup( tag_name )
+            return m.fields[0].items
+        except:
+            return None
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/docbeauty.py freetype-2.10.0.aros/src/tools/docmaker/docbeauty.py
--- freetype-2.10.0/src/tools/docmaker/docbeauty.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/docbeauty.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,111 @@
+#!/usr/bin/env python
+#
+#  DocBeauty (c) 2003, 2004, 2008 David Turner <david@freetype.org>
+#
+# This program is used to beautify the documentation comments used
+# in the FreeType 2 public headers.
+#
+
+from sources import *
+from content import *
+from utils   import *
+
+import sys, os, string, getopt
+
+
+content_processor = ContentProcessor()
+
+
+def  beautify_block( block ):
+    if block.content:
+        content_processor.reset()
+
+        markups = content_processor.process_content( block.content )
+        text    = []
+        first   = 1
+
+        for markup in markups:
+            text.extend( markup.beautify( first ) )
+            first = 0
+
+        # now beautify the documentation "borders" themselves
+        lines = [" /*************************************************************************"]
+        for l in text:
+            lines.append( "  *" + l )
+        lines.append( "  */" )
+
+        block.lines = lines
+
+
+def  usage():
+    print( "\nDocBeauty 0.1 Usage information\n" )
+    print( "  docbeauty [options] file1 [file2 ...]\n" )
+    print( "using the following options:\n" )
+    print( "  -h : print this page" )
+    print( "  -b : backup original files with the 'orig' extension" )
+    print( "" )
+    print( "  --backup : same as -b" )
+
+
+def  main( argv ):
+    """main program loop"""
+
+    global output_dir
+
+    try:
+        opts, args = getopt.getopt( sys.argv[1:], \
+                                    "hb",         \
+                                    ["help", "backup"] )
+    except getopt.GetoptError:
+        usage()
+        sys.exit( 2 )
+
+    if args == []:
+        usage()
+        sys.exit( 1 )
+
+    # process options
+    #
+    output_dir = None
+    do_backup  = None
+
+    for opt in opts:
+        if opt[0] in ( "-h", "--help" ):
+            usage()
+            sys.exit( 0 )
+
+        if opt[0] in ( "-b", "--backup" ):
+            do_backup = 1
+
+    # create context and processor
+    source_processor = SourceProcessor()
+
+    # retrieve the list of files to process
+    file_list = make_file_list( args )
+    for filename in file_list:
+        source_processor.parse_file( filename )
+
+        for block in source_processor.blocks:
+            beautify_block( block )
+
+        new_name = filename + ".new"
+        ok       = None
+
+        try:
+            file = open( new_name, "wt" )
+            for block in source_processor.blocks:
+                for line in block.lines:
+                    file.write( line )
+                    file.write( "\n" )
+            file.close()
+        except:
+            ok = 0
+
+
+# if called from the command line
+#
+if __name__ == '__main__':
+    main( sys.argv )
+
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/docmaker.py freetype-2.10.0.aros/src/tools/docmaker/docmaker.py
--- freetype-2.10.0/src/tools/docmaker/docmaker.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/docmaker.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+#
+#  docmaker.py
+#
+#    Convert source code markup to HTML documentation.
+#
+#  Copyright 2002-2018 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.
+
+#
+# This program is a re-write of the original DocMaker tool used to generate
+# the API Reference of the FreeType font rendering engine by converting
+# in-source comments into structured HTML.
+#
+# This new version is capable of outputting XML data as well as accepting
+# more liberal formatting options.  It also uses regular expression matching
+# and substitution to speed up operation significantly.
+#
+
+from sources   import *
+from content   import *
+from utils     import *
+from formatter import *
+from tohtml    import *
+
+import utils
+
+import sys, glob, getopt
+
+
+def  usage():
+    print( "\nDocMaker Usage information\n" )
+    print( "  docmaker [options] file1 [file2 ...]\n" )
+    print( "using the following options:\n" )
+    print( "  -h : print this page" )
+    print( "  -t : set project title, as in '-t \"My Project\"'" )
+    print( "  -o : set output directory, as in '-o mydir'" )
+    print( "  -p : set documentation prefix, as in '-p ft2'" )
+    print( "" )
+    print( "  --title  : same as -t, as in '--title=\"My Project\"'" )
+    print( "  --output : same as -o, as in '--output=mydir'" )
+    print( "  --prefix : same as -p, as in '--prefix=ft2'" )
+
+
+def  main( argv ):
+    """Main program loop."""
+
+    global output_dir
+
+    try:
+        opts, args = getopt.getopt( sys.argv[1:],
+                                    "ht:o:p:",
+                                    ["help", "title=", "output=", "prefix="] )
+    except getopt.GetoptError:
+        usage()
+        sys.exit( 2 )
+
+    if args == []:
+        usage()
+        sys.exit( 1 )
+
+    # process options
+    project_title  = "Project"
+    project_prefix = None
+    output_dir     = None
+
+    for opt in opts:
+        if opt[0] in ( "-h", "--help" ):
+            usage()
+            sys.exit( 0 )
+
+        if opt[0] in ( "-t", "--title" ):
+            project_title = opt[1]
+
+        if opt[0] in ( "-o", "--output" ):
+            utils.output_dir = opt[1]
+
+        if opt[0] in ( "-p", "--prefix" ):
+            project_prefix = opt[1]
+
+    check_output()
+
+    # create context and processor
+    source_processor  = SourceProcessor()
+    content_processor = ContentProcessor()
+
+    # retrieve the list of files to process
+    file_list = make_file_list( args )
+    for filename in file_list:
+        source_processor.parse_file( filename )
+        content_processor.parse_sources( source_processor )
+
+    # process sections
+    content_processor.finish()
+
+    formatter = HtmlFormatter( content_processor,
+                               project_title,
+                               project_prefix )
+
+    formatter.toc_dump()
+    formatter.index_dump()
+    formatter.section_dump_all()
+
+
+# if called from the command line
+if __name__ == '__main__':
+    main( sys.argv )
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/formatter.py freetype-2.10.0.aros/src/tools/docmaker/formatter.py
--- freetype-2.10.0/src/tools/docmaker/formatter.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/formatter.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,228 @@
+#
+#  formatter.py
+#
+#    Convert parsed content blocks to a structured document (library file).
+#
+#  Copyright 2002-2018 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.
+
+#
+# This is the base Formatter class.  Its purpose is to convert a content
+# processor's data into specific documents (i.e., table of contents, global
+# index, and individual API reference indices).
+#
+# You need to sub-class it to output anything sensible.  For example, the
+# file `tohtml.py' contains the definition of the `HtmlFormatter' sub-class
+# to output HTML.
+#
+
+
+from sources import *
+from content import *
+from utils   import *
+
+
+################################################################
+##
+##  FORMATTER CLASS
+##
+class  Formatter:
+
+    def  __init__( self, processor ):
+        self.processor   = processor
+        self.identifiers = {}
+        self.chapters    = processor.chapters
+        self.sections    = processor.sections.values()
+        self.block_index = []
+
+        # store all blocks in a dictionary
+        self.blocks = []
+        for section in self.sections:
+            for block in section.blocks.values():
+                self.add_identifier( block.name, block )
+
+                # add enumeration values to the index, since this is useful
+                for markup in block.markups:
+                    if markup.tag == 'values':
+                        for field in markup.fields:
+                            self.add_identifier( field.name, block )
+
+        self.block_index = self.identifiers.keys()
+        self.block_index.sort( key = index_key )
+
+        # also add section names to dictionary (without making them appear
+        # in the index)
+        for section in self.sections:
+            self.add_identifier( section.name, section )
+
+    def  add_identifier( self, name, block ):
+        if name in self.identifiers:
+            # duplicate name!
+            sys.stderr.write( "WARNING: duplicate definition for"
+                              + " '" + name + "' "
+                              + "in " + block.location() + ", "
+                              + "previous definition in "
+                              + self.identifiers[name].location()
+                              + "\n" )
+        else:
+            self.identifiers[name] = block
+
+    #
+    # formatting the table of contents
+    #
+    def  toc_enter( self ):
+        pass
+
+    def  toc_chapter_enter( self, chapter ):
+        pass
+
+    def  toc_section_enter( self, section ):
+        pass
+
+    def  toc_section_exit( self, section ):
+        pass
+
+    def  toc_chapter_exit( self, chapter ):
+        pass
+
+    def  toc_index( self, index_filename ):
+        pass
+
+    def  toc_exit( self ):
+        pass
+
+    def  toc_dump( self, toc_filename = None, index_filename = None ):
+        output = None
+        if toc_filename:
+            output = open_output( toc_filename )
+
+        self.toc_enter()
+
+        for chap in self.processor.chapters:
+
+            self.toc_chapter_enter( chap )
+
+            for section in chap.sections:
+                self.toc_section_enter( section )
+                self.toc_section_exit( section )
+
+            self.toc_chapter_exit( chap )
+
+        self.toc_index( index_filename )
+
+        self.toc_exit()
+
+        if output:
+            close_output( output )
+
+    #
+    # formatting the index
+    #
+    def  index_enter( self ):
+        pass
+
+    def  index_name_enter( self, name ):
+        pass
+
+    def  index_name_exit( self, name ):
+        pass
+
+    def  index_exit( self ):
+        pass
+
+    def  index_dump( self, index_filename = None ):
+        output = None
+        if index_filename:
+            output = open_output( index_filename )
+
+        self.index_enter()
+
+        for name in self.block_index:
+            self.index_name_enter( name )
+            self.index_name_exit( name )
+
+        self.index_exit()
+
+        if output:
+            close_output( output )
+
+    #
+    # formatting a section
+    #
+    def  section_enter( self, section ):
+        pass
+
+    def  block_enter( self, block ):
+        pass
+
+    def  markup_enter( self, markup, block = None ):
+        pass
+
+    def  field_enter( self, field, markup = None, block = None ):
+        pass
+
+    def  field_exit( self, field, markup = None, block = None ):
+        pass
+
+    def  markup_exit( self, markup, block = None ):
+        pass
+
+    def  block_exit( self, block ):
+        pass
+
+    def  section_exit( self, section ):
+        pass
+
+    def  section_dump( self, section, section_filename = None ):
+        output = None
+        if section_filename:
+            output = open_output( section_filename )
+
+        self.section_enter( section )
+
+        for name in section.block_names:
+            skip_entry = 0
+            try:
+                block = self.identifiers[name]
+                # `block_names' can contain field names also,
+                # which we filter out
+                for markup in block.markups:
+                    if markup.tag == 'values':
+                        for field in markup.fields:
+                            if field.name == name:
+                                skip_entry = 1
+            except:
+                skip_entry = 1   # this happens e.g. for `/empty/' entries
+
+            if skip_entry:
+              continue
+
+            self.block_enter( block )
+
+            for markup in block.markups[1:]:   # always ignore first markup!
+                self.markup_enter( markup, block )
+
+                for field in markup.fields:
+                    self.field_enter( field, markup, block )
+                    self.field_exit( field, markup, block )
+
+                self.markup_exit( markup, block )
+
+            self.block_exit( block )
+
+        self.section_exit( section )
+
+        if output:
+            close_output( output )
+
+    def  section_dump_all( self ):
+        for section in self.sections:
+            self.section_dump( section )
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/sources.py freetype-2.10.0.aros/src/tools/docmaker/sources.py
--- freetype-2.10.0/src/tools/docmaker/sources.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/sources.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,410 @@
+#
+#  sources.py
+#
+#    Convert source code comments to multi-line blocks (library file).
+#
+#  Copyright 2002-2018 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.
+
+#
+# This library file contains definitions of classes needed to decompose C
+# source code files into a series of multi-line `blocks'.  There are two
+# kinds of blocks.
+#
+#   - Normal blocks, which contain source code or ordinary comments.
+#
+#   - Documentation blocks, which have restricted formatting, and whose text
+#     always start with a documentation markup tag like `<Function>',
+#     `<Type>', etc.
+#
+# The routines to process the content of documentation blocks are contained
+# in file `content.py'; the classes and methods found here only deal with
+# text parsing and basic documentation block extraction.
+#
+
+
+import fileinput, re, string
+
+
+################################################################
+##
+##  SOURCE BLOCK FORMAT CLASS
+##
+##  A simple class containing compiled regular expressions to detect
+##  potential documentation format block comments within C source code.
+##
+##  The `column' pattern must contain a group to `unbox' the content of
+##  documentation comment blocks.
+##
+##  Later on, paragraphs are converted to long lines, which simplifies the
+##  regular expressions that act upon the text.
+##
+class  SourceBlockFormat:
+
+    def  __init__( self, id, start, column, end ):
+        """Create a block pattern, used to recognize special documentation
+           blocks."""
+        self.id     = id
+        self.start  = re.compile( start, re.VERBOSE )
+        self.column = re.compile( column, re.VERBOSE )
+        self.end    = re.compile( end, re.VERBOSE )
+
+
+#
+# Format 1 documentation comment blocks.
+#
+#    /************************************/ (at least 2 asterisks)
+#    /*                                  */
+#    /*                                  */
+#    /*                                  */
+#    /************************************/ (at least 2 asterisks)
+#
+start = r'''
+  \s*      # any number of whitespace
+  /\*{2,}/ # followed by '/' and at least two asterisks then '/'
+  \s*$     # probably followed by whitespace
+'''
+
+column = r'''
+  \s*      # any number of whitespace
+  /\*{1}   # followed by '/' and precisely one asterisk
+  ([^*].*) # followed by anything (group 1)
+  \*{1}/   # followed by one asterisk and a '/'
+  \s*$     # probably followed by whitespace
+'''
+
+re_source_block_format1 = SourceBlockFormat( 1, start, column, start )
+
+
+#
+# Format 2 documentation comment blocks.
+#
+#    /************************************ (at least 2 asterisks)
+#     *
+#     *                                    (1 asterisk)
+#     *
+#     */                                   (1 or more asterisks)
+#
+start = r'''
+  \s*     # any number of whitespace
+  /\*{2,} # followed by '/' and at least two asterisks
+  \s*$    # probably followed by whitespace
+'''
+
+column = r'''
+  \s*           # any number of whitespace
+  \*{1}(?![*/]) # followed by precisely one asterisk not followed by `/'
+  (.*)          # then anything (group1)
+'''
+
+end = r'''
+  \s*  # any number of whitespace
+  \*+/ # followed by at least one asterisk, then '/'
+'''
+
+re_source_block_format2 = SourceBlockFormat( 2, start, column, end )
+
+
+#
+# The list of supported documentation block formats.  We could add new ones
+# quite easily.
+#
+re_source_block_formats = [re_source_block_format1, re_source_block_format2]
+
+
+#
+# The following regular expressions correspond to markup tags within the
+# documentation comment blocks.  They are equivalent despite their different
+# syntax.
+#
+# A markup tag consists of letters or character `-', to be found in group 1.
+#
+# Notice that a markup tag _must_ begin a new paragraph.
+#
+re_markup_tag1 = re.compile( r'''\s*<((?:\w|-)*)>''' )  # <xxxx> format
+re_markup_tag2 = re.compile( r'''\s*@((?:\w|-)*):''' )  # @xxxx: format
+
+#
+# The list of supported markup tags.  We could add new ones quite easily.
+#
+re_markup_tags = [re_markup_tag1, re_markup_tag2]
+
+
+#
+# A regular expression to detect a cross reference, after markup tags have
+# been stripped off.
+#
+# Two syntax forms are supported:
+#
+#   @<name>
+#   @<name>[<id>]
+#
+# where both `<name>' and `<id>' consist of alphanumeric characters, `_',
+# and `-'.  Use `<id>' if there are multiple, valid `<name>' entries.
+#
+# Example: @foo[bar]
+#
+re_crossref = re.compile( r"""
+                            @
+                            (?P<name>(?:\w|-)+
+                                     (?:\[(?:\w|-)+\])?)
+                            (?P<rest>.*)
+                          """, re.VERBOSE )
+
+#
+# Two regular expressions to detect italic and bold markup, respectively.
+# Group 1 is the markup, group 2 the rest of the line.
+#
+# Note that the markup is limited to words consisting of letters, digits,
+# the characters `_' and `-', or an apostrophe (but not as the first
+# character).
+#
+re_italic = re.compile( r"_((?:\w|-)(?:\w|'|-)*)_(.*)" )     #  _italic_
+re_bold   = re.compile( r"\*((?:\w|-)(?:\w|'|-)*)\*(.*)" )   #  *bold*
+
+#
+# This regular expression code to identify an URL has been taken from
+#
+#   https://mail.python.org/pipermail/tutor/2002-September/017228.html
+#
+# (with slight modifications).
+#
+urls = r'(?:https?|telnet|gopher|file|wais|ftp)'
+ltrs = r'\w'
+gunk = r'/#~:.?+=&%@!\-'
+punc = r'.:?\-'
+any  = "%(ltrs)s%(gunk)s%(punc)s" % { 'ltrs' : ltrs,
+                                      'gunk' : gunk,
+                                      'punc' : punc }
+url  = r"""
+         (
+           \b                    # start at word boundary
+           %(urls)s :            # need resource and a colon
+           [%(any)s] +?          # followed by one or more of any valid
+                                 # character, but be conservative and
+                                 # take only what you need to...
+           (?=                   # [look-ahead non-consumptive assertion]
+             [%(punc)s]*         # either 0 or more punctuation
+             (?:                 # [non-grouping parentheses]
+               [^%(any)s] | $    # followed by a non-url char
+                                 # or end of the string
+             )
+           )
+         )
+        """ % {'urls' : urls,
+               'any'  : any,
+               'punc' : punc }
+
+re_url = re.compile( url, re.VERBOSE | re.MULTILINE )
+
+#
+# A regular expression that stops collection of comments for the current
+# block.
+#
+re_source_sep = re.compile( r'\s*/\*\s*\*/' )   #  /* */
+
+#
+# A regular expression to find possible C identifiers while outputting
+# source code verbatim, covering things like `*foo' or `(bar'.  Group 1 is
+# the prefix, group 2 the identifier -- since we scan lines from left to
+# right, sequentially splitting the source code into prefix and identifier
+# is fully sufficient for our purposes.
+#
+re_source_crossref = re.compile( r'(\W*)(\w*)' )
+
+#
+# A regular expression that matches a list of reserved C source keywords.
+#
+re_source_keywords = re.compile( '''\\b ( typedef   |
+                                          struct    |
+                                          enum      |
+                                          union     |
+                                          const     |
+                                          char      |
+                                          int       |
+                                          short     |
+                                          long      |
+                                          void      |
+                                          signed    |
+                                          unsigned  |
+                                          \#include |
+                                          \#define  |
+                                          \#undef   |
+                                          \#if      |
+                                          \#ifdef   |
+                                          \#ifndef  |
+                                          \#else    |
+                                          \#endif   ) \\b''', re.VERBOSE )
+
+
+################################################################
+##
+##  SOURCE BLOCK CLASS
+##
+##  There are two important fields in a `SourceBlock' object.
+##
+##    self.lines
+##      A list of text lines for the corresponding block.
+##
+##    self.content
+##      For documentation comment blocks only, this is the block content
+##      that has been `unboxed' from its decoration.  This is `None' for all
+##      other blocks (i.e., sources or ordinary comments with no starting
+##      markup tag)
+##
+class  SourceBlock:
+
+    def  __init__( self, processor, filename, lineno, lines ):
+        self.processor = processor
+        self.filename  = filename
+        self.lineno    = lineno
+        self.lines     = lines[:]
+        self.format    = processor.format
+        self.content   = []
+
+        if self.format == None:
+            return
+
+        words = []
+
+        # extract comment lines
+        lines = []
+
+        for line0 in self.lines:
+            m = self.format.column.match( line0 )
+            if m:
+                lines.append( m.group( 1 ) )
+
+        # now, look for a markup tag
+        for l in lines:
+            l = string.strip( l )
+            if len( l ) > 0:
+                for tag in re_markup_tags:
+                    if tag.match( l ):
+                        self.content = lines
+                        return
+
+    def  location( self ):
+        return "(" + self.filename + ":" + repr( self.lineno ) + ")"
+
+    # debugging only -- not used in normal operations
+    def  dump( self ):
+        if self.content:
+            print( "{{{content start---" )
+            for l in self.content:
+                print( l )
+            print( "---content end}}}" )
+            return
+
+        fmt = ""
+        if self.format:
+            fmt = repr( self.format.id ) + " "
+
+        for line in self.lines:
+            print( line )
+
+
+################################################################
+##
+##  SOURCE PROCESSOR CLASS
+##
+##  The `SourceProcessor' is in charge of reading a C source file and
+##  decomposing it into a series of different `SourceBlock' objects.
+##
+##  A SourceBlock object consists of the following data.
+##
+##    - A documentation comment block using one of the layouts above.  Its
+##      exact format will be discussed later.
+##
+##    - Normal sources lines, including comments.
+##
+##
+class  SourceProcessor:
+
+    def  __init__( self ):
+        """Initialize a source processor."""
+        self.blocks   = []
+        self.filename = None
+        self.format   = None
+        self.lines    = []
+
+    def  reset( self ):
+        """Reset a block processor and clean up all its blocks."""
+        self.blocks = []
+        self.format = None
+
+    def  parse_file( self, filename ):
+        """Parse a C source file and add its blocks to the processor's
+           list."""
+        self.reset()
+
+        self.filename = filename
+
+        fileinput.close()
+        self.format = None
+        self.lineno = 0
+        self.lines  = []
+
+        for line in fileinput.input( filename ):
+            # strip trailing newlines, important on Windows machines!
+            if line[-1] == '\012':
+                line = line[0:-1]
+
+            if self.format == None:
+                self.process_normal_line( line )
+            else:
+                if self.format.end.match( line ):
+                    # A normal block end.  Add it to `lines' and create a
+                    # new block
+                    self.lines.append( line )
+                    self.add_block_lines()
+                elif self.format.column.match( line ):
+                    # A normal column line.  Add it to `lines'.
+                    self.lines.append( line )
+                else:
+                    # An unexpected block end.  Create a new block, but
+                    # don't process the line.
+                    self.add_block_lines()
+
+                    # we need to process the line again
+                    self.process_normal_line( line )
+
+        # record the last lines
+        self.add_block_lines()
+
+    def  process_normal_line( self, line ):
+        """Process a normal line and check whether it is the start of a new
+           block."""
+        for f in re_source_block_formats:
+            if f.start.match( line ):
+                self.add_block_lines()
+                self.format = f
+                self.lineno = fileinput.filelineno()
+
+        self.lines.append( line )
+
+    def  add_block_lines( self ):
+        """Add the current accumulated lines and create a new block."""
+        if self.lines != []:
+            block = SourceBlock( self,
+                                 self.filename,
+                                 self.lineno,
+                                 self.lines )
+
+            self.blocks.append( block )
+            self.format = None
+            self.lines  = []
+
+    # debugging only, not used in normal operations
+    def  dump( self ):
+        """Print all blocks in a processor."""
+        for b in self.blocks:
+            b.dump()
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/tohtml.py freetype-2.10.0.aros/src/tools/docmaker/tohtml.py
--- freetype-2.10.0/src/tools/docmaker/tohtml.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/tohtml.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,725 @@
+#
+#  tohtml.py
+#
+#    A sub-class container of the `Formatter' class to produce HTML.
+#
+#  Copyright 2002-2018 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.
+
+# The parent class is contained in file `formatter.py'.
+
+
+from sources import *
+from content import *
+from formatter import *
+
+import time
+
+
+# The following strings define the HTML header used by all generated pages.
+html_header_1 = """\
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"https://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>\
+"""
+
+html_header_2 = """\
+ API Reference</title>
+<style type="text/css">
+  a:link { color: #0000EF; }
+  a:visited { color: #51188E; }
+  a:hover { color: #FF0000; }
+
+  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
+         color: #000000;
+         background: #FFFFFF;
+         width: 87%;
+         margin: auto; }
+
+  div.section { width: 75%;
+                margin: auto; }
+  div.section hr { margin: 4ex 0 1ex 0; }
+  div.section h4 { background-color: #EEEEFF;
+                   font-size: medium;
+                   font-style: oblique;
+                   font-weight: bold;
+                   margin: 3ex 0 1.5ex 9%;
+                   padding: 0.3ex 0 0.3ex 1%; }
+  div.section p { margin: 1.5ex 0 1.5ex 10%; }
+  div.section pre { margin: 3ex 0 3ex 9%;
+                    background-color: #D6E8FF;
+                    padding: 2ex 0 2ex 1%; }
+  div.section table.fields { width: 90%;
+                             margin: 1.5ex 0 1.5ex 10%; }
+  div.section table.toc { width: 95%;
+                          margin: 1.5ex 0 1.5ex 5%; }
+  div.timestamp { text-align: center;
+                  font-size: 69%;
+                  margin: 1.5ex 0 1.5ex 0; }
+
+  h1 { text-align: center; }
+  h3 { font-size: medium;
+       margin: 4ex 0 1.5ex 0; }
+
+  p { text-align: justify; }
+
+  pre.colored { color: blue; }
+
+  span.keyword { font-family: monospace;
+                 text-align: left;
+                 white-space: pre;
+                 color: darkblue; }
+
+  table.fields td.val { font-weight: bold;
+                        text-align: right;
+                        width: 30%;
+                        vertical-align: baseline;
+                        padding: 1ex 1em 1ex 0; }
+  table.fields td.desc { vertical-align: baseline;
+                         padding: 1ex 0 1ex 1em; }
+  table.fields td.desc p:first-child { margin: 0; }
+  table.fields td.desc p { margin: 1.5ex 0 0 0; }
+  table.index { margin: 6ex auto 6ex auto;
+                border: 0;
+                border-collapse: separate;
+                border-spacing: 1em 0.3ex; }
+  table.index tr { padding: 0; }
+  table.index td { padding: 0; }
+  table.index-toc-link { width: 100%;
+                         border: 0;
+                         border-spacing: 0;
+                         margin: 1ex 0 1ex 0; }
+  table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
+                                 font-size: 83%;
+                                 text-align: left; }
+  table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
+                                   font-size: 83%;
+                                   text-align: center; }
+  table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
+                                  font-size: 83%;
+                                  text-align: right; }
+  table.synopsis { margin: 6ex auto 6ex auto;
+                   border: 0;
+                   border-collapse: separate;
+                   border-spacing: 2em 0.6ex; }
+  table.synopsis tr { padding: 0; }
+  table.synopsis td { padding: 0; }
+  table.toc td.link { width: 30%;
+                      text-align: right;
+                      vertical-align: baseline;
+                      padding: 1ex 1em 1ex 0; }
+  table.toc td.desc { vertical-align: baseline;
+                      padding: 1ex 0 1ex 1em;
+                      text-align: left; }
+  table.toc td.desc p:first-child { margin: 0;
+                                    text-align: left; }
+  table.toc td.desc p { margin: 1.5ex 0 0 0;
+                        text-align: left; }
+
+</style>
+</head>
+<body>
+"""
+
+html_header_3l = """
+<table class="index-toc-link"><tr><td class="left">[<a href="\
+"""
+
+html_header_3r = """
+<table class="index-toc-link"><tr><td class="right">[<a href="\
+"""
+
+html_header_4 = """\
+">Index</a>]</td><td class="right">[<a href="\
+"""
+
+html_header_5t = """\
+">TOC</a>]</td></tr></table>
+<h1>\
+"""
+
+html_header_5i = """\
+">Index</a>]</td></tr></table>
+<h1>\
+"""
+
+html_header_6 = """\
+ API Reference</h1>
+"""
+
+
+# The HTML footer used by all generated pages.
+html_footer = """\
+</body>
+</html>\
+"""
+
+# The header and footer used for each section.
+section_title_header1 = '<h1 id="'
+section_title_header2 = '">'
+section_title_footer = "</h1>"
+
+# The header and footer used for code segments.
+code_header = '<pre class="colored">'
+code_footer = '</pre>'
+
+# Paragraph header and footer.
+para_header = "<p>"
+para_footer = "</p>"
+
+# Block header and footer.
+block_header        = '<div class="section">'
+block_footer_start  = """\
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="\
+"""
+block_footer_middle = """\
+">Index</a>]</td>\
+<td class="middle">[<a href="#">Top</a>]</td>\
+<td class="right">[<a href="\
+"""
+block_footer_end    = """\
+">TOC</a>]</td></tr></table></div>
+"""
+
+# Description header/footer.
+description_header = ""
+description_footer = ""
+
+# Marker header/inter/footer combination.
+marker_header = "<h4>"
+marker_inter  = "</h4>"
+marker_footer = ""
+
+# Header location header/footer.
+header_location_header = "<p>"
+header_location_footer = "</p>"
+
+# Source code extracts header/footer.
+source_header = "<pre>"
+source_footer = "</pre>"
+
+# Chapter header/inter/footer.
+chapter_header = """\
+<div class="section">
+<h2>\
+"""
+chapter_inter  = '</h2>'
+chapter_footer = '</div>'
+
+# Index footer.
+index_footer_start = """\
+<hr>
+<table class="index-toc-link"><tr><td class="right">[<a href="\
+"""
+index_footer_end = """\
+">TOC</a>]</td></tr></table>
+"""
+
+# TOC footer.
+toc_footer_start = """\
+<hr>
+<table class="index-toc-link"><tr><td class="left">[<a href="\
+"""
+toc_footer_end = """\
+">Index</a>]</td></tr></table>
+"""
+
+
+# Source language keyword coloration and styling.
+keyword_prefix = '<span class="keyword">'
+keyword_suffix = '</span>'
+
+section_synopsis_header = '<h2>Synopsis</h2>'
+section_synopsis_footer = ''
+
+
+# Translate a single line of source to HTML.  This converts `<', `>', and
+# `&' into `&lt;',`&gt;', and `&amp;'.
+#
+def  html_quote( line ):
+    result = string.replace( line,   "&", "&amp;" )
+    result = string.replace( result, "<", "&lt;"  )
+    result = string.replace( result, ">", "&gt;"  )
+    return result
+
+
+################################################################
+##
+##  HTML FORMATTER CLASS
+##
+class  HtmlFormatter( Formatter ):
+
+    def  __init__( self, processor, project_title, file_prefix ):
+        Formatter.__init__( self, processor )
+
+        global html_header_1
+        global html_header_2
+        global html_header_3l, html_header_3r
+        global html_header_4
+        global html_header_5t, html_header_5i
+        global html_header_6
+        global html_footer
+
+        if file_prefix:
+            file_prefix = file_prefix + "-"
+        else:
+            file_prefix = ""
+
+        self.headers       = processor.headers
+        self.project_title = project_title
+        self.file_prefix   = file_prefix
+        self.html_header   = (
+          html_header_1 + project_title
+          + html_header_2
+          + html_header_3l + file_prefix + "index.html"
+          + html_header_4 + file_prefix + "toc.html"
+          + html_header_5t + project_title
+          + html_header_6 )
+        self.html_index_header = (
+          html_header_1 + project_title
+          + html_header_2
+          + html_header_3r + file_prefix + "toc.html"
+          + html_header_5t + project_title
+          + html_header_6 )
+        self.html_toc_header = (
+          html_header_1 + project_title
+          + html_header_2
+          + html_header_3l + file_prefix + "index.html"
+          + html_header_5i + project_title
+          + html_header_6 )
+        self.html_footer = (
+          '<div class="timestamp">generated on '
+          + time.asctime( time.localtime( time.time() ) )
+          + "</div>" + html_footer )
+
+        self.columns = 3
+
+    def  make_section_url( self, section ):
+        return self.file_prefix + section.name + ".html"
+
+    def  make_block_url( self, block, name = None ):
+        if name == None:
+            name = block.name
+
+        try:
+            section_url = self.make_section_url( block.section )
+        except:
+            # we already have a section
+            section_url = self.make_section_url( block )
+
+        return section_url + "#" + name
+
+    def  make_html_word( self, word ):
+        """Analyze a simple word to detect cross-references and markup."""
+        # handle cross-references
+        m = re_crossref.match( word )
+        if m:
+            try:
+                name = m.group( 'name' )
+                rest = m.group( 'rest' )
+                block = self.identifiers[name]
+                url   = self.make_block_url( block )
+                # display `foo[bar]' as `foo'
+                name = re.sub( r'\[.*\]', '', name )
+                # normalize url, following RFC 3986
+                url = string.replace( url, "[", "(" )
+                url = string.replace( url, "]", ")" )
+
+                try:
+                    # for sections, display title
+                    url = ( '&lsquo;<a href="' + url + '">'
+                            + block.title + '</a>&rsquo;'
+                            + rest )
+                except:
+                    url = ( '<a href="' + url + '">'
+                            + name + '</a>'
+                            + rest )
+
+                return url
+            except:
+                # we detected a cross-reference to an unknown item
+                sys.stderr.write( "WARNING: undefined cross reference"
+                                  + " '" + name + "'.\n" )
+                return '?' + name + '?' + rest
+
+        # handle markup for italic and bold
+        m = re_italic.match( word )
+        if m:
+            name = m.group( 1 )
+            rest = m.group( 2 )
+            return '<i>' + name + '</i>' + rest
+
+        m = re_bold.match( word )
+        if m:
+            name = m.group( 1 )
+            rest = m.group( 2 )
+            return '<b>' + name + '</b>' + rest
+
+        return html_quote( word )
+
+    def  make_html_para( self, words ):
+        """Convert words of a paragraph into tagged HTML text.  Also handle
+           cross references."""
+        line = ""
+        if words:
+            line = self.make_html_word( words[0] )
+            for word in words[1:]:
+                line = line + " " + self.make_html_word( word )
+            # handle hyperlinks
+            line = re_url.sub( r'<a href="\1">\1</a>', line )
+            # convert `...' quotations into real left and right single quotes
+            line = re.sub( r"(^|\W)`(.*?)'(\W|$)",
+                           r'\1&lsquo;\2&rsquo;\3',
+                           line )
+            # convert tilde into non-breakable space
+            line = string.replace( line, "~", "&nbsp;" )
+
+        return para_header + line + para_footer
+
+    def  make_html_code( self, lines ):
+        """Convert a code sequence to HTML."""
+        line = code_header + '\n'
+        for l in lines:
+            line = line + html_quote( l ).rstrip() + '\n'
+
+        return line + code_footer
+
+    def  make_html_items( self, items ):
+        """Convert a field's content into HTML."""
+        lines = []
+        for item in items:
+            if item.lines:
+                lines.append( self.make_html_code( item.lines ) )
+            else:
+                lines.append( self.make_html_para( item.words ) )
+
+        return string.join( lines, '\n' )
+
+    def  print_html_items( self, items ):
+        print( self.make_html_items( items ) )
+
+    def  print_html_field( self, field ):
+        if field.name:
+            print( '<table><tr valign="top"><td><b>'
+                   + field.name
+                   + "</b></td><td>" )
+
+        print( self.make_html_items( field.items ) )
+
+        if field.name:
+            print( "</td></tr></table>" )
+
+    def  html_source_quote( self, line, block_name = None ):
+        result = ""
+        while line:
+            m = re_source_crossref.match( line )
+            if m:
+                name   = m.group( 2 )
+                prefix = html_quote( m.group( 1 ) )
+                length = len( m.group( 0 ) )
+
+                if name == block_name:
+                    # this is the current block name, if any
+                    result = result + prefix + '<b>' + name + '</b>'
+                elif re_source_keywords.match( name ):
+                    # this is a C keyword
+                    result = ( result + prefix
+                               + keyword_prefix + name + keyword_suffix )
+                elif name in self.identifiers:
+                    # this is a known identifier
+                    block = self.identifiers[name]
+                    id = block.name
+
+                    # link to a field ID if possible
+                    try:
+                      for markup in block.markups:
+                          if markup.tag == 'values':
+                              for field in markup.fields:
+                                  if field.name:
+                                      id = name
+
+                      result = ( result + prefix
+                                 + '<a href="'
+                                 + self.make_block_url( block, id )
+                                 + '">' + name + '</a>' )
+                    except:
+                      # sections don't have `markups'; however, we don't
+                      # want references to sections here anyway
+                      result = result + html_quote( line[:length] )
+
+                else:
+                    result = result + html_quote( line[:length] )
+
+                line = line[length:]
+            else:
+                result = result + html_quote( line )
+                line   = []
+
+        return result
+
+    def  print_html_field_list( self, fields ):
+        print( '<table class="fields">' )
+        for field in fields:
+            print( '<tr><td class="val" id="' + field.name + '">'
+                   + field.name
+                   + '</td><td class="desc">' )
+            self.print_html_items( field.items )
+            print( "</td></tr>" )
+        print( "</table>" )
+
+    def  print_html_markup( self, markup ):
+        table_fields = []
+        for field in markup.fields:
+            if field.name:
+                # We begin a new series of field or value definitions.  We
+                # record them in the `table_fields' list before outputting
+                # all of them as a single table.
+                table_fields.append( field )
+            else:
+                if table_fields:
+                    self.print_html_field_list( table_fields )
+                    table_fields = []
+
+                self.print_html_items( field.items )
+
+        if table_fields:
+            self.print_html_field_list( table_fields )
+
+    #
+    # formatting the index
+    #
+    def  index_enter( self ):
+        print( self.html_index_header )
+        self.index_items = {}
+
+    def  index_name_enter( self, name ):
+        block = self.identifiers[name]
+        url   = self.make_block_url( block )
+        self.index_items[name] = url
+
+    def  index_exit( self ):
+        # `block_index' already contains the sorted list of index names
+        count = len( self.block_index )
+        rows  = ( count + self.columns - 1 ) // self.columns
+
+        print( '<table class="index">' )
+        for r in range( rows ):
+            line = "<tr>"
+            for c in range( self.columns ):
+                i = r + c * rows
+                if i < count:
+                    bname = self.block_index[r + c * rows]
+                    url   = self.index_items[bname]
+                    # display `foo[bar]' as `foo (bar)'
+                    bname = string.replace( bname, "[", " (" )
+                    bname = string.replace( bname, "]", ")"  )
+                    # normalize url, following RFC 3986
+                    url = string.replace( url, "[", "(" )
+                    url = string.replace( url, "]", ")" )
+                    line  = ( line + '<td><a href="' + url + '">'
+                              + bname + '</a></td>' )
+                else:
+                    line = line + '<td></td>'
+            line = line + "</tr>"
+            print( line )
+
+        print( "</table>" )
+
+        print( index_footer_start
+               + self.file_prefix + "toc.html"
+               + index_footer_end )
+
+        print( self.html_footer )
+
+        self.index_items = {}
+
+    def  index_dump( self, index_filename = None ):
+        if index_filename == None:
+            index_filename = self.file_prefix + "index.html"
+
+        Formatter.index_dump( self, index_filename )
+
+    #
+    # formatting the table of contents
+    #
+    def  toc_enter( self ):
+        print( self.html_toc_header )
+        print( "<h1>Table of Contents</h1>" )
+
+    def  toc_chapter_enter( self, chapter ):
+        print( chapter_header + string.join( chapter.title ) + chapter_inter )
+        print( '<table class="toc">' )
+
+    def  toc_section_enter( self, section ):
+        print( '<tr><td class="link">'
+               + '<a href="' + self.make_section_url( section ) + '">'
+               + section.title + '</a></td><td class="desc">' )
+        print( self.make_html_para( section.abstract ) )
+
+    def  toc_section_exit( self, section ):
+        print( "</td></tr>" )
+
+    def  toc_chapter_exit( self, chapter ):
+        print( "</table>" )
+        print( chapter_footer )
+
+    def  toc_index( self, index_filename ):
+        print( chapter_header
+               + '<a href="' + index_filename + '">Global Index</a>'
+               + chapter_inter + chapter_footer )
+
+    def  toc_exit( self ):
+        print( toc_footer_start
+               + self.file_prefix + "index.html"
+               + toc_footer_end )
+
+        print( self.html_footer )
+
+    def  toc_dump( self, toc_filename = None, index_filename = None ):
+        if toc_filename == None:
+            toc_filename = self.file_prefix + "toc.html"
+
+        if index_filename == None:
+            index_filename = self.file_prefix + "index.html"
+
+        Formatter.toc_dump( self, toc_filename, index_filename )
+
+    #
+    # formatting sections
+    #
+    def  section_enter( self, section ):
+        print( self.html_header )
+
+        print( section_title_header1 + section.name + section_title_header2
+               + section.title
+               + section_title_footer )
+
+        maxwidth = 0
+        for b in section.blocks.values():
+            if len( b.name ) > maxwidth:
+                maxwidth = len( b.name )
+
+        width = 70  # XXX magic number
+        if maxwidth > 0:
+            # print section synopsis
+            print( section_synopsis_header )
+            print( '<table class="synopsis">' )
+
+            columns = width // maxwidth
+            if columns < 1:
+                columns = 1
+
+            count = len( section.block_names )
+            # don't handle last entry if it is empty
+            if section.block_names[-1] == "/empty/":
+                count -= 1
+            rows  = ( count + columns - 1 ) // columns
+
+            for r in range( rows ):
+                line = "<tr>"
+                for c in range( columns ):
+                    i = r + c * rows
+                    line = line + '<td>'
+                    if i < count:
+                        name = section.block_names[i]
+                        if name == "/empty/":
+                            # it can happen that a complete row is empty, and
+                            # without a proper `filler' the browser might
+                            # collapse the row to a much smaller height (or
+                            # even omit it completely)
+                            line = line + "&nbsp;"
+                        else:
+                            url = name
+                            # display `foo[bar]' as `foo'
+                            name = re.sub( r'\[.*\]', '', name )
+                            # normalize url, following RFC 3986
+                            url = string.replace( url, "[", "(" )
+                            url = string.replace( url, "]", ")" )
+                            line = ( line + '<a href="#' + url + '">'
+                                     + name + '</a>' )
+
+                    line = line + '</td>'
+                line = line + "</tr>"
+                print( line )
+
+            print( "</table>" )
+            print( section_synopsis_footer )
+
+        print( description_header )
+        print( self.make_html_items( section.description ) )
+        print( description_footer )
+
+    def  block_enter( self, block ):
+        print( block_header )
+
+        # place html anchor if needed
+        if block.name:
+            url = block.name
+            # display `foo[bar]' as `foo'
+            name = re.sub( r'\[.*\]', '', block.name )
+            # normalize url, following RFC 3986
+            url = string.replace( url, "[", "(" )
+            url = string.replace( url, "]", ")" )
+            print( '<h3 id="' + url + '">' + name + '</h3>' )
+
+        # dump the block C source lines now
+        if block.code:
+            header = ''
+            for f in self.headers.keys():
+                if block.source.filename.find( f ) >= 0:
+                    header = self.headers[f] + ' (' + f + ')'
+                    break
+
+#           if not header:
+#               sys.stderr.write(
+#                 "WARNING: No header macro for"
+#                 + " '" + block.source.filename + "'.\n" )
+
+            if header:
+                print( header_location_header
+                       + 'Defined in ' + header + '.'
+                       + header_location_footer )
+
+            print( source_header )
+            for l in block.code:
+                print( self.html_source_quote( l, block.name ) )
+            print( source_footer )
+
+    def  markup_enter( self, markup, block ):
+        if markup.tag == "description":
+            print( description_header )
+        else:
+            print( marker_header + markup.tag + marker_inter )
+
+        self.print_html_markup( markup )
+
+    def  markup_exit( self, markup, block ):
+        if markup.tag == "description":
+            print( description_footer )
+        else:
+            print( marker_footer )
+
+    def  block_exit( self, block ):
+        print( block_footer_start + self.file_prefix + "index.html"
+               + block_footer_middle + self.file_prefix + "toc.html"
+               + block_footer_end )
+
+    def  section_exit( self, section ):
+        print( html_footer )
+
+    def  section_dump_all( self ):
+        for section in self.sections:
+            self.section_dump( section,
+                               self.file_prefix + section.name + '.html' )
+
+# eof
diff -ruN freetype-2.10.0/src/tools/docmaker/utils.py freetype-2.10.0.aros/src/tools/docmaker/utils.py
--- freetype-2.10.0/src/tools/docmaker/utils.py	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/docmaker/utils.py	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,127 @@
+#
+#  utils.py
+#
+#    Auxiliary functions for the `docmaker' tool (library file).
+#
+#  Copyright 2002-2018 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.
+
+
+import string, sys, os, glob, itertools
+
+
+# current output directory
+#
+output_dir = None
+
+
+# A function that generates a sorting key.  We want lexicographical order
+# (primary key) except that capital letters are sorted before lowercase
+# ones (secondary key).
+#
+# The primary key is implemented by lowercasing the input.  The secondary
+# key is simply the original data appended, character by character.  For
+# example, the sort key for `FT_x' is `fFtT__xx', while the sort key for
+# `ft_X' is `fftt__xX'.  Since ASCII codes of uppercase letters are
+# numerically smaller than the codes of lowercase letters, `fFtT__xx' gets
+# sorted before `fftt__xX'.
+#
+def  index_key( s ):
+    return string.join( itertools.chain( *zip( s.lower(), s ) ) )
+
+
+# Sort `input_list', placing the elements of `order_list' in front.
+#
+def  sort_order_list( input_list, order_list ):
+    new_list = order_list[:]
+    for id in input_list:
+        if not id in order_list:
+            new_list.append( id )
+    return new_list
+
+
+# Divert standard output to a given project documentation file.  Use
+# `output_dir' to determine the filename location if necessary and save the
+# old stdout handle in a tuple that is returned by this function.
+#
+def  open_output( filename ):
+    global output_dir
+
+    if output_dir and output_dir != "":
+        filename = output_dir + os.sep + filename
+
+    old_stdout = sys.stdout
+    new_file   = open( filename, "w" )
+    sys.stdout = new_file
+
+    return ( new_file, old_stdout )
+
+
+# Close the output that was returned by `open_output'.
+#
+def  close_output( output ):
+    output[0].close()
+    sys.stdout = output[1]
+
+
+# Check output directory.
+#
+def  check_output():
+    global output_dir
+    if output_dir:
+        if output_dir != "":
+            if not os.path.isdir( output_dir ):
+                sys.stderr.write( "argument"
+                                  + " '" + output_dir + "' "
+                                  + "is not a valid directory\n" )
+                sys.exit( 2 )
+        else:
+            output_dir = None
+
+
+def  file_exists( pathname ):
+    """Check that a given file exists."""
+    result = 1
+    try:
+        file = open( pathname, "r" )
+        file.close()
+    except:
+        result = None
+        sys.stderr.write( pathname + " couldn't be accessed\n" )
+
+    return result
+
+
+def  make_file_list( args = None ):
+    """Build a list of input files from command-line arguments."""
+    file_list = []
+    # sys.stderr.write( repr( sys.argv[1 :] ) + '\n' )
+
+    if not args:
+        args = sys.argv[1:]
+
+    for pathname in args:
+        if string.find( pathname, '*' ) >= 0:
+            newpath = glob.glob( pathname )
+            newpath.sort()  # sort files -- this is important because
+                            # of the order of files
+        else:
+            newpath = [pathname]
+
+        file_list.extend( newpath )
+
+    if len( file_list ) == 0:
+        file_list = None
+    else:
+        # now filter the file list to remove non-existing ones
+        file_list = filter( file_exists, file_list )
+
+    return file_list
+
+# eof
diff -ruN freetype-2.10.0/src/tools/ftfuzzer/ftfuzzer.cc freetype-2.10.0.aros/src/tools/ftfuzzer/ftfuzzer.cc
--- freetype-2.10.0/src/tools/ftfuzzer/ftfuzzer.cc	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/ftfuzzer/ftfuzzer.cc	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,428 @@
+// ftfuzzer.cc
+//
+//   A fuzzing function to test FreeType with libFuzzer.
+//
+// Copyright 2015-2018 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.
+
+
+// we use `unique_ptr', `decltype', and other gimmicks defined since C++11
+#if __cplusplus < 201103L
+#  error "a C++11 compiler is needed"
+#endif
+
+#include <archive.h>
+#include <archive_entry.h>
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <memory>
+#include <vector>
+
+
+  using namespace std;
+
+
+#include <ft2build.h>
+
+#include FT_FREETYPE_H
+#include FT_GLYPH_H
+#include FT_CACHE_H
+#include FT_CACHE_CHARMAP_H
+#include FT_CACHE_IMAGE_H
+#include FT_CACHE_SMALL_BITMAPS_H
+#include FT_SYNTHESIS_H
+#include FT_ADVANCES_H
+#include FT_OUTLINE_H
+#include FT_BBOX_H
+#include FT_MODULE_H
+#include FT_DRIVER_H
+#include FT_MULTIPLE_MASTERS_H
+
+
+  static FT_Library  library;
+  static int         InitResult;
+
+
+  struct FT_Global
+  {
+    FT_Global()
+    {
+      InitResult = FT_Init_FreeType( &library );
+      if ( InitResult )
+        return;
+
+      // try to activate Adobe's CFF engine; it might not be the default
+      unsigned int  cff_hinting_engine = FT_HINTING_ADOBE;
+      FT_Property_Set( library,
+                       "cff",
+                       "hinting-engine", &cff_hinting_engine );
+    }
+
+    ~FT_Global()
+    {
+      FT_Done_FreeType( library );
+    }
+  };
+
+  FT_Global  global_ft;
+
+
+  // We want to select n values at random (without repetition),
+  // with 0 < n <= N.  The algorithm is taken from TAoCP, Vol. 2
+  // (Algorithm S, selection sampling technique)
+  struct Random
+  {
+    int  n;
+    int  N;
+
+    int  t; // total number of values so far
+    int  m; // number of selected values so far
+
+    uint32_t  r; // the current pseudo-random number
+
+    Random( int n_,
+            int N_ )
+    : n( n_ ),
+      N( N_ )
+    {
+      t = 0;
+      m = 0;
+
+      // Ideally, this should depend on the input file,
+      // for example, taking the sha256 as input;
+      // however, this is overkill for fuzzying tests.
+      r = 12345;
+    }
+
+    int get()
+    {
+      if ( m >= n )
+        return -1;
+
+    Redo:
+      // We can't use `rand': different C libraries might provide
+      // different implementations of this function.  As a replacement,
+      // we use a 32bit version of the `xorshift' algorithm.
+      r ^= r << 13;
+      r ^= r >> 17;
+      r ^= r << 5;
+
+      double  U = double( r ) / UINT32_MAX;
+
+      if ( ( N - t ) * U >= ( n - m ) )
+      {
+        t++;
+        goto Redo;
+      }
+
+      t++;
+      m++;
+
+      return t;
+    }
+  };
+
+
+  static int
+  archive_read_entry_data( struct archive   *ar,
+                           vector<FT_Byte>  *vw )
+  {
+    int             r;
+    const FT_Byte*  buff;
+    size_t          size;
+    int64_t         offset;
+
+    for (;;)
+    {
+      r = archive_read_data_block( ar,
+                                   reinterpret_cast<const void**>( &buff ),
+                                   &size,
+                                   &offset );
+      if ( r == ARCHIVE_EOF )
+        return ARCHIVE_OK;
+      if ( r != ARCHIVE_OK )
+        return r;
+
+      vw->insert( vw->end(), buff, buff + size );
+    }
+  }
+
+
+  static vector<vector<FT_Byte>>
+  parse_data( const uint8_t*  data,
+              size_t          size )
+  {
+    struct archive_entry*    entry;
+    int                      r;
+    vector<vector<FT_Byte>>  files;
+
+    unique_ptr<struct  archive,
+               decltype ( archive_read_free )*>  a( archive_read_new(),
+                                                    archive_read_free );
+
+    // activate reading of uncompressed tar archives
+    archive_read_support_format_tar( a.get() );
+
+    // the need for `const_cast' was removed with libarchive commit be4d4dd
+    if ( !( r = archive_read_open_memory(
+                  a.get(),
+                  const_cast<void*>(static_cast<const void*>( data ) ),
+                  size ) ) )
+    {
+      unique_ptr<struct  archive,
+                 decltype ( archive_read_close )*>  a_open( a.get(),
+                                                            archive_read_close );
+
+      // read files contained in archive
+      for (;;)
+      {
+        r = archive_read_next_header( a_open.get(), &entry );
+        if ( r == ARCHIVE_EOF )
+          break;
+        if ( r != ARCHIVE_OK )
+          break;
+
+        vector<FT_Byte>  entry_data;
+        r = archive_read_entry_data( a.get(), &entry_data );
+        if ( r != ARCHIVE_OK )
+          break;
+
+        files.push_back( move( entry_data ) );
+      }
+    }
+
+    if ( files.size() == 0 )
+      files.emplace_back( data, data + size );
+
+    return files;
+  }
+
+
+  static void
+  setIntermediateAxis( FT_Face  face )
+  {
+    // only handle Multiple Masters and GX variation fonts
+    if ( !FT_HAS_MULTIPLE_MASTERS( face ) )
+      return;
+
+    // get variation data for current instance
+    FT_MM_Var*  variations_ptr = nullptr;
+    if ( FT_Get_MM_Var( face, &variations_ptr ) )
+      return;
+
+    unique_ptr<FT_MM_Var,
+               decltype ( free )*>  variations( variations_ptr, free );
+    vector<FT_Fixed>                coords( variations->num_axis );
+
+    // select an arbitrary instance
+    for ( unsigned int  i = 0; i < variations->num_axis; i++ )
+      coords[i] = ( variations->axis[i].minimum +
+                    variations->axis[i].def     ) / 2;
+
+    if ( FT_Set_Var_Design_Coordinates( face,
+                                        FT_UInt( coords.size() ),
+                                        coords.data() ) )
+      return;
+  }
+
+
+  // the interface function to the libFuzzer library
+  extern "C" int
+  LLVMFuzzerTestOneInput( const uint8_t*  data,
+                          size_t          size_ )
+  {
+    assert( !InitResult );
+
+    if ( size_ < 1 )
+      return 0;
+
+    const vector<vector<FT_Byte>>&  files = parse_data( data, size_ );
+
+    FT_Face         face;
+    FT_Int32        load_flags  = FT_LOAD_DEFAULT;
+#if 0
+    FT_Render_Mode  render_mode = FT_RENDER_MODE_NORMAL;
+#endif
+
+    // We use a conservative approach here, at the cost of calling
+    // `FT_New_Face' quite often.  The idea is that the fuzzer should be
+    // able to try all faces and named instances of a font, expecting that
+    // some faces don't work for various reasons, e.g., a broken subfont, or
+    // an unsupported NFNT bitmap font in a Mac dfont resource that holds
+    // more than a single font.
+
+    // get number of faces
+    if ( FT_New_Memory_Face( library,
+                             files[0].data(),
+                             (FT_Long)files[0].size(),
+                             -1,
+                             &face ) )
+      return 0;
+    long  num_faces = face->num_faces;
+    FT_Done_Face( face );
+
+    // loop over up to 20 arbitrarily selected faces
+    // from index range [0;num-faces-1]
+    long  max_face_cnt = num_faces < 20
+                           ? num_faces
+                           : 20;
+
+    Random  faces_pool( (int)max_face_cnt, (int)num_faces );
+
+    for ( long  face_cnt = 0;
+          face_cnt < max_face_cnt;
+          face_cnt++ )
+    {
+      long  face_index = faces_pool.get() - 1;
+
+      // get number of instances
+      if ( FT_New_Memory_Face( library,
+                               files[0].data(),
+                               (FT_Long)files[0].size(),
+                               -( face_index + 1 ),
+                               &face ) )
+        continue;
+      long  num_instances = face->style_flags >> 16;
+      FT_Done_Face( face );
+
+      // loop over the face without instance (index 0)
+      // and up to 20 arbitrarily selected instances
+      // from index range [1;num_instances]
+      long  max_instance_cnt = num_instances < 20
+                                 ? num_instances
+                                 : 20;
+
+      Random  instances_pool( (int)max_instance_cnt, (int)num_instances );
+
+      for ( long  instance_cnt = 0;
+            instance_cnt <= max_instance_cnt;
+            instance_cnt++ )
+      {
+        long  instance_index = 0;
+
+        if ( !instance_cnt )
+        {
+          if ( FT_New_Memory_Face( library,
+                                   files[0].data(),
+                                   (FT_Long)files[0].size(),
+                                   face_index,
+                                   &face ) )
+            continue;
+        }
+        else
+        {
+          instance_index = instances_pool.get();
+
+          if ( FT_New_Memory_Face( library,
+                                   files[0].data(),
+                                   (FT_Long)files[0].size(),
+                                   ( instance_index << 16 ) + face_index,
+                                   &face ) )
+            continue;
+        }
+
+        // if we have more than a single input file coming from an archive,
+        // attach them (starting with the second file) using the order given
+        // in the archive
+        for ( size_t  files_index = 1;
+              files_index < files.size();
+              files_index++ )
+        {
+          FT_Open_Args  open_args = {};
+          open_args.flags         = FT_OPEN_MEMORY;
+          open_args.memory_base   = files[files_index].data();
+          open_args.memory_size   = (FT_Long)files[files_index].size();
+
+          // the last archive element will be eventually used as the
+          // attachment
+          FT_Attach_Stream( face, &open_args );
+        }
+
+        // loop over an arbitrary size for outlines
+        // and up to ten arbitrarily selected bitmap strike sizes
+        // from the range [0;num_fixed_sizes - 1]
+        int  max_size_cnt = face->num_fixed_sizes < 10
+                              ? face->num_fixed_sizes
+                              : 10;
+
+        Random sizes_pool( max_size_cnt, face->num_fixed_sizes );
+
+        for ( int  size_cnt = 0;
+              size_cnt <= max_size_cnt;
+              size_cnt++ )
+        {
+          FT_Int32  flags = load_flags;
+
+          int  size_index = 0;
+
+          if ( !size_cnt )
+          {
+            // set up 20pt at 72dpi as an arbitrary size
+            if ( FT_Set_Char_Size( face, 20 * 64, 20 * 64, 72, 72 ) )
+              continue;
+            flags |= FT_LOAD_NO_BITMAP;
+          }
+          else
+          {
+            // bitmap strikes are not active for font variations
+            if ( instance_index )
+              continue;
+
+            size_index = sizes_pool.get() - 1;
+
+            if ( FT_Select_Size( face, size_index ) )
+              continue;
+            flags |= FT_LOAD_COLOR;
+          }
+
+          // test MM interface only for a face without a selected instance
+          // and without a selected bitmap strike
+          if ( !instance_index && !size_cnt )
+            setIntermediateAxis( face );
+
+          // loop over all glyphs
+          for ( unsigned int  glyph_index = 0;
+                glyph_index < (unsigned int)face->num_glyphs;
+                glyph_index++ )
+          {
+            if ( FT_Load_Glyph( face, glyph_index, flags ) )
+              continue;
+
+            // Rendering is the most expensive and the least interesting part.
+            //
+            // if ( FT_Render_Glyph( face->glyph, render_mode) )
+            //   continue;
+            // FT_GlyphSlot_Embolden( face->glyph );
+
+#if 0
+            FT_Glyph  glyph;
+            if ( !FT_Get_Glyph( face->glyph, &glyph ) )
+              FT_Done_Glyph( glyph );
+
+            FT_Outline*  outline = &face->glyph->outline;
+            FT_Matrix    rot30   = { 0xDDB4, -0x8000, 0x8000, 0xDDB4 };
+
+            FT_Outline_Transform( outline, &rot30 );
+
+            FT_BBox  bbox;
+            FT_Outline_Get_BBox( outline, &bbox );
+#endif
+          }
+        }
+        FT_Done_Face( face );
+      }
+    }
+
+    return 0;
+  }
+
+
+// END
diff -ruN freetype-2.10.0/src/tools/ftfuzzer/ftmutator.cc freetype-2.10.0.aros/src/tools/ftfuzzer/ftmutator.cc
--- freetype-2.10.0/src/tools/ftfuzzer/ftmutator.cc	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/ftfuzzer/ftmutator.cc	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,314 @@
+// ftmutator.cc
+//
+//   A custom fuzzer mutator to test for FreeType with libFuzzer.
+//
+// Copyright 2015-2018 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.
+
+
+// Since `tar' is not a valid format for input to FreeType, treat any input
+// that looks like `tar' as multiple files and mutate them separately.
+//
+// In the future, a variation of this may be used to guide mutation on a
+// logically higher level.
+
+
+// we use `unique_ptr', `decltype', and other gimmicks defined since C++11
+#if __cplusplus < 201103L
+#  error "a C++11 compiler is needed"
+#endif
+
+#include <cstdint>
+#include <cassert>
+#include <cstdio>
+#include <cstdlib>
+#include <cstddef>
+#include <cstring>
+#include <iostream>
+
+#include <memory>
+#include <vector>
+
+#include <archive.h>
+#include <archive_entry.h>
+
+#include "FuzzerInterface.h"
+
+
+  using namespace std;
+
+
+  // This function should be defined by `ftfuzzer.cc'.
+  extern "C" int
+  LLVMFuzzerTestOneInput( const uint8_t*  Data,
+                          size_t          Size );
+
+
+  static void
+  check_result( struct archive*  a,
+                int              r )
+  {
+    if ( r == ARCHIVE_OK )
+      return;
+
+    const char*  m = archive_error_string( a );
+    write( 1, m, strlen( m ) );
+    exit( 1 );
+  }
+
+
+  static int
+  archive_read_entry_data( struct archive   *ar,
+                           vector<uint8_t>  *vw )
+  {
+    int             r;
+    const uint8_t*  buff;
+    size_t          size;
+    int64_t         offset;
+
+    for (;;)
+    {
+      r = archive_read_data_block( ar,
+                                   reinterpret_cast<const void**>( &buff ),
+                                   &size,
+                                   &offset );
+      if ( r == ARCHIVE_EOF )
+        return ARCHIVE_OK;
+      if ( r != ARCHIVE_OK )
+        return r;
+
+      vw->insert( vw->end(), buff, buff + size );
+    }
+  }
+
+
+  static vector<vector<uint8_t>>
+  parse_data( const uint8_t*  data,
+              size_t          size )
+  {
+    struct archive_entry*    entry;
+    int                      r;
+    vector<vector<uint8_t>>  files;
+
+    unique_ptr<struct  archive,
+               decltype ( archive_read_free )*>  a( archive_read_new(),
+                                                    archive_read_free );
+
+    // activate reading of uncompressed tar archives
+    archive_read_support_format_tar( a.get() );
+
+    // the need for `const_cast' was removed with libarchive commit be4d4dd
+    if ( !( r = archive_read_open_memory(
+                  a.get(),
+                  const_cast<void*>(static_cast<const void*>( data ) ),
+                  size ) ) )
+    {
+      unique_ptr<struct  archive,
+                 decltype ( archive_read_close )*>  a_open( a.get(),
+                                                            archive_read_close );
+
+      // read files contained in archive
+      for (;;)
+      {
+        r = archive_read_next_header( a_open.get(), &entry );
+        if ( r == ARCHIVE_EOF )
+          break;
+        if ( r != ARCHIVE_OK )
+          break;
+
+        vector<uint8_t>  entry_data;
+        r = archive_read_entry_data( a.get(), &entry_data );
+        if ( entry_data.size() == 0 )
+          continue;
+
+        files.push_back( move( entry_data ) );
+        if ( r != ARCHIVE_OK )
+          break;
+      }
+    }
+
+    return files;
+  }
+
+
+  class FTFuzzer
+  : public fuzzer::UserSuppliedFuzzer
+  {
+
+  public:
+    FTFuzzer( fuzzer::FuzzerRandomBase*  Rand )
+    : fuzzer::UserSuppliedFuzzer( Rand ) {}
+
+
+    int
+    TargetFunction( const uint8_t*  Data,
+                    size_t          Size )
+    {
+      return LLVMFuzzerTestOneInput( Data, Size );
+    }
+
+
+    // Custom mutator.
+    virtual size_t
+    Mutate( uint8_t*  Data,
+            size_t    Size,
+            size_t    MaxSize )
+    {
+      vector<vector<uint8_t>>  files = parse_data( Data, Size );
+
+      // If the file was not recognized as a tar file, treat it as non-tar.
+      if ( files.size() == 0 )
+        return fuzzer::UserSuppliedFuzzer::Mutate( Data, Size, MaxSize );
+
+      // This is somewhat `white box' on tar.  The tar format uses 512 byte
+      // blocks.  One block as header for each file, two empty blocks of 0's
+      // at the end.  File data is padded to fill its last block.
+      size_t  used_blocks = files.size() + 2;
+      for ( const auto&  file : files )
+        used_blocks += ( file.size() + 511 ) / 512;
+
+      size_t  max_blocks = MaxSize / 512;
+
+      // If the input is big, it will need to be downsized.  If the original
+      // tar file was too big, it may have been clipped to fit.  In this
+      // case it may not be possible to properly write out the data, as
+      // there may not be enough space for the trailing two blocks.  Start
+      // dropping file data or files from the end.
+      for ( size_t  i = files.size();
+            i-- > 1 && used_blocks > max_blocks; )
+      {
+        size_t  blocks_to_free = used_blocks - max_blocks;
+        size_t  blocks_currently_used_by_file_data =
+                  ( files[i].size() + 511 ) / 512;
+
+        if ( blocks_currently_used_by_file_data >= blocks_to_free )
+        {
+          files[i].resize( ( blocks_currently_used_by_file_data -
+                               blocks_to_free ) * 512 );
+          used_blocks -= blocks_to_free;
+          continue;
+        }
+
+        files.pop_back();
+        used_blocks -= blocks_currently_used_by_file_data + 1;
+      }
+
+      // If we get down to one file, don't use tar.
+      if ( files.size() == 1 )
+      {
+        memcpy( Data, files[0].data(), files[0].size() );
+        return fuzzer::UserSuppliedFuzzer::Mutate( Data,
+                                                   files[0].size(),
+                                                   MaxSize );
+      }
+
+      size_t  free_blocks = max_blocks - used_blocks;
+
+      // Allow each file to use up as much of the currently available space
+      // it can.  If it uses or gives up blocks, add them or remove them
+      // from the pool.
+      for ( auto&&  file : files )
+      {
+        size_t  blocks_currently_used_by_file = ( file.size() + 511 ) / 512;
+        size_t  blocks_available = blocks_currently_used_by_file +
+                                     free_blocks;
+        size_t  max_size = blocks_available * 512;
+        size_t  data_size = file.size();
+
+        file.resize( max_size );
+        file.resize( fuzzer::UserSuppliedFuzzer::Mutate( file.data(),
+                                                         data_size,
+                                                         max_size ) );
+
+        size_t  blocks_now_used_by_file = ( file.size() + 511 ) / 512;
+        free_blocks = free_blocks +
+                        blocks_currently_used_by_file -
+                        blocks_now_used_by_file;
+      }
+
+      unique_ptr<struct  archive,
+                 decltype ( archive_write_free )*>  a( archive_write_new(),
+                                                       archive_write_free );
+
+      check_result( a.get(), archive_write_add_filter_none( a.get() ) );
+      check_result( a.get(), archive_write_set_format_ustar( a.get() ) );
+
+      // `used' may not be correct until after the archive is closed.
+      size_t  used = 0xbadbeef;
+      check_result( a.get(), archive_write_open_memory( a.get(),
+                                                        Data,
+                                                        MaxSize,
+                                                        &used ) );
+
+      {
+        unique_ptr<struct  archive,
+                   decltype ( archive_write_close )*>  a_open( a.get(),
+                                                               archive_write_close );
+
+        int  file_index = 0;
+        for ( const auto&  file : files )
+        {
+          unique_ptr<struct  archive_entry,
+                     decltype ( archive_entry_free )*>
+            e( archive_entry_new2( a_open.get() ),
+                                   archive_entry_free );
+
+          char  name_buffer[100];
+          snprintf( name_buffer, 100, "file%d", file_index++ );
+
+          archive_entry_set_pathname( e.get(), name_buffer );
+          archive_entry_set_size( e.get(), file.size() );
+          archive_entry_set_filetype( e.get(), AE_IFREG );
+          archive_entry_set_perm( e.get(), 0644 );
+
+          check_result( a_open.get(),
+                        archive_write_header( a_open.get(), e.get() ) );
+          archive_write_data( a_open.get(), file.data(), file.size() );
+          check_result( a_open.get(),
+                        archive_write_finish_entry( a_open.get() ) );
+        }
+      }
+
+      return used;
+    }
+
+
+    // Cross `Data1' and `Data2', write up to `MaxOutSize' bytes into `Out',
+    // return the number of bytes written, which should be positive.
+    virtual size_t
+    CrossOver( const uint8_t*  Data1,
+               size_t          Size1,
+               const uint8_t*  Data2,
+               size_t          Size2,
+               uint8_t*        Out,
+               size_t          MaxOutSize )
+    {
+      return fuzzer::UserSuppliedFuzzer::CrossOver( Data1,
+                                                    Size1,
+                                                    Data2,
+                                                    Size2,
+                                                    Out,
+                                                    MaxOutSize );
+    }
+
+  }; // end of FTFuzzer class
+
+
+  int
+  main( int     argc,
+        char*  *argv )
+  {
+    fuzzer::FuzzerRandomLibc  Rand( 0 );
+    FTFuzzer                  F( &Rand );
+
+    fuzzer::FuzzerDriver( argc, argv, F );
+  }
+
+
+// END
diff -ruN freetype-2.10.0/src/tools/ftfuzzer/rasterfuzzer.cc freetype-2.10.0.aros/src/tools/ftfuzzer/rasterfuzzer.cc
--- freetype-2.10.0/src/tools/ftfuzzer/rasterfuzzer.cc	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/ftfuzzer/rasterfuzzer.cc	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,129 @@
+// rasterfuzzer.cc
+//
+//   A fuzzing function to test FreeType's rasterizers with libFuzzer.
+//
+// Copyright 2016-2018 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.
+
+
+#include <stdint.h>
+
+#include <vector>
+
+
+  using namespace std;
+
+
+#include <ft2build.h>
+
+#include FT_FREETYPE_H
+#include FT_IMAGE_H
+#include FT_OUTLINE_H
+
+
+  static FT_Library  library;
+  static int         InitResult;
+
+
+  struct FT_Global {
+    FT_Global() {
+      InitResult = FT_Init_FreeType( &library );
+    }
+    ~FT_Global() {
+      FT_Done_FreeType( library );
+    }
+  };
+
+  FT_Global  global_ft;
+
+
+  extern "C" int
+  LLVMFuzzerTestOneInput( const uint8_t*  data,
+                          size_t          size_ )
+  {
+    unsigned char  pixels[4];
+
+    FT_Bitmap  bitmap_mono = {
+      1,                  // rows
+      1,                  // width
+      4,                  // pitch
+      pixels,             // buffer
+      2,                  // num_grays
+      FT_PIXEL_MODE_MONO, // pixel_mode
+      0,                  // palette_mode
+      NULL                // palette
+    };
+
+    FT_Bitmap  bitmap_gray = {
+      1,                  // rows
+      1,                  // width
+      4,                  // pitch
+      pixels,             // buffer
+      256,                // num_grays
+      FT_PIXEL_MODE_GRAY, // pixel_mode
+      0,                  // palette_mode
+      NULL                // palette
+    };
+
+    const size_t vsize = sizeof ( FT_Vector );
+    const size_t tsize = sizeof ( char );
+
+    // we use the input data for both points and tags
+    short  n_points = short( size_ / ( vsize + tsize ) );
+    if ( n_points <= 2 )
+      return 0;
+
+    FT_Vector*  points = reinterpret_cast<FT_Vector*>(
+                           const_cast<uint8_t*>(
+                             data ) );
+    char*       tags   = reinterpret_cast<char*>(
+                           const_cast<uint8_t*>(
+                             data + size_t( n_points ) * vsize ) );
+
+    // to reduce the number of invalid outlines that are immediately
+    // rejected in `FT_Outline_Render', limit values to 2^18 pixels
+    // (i.e., 2^24 bits)
+    for ( short  i = 0; i < n_points; i++ )
+    {
+      if ( points[i].x == LONG_MIN )
+        points[i].x = 0;
+      else if ( points[i].x < 0 )
+        points[i].x = -( -points[i].x & 0xFFFFFF ) - 1;
+      else
+        points[i].x = ( points[i].x & 0xFFFFFF ) + 1;
+
+      if ( points[i].y == LONG_MIN )
+        points[i].y = 0;
+      else if ( points[i].y < 0 )
+        points[i].y = -( -points[i].y & 0xFFFFFF ) - 1;
+      else
+        points[i].y = ( points[i].y & 0xFFFFFF ) + 1;
+    }
+
+    short  contours[1];
+    contours[0] = n_points - 1;
+
+    FT_Outline  outline =
+    {
+      1,               // n_contours
+      n_points,        // n_points
+      points,          // points
+      tags,            // tags
+      contours,        // contours
+      FT_OUTLINE_NONE  // flags
+    };
+
+    FT_Outline_Get_Bitmap( library, &outline, &bitmap_mono );
+    FT_Outline_Get_Bitmap( library, &outline, &bitmap_gray );
+
+    return 0;
+  }
+
+
+// END
diff -ruN freetype-2.10.0/src/tools/ftfuzzer/README freetype-2.10.0.aros/src/tools/ftfuzzer/README
--- freetype-2.10.0/src/tools/ftfuzzer/README	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/ftfuzzer/README	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,81 @@
+ftfuzzer
+========
+
+
+ftfuzzer.cc
+-----------
+
+This file contains a target function  for FreeType fuzzing.  It can be
+used   with    libFuzzer   (https://llvm.org/docs/LibFuzzer.html)   or
+potentially any other similar fuzzer.
+
+Usage:
+
+  1. Build  `libfreetype.a' and  `ftfuzzer.cc' using  the most  recent
+     clang compiler with these flags:
+
+       # for fuzzer coverage feedback
+       -fsanitize-coverage=edge,8bit-counters
+       # for bug checking
+       -fsanitize=address,signed-integer-overflow,shift
+
+     You  also need  the header  files from  the `libarchive'  library
+     (https://www.libarchive.org/)  for handling  tar files  (see file
+     `ftmutator.cc' below for more).
+
+  2. Link with `libFuzzer' (it contains `main') and `libarchive'.
+
+  3. Run the fuzzer on some test corpus.
+
+The exact flags and commands may vary.
+
+  https://github.com/google/oss-fuzz/tree/master/projects/freetype2
+
+There is a continuous fuzzing bot that runs ftfuzzer.
+
+  https://oss-fuzz.com
+
+(You need an account  to be able to see coverage  reports and the like
+on oss-fuzz.com.)
+
+Check the bot configuration for the most current settings.
+
+
+ftmutator.cc
+------------
+
+FreeType has the  ability to `attach' auxiliary files to  a font file,
+providing additional information.  The main usage is to load AFM files
+for PostScript Type 1 fonts.
+
+However, libFuzzer currently only supports  mutation of a single input
+file.   For  this  reason,  `ftmutator.cc' contains  a  custom  fuzzer
+mutator that uses an uncompressed tar  file archive as the input.  The
+first file in  such a tarball gets  opened by FreeType as  a font, all
+other files are treated as input for `FT_Attach_Stream'.
+
+Compilation is similar to `ftfuzzer.c'.
+
+
+runinput.cc
+-----------
+
+To run the target function on a set of input files, this file contains
+a   convenience  `main'   function.   Link   it  with   `ftfuzzer.cc',
+`libfreetype.a', and `libarchive' and run like
+
+  ./a.out my_tests_inputs/*
+
+----------------------------------------------------------------------
+
+Copyright 2015-2018 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.
+
+
+--- end of README ---
diff -ruN freetype-2.10.0/src/tools/ftfuzzer/runinput.cc freetype-2.10.0.aros/src/tools/ftfuzzer/runinput.cc
--- freetype-2.10.0/src/tools/ftfuzzer/runinput.cc	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/tools/ftfuzzer/runinput.cc	2019-04-10 15:33:37.341922336 +0200
@@ -0,0 +1,58 @@
+// runinput.cc
+//
+//   A `main' function for fuzzers like `ftfuzzer.cc'.
+//
+// Copyright 2015-2018 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.
+
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdint.h>
+
+
+  extern "C" void
+  LLVMFuzzerTestOneInput( const uint8_t*  data,
+                          size_t          size );
+
+
+  unsigned char a[1 << 24];
+
+
+  int
+  main( int     argc,
+        char*  *argv )
+  {
+    assert( argc >= 2 );
+
+    for ( int i = 1; i < argc; i++ )
+    {
+      fprintf( stderr, "%s\n", argv[i] );
+
+      FILE*  f = fopen( argv[i], "r" );
+      assert( f );
+
+      size_t  n = fread( a, 1, sizeof ( a ), f );
+      fclose( f );
+      if ( !n )
+        continue;
+
+      unsigned char*  b = (unsigned char*)malloc( n );
+      memcpy( b, a, n );
+
+      LLVMFuzzerTestOneInput( b, n );
+
+      free( b );
+    }
+  }
+
+
+// END
diff -ruN freetype-2.10.0/src/truetype/ttgload.c freetype-2.10.0.aros/src/truetype/ttgload.c
--- freetype-2.10.0/src/truetype/ttgload.c	2019-02-23 10:06:07.000000000 +0100
+++ freetype-2.10.0.aros/src/truetype/ttgload.c	2019-04-10 15:33:37.337922311 +0200
@@ -37,6 +37,9 @@
 #include "tterrors.h"
 #include "ttsubpix.h"
 
+#define DEBUG 1
+#include <aros/debug.h>
+
 
   /**************************************************************************
    *
@@ -2716,7 +2719,10 @@
                  FT_Int32      load_flags )
   {
     FT_Error      error;
-    TT_LoaderRec  loader;
+          TT_LoaderRec  *loader;
+          bug("==============================================================\n");
+          loader=(TT_LoaderRec *)AllocVec(sizeof(TT_LoaderRec), MEMF_CLEAR);
+
 
 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
 #define IS_DEFAULT_INSTANCE  ( !( FT_IS_NAMED_INSTANCE( glyph->face ) ||  \
@@ -2806,11 +2812,11 @@
         if ( FT_IS_SCALABLE( glyph->face ) )
         {
           /* for the bbox we need the header only */
-          (void)tt_loader_init( &loader, size, glyph, load_flags, TRUE );
-          (void)load_truetype_glyph( &loader, glyph_index, 0, TRUE );
-          tt_loader_done( &loader );
-          glyph->linearHoriAdvance = loader.linear;
-          glyph->linearVertAdvance = loader.vadvance;
+          (void)tt_loader_init( loader, size, glyph, load_flags, TRUE );
+          (void)load_truetype_glyph( loader, glyph_index, 0, TRUE );
+          tt_loader_done( loader );
+          glyph->linearHoriAdvance = loader->linear;
+          glyph->linearVertAdvance = loader->vadvance;
 
           /* sanity checks: if `xxxAdvance' in the sbit metric */
           /* structure isn't set, use `linearXXXAdvance'      */
@@ -2841,7 +2847,7 @@
       goto Exit;
     }
 
-    error = tt_loader_init( &loader, size, glyph, load_flags, FALSE );
+    error = tt_loader_init( loader, size, glyph, load_flags, FALSE );
     if ( error )
       goto Exit;
 
@@ -2850,35 +2856,35 @@
     glyph->outline.flags = 0;
 
     /* main loading loop */
-    error = load_truetype_glyph( &loader, glyph_index, 0, FALSE );
+    error = load_truetype_glyph( loader, glyph_index, 0, FALSE );
     if ( !error )
     {
       if ( glyph->format == FT_GLYPH_FORMAT_COMPOSITE )
       {
-        glyph->num_subglyphs = loader.gloader->base.num_subglyphs;
-        glyph->subglyphs     = loader.gloader->base.subglyphs;
+        glyph->num_subglyphs = loader->gloader->base.num_subglyphs;
+        glyph->subglyphs     = loader->gloader->base.subglyphs;
       }
       else
       {
-        glyph->outline        = loader.gloader->base.outline;
+        glyph->outline        = loader->gloader->base.outline;
         glyph->outline.flags &= ~FT_OUTLINE_SINGLE_PASS;
 
         /* Translate array so that (0,0) is the glyph's origin.  Note  */
         /* that this behaviour is independent on the value of bit 1 of */
         /* the `flags' field in the `head' table -- at least major     */
         /* applications like Acroread indicate that.                   */
-        if ( loader.pp1.x )
-          FT_Outline_Translate( &glyph->outline, -loader.pp1.x, 0 );
+        if ( loader->pp1.x )
+          FT_Outline_Translate( &glyph->outline, -loader->pp1.x, 0 );
       }
 
 #ifdef TT_USE_BYTECODE_INTERPRETER
 
       if ( IS_HINTED( load_flags ) )
       {
-        if ( loader.exec->GS.scan_control )
+        if ( loader->exec->GS.scan_control )
         {
           /* convert scan conversion mode to FT_OUTLINE_XXX flags */
-          switch ( loader.exec->GS.scan_type )
+          switch ( loader->exec->GS.scan_type )
           {
           case 0: /* simple drop-outs including stubs */
             glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS;
@@ -2905,10 +2911,10 @@
 
 #endif /* TT_USE_BYTECODE_INTERPRETER */
 
-      error = compute_glyph_metrics( &loader, glyph_index );
+      error = compute_glyph_metrics( loader, glyph_index );
     }
 
-    tt_loader_done( &loader );
+    tt_loader_done( loader );
 
     /* Set the `high precision' bit flag.                           */
     /* This is _critical_ to get correct output for monochrome      */
diff -ruN freetype-2.10.0/src/truetype/ttpic.c freetype-2.10.0.aros/src/truetype/ttpic.c
--- freetype-2.10.0/src/truetype/ttpic.c	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/truetype/ttpic.c	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,101 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ttpic.c                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for truetype module. */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_INTERNAL_OBJECTS_H
+#include "ttpic.h"
+#include "tterrors.h"
+
+
+#ifdef FT_CONFIG_OPTION_PIC
+
+  /* forward declaration of PIC init functions from ttdriver.c */
+  FT_Error
+  FT_Create_Class_tt_services( FT_Library           library,
+                               FT_ServiceDescRec**  output_class );
+  void
+  FT_Destroy_Class_tt_services( FT_Library          library,
+                                FT_ServiceDescRec*  clazz );
+  void
+  FT_Init_Class_tt_service_gx_multi_masters(
+    FT_Service_MultiMastersRec*  sv_mm );
+  void
+  FT_Init_Class_tt_service_truetype_glyf(
+    FT_Service_TTGlyfRec*  sv_ttglyf );
+
+
+  void
+  tt_driver_class_pic_free( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Memory          memory        = library->memory;
+
+
+    if ( pic_container->truetype )
+    {
+      TTModulePIC*  container = (TTModulePIC*)pic_container->truetype;
+
+
+      if ( container->tt_services )
+        FT_Destroy_Class_tt_services( library, container->tt_services );
+      container->tt_services = NULL;
+      FT_FREE( container );
+      pic_container->truetype = NULL;
+    }
+  }
+
+
+  FT_Error
+  tt_driver_class_pic_init( FT_Library  library )
+  {
+    FT_PIC_Container*  pic_container = &library->pic_container;
+    FT_Error           error         = FT_Err_Ok;
+    TTModulePIC*       container     = NULL;
+    FT_Memory          memory        = library->memory;
+
+
+    /* allocate pointer, clear and set global container pointer */
+    if ( FT_ALLOC( container, sizeof ( *container ) ) )
+      return error;
+    FT_MEM_SET( container, 0, sizeof ( *container ) );
+    pic_container->truetype = container;
+
+    /* initialize pointer table - this is how the module usually */
+    /* expects this data                                         */
+    error = FT_Create_Class_tt_services( library,
+                                         &container->tt_services );
+    if ( error )
+      goto Exit;
+#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
+    FT_Init_Class_tt_service_gx_multi_masters(
+      &container->tt_service_gx_multi_masters );
+#endif
+    FT_Init_Class_tt_service_truetype_glyf(
+      &container->tt_service_truetype_glyf );
+
+  Exit:
+    if ( error )
+      tt_driver_class_pic_free( library );
+    return error;
+  }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+/* END */
diff -ruN freetype-2.10.0/src/truetype/ttpic.h freetype-2.10.0.aros/src/truetype/ttpic.h
--- freetype-2.10.0/src/truetype/ttpic.h	1970-01-01 01:00:00.000000000 +0100
+++ freetype-2.10.0.aros/src/truetype/ttpic.h	2019-04-10 15:33:37.337922311 +0200
@@ -0,0 +1,88 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ttpic.h                                                                */
+/*                                                                         */
+/*    The FreeType position independent code services for truetype module. */
+/*                                                                         */
+/*  Copyright 2009-2018 by                                                 */
+/*  Oran Agra and Mickey Gabel.                                            */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef TTPIC_H_
+#define TTPIC_H_
+
+
+#include FT_INTERNAL_PIC_H
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define TT_SERVICES_GET                    tt_services
+#define TT_SERVICE_GX_MULTI_MASTERS_GET    tt_service_gx_multi_masters
+#define TT_SERVICE_METRICS_VARIATIONS_GET  tt_service_metrics_variations
+#define TT_SERVICE_TRUETYPE_GLYF_GET       tt_service_truetype_glyf
+#define TT_SERVICE_PROPERTIES_GET          tt_service_properties
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#include FT_MULTIPLE_MASTERS_H
+#include FT_SERVICE_MULTIPLE_MASTERS_H
+#include FT_SERVICE_METRICS_VARIATIONS_H
+#include FT_SERVICE_TRUETYPE_GLYF_H
+#include FT_SERVICE_PROPERTIES_H
+
+
+FT_BEGIN_HEADER
+
+  typedef struct  TTModulePIC_
+  {
+    FT_ServiceDescRec*               tt_services;
+#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
+    FT_Service_MultiMastersRec       tt_service_gx_multi_masters;
+    FT_Service_MetricsVariationsRec  tt_service_metrics_variations;
+#endif
+    FT_Service_TTGlyfRec             tt_service_truetype_glyf;
+    FT_Service_PropertiesRec         tt_service_properties;
+
+  } TTModulePIC;
+
+
+#define GET_PIC( lib )                                      \
+          ( (TTModulePIC*)((lib)->pic_container.truetype) )
+#define TT_SERVICES_GET                       \
+          ( GET_PIC( library )->tt_services )
+#define TT_SERVICE_METRICS_VARIATIONS_GET                       \
+          ( GET_PIC( library )->tt_service_metrics_variations )
+#define TT_SERVICE_GX_MULTI_MASTERS_GET                       \
+          ( GET_PIC( library )->tt_service_gx_multi_masters )
+#define TT_SERVICE_TRUETYPE_GLYF_GET                       \
+          ( GET_PIC( library )->tt_service_truetype_glyf )
+#define TT_SERVICE_PROPERTIES_GET                       \
+          ( GET_PIC( library )->tt_service_properties )
+
+
+  /* see ttpic.c for the implementation */
+  void
+  tt_driver_class_pic_free( FT_Library  library );
+
+  FT_Error
+  tt_driver_class_pic_init( FT_Library  library );
+
+FT_END_HEADER
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+#endif /* TTPIC_H_ */
+
+
+/* END */
