| OLD | NEW |
| 1 /***************************************************************************/ | 1 /***************************************************************************/ |
| 2 /* */ | 2 /* */ |
| 3 /* tttypes.h */ | 3 /* tttypes.h */ |
| 4 /* */ | 4 /* */ |
| 5 /* Basic SFNT/TrueType type definitions and interface (specification */ | 5 /* Basic SFNT/TrueType type definitions and interface (specification */ |
| 6 /* only). */ | 6 /* only). */ |
| 7 /* */ | 7 /* */ |
| 8 /* Copyright 1996-2001, 2002, 2004, 2005, 2006, 2007, 2008 by */ | 8 /* Copyright 1996-2002, 2004-2008, 2012-2013 by */ |
| 9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
| 10 /* */ | 10 /* */ |
| 11 /* This file is part of the FreeType project, and may only be used, */ | 11 /* This file is part of the FreeType project, and may only be used, */ |
| 12 /* modified, and distributed under the terms of the FreeType project */ | 12 /* modified, and distributed under the terms of the FreeType project */ |
| 13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
| 14 /* this file you indicate that you have read the license and */ | 14 /* this file you indicate that you have read the license and */ |
| 15 /* understand and accept it fully. */ | 15 /* understand and accept it fully. */ |
| 16 /* */ | 16 /* */ |
| 17 /***************************************************************************/ | 17 /***************************************************************************/ |
| 18 | 18 |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 /* */ | 304 /* */ |
| 305 typedef struct TT_Gasp_ | 305 typedef struct TT_Gasp_ |
| 306 { | 306 { |
| 307 FT_UShort version; | 307 FT_UShort version; |
| 308 FT_UShort numRanges; | 308 FT_UShort numRanges; |
| 309 TT_GaspRange gaspRanges; | 309 TT_GaspRange gaspRanges; |
| 310 | 310 |
| 311 } TT_GaspRec; | 311 } TT_GaspRec; |
| 312 | 312 |
| 313 | 313 |
| 314 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 315 | |
| 316 /*************************************************************************/ | |
| 317 /* */ | |
| 318 /* <Struct> */ | |
| 319 /* TT_HdmxEntryRec */ | |
| 320 /* */ | |
| 321 /* <Description> */ | |
| 322 /* A small structure used to model the pre-computed widths of a given */ | |
| 323 /* size. They are found in the `hdmx' table. */ | |
| 324 /* */ | |
| 325 /* <Fields> */ | |
| 326 /* ppem :: The pixels per EM value at which these metrics apply. */ | |
| 327 /* */ | |
| 328 /* max_width :: The maximum advance width for this metric. */ | |
| 329 /* */ | |
| 330 /* widths :: An array of widths. Note: These are 8-bit bytes. */ | |
| 331 /* */ | |
| 332 typedef struct TT_HdmxEntryRec_ | |
| 333 { | |
| 334 FT_Byte ppem; | |
| 335 FT_Byte max_width; | |
| 336 FT_Byte* widths; | |
| 337 | |
| 338 } TT_HdmxEntryRec, *TT_HdmxEntry; | |
| 339 | |
| 340 | |
| 341 /*************************************************************************/ | |
| 342 /* */ | |
| 343 /* <Struct> */ | |
| 344 /* TT_HdmxRec */ | |
| 345 /* */ | |
| 346 /* <Description> */ | |
| 347 /* A structure used to model the `hdmx' table, which contains */ | |
| 348 /* pre-computed widths for a set of given sizes/dimensions. */ | |
| 349 /* */ | |
| 350 /* <Fields> */ | |
| 351 /* version :: The version number. */ | |
| 352 /* */ | |
| 353 /* num_records :: The number of hdmx records. */ | |
| 354 /* */ | |
| 355 /* records :: An array of hdmx records. */ | |
| 356 /* */ | |
| 357 typedef struct TT_HdmxRec_ | |
| 358 { | |
| 359 FT_UShort version; | |
| 360 FT_Short num_records; | |
| 361 TT_HdmxEntry records; | |
| 362 | |
| 363 } TT_HdmxRec, *TT_Hdmx; | |
| 364 | |
| 365 | |
| 366 /*************************************************************************/ | |
| 367 /* */ | |
| 368 /* <Struct> */ | |
| 369 /* TT_Kern0_PairRec */ | |
| 370 /* */ | |
| 371 /* <Description> */ | |
| 372 /* A structure used to model a kerning pair for the kerning table */ | |
| 373 /* format 0. The engine now loads this table if it finds one in the */ | |
| 374 /* font file. */ | |
| 375 /* */ | |
| 376 /* <Fields> */ | |
| 377 /* left :: The index of the left glyph in pair. */ | |
| 378 /* */ | |
| 379 /* right :: The index of the right glyph in pair. */ | |
| 380 /* */ | |
| 381 /* value :: The kerning distance. A positive value spaces the */ | |
| 382 /* glyphs, a negative one makes them closer. */ | |
| 383 /* */ | |
| 384 typedef struct TT_Kern0_PairRec_ | |
| 385 { | |
| 386 FT_UShort left; /* index of left glyph in pair */ | |
| 387 FT_UShort right; /* index of right glyph in pair */ | |
| 388 FT_FWord value; /* kerning value */ | |
| 389 | |
| 390 } TT_Kern0_PairRec, *TT_Kern0_Pair; | |
| 391 | |
| 392 #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ | |
| 393 | |
| 394 | |
| 395 /*************************************************************************/ | 314 /*************************************************************************/ |
| 396 /*************************************************************************/ | 315 /*************************************************************************/ |
| 397 /*************************************************************************/ | 316 /*************************************************************************/ |
| 398 /*** ***/ | 317 /*** ***/ |
| 399 /*** ***/ | 318 /*** ***/ |
| 400 /*** EMBEDDED BITMAPS SUPPORT ***/ | 319 /*** EMBEDDED BITMAPS SUPPORT ***/ |
| 401 /*** ***/ | 320 /*** ***/ |
| 402 /*** ***/ | 321 /*** ***/ |
| 403 /*************************************************************************/ | 322 /*************************************************************************/ |
| 404 /*************************************************************************/ | 323 /*************************************************************************/ |
| (...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1262 TTC_HeaderRec ttc_header; | 1181 TTC_HeaderRec ttc_header; |
| 1263 | 1182 |
| 1264 FT_ULong format_tag; | 1183 FT_ULong format_tag; |
| 1265 FT_UShort num_tables; | 1184 FT_UShort num_tables; |
| 1266 TT_Table dir_tables; | 1185 TT_Table dir_tables; |
| 1267 | 1186 |
| 1268 TT_Header header; /* TrueType header table */ | 1187 TT_Header header; /* TrueType header table */ |
| 1269 TT_HoriHeader horizontal; /* TrueType horizontal header */ | 1188 TT_HoriHeader horizontal; /* TrueType horizontal header */ |
| 1270 | 1189 |
| 1271 TT_MaxProfile max_profile; | 1190 TT_MaxProfile max_profile; |
| 1272 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 1273 FT_ULong max_components; /* stubbed to 0 */ | |
| 1274 #endif | |
| 1275 | 1191 |
| 1276 FT_Bool vertical_info; | 1192 FT_Bool vertical_info; |
| 1277 TT_VertHeader vertical; /* TT Vertical header, if present */ | 1193 TT_VertHeader vertical; /* TT Vertical header, if present */ |
| 1278 | 1194 |
| 1279 FT_UShort num_names; /* number of name records */ | 1195 FT_UShort num_names; /* number of name records */ |
| 1280 TT_NameTableRec name_table; /* name table */ | 1196 TT_NameTableRec name_table; /* name table */ |
| 1281 | 1197 |
| 1282 TT_OS2 os2; /* TrueType OS/2 table */ | 1198 TT_OS2 os2; /* TrueType OS/2 table */ |
| 1283 TT_Postscript postscript; /* TrueType Postscript table */ | 1199 TT_Postscript postscript; /* TrueType Postscript table */ |
| 1284 | 1200 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1301 /* handle glyph names <-> unicode & Mac values */ | 1217 /* handle glyph names <-> unicode & Mac values */ |
| 1302 void* psnames; | 1218 void* psnames; |
| 1303 | 1219 |
| 1304 | 1220 |
| 1305 /***********************************************************************/ | 1221 /***********************************************************************/ |
| 1306 /* */ | 1222 /* */ |
| 1307 /* Optional TrueType/OpenType tables */ | 1223 /* Optional TrueType/OpenType tables */ |
| 1308 /* */ | 1224 /* */ |
| 1309 /***********************************************************************/ | 1225 /***********************************************************************/ |
| 1310 | 1226 |
| 1311 /* horizontal device metrics */ | |
| 1312 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 1313 TT_HdmxRec hdmx; | |
| 1314 #endif | |
| 1315 | |
| 1316 /* grid-fitting and scaling table */ | 1227 /* grid-fitting and scaling table */ |
| 1317 TT_GaspRec gasp; /* the `gasp' table */ | 1228 TT_GaspRec gasp; /* the `gasp' table */ |
| 1318 | 1229 |
| 1319 /* PCL 5 table */ | 1230 /* PCL 5 table */ |
| 1320 TT_PCLT pclt; | 1231 TT_PCLT pclt; |
| 1321 | 1232 |
| 1322 /* embedded bitmaps support */ | 1233 /* embedded bitmaps support */ |
| 1323 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 1324 FT_ULong num_sbit_strikes; | |
| 1325 TT_SBit_Strike sbit_strikes; | |
| 1326 #endif | |
| 1327 | |
| 1328 FT_ULong num_sbit_scales; | 1234 FT_ULong num_sbit_scales; |
| 1329 TT_SBit_Scale sbit_scales; | 1235 TT_SBit_Scale sbit_scales; |
| 1330 | 1236 |
| 1331 /* postscript names table */ | 1237 /* postscript names table */ |
| 1332 TT_Post_NamesRec postscript_names; | 1238 TT_Post_NamesRec postscript_names; |
| 1333 | 1239 |
| 1334 | 1240 |
| 1335 /***********************************************************************/ | 1241 /***********************************************************************/ |
| 1336 /* */ | 1242 /* */ |
| 1337 /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ | 1243 /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ |
| 1338 /* */ | 1244 /* */ |
| 1339 /***********************************************************************/ | 1245 /***********************************************************************/ |
| 1340 | 1246 |
| 1341 /* the glyph locations */ | |
| 1342 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 1343 FT_UShort num_locations_stub; | |
| 1344 FT_Long* glyph_locations_stub; | |
| 1345 #endif | |
| 1346 | |
| 1347 /* the font program, if any */ | 1247 /* the font program, if any */ |
| 1348 FT_ULong font_program_size; | 1248 FT_ULong font_program_size; |
| 1349 FT_Byte* font_program; | 1249 FT_Byte* font_program; |
| 1350 | 1250 |
| 1351 /* the cvt program, if any */ | 1251 /* the cvt program, if any */ |
| 1352 FT_ULong cvt_program_size; | 1252 FT_ULong cvt_program_size; |
| 1353 FT_Byte* cvt_program; | 1253 FT_Byte* cvt_program; |
| 1354 | 1254 |
| 1355 /* the original, unscaled, control value table */ | 1255 /* the original, unscaled, control value table */ |
| 1356 FT_ULong cvt_size; | 1256 FT_ULong cvt_size; |
| 1357 FT_Short* cvt; | 1257 FT_Short* cvt; |
| 1358 | 1258 |
| 1359 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
| 1360 /* the format 0 kerning table, if any */ | |
| 1361 FT_Int num_kern_pairs; | |
| 1362 FT_Int kern_table_index; | |
| 1363 TT_Kern0_Pair kern_pairs; | |
| 1364 #endif | |
| 1365 | |
| 1366 /* A pointer to the bytecode interpreter to use. This is also */ | 1259 /* A pointer to the bytecode interpreter to use. This is also */ |
| 1367 /* used to hook the debugger for the `ttdebug' utility. */ | 1260 /* used to hook the debugger for the `ttdebug' utility. */ |
| 1368 TT_Interpreter interpreter; | 1261 TT_Interpreter interpreter; |
| 1369 | 1262 |
| 1370 #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING | 1263 #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING |
| 1371 /* Use unpatented hinting only. */ | 1264 /* Use unpatented hinting only. */ |
| 1372 FT_Bool unpatented_hinting; | 1265 FT_Bool unpatented_hinting; |
| 1373 #endif | 1266 #endif |
| 1374 | 1267 |
| 1375 /***********************************************************************/ | 1268 /***********************************************************************/ |
| 1376 /* */ | 1269 /* */ |
| 1377 /* Other tables or fields. This is used by derivative formats like */ | 1270 /* Other tables or fields. This is used by derivative formats like */ |
| 1378 /* OpenType. */ | 1271 /* OpenType. */ |
| 1379 /* */ | 1272 /* */ |
| 1380 /***********************************************************************/ | 1273 /***********************************************************************/ |
| 1381 | 1274 |
| 1382 FT_Generic extra; | 1275 FT_Generic extra; |
| 1383 | 1276 |
| 1384 const char* postscript_name; | 1277 const char* postscript_name; |
| 1385 | 1278 |
| 1386 /* since version 2.1.8, but was originally placed after */ | |
| 1387 /* `glyph_locations_stub' */ | |
| 1388 FT_ULong glyf_len; | 1279 FT_ULong glyf_len; |
| 1389 | 1280 |
| 1390 /* since version 2.1.8, but was originally placed before `extra' */ | |
| 1391 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT | 1281 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT |
| 1392 FT_Bool doblend; | 1282 FT_Bool doblend; |
| 1393 GX_Blend blend; | 1283 GX_Blend blend; |
| 1394 #endif | 1284 #endif |
| 1395 | 1285 |
| 1396 /* since version 2.2 */ | 1286 /* since version 2.2 */ |
| 1397 | 1287 |
| 1398 FT_Byte* horz_metrics; | 1288 FT_Byte* horz_metrics; |
| 1399 FT_ULong horz_metrics_size; | 1289 FT_ULong horz_metrics_size; |
| 1400 | 1290 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1421 FT_UInt32 kern_order_bits; | 1311 FT_UInt32 kern_order_bits; |
| 1422 | 1312 |
| 1423 #ifdef TT_CONFIG_OPTION_BDF | 1313 #ifdef TT_CONFIG_OPTION_BDF |
| 1424 TT_BDFRec bdf; | 1314 TT_BDFRec bdf; |
| 1425 #endif /* TT_CONFIG_OPTION_BDF */ | 1315 #endif /* TT_CONFIG_OPTION_BDF */ |
| 1426 | 1316 |
| 1427 /* since 2.3.0 */ | 1317 /* since 2.3.0 */ |
| 1428 FT_ULong horz_metrics_offset; | 1318 FT_ULong horz_metrics_offset; |
| 1429 FT_ULong vert_metrics_offset; | 1319 FT_ULong vert_metrics_offset; |
| 1430 | 1320 |
| 1321 #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING |
| 1322 /* since 2.4.12 */ |
| 1323 FT_ULong sph_found_func_flags; /* special functions found */ |
| 1324 /* for this face */ |
| 1325 FT_Bool sph_compatibility_mode; |
| 1326 #endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ |
| 1327 |
| 1431 } TT_FaceRec; | 1328 } TT_FaceRec; |
| 1432 | 1329 |
| 1433 | 1330 |
| 1434 /*************************************************************************/ | 1331 /*************************************************************************/ |
| 1435 /* */ | 1332 /* */ |
| 1436 /* <Struct> */ | 1333 /* <Struct> */ |
| 1437 /* TT_GlyphZoneRec */ | 1334 /* TT_GlyphZoneRec */ |
| 1438 /* */ | 1335 /* */ |
| 1439 /* <Description> */ | 1336 /* <Description> */ |
| 1440 /* A glyph zone is used to load, scale and hint glyph outline */ | 1337 /* A glyph zone is used to load, scale and hint glyph outline */ |
| 1441 /* coordinates. */ | 1338 /* coordinates. */ |
| 1442 /* */ | 1339 /* */ |
| 1443 /* <Fields> */ | 1340 /* <Fields> */ |
| 1444 /* memory :: A handle to the memory manager. */ | 1341 /* memory :: A handle to the memory manager. */ |
| 1445 /* */ | 1342 /* */ |
| 1446 /* max_points :: The maximal size in points of the zone. */ | 1343 /* max_points :: The maximum size in points of the zone. */ |
| 1447 /* */ | 1344 /* */ |
| 1448 /* max_contours :: Max size in links contours of the zone. */ | 1345 /* max_contours :: Max size in links contours of the zone. */ |
| 1449 /* */ | 1346 /* */ |
| 1450 /* n_points :: The current number of points in the zone. */ | 1347 /* n_points :: The current number of points in the zone. */ |
| 1451 /* */ | 1348 /* */ |
| 1452 /* n_contours :: The current number of contours in the zone. */ | 1349 /* n_contours :: The current number of contours in the zone. */ |
| 1453 /* */ | 1350 /* */ |
| 1454 /* org :: The original glyph coordinates (font */ | 1351 /* org :: The original glyph coordinates (font */ |
| 1455 /* units/scaled). */ | 1352 /* units/scaled). */ |
| 1456 /* */ | 1353 /* */ |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1534 | 1431 |
| 1535 } TT_LoaderRec; | 1432 } TT_LoaderRec; |
| 1536 | 1433 |
| 1537 | 1434 |
| 1538 FT_END_HEADER | 1435 FT_END_HEADER |
| 1539 | 1436 |
| 1540 #endif /* __TTTYPES_H__ */ | 1437 #endif /* __TTTYPES_H__ */ |
| 1541 | 1438 |
| 1542 | 1439 |
| 1543 /* END */ | 1440 /* END */ |
| OLD | NEW |