OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* afglobal.h */ | 3 /* afglobal.h */ |
4 /* */ | 4 /* */ |
5 /* Auto-fitter routines to compute global hinting values */ | 5 /* Auto-fitter routines to compute global hinting values */ |
6 /* (specification). */ | 6 /* (specification). */ |
7 /* */ | 7 /* */ |
8 /* Copyright 2003-2005, 2007, 2009, 2011 by */ | 8 /* Copyright 2003-2005, 2007, 2009, 2011-2012 by */ |
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
10 /* */ | 10 /* */ |
11 /* This file is part of the FreeType project, and may only be used, */ | 11 /* This file is part of the FreeType project, and may only be used, */ |
12 /* modified, and distributed under the terms of the FreeType project */ | 12 /* modified, and distributed under the terms of the FreeType project */ |
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
14 /* this file you indicate that you have read the license and */ | 14 /* this file you indicate that you have read the license and */ |
15 /* understand and accept it fully. */ | 15 /* understand and accept it fully. */ |
16 /* */ | 16 /* */ |
17 /***************************************************************************/ | 17 /***************************************************************************/ |
18 | 18 |
19 | 19 |
20 #ifndef __AFGLOBAL_H__ | 20 #ifndef __AFGLOBAL_H__ |
21 #define __AFGLOBAL_H__ | 21 #define __AFGLOBAL_H__ |
22 | 22 |
23 | 23 |
24 #include "aftypes.h" | 24 #include "aftypes.h" |
| 25 #include "afmodule.h" |
25 | 26 |
26 | 27 |
27 FT_BEGIN_HEADER | 28 FT_BEGIN_HEADER |
28 | 29 |
29 | 30 |
| 31 /* |
| 32 * Default values and flags for both autofitter globals (found in |
| 33 * AF_ModuleRec) and face globals (in AF_FaceGlobalsRec). |
| 34 */ |
| 35 |
| 36 /* index of fallback script in `af_script_classes' */ |
| 37 #define AF_SCRIPT_FALLBACK 2 |
| 38 /* a bit mask indicating an uncovered glyph */ |
| 39 #define AF_SCRIPT_NONE 0x7F |
| 40 /* if this flag is set, we have an ASCII digit */ |
| 41 #define AF_DIGIT 0x80 |
| 42 |
| 43 /* `increase-x-height' property */ |
| 44 #define AF_PROP_INCREASE_X_HEIGHT_MIN 6 |
| 45 #define AF_PROP_INCREASE_X_HEIGHT_MAX 0 |
| 46 |
| 47 |
30 /************************************************************************/ | 48 /************************************************************************/ |
31 /************************************************************************/ | 49 /************************************************************************/ |
32 /***** *****/ | 50 /***** *****/ |
33 /***** F A C E G L O B A L S *****/ | 51 /***** F A C E G L O B A L S *****/ |
34 /***** *****/ | 52 /***** *****/ |
35 /************************************************************************/ | 53 /************************************************************************/ |
36 /************************************************************************/ | 54 /************************************************************************/ |
37 | 55 |
38 | 56 |
39 /* | 57 /* |
| 58 * Note that glyph_scripts[] is used to map each glyph into |
| 59 * an index into the `af_script_classes' array. |
| 60 * |
| 61 */ |
| 62 typedef struct AF_FaceGlobalsRec_ |
| 63 { |
| 64 FT_Face face; |
| 65 FT_Long glyph_count; /* same as face->num_glyphs */ |
| 66 FT_Byte* glyph_scripts; |
| 67 |
| 68 /* per-face auto-hinter properties */ |
| 69 FT_UInt increase_x_height; |
| 70 |
| 71 AF_ScriptMetrics metrics[AF_SCRIPT_MAX]; |
| 72 |
| 73 AF_Module module; /* to access global properties */ |
| 74 |
| 75 } AF_FaceGlobalsRec; |
| 76 |
| 77 |
| 78 /* |
40 * model the global hints data for a given face, decomposed into | 79 * model the global hints data for a given face, decomposed into |
41 * script-specific items | 80 * script-specific items |
42 */ | 81 */ |
43 typedef struct AF_FaceGlobalsRec_* AF_FaceGlobals; | |
44 | |
45 | 82 |
46 FT_LOCAL( FT_Error ) | 83 FT_LOCAL( FT_Error ) |
47 af_face_globals_new( FT_Face face, | 84 af_face_globals_new( FT_Face face, |
48 AF_FaceGlobals *aglobals ); | 85 AF_FaceGlobals *aglobals, |
| 86 AF_Module module ); |
49 | 87 |
50 FT_LOCAL( FT_Error ) | 88 FT_LOCAL( FT_Error ) |
51 af_face_globals_get_metrics( AF_FaceGlobals globals, | 89 af_face_globals_get_metrics( AF_FaceGlobals globals, |
52 FT_UInt gindex, | 90 FT_UInt gindex, |
53 FT_UInt options, | 91 FT_UInt options, |
54 AF_ScriptMetrics *ametrics ); | 92 AF_ScriptMetrics *ametrics ); |
55 | 93 |
56 FT_LOCAL( void ) | 94 FT_LOCAL( void ) |
57 af_face_globals_free( AF_FaceGlobals globals ); | 95 af_face_globals_free( AF_FaceGlobals globals ); |
58 | 96 |
59 FT_LOCAL_DEF( FT_Bool ) | 97 FT_LOCAL_DEF( FT_Bool ) |
60 af_face_globals_is_digit( AF_FaceGlobals globals, | 98 af_face_globals_is_digit( AF_FaceGlobals globals, |
61 FT_UInt gindex ); | 99 FT_UInt gindex ); |
62 | 100 |
63 /* */ | 101 /* */ |
64 | 102 |
65 | 103 |
66 FT_END_HEADER | 104 FT_END_HEADER |
67 | 105 |
68 #endif /* __AFGLOBAL_H__ */ | 106 #endif /* __AFGLOBAL_H__ */ |
69 | 107 |
70 | 108 |
71 /* END */ | 109 /* END */ |
OLD | NEW |