9
* the latin-specific script class
12
FT_LOCAL( const AF_ScriptClassRec ) af_latin_script_class;
14
/***************************************************************************/
15
/***************************************************************************/
17
/***** L A T I N G L O B A L M E T R I C S *****/
19
/***************************************************************************/
20
/***************************************************************************/
23
* the following declarations could be embedded in the file "aflatin.c"
24
* they've been made semi-public to allow alternate script hinters to
29
* Latin (global) metrics management
35
AF_LATIN_BLUE_CAPITAL_TOP,
36
AF_LATIN_BLUE_CAPITAL_BOTTOM,
37
AF_LATIN_BLUE_SMALL_F_TOP,
38
AF_LATIN_BLUE_SMALL_TOP,
39
AF_LATIN_BLUE_SMALL_BOTTOM,
40
AF_LATIN_BLUE_SMALL_MINOR,
45
#define AF_LATIN_IS_TOP_BLUE( b ) ( (b) == AF_LATIN_BLUE_CAPITAL_TOP || \
46
(b) == AF_LATIN_BLUE_SMALL_F_TOP || \
47
(b) == AF_LATIN_BLUE_SMALL_TOP )
49
#define AF_LATIN_MAX_WIDTHS 16
50
#define AF_LATIN_MAX_BLUES AF_LATIN_BLUE_MAX
54
AF_LATIN_BLUE_ACTIVE = (1 << 0),
55
AF_LATIN_BLUE_TOP = (1 << 1),
56
AF_LATIN_BLUE_ADJUSTMENT = (1 << 2), /* used for scale adjustment */
58
AF_LATIN_BLUE_FLAG_MAX
62
typedef struct AF_LatinBlueRec_
68
} AF_LatinBlueRec, *AF_LatinBlue;
71
typedef struct AF_LatinAxisRec_
77
AF_WidthRec widths[ AF_LATIN_MAX_WIDTHS ];
78
FT_Pos edge_distance_threshold;
80
/* ignored for horizontal metrics */
81
FT_Bool control_overshoot;
83
AF_LatinBlueRec blues[ AF_LATIN_BLUE_MAX ];
88
} AF_LatinAxisRec, *AF_LatinAxis;
91
typedef struct AF_LatinMetricsRec_
93
AF_ScriptMetricsRec root;
95
AF_LatinAxisRec axis[ AF_DIMENSION_MAX ];
97
} AF_LatinMetricsRec, *AF_LatinMetrics;
102
af_latin_metrics_init( AF_LatinMetrics metrics,
106
af_latin_metrics_scale( AF_LatinMetrics metrics,
111
/***************************************************************************/
112
/***************************************************************************/
114
/***** L A T I N G L Y P H A N A L Y S I S *****/
116
/***************************************************************************/
117
/***************************************************************************/
121
AF_LATIN_HINTS_HORZ_SNAP = (1 << 0), /* enable stem width snapping */
122
AF_LATIN_HINTS_VERT_SNAP = (1 << 1), /* enable stem height snapping */
123
AF_LATIN_HINTS_STEM_ADJUST = (1 << 2), /* enable stem width/height adjustment */
124
AF_LATIN_HINTS_MONO = (1 << 3) /* indicate monochrome rendering */
127
#define AF_LATIN_HINTS_DO_HORZ_SNAP(h) \
128
AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_HORZ_SNAP)
130
#define AF_LATIN_HINTS_DO_VERT_SNAP(h) \
131
AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_VERT_SNAP)
133
#define AF_LATIN_HINTS_DO_STEM_ADJUST(h) \
134
AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_STEM_ADJUST)
136
#define AF_LATIN_HINTS_DO_MONO(h) \
137
AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_MONO)
140
/* this shouldn't normally be exported. However, other scripts might
141
* like to use this function as-is
144
af_latin_hints_compute_segments( AF_GlyphHints hints,
147
/* this shouldn't normally be exported. However, other scripts might
148
* want to use this function as-is
151
af_latin_hints_link_segments( AF_GlyphHints hints,
154
/* this shouldn't normally be exported. However, other scripts might
155
* want to use this function as-is
158
af_latin_hints_compute_edges( AF_GlyphHints hints,
162
af_latin_hints_detect_features( AF_GlyphHints hints,
169
#endif /* __AFLATIN_H__ */