1/***************************************************************************/
2/* */
3/* afloader.h */
4/* */
5/* Auto-fitter glyph loading routines (specification). */
6/* */
7/* Copyright 2003-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 AFLOADER_H_
20#define AFLOADER_H_
21
22#include "afhints.h"
23#include "afmodule.h"
24#include "afglobal.h"
25
26
27FT_BEGIN_HEADER
28
29 /*
30 * The autofitter module's (global) data structure to communicate with
31 * actual fonts. If necessary, `local' data like the current face, the
32 * current face's auto-hint data, or the current glyph's parameters
33 * relevant to auto-hinting are `swapped in'. Cf. functions like
34 * `af_loader_reset' and `af_loader_load_g'.
35 */
36
37 typedef struct AF_LoaderRec_
38 {
39 /* current face data */
40 FT_Face face;
41 AF_FaceGlobals globals;
42
43 /* current glyph data */
44 AF_GlyphHints hints;
45 AF_StyleMetrics metrics;
46 FT_Bool transformed;
47 FT_Matrix trans_matrix;
48 FT_Vector trans_delta;
49 FT_Vector pp1;
50 FT_Vector pp2;
51 /* we don't handle vertical phantom points */
52
53 } AF_LoaderRec, *AF_Loader;
54
55
56 FT_LOCAL( void )
57 af_loader_init( AF_Loader loader,
58 AF_GlyphHints hints );
59
60
61 FT_LOCAL( FT_Error )
62 af_loader_reset( AF_Loader loader,
63 AF_Module module,
64 FT_Face face );
65
66
67 FT_LOCAL( void )
68 af_loader_done( AF_Loader loader );
69
70
71 FT_LOCAL( FT_Error )
72 af_loader_load_glyph( AF_Loader loader,
73 AF_Module module,
74 FT_Face face,
75 FT_UInt gindex,
76 FT_Int32 load_flags );
77
78 FT_LOCAL_DEF( FT_Int32 )
79 af_loader_compute_darkening( AF_Loader loader,
80 FT_Face face,
81 FT_Pos standard_width );
82
83/* */
84
85
86FT_END_HEADER
87
88#endif /* AFLOADER_H_ */
89
90
91/* END */
92