1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 <title>FreeType-2.4.9 API Reference</title>
7 <style type="text/css">
8 body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
10 background: #FFFFFF; }
12 p { text-align: justify; }
13 h1 { text-align: center; }
14 li { text-align: justify; }
15 td { padding: 0 0.5em 0 0.5em; }
16 td.left { padding: 0 0.5em 0 0.5em;
19 a:link { color: #0000EF; }
20 a:visited { color: #51188E; }
21 a:hover { color: #FF0000; }
23 span.keyword { font-family: monospace;
28 pre.colored { color: blue; }
30 ul.empty { list-style-type: none; }
35 <table align=center><tr><td><font size=-1>[<a href="ft2-index.html">Index</a>]</font></td>
36 <td width="100%"></td>
37 <td><font size=-1>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
38 <center><h1>FreeType-2.4.9 API Reference</h1></center>
41 TrueTypeGX/AAT Validation
44 <table align=center cellspacing=5 cellpadding=0 border=0>
45 <tr><td></td><td><a href="#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a></td><td></td><td><a href="#FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a></td><td></td><td><a href="#FT_ClassicKern_Free">FT_ClassicKern_Free</a></td></tr>
46 <tr><td></td><td><a href="#FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a></td><td></td><td><a href="#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a></td><td></td><td></td></tr>
47 <tr><td></td><td><a href="#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a></td><td></td><td><a href="#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a></td><td></td><td></td></tr>
50 <table align=center width="87%"><tr><td>
51 <p>This section contains the declaration of functions to validate some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop, lcar).</p>
52 </td></tr></table><br>
53 <table align=center width="75%"><tr><td>
54 <h4><a name="FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a></h4>
55 <table align=center width="87%"><tr><td>
56 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
57 </td></tr></table><br>
58 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
60 #define <b>FT_VALIDATE_GX_LENGTH</b> (FT_VALIDATE_GX_LAST_INDEX + 1)
63 <table align=center width="87%"><tr><td>
64 <p>The number of tables checked in this module. Use it as a parameter for the ‘table-length’ argument of function <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a>.</p>
65 </td></tr></table><br>
68 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
69 <td width="100%"></td>
70 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
72 <table align=center width="75%"><tr><td>
73 <h4><a name="FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a></h4>
74 <table align=center width="87%"><tr><td>
75 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
76 </td></tr></table><br>
77 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
79 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_feat</a> FT_VALIDATE_GX_BITFIELD( feat )
80 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_mort</a> FT_VALIDATE_GX_BITFIELD( mort )
81 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_morx</a> FT_VALIDATE_GX_BITFIELD( morx )
82 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_bsln</a> FT_VALIDATE_GX_BITFIELD( bsln )
83 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_just</a> FT_VALIDATE_GX_BITFIELD( just )
84 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_kern</a> FT_VALIDATE_GX_BITFIELD( kern )
85 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_opbd</a> FT_VALIDATE_GX_BITFIELD( opbd )
86 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_trak</a> FT_VALIDATE_GX_BITFIELD( trak )
87 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_prop</a> FT_VALIDATE_GX_BITFIELD( prop )
88 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_lcar</a> FT_VALIDATE_GX_BITFIELD( lcar )
90 #define <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_GX</a> ( <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_feat</a> | \
91 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_mort</a> | \
92 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_morx</a> | \
93 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_bsln</a> | \
94 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_just</a> | \
95 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_kern</a> | \
96 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_opbd</a> | \
97 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_trak</a> | \
98 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_prop</a> | \
99 <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_lcar</a> )
102 <table align=center width="87%"><tr><td>
103 <p>A list of bit-field constants used with <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> to indicate which TrueTypeGX/AAT Type tables should be validated.</p>
104 </td></tr></table><br>
105 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>values</b></em></td></tr><tr><td>
107 <table cellpadding=3 border=0>
108 <tr valign=top><td><b>FT_VALIDATE_feat</b></td><td>
109 <p>Validate ‘feat’ table.</p>
111 <tr valign=top><td><b>FT_VALIDATE_mort</b></td><td>
112 <p>Validate ‘mort’ table.</p>
114 <tr valign=top><td><b>FT_VALIDATE_morx</b></td><td>
115 <p>Validate ‘morx’ table.</p>
117 <tr valign=top><td><b>FT_VALIDATE_bsln</b></td><td>
118 <p>Validate ‘bsln’ table.</p>
120 <tr valign=top><td><b>FT_VALIDATE_just</b></td><td>
121 <p>Validate ‘just’ table.</p>
123 <tr valign=top><td><b>FT_VALIDATE_kern</b></td><td>
124 <p>Validate ‘kern’ table.</p>
126 <tr valign=top><td><b>FT_VALIDATE_opbd</b></td><td>
127 <p>Validate ‘opbd’ table.</p>
129 <tr valign=top><td><b>FT_VALIDATE_trak</b></td><td>
130 <p>Validate ‘trak’ table.</p>
132 <tr valign=top><td><b>FT_VALIDATE_prop</b></td><td>
133 <p>Validate ‘prop’ table.</p>
135 <tr valign=top><td><b>FT_VALIDATE_lcar</b></td><td>
136 <p>Validate ‘lcar’ table.</p>
138 <tr valign=top><td><b>FT_VALIDATE_GX</b></td><td>
139 <p>Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop and lcar).</p>
145 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
146 <td width="100%"></td>
147 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
149 <table align=center width="75%"><tr><td>
150 <h4><a name="FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a></h4>
151 <table align=center width="87%"><tr><td>
152 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
153 </td></tr></table><br>
154 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
156 FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
157 <b>FT_TrueTypeGX_Validate</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
158 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> validation_flags,
159 <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a> tables[<a href="ft2-gx_validation.html#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a>],
160 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> table_length );
163 <table align=center width="87%"><tr><td>
164 <p>Validate various TrueTypeGX tables to assure that all offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
165 </td></tr></table><br>
166 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>input</b></em></td></tr><tr><td>
168 <table cellpadding=3 border=0>
169 <tr valign=top><td><b>face</b></td><td>
170 <p>A handle to the input face.</p>
172 <tr valign=top><td><b>validation_flags</b></td><td>
173 <p>A bit field which specifies the tables to be validated. See <a href="ft2-gx_validation.html#FT_VALIDATE_GXXXX">FT_VALIDATE_GXXXX</a> for possible values.</p>
175 <tr valign=top><td><b>table_length</b></td><td>
176 <p>The size of the ‘tables’ array. Normally, <a href="ft2-gx_validation.html#FT_VALIDATE_GX_LENGTH">FT_VALIDATE_GX_LENGTH</a> should be passed.</p>
180 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>output</b></em></td></tr><tr><td>
182 <table cellpadding=3 border=0>
183 <tr valign=top><td><b>tables</b></td><td>
184 <p>The array where all validated sfnt tables are stored. The array itself must be allocated by a client.</p>
188 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>return</b></em></td></tr><tr><td>
189 <p>FreeType error code. 0 means success.</p>
191 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>note</b></em></td></tr><tr><td>
192 <p>This function only works with TrueTypeGX fonts, returning an error otherwise.</p>
193 <p>After use, the application should deallocate the buffers pointed to by each ‘tables’ element, by calling <a href="ft2-gx_validation.html#FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a>. A NULL value indicates that the table either doesn't exist in the font, the application hasn't asked for validation, or the validator doesn't have the ability to validate the sfnt table.</p>
197 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
198 <td width="100%"></td>
199 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
201 <table align=center width="75%"><tr><td>
202 <h4><a name="FT_TrueTypeGX_Free">FT_TrueTypeGX_Free</a></h4>
203 <table align=center width="87%"><tr><td>
204 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
205 </td></tr></table><br>
206 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
208 FT_EXPORT( <span class="keyword">void</span> )
209 <b>FT_TrueTypeGX_Free</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
210 <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a> table );
213 <table align=center width="87%"><tr><td>
214 <p>Free the buffer allocated by TrueTypeGX validator.</p>
215 </td></tr></table><br>
216 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>input</b></em></td></tr><tr><td>
218 <table cellpadding=3 border=0>
219 <tr valign=top><td><b>face</b></td><td>
220 <p>A handle to the input face.</p>
222 <tr valign=top><td><b>table</b></td><td>
223 <p>The pointer to the buffer allocated by <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a>.</p>
227 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>note</b></em></td></tr><tr><td>
228 <p>This function must be used to free the buffer allocated by <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> only.</p>
232 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
233 <td width="100%"></td>
234 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
236 <table align=center width="75%"><tr><td>
237 <h4><a name="FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a></h4>
238 <table align=center width="87%"><tr><td>
239 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
240 </td></tr></table><br>
241 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
243 #define <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_MS</a> ( FT_VALIDATE_GX_START << 0 )
244 #define <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_APPLE</a> ( FT_VALIDATE_GX_START << 1 )
246 #define <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERN</a> ( <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_MS</a> | <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_APPLE</a> )
249 <table align=center width="87%"><tr><td>
250 <p>A list of bit-field constants used with <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> to indicate the classic kern dialect or dialects. If the selected type doesn't fit, <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> regards the table as invalid.</p>
251 </td></tr></table><br>
252 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>values</b></em></td></tr><tr><td>
254 <table cellpadding=3 border=0>
255 <tr valign=top><td><b>FT_VALIDATE_MS</b></td><td>
256 <p>Handle the ‘kern’ table as a classic Microsoft kern table.</p>
258 <tr valign=top><td><b>FT_VALIDATE_APPLE</b></td><td>
259 <p>Handle the ‘kern’ table as a classic Apple kern table.</p>
261 <tr valign=top><td><b>FT_VALIDATE_CKERN</b></td><td>
262 <p>Handle the ‘kern’ as either classic Apple or Microsoft kern table.</p>
268 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
269 <td width="100%"></td>
270 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
272 <table align=center width="75%"><tr><td>
273 <h4><a name="FT_ClassicKern_Validate">FT_ClassicKern_Validate</a></h4>
274 <table align=center width="87%"><tr><td>
275 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
276 </td></tr></table><br>
277 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
279 FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
280 <b>FT_ClassicKern_Validate</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
281 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> validation_flags,
282 <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a> *ckern_table );
285 <table align=center width="87%"><tr><td>
286 <p>Validate classic (16-bit format) kern table to assure that the offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
287 <p>The ‘kern’ table validator in <a href="ft2-gx_validation.html#FT_TrueTypeGX_Validate">FT_TrueTypeGX_Validate</a> deals with both the new 32-bit format and the classic 16-bit format, while FT_ClassicKern_Validate only supports the classic 16-bit format.</p>
288 </td></tr></table><br>
289 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>input</b></em></td></tr><tr><td>
291 <table cellpadding=3 border=0>
292 <tr valign=top><td><b>face</b></td><td>
293 <p>A handle to the input face.</p>
295 <tr valign=top><td><b>validation_flags</b></td><td>
296 <p>A bit field which specifies the dialect to be validated. See <a href="ft2-gx_validation.html#FT_VALIDATE_CKERNXXX">FT_VALIDATE_CKERNXXX</a> for possible values.</p>
300 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>output</b></em></td></tr><tr><td>
302 <table cellpadding=3 border=0>
303 <tr valign=top><td><b>ckern_table</b></td><td>
304 <p>A pointer to the kern table.</p>
308 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>return</b></em></td></tr><tr><td>
309 <p>FreeType error code. 0 means success.</p>
311 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>note</b></em></td></tr><tr><td>
312 <p>After use, the application should deallocate the buffers pointed to by ‘ckern_table’, by calling <a href="ft2-gx_validation.html#FT_ClassicKern_Free">FT_ClassicKern_Free</a>. A NULL value indicates that the table doesn't exist in the font.</p>
316 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
317 <td width="100%"></td>
318 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>
320 <table align=center width="75%"><tr><td>
321 <h4><a name="FT_ClassicKern_Free">FT_ClassicKern_Free</a></h4>
322 <table align=center width="87%"><tr><td>
323 Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h).
324 </td></tr></table><br>
325 <table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>
327 FT_EXPORT( <span class="keyword">void</span> )
328 <b>FT_ClassicKern_Free</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
329 <a href="ft2-basic_types.html#FT_Bytes">FT_Bytes</a> table );
332 <table align=center width="87%"><tr><td>
333 <p>Free the buffer allocated by classic Kern validator.</p>
334 </td></tr></table><br>
335 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>input</b></em></td></tr><tr><td>
337 <table cellpadding=3 border=0>
338 <tr valign=top><td><b>face</b></td><td>
339 <p>A handle to the input face.</p>
341 <tr valign=top><td><b>table</b></td><td>
342 <p>The pointer to the buffer that is allocated by <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a>.</p>
346 <table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>note</b></em></td></tr><tr><td>
347 <p>This function must be used to free the buffer allocated by <a href="ft2-gx_validation.html#FT_ClassicKern_Validate">FT_ClassicKern_Validate</a> only.</p>
351 <table align=center width="75%"><tr><td><font size=-2>[<a href="ft2-index.html">Index</a>]</font></td>
352 <td width="100%"></td>
353 <td><font size=-2>[<a href="ft2-toc.html">TOC</a>]</font></td></tr></table>