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 | |