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
24FT_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
58FT_END_HEADER
59
60
61#endif /* AFWARP_H_ */
62
63
64/* END */
65