Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 1 | /***************************************************************************/ |
| 2 | /* */ |
| 3 | /* afwarp.h */ |
| 4 | /* */ |
| 5 | /* Auto-fitter warping algorithm (specification). */ |
| 6 | /* */ |
Werner Lemberg | b1be9e8 | 2007-01-25 11:50:00 +0000 | [diff] [blame] | 7 | /* Copyright 2006, 2007 by */ |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 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 | |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 19 | #ifndef __AFWARP_H__ |
| 20 | #define __AFWARP_H__ |
| 21 | |
| 22 | #include "afhints.h" |
| 23 | |
| 24 | FT_BEGIN_HEADER |
| 25 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 26 | #define AF_WARPER_SCALE |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 27 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 28 | #define AF_WARPER_FLOOR( x ) ( (x) & ~63 ) |
| 29 | #define AF_WARPER_CEIL( x ) AF_WARPER_FLOOR( (x) + 63 ) |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 30 | |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 31 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 32 | typedef FT_Int32 AF_WarpScore; |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 33 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 34 | typedef struct AF_WarperRec_ |
| 35 | { |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 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; |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 41 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 42 | FT_Fixed best_scale; |
| 43 | FT_Pos best_delta; |
| 44 | AF_WarpScore best_score; |
| 45 | AF_WarpScore best_distort; |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 46 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 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 | |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 57 | |
| 58 | FT_END_HEADER |
| 59 | |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 60 | |
David Turner | bb4edc9 | 2006-01-21 14:31:45 +0000 | [diff] [blame] | 61 | #endif /* __AFWARP_H__ */ |
Werner Lemberg | 1be9ebf | 2006-01-22 06:58:16 +0000 | [diff] [blame] | 62 | |
| 63 | |
| 64 | /* END */ |