1 /***************************************************************************/ 2 /* */ 3 /* afloader.h */ 4 /* */ 5 /* Auto-fitter glyph loading routines (specification). */ 6 /* */ 7 /* Copyright 2003-2017 by */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* */ 10 /* This file is part of the FreeType project, and may only be used, */ 11 /* modified, and distributed under the terms of the FreeType project */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* this file you indicate that you have read the license and */ 14 /* understand and accept it fully. */ 15 /* */ 16 /***************************************************************************/ 17 18 19 #ifndef AFLOADER_H_ 20 #define AFLOADER_H_ 21 22 #include "afhints.h" 23 #include "afmodule.h" 24 #include "afglobal.h" 25 26 27 FT_BEGIN_HEADER 28 29 /* 30 * The autofitter module's (global) data structure to communicate with 31 * actual fonts. If necessary, `local' data like the current face, the 32 * current face's auto-hint data, or the current glyph's parameters 33 * relevant to auto-hinting are `swapped in'. Cf. functions like 34 * `af_loader_reset' and `af_loader_load_g'. 35 */ 36 37 typedef struct AF_LoaderRec_ 38 { 39 /* current face data */ 40 FT_Face face; 41 AF_FaceGlobals globals; 42 43 /* current glyph data */ 44 AF_GlyphHints hints; 45 AF_StyleMetrics metrics; 46 FT_Bool transformed; 47 FT_Matrix trans_matrix; 48 FT_Vector trans_delta; 49 FT_Vector pp1; 50 FT_Vector pp2; 51 /* we don't handle vertical phantom points */ 52 53 } AF_LoaderRec, *AF_Loader; 54 55 56 FT_LOCAL( void ) 57 af_loader_init( AF_Loader loader, 58 AF_GlyphHints hints ); 59 60 61 FT_LOCAL( FT_Error ) 62 af_loader_reset( AF_Loader loader, 63 AF_Module module, 64 FT_Face face ); 65 66 67 FT_LOCAL( void ) 68 af_loader_done( AF_Loader loader ); 69 70 71 FT_LOCAL( FT_Error ) 72 af_loader_load_glyph( AF_Loader loader, 73 AF_Module module, 74 FT_Face face, 75 FT_UInt gindex, 76 FT_Int32 load_flags ); 77 78 FT_LOCAL_DEF( FT_Int32 ) 79 af_loader_compute_darkening( AF_Loader loader, 80 FT_Face face, 81 FT_Pos standard_width ); 82 83 /* */ 84 85 86 FT_END_HEADER 87 88 #endif /* AFLOADER_H_ */ 89 90 91 /* END */ 92