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 */ 65