| 1 | /**************************************************************************** | 
| 2 |  * | 
| 3 |  * afloader.h | 
| 4 |  * | 
| 5 |  *   Auto-fitter glyph loading routines (specification). | 
| 6 |  * | 
| 7 |  * Copyright (C) 2003-2023 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( FT_Fixed ) | 
| 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 |  |