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 |