| OLD | NEW |
| (Empty) |
| 1 /***************************************************************************/ | |
| 2 /* */ | |
| 3 /* ftotval.h */ | |
| 4 /* */ | |
| 5 /* FreeType API for validating OpenType tables (specification). */ | |
| 6 /* */ | |
| 7 /* Copyright 2004-2007, 2013, 2014 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 /***************************************************************************/ | |
| 20 /* */ | |
| 21 /* */ | |
| 22 /* Warning: This module might be moved to a different library in the */ | |
| 23 /* future to avoid a tight dependency between FreeType and the */ | |
| 24 /* OpenType specification. */ | |
| 25 /* */ | |
| 26 /* */ | |
| 27 /***************************************************************************/ | |
| 28 | |
| 29 | |
| 30 #ifndef __FTOTVAL_H__ | |
| 31 #define __FTOTVAL_H__ | |
| 32 | |
| 33 #include <ft2build.h> | |
| 34 #include FT_FREETYPE_H | |
| 35 | |
| 36 #ifdef FREETYPE_H | |
| 37 #error "freetype.h of FreeType 1 has been loaded!" | |
| 38 #error "Please fix the directory search order for header files" | |
| 39 #error "so that freetype.h of FreeType 2 is found first." | |
| 40 #endif | |
| 41 | |
| 42 | |
| 43 FT_BEGIN_HEADER | |
| 44 | |
| 45 | |
| 46 /*************************************************************************/ | |
| 47 /* */ | |
| 48 /* <Section> */ | |
| 49 /* ot_validation */ | |
| 50 /* */ | |
| 51 /* <Title> */ | |
| 52 /* OpenType Validation */ | |
| 53 /* */ | |
| 54 /* <Abstract> */ | |
| 55 /* An API to validate OpenType tables. */ | |
| 56 /* */ | |
| 57 /* <Description> */ | |
| 58 /* This section contains the declaration of functions to validate */ | |
| 59 /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ | |
| 60 /* */ | |
| 61 /* <Order> */ | |
| 62 /* FT_OpenType_Validate */ | |
| 63 /* FT_OpenType_Free */ | |
| 64 /* */ | |
| 65 /* FT_VALIDATE_OTXXX */ | |
| 66 /* */ | |
| 67 /*************************************************************************/ | |
| 68 | |
| 69 | |
| 70 /********************************************************************** | |
| 71 * | |
| 72 * @enum: | |
| 73 * FT_VALIDATE_OTXXX | |
| 74 * | |
| 75 * @description: | |
| 76 * A list of bit-field constants used with @FT_OpenType_Validate to | |
| 77 * indicate which OpenType tables should be validated. | |
| 78 * | |
| 79 * @values: | |
| 80 * FT_VALIDATE_BASE :: | |
| 81 * Validate BASE table. | |
| 82 * | |
| 83 * FT_VALIDATE_GDEF :: | |
| 84 * Validate GDEF table. | |
| 85 * | |
| 86 * FT_VALIDATE_GPOS :: | |
| 87 * Validate GPOS table. | |
| 88 * | |
| 89 * FT_VALIDATE_GSUB :: | |
| 90 * Validate GSUB table. | |
| 91 * | |
| 92 * FT_VALIDATE_JSTF :: | |
| 93 * Validate JSTF table. | |
| 94 * | |
| 95 * FT_VALIDATE_MATH :: | |
| 96 * Validate MATH table. | |
| 97 * | |
| 98 * FT_VALIDATE_OT :: | |
| 99 * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). | |
| 100 * | |
| 101 */ | |
| 102 #define FT_VALIDATE_BASE 0x0100 | |
| 103 #define FT_VALIDATE_GDEF 0x0200 | |
| 104 #define FT_VALIDATE_GPOS 0x0400 | |
| 105 #define FT_VALIDATE_GSUB 0x0800 | |
| 106 #define FT_VALIDATE_JSTF 0x1000 | |
| 107 #define FT_VALIDATE_MATH 0x2000 | |
| 108 | |
| 109 #define FT_VALIDATE_OT FT_VALIDATE_BASE | \ | |
| 110 FT_VALIDATE_GDEF | \ | |
| 111 FT_VALIDATE_GPOS | \ | |
| 112 FT_VALIDATE_GSUB | \ | |
| 113 FT_VALIDATE_JSTF | \ | |
| 114 FT_VALIDATE_MATH | |
| 115 | |
| 116 /********************************************************************** | |
| 117 * | |
| 118 * @function: | |
| 119 * FT_OpenType_Validate | |
| 120 * | |
| 121 * @description: | |
| 122 * Validate various OpenType tables to assure that all offsets and | |
| 123 * indices are valid. The idea is that a higher-level library that | |
| 124 * actually does the text layout can access those tables without | |
| 125 * error checking (which can be quite time consuming). | |
| 126 * | |
| 127 * @input: | |
| 128 * face :: | |
| 129 * A handle to the input face. | |
| 130 * | |
| 131 * validation_flags :: | |
| 132 * A bit field that specifies the tables to be validated. See | |
| 133 * @FT_VALIDATE_OTXXX for possible values. | |
| 134 * | |
| 135 * @output: | |
| 136 * BASE_table :: | |
| 137 * A pointer to the BASE table. | |
| 138 * | |
| 139 * GDEF_table :: | |
| 140 * A pointer to the GDEF table. | |
| 141 * | |
| 142 * GPOS_table :: | |
| 143 * A pointer to the GPOS table. | |
| 144 * | |
| 145 * GSUB_table :: | |
| 146 * A pointer to the GSUB table. | |
| 147 * | |
| 148 * JSTF_table :: | |
| 149 * A pointer to the JSTF table. | |
| 150 * | |
| 151 * @return: | |
| 152 * FreeType error code. 0~means success. | |
| 153 * | |
| 154 * @note: | |
| 155 * This function only works with OpenType fonts, returning an error | |
| 156 * otherwise. | |
| 157 * | |
| 158 * After use, the application should deallocate the five tables with | |
| 159 * @FT_OpenType_Free. A NULL value indicates that the table either | |
| 160 * doesn't exist in the font, or the application hasn't asked for | |
| 161 * validation. | |
| 162 */ | |
| 163 FT_EXPORT( FT_Error ) | |
| 164 FT_OpenType_Validate( FT_Face face, | |
| 165 FT_UInt validation_flags, | |
| 166 FT_Bytes *BASE_table, | |
| 167 FT_Bytes *GDEF_table, | |
| 168 FT_Bytes *GPOS_table, | |
| 169 FT_Bytes *GSUB_table, | |
| 170 FT_Bytes *JSTF_table ); | |
| 171 | |
| 172 /********************************************************************** | |
| 173 * | |
| 174 * @function: | |
| 175 * FT_OpenType_Free | |
| 176 * | |
| 177 * @description: | |
| 178 * Free the buffer allocated by OpenType validator. | |
| 179 * | |
| 180 * @input: | |
| 181 * face :: | |
| 182 * A handle to the input face. | |
| 183 * | |
| 184 * table :: | |
| 185 * The pointer to the buffer that is allocated by | |
| 186 * @FT_OpenType_Validate. | |
| 187 * | |
| 188 * @note: | |
| 189 * This function must be used to free the buffer allocated by | |
| 190 * @FT_OpenType_Validate only. | |
| 191 */ | |
| 192 FT_EXPORT( void ) | |
| 193 FT_OpenType_Free( FT_Face face, | |
| 194 FT_Bytes table ); | |
| 195 | |
| 196 /* */ | |
| 197 | |
| 198 | |
| 199 FT_END_HEADER | |
| 200 | |
| 201 #endif /* __FTOTVAL_H__ */ | |
| 202 | |
| 203 | |
| 204 /* END */ | |
| OLD | NEW |