Home | History | Annotate | Download | only in autofit
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  afloader.h                                                             */
      4 /*                                                                         */
      5 /*    Auto-fitter glyph loading routines (specification).                  */
      6 /*                                                                         */
      7 /*  Copyright 2003-2018 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