OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* ftotval.h */ | 3 /* ftotval.h */ |
4 /* */ | 4 /* */ |
5 /* FreeType API for validating OpenType tables (specification). */ | 5 /* FreeType API for validating OpenType tables (specification). */ |
6 /* */ | 6 /* */ |
7 /* Copyright 2004, 2005, 2006, 2007 by */ | 7 /* Copyright 2004-2007, 2013, 2014 by */ |
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
9 /* */ | 9 /* */ |
10 /* This file is part of the FreeType project, and may only be used, */ | 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 */ | 11 /* modified, and distributed under the terms of the FreeType project */ |
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
13 /* this file you indicate that you have read the license and */ | 13 /* this file you indicate that you have read the license and */ |
14 /* understand and accept it fully. */ | 14 /* understand and accept it fully. */ |
15 /* */ | 15 /* */ |
16 /***************************************************************************/ | 16 /***************************************************************************/ |
17 | 17 |
18 | 18 |
19 /***************************************************************************/ | 19 /***************************************************************************/ |
20 /* */ | 20 /* */ |
21 /* */ | 21 /* */ |
22 /* Warning: This module might be moved to a different library in the */ | 22 /* Warning: This module might be moved to a different library in the */ |
23 /* future to avoid a tight dependency between FreeType and the */ | 23 /* future to avoid a tight dependency between FreeType and the */ |
24 /* OpenType specification. */ | 24 /* OpenType specification. */ |
25 /* */ | 25 /* */ |
26 /* */ | 26 /* */ |
27 /***************************************************************************/ | 27 /***************************************************************************/ |
28 | 28 |
29 | 29 |
30 #ifndef __FTOTVAL_H__ | 30 #ifndef __FTOTVAL_H__ |
31 #define __FTOTVAL_H__ | 31 #define __FTOTVAL_H__ |
32 | 32 |
33 #include "../ft2build.h" | 33 #include <ft2build.h> |
34 #include "freetype.h" | 34 #include FT_FREETYPE_H |
35 | 35 |
36 #ifdef FREETYPE_H | 36 #ifdef FREETYPE_H |
37 #error "freetype.h of FreeType 1 has been loaded!" | 37 #error "freetype.h of FreeType 1 has been loaded!" |
38 #error "Please fix the directory search order for header files" | 38 #error "Please fix the directory search order for header files" |
39 #error "so that freetype.h of FreeType 2 is found first." | 39 #error "so that freetype.h of FreeType 2 is found first." |
40 #endif | 40 #endif |
41 | 41 |
42 | 42 |
43 FT_BEGIN_HEADER | 43 FT_BEGIN_HEADER |
44 | 44 |
45 | 45 |
46 /*************************************************************************/ | 46 /*************************************************************************/ |
47 /* */ | 47 /* */ |
48 /* <Section> */ | 48 /* <Section> */ |
49 /* ot_validation */ | 49 /* ot_validation */ |
50 /* */ | 50 /* */ |
51 /* <Title> */ | 51 /* <Title> */ |
52 /* OpenType Validation */ | 52 /* OpenType Validation */ |
53 /* */ | 53 /* */ |
54 /* <Abstract> */ | 54 /* <Abstract> */ |
55 /* An API to validate OpenType tables. */ | 55 /* An API to validate OpenType tables. */ |
56 /* */ | 56 /* */ |
57 /* <Description> */ | 57 /* <Description> */ |
58 /* This section contains the declaration of functions to validate */ | 58 /* This section contains the declaration of functions to validate */ |
59 /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ | 59 /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ |
60 /* */ | 60 /* */ |
| 61 /* <Order> */ |
| 62 /* FT_OpenType_Validate */ |
| 63 /* FT_OpenType_Free */ |
| 64 /* */ |
| 65 /* FT_VALIDATE_OTXXX */ |
| 66 /* */ |
61 /*************************************************************************/ | 67 /*************************************************************************/ |
62 | 68 |
63 | 69 |
64 /********************************************************************** | 70 /********************************************************************** |
65 * | 71 * |
66 * @enum: | 72 * @enum: |
67 * FT_VALIDATE_OTXXX | 73 * FT_VALIDATE_OTXXX |
68 * | 74 * |
69 * @description: | 75 * @description: |
70 * A list of bit-field constants used with @FT_OpenType_Validate to | 76 * A list of bit-field constants used with @FT_OpenType_Validate to |
(...skipping 29 matching lines...) Expand all Loading... |
100 #define FT_VALIDATE_JSTF 0x1000 | 106 #define FT_VALIDATE_JSTF 0x1000 |
101 #define FT_VALIDATE_MATH 0x2000 | 107 #define FT_VALIDATE_MATH 0x2000 |
102 | 108 |
103 #define FT_VALIDATE_OT FT_VALIDATE_BASE | \ | 109 #define FT_VALIDATE_OT FT_VALIDATE_BASE | \ |
104 FT_VALIDATE_GDEF | \ | 110 FT_VALIDATE_GDEF | \ |
105 FT_VALIDATE_GPOS | \ | 111 FT_VALIDATE_GPOS | \ |
106 FT_VALIDATE_GSUB | \ | 112 FT_VALIDATE_GSUB | \ |
107 FT_VALIDATE_JSTF | \ | 113 FT_VALIDATE_JSTF | \ |
108 FT_VALIDATE_MATH | 114 FT_VALIDATE_MATH |
109 | 115 |
110 /* */ | |
111 | |
112 /********************************************************************** | 116 /********************************************************************** |
113 * | 117 * |
114 * @function: | 118 * @function: |
115 * FT_OpenType_Validate | 119 * FT_OpenType_Validate |
116 * | 120 * |
117 * @description: | 121 * @description: |
118 * Validate various OpenType tables to assure that all offsets and | 122 * Validate various OpenType tables to assure that all offsets and |
119 * indices are valid. The idea is that a higher-level library which | 123 * indices are valid. The idea is that a higher-level library that |
120 * actually does the text layout can access those tables without | 124 * actually does the text layout can access those tables without |
121 * error checking (which can be quite time consuming). | 125 * error checking (which can be quite time consuming). |
122 * | 126 * |
123 * @input: | 127 * @input: |
124 * face :: | 128 * face :: |
125 * A handle to the input face. | 129 * A handle to the input face. |
126 * | 130 * |
127 * validation_flags :: | 131 * validation_flags :: |
128 * A bit field which specifies the tables to be validated. See | 132 * A bit field that specifies the tables to be validated. See |
129 * @FT_VALIDATE_OTXXX for possible values. | 133 * @FT_VALIDATE_OTXXX for possible values. |
130 * | 134 * |
131 * @output: | 135 * @output: |
132 * BASE_table :: | 136 * BASE_table :: |
133 * A pointer to the BASE table. | 137 * A pointer to the BASE table. |
134 * | 138 * |
135 * GDEF_table :: | 139 * GDEF_table :: |
136 * A pointer to the GDEF table. | 140 * A pointer to the GDEF table. |
137 * | 141 * |
138 * GPOS_table :: | 142 * GPOS_table :: |
(...skipping 19 matching lines...) Expand all Loading... |
158 */ | 162 */ |
159 FT_EXPORT( FT_Error ) | 163 FT_EXPORT( FT_Error ) |
160 FT_OpenType_Validate( FT_Face face, | 164 FT_OpenType_Validate( FT_Face face, |
161 FT_UInt validation_flags, | 165 FT_UInt validation_flags, |
162 FT_Bytes *BASE_table, | 166 FT_Bytes *BASE_table, |
163 FT_Bytes *GDEF_table, | 167 FT_Bytes *GDEF_table, |
164 FT_Bytes *GPOS_table, | 168 FT_Bytes *GPOS_table, |
165 FT_Bytes *GSUB_table, | 169 FT_Bytes *GSUB_table, |
166 FT_Bytes *JSTF_table ); | 170 FT_Bytes *JSTF_table ); |
167 | 171 |
168 /* */ | |
169 | |
170 /********************************************************************** | 172 /********************************************************************** |
171 * | 173 * |
172 * @function: | 174 * @function: |
173 * FT_OpenType_Free | 175 * FT_OpenType_Free |
174 * | 176 * |
175 * @description: | 177 * @description: |
176 * Free the buffer allocated by OpenType validator. | 178 * Free the buffer allocated by OpenType validator. |
177 * | 179 * |
178 * @input: | 180 * @input: |
179 * face :: | 181 * face :: |
180 * A handle to the input face. | 182 * A handle to the input face. |
181 * | 183 * |
182 * table :: | 184 * table :: |
183 * The pointer to the buffer that is allocated by | 185 * The pointer to the buffer that is allocated by |
184 * @FT_OpenType_Validate. | 186 * @FT_OpenType_Validate. |
185 * | 187 * |
186 * @note: | 188 * @note: |
187 * This function must be used to free the buffer allocated by | 189 * This function must be used to free the buffer allocated by |
188 * @FT_OpenType_Validate only. | 190 * @FT_OpenType_Validate only. |
189 */ | 191 */ |
190 FT_EXPORT( void ) | 192 FT_EXPORT( void ) |
191 FT_OpenType_Free( FT_Face face, | 193 FT_OpenType_Free( FT_Face face, |
192 FT_Bytes table ); | 194 FT_Bytes table ); |
193 | 195 |
194 | 196 /* */ |
195 /* */ | |
196 | 197 |
197 | 198 |
198 FT_END_HEADER | 199 FT_END_HEADER |
199 | 200 |
200 #endif /* __FTOTVAL_H__ */ | 201 #endif /* __FTOTVAL_H__ */ |
201 | 202 |
202 | 203 |
203 /* END */ | 204 /* END */ |
OLD | NEW |