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