OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* ftpfr.h */ | |
4 /* */ | |
5 /* FreeType API for accessing PFR-specific data (specification only). */ | |
6 /* */ | |
7 /* Copyright 2002, 2003, 2004, 2006, 2008, 2009 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 __FTPFR_H__ | |
20 #define __FTPFR_H__ | |
21 | |
22 #include <ft2build.h> | |
23 #include FT_FREETYPE_H | |
24 | |
25 #ifdef FREETYPE_H | |
26 #error "freetype.h of FreeType 1 has been loaded!" | |
27 #error "Please fix the directory search order for header files" | |
28 #error "so that freetype.h of FreeType 2 is found first." | |
29 #endif | |
30 | |
31 | |
32 FT_BEGIN_HEADER | |
33 | |
34 | |
35 /*************************************************************************/ | |
36 /* */ | |
37 /* <Section> */ | |
38 /* pfr_fonts */ | |
39 /* */ | |
40 /* <Title> */ | |
41 /* PFR Fonts */ | |
42 /* */ | |
43 /* <Abstract> */ | |
44 /* PFR/TrueDoc specific API. */ | |
45 /* */ | |
46 /* <Description> */ | |
47 /* This section contains the declaration of PFR-specific functions. */ | |
48 /* */ | |
49 /*************************************************************************/ | |
50 | |
51 | |
52 /********************************************************************** | |
53 * | |
54 * @function: | |
55 * FT_Get_PFR_Metrics | |
56 * | |
57 * @description: | |
58 * Return the outline and metrics resolutions of a given PFR face. | |
59 * | |
60 * @input: | |
61 * face :: Handle to the input face. It can be a non-PFR face. | |
62 * | |
63 * @output: | |
64 * aoutline_resolution :: | |
65 * Outline resolution. This is equivalent to `face->units_per_EM' | |
66 * for non-PFR fonts. Optional (parameter can be NULL). | |
67 * | |
68 * ametrics_resolution :: | |
69 * Metrics resolution. This is equivalent to `outline_resolution' | |
70 * for non-PFR fonts. Optional (parameter can be NULL). | |
71 * | |
72 * ametrics_x_scale :: | |
73 * A 16.16 fixed-point number used to scale distance expressed | |
74 * in metrics units to device sub-pixels. This is equivalent to | |
75 * `face->size->x_scale', but for metrics only. Optional (parameter | |
76 * can be NULL). | |
77 * | |
78 * ametrics_y_scale :: | |
79 * Same as `ametrics_x_scale' but for the vertical direction. | |
80 * optional (parameter can be NULL). | |
81 * | |
82 * @return: | |
83 * FreeType error code. 0~means success. | |
84 * | |
85 * @note: | |
86 * If the input face is not a PFR, this function will return an error. | |
87 * However, in all cases, it will return valid values. | |
88 */ | |
89 FT_EXPORT( FT_Error ) | |
90 FT_Get_PFR_Metrics( FT_Face face, | |
91 FT_UInt *aoutline_resolution, | |
92 FT_UInt *ametrics_resolution, | |
93 FT_Fixed *ametrics_x_scale, | |
94 FT_Fixed *ametrics_y_scale ); | |
95 | |
96 | |
97 /********************************************************************** | |
98 * | |
99 * @function: | |
100 * FT_Get_PFR_Kerning | |
101 * | |
102 * @description: | |
103 * Return the kerning pair corresponding to two glyphs in a PFR face. | |
104 * The distance is expressed in metrics units, unlike the result of | |
105 * @FT_Get_Kerning. | |
106 * | |
107 * @input: | |
108 * face :: A handle to the input face. | |
109 * | |
110 * left :: Index of the left glyph. | |
111 * | |
112 * right :: Index of the right glyph. | |
113 * | |
114 * @output: | |
115 * avector :: A kerning vector. | |
116 * | |
117 * @return: | |
118 * FreeType error code. 0~means success. | |
119 * | |
120 * @note: | |
121 * This function always return distances in original PFR metrics | |
122 * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED | |
123 * mode, which always returns distances converted to outline units. | |
124 * | |
125 * You can use the value of the `x_scale' and `y_scale' parameters | |
126 * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. | |
127 */ | |
128 FT_EXPORT( FT_Error ) | |
129 FT_Get_PFR_Kerning( FT_Face face, | |
130 FT_UInt left, | |
131 FT_UInt right, | |
132 FT_Vector *avector ); | |
133 | |
134 | |
135 /********************************************************************** | |
136 * | |
137 * @function: | |
138 * FT_Get_PFR_Advance | |
139 * | |
140 * @description: | |
141 * Return a given glyph advance, expressed in original metrics units, | |
142 * from a PFR font. | |
143 * | |
144 * @input: | |
145 * face :: A handle to the input face. | |
146 * | |
147 * gindex :: The glyph index. | |
148 * | |
149 * @output: | |
150 * aadvance :: The glyph advance in metrics units. | |
151 * | |
152 * @return: | |
153 * FreeType error code. 0~means success. | |
154 * | |
155 * @note: | |
156 * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics | |
157 * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). | |
158 */ | |
159 FT_EXPORT( FT_Error ) | |
160 FT_Get_PFR_Advance( FT_Face face, | |
161 FT_UInt gindex, | |
162 FT_Pos *aadvance ); | |
163 | |
164 /* */ | |
165 | |
166 | |
167 FT_END_HEADER | |
168 | |
169 #endif /* __FTPFR_H__ */ | |
170 | |
171 | |
172 /* END */ | |
OLD | NEW |