1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  afwarp.h                                                               */
   4 /*                                                                         */
   5 /*    Auto-fitter warping algorithm (specification).                       */
   6 /*                                                                         */
   7 /*  Copyright 2006-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 AFWARP_H_
  20 #define AFWARP_H_
  21 
  22 #include "afhints.h"
  23 
  24 FT_BEGIN_HEADER
  25 
  26 #define AF_WARPER_SCALE
  27 
  28 #define AF_WARPER_FLOOR( x )  ( (x) & ~FT_TYPEOF( x )63 )
  29 #define AF_WARPER_CEIL( x )   AF_WARPER_FLOOR( (x) + 63 )
  30 
  31 
  32   typedef FT_Int32  AF_WarpScore;
  33 
  34   typedef struct  AF_WarperRec_
  35   {
  36     FT_Pos        x1, x2;
  37     FT_Pos        t1, t2;
  38     FT_Pos        x1min, x1max;
  39     FT_Pos        x2min, x2max;
  40     FT_Pos        w0, wmin, wmax;
  41 
  42     FT_Fixed      best_scale;
  43     FT_Pos        best_delta;
  44     AF_WarpScore  best_score;
  45     AF_WarpScore  best_distort;
  46 
  47   } AF_WarperRec, *AF_Warper;
  48 
  49 
  50   FT_LOCAL( void )
  51   af_warper_compute( AF_Warper      warper,
  52                      AF_GlyphHints  hints,
  53                      AF_Dimension   dim,
  54                      FT_Fixed      *a_scale,
  55                      FT_Fixed      *a_delta );
  56 
  57 
  58 FT_END_HEADER
  59 
  60 
  61 #endif /* AFWARP_H_ */
  62 
  63 
  64 /* END */