1 /***************************************************************************/ 2 /* */ 3 /* ftheader.h */ 4 /* */ 5 /* Build macros of the FreeType 2 library. */ 6 /* */ 7 /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 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 #ifndef __FT_HEADER_H__ 19 #define __FT_HEADER_H__ 20 21 22 /*@***********************************************************************/ 23 /* */ 24 /* <Macro> */ 25 /* FT_BEGIN_HEADER */ 26 /* */ 27 /* <Description> */ 28 /* This macro is used in association with @FT_END_HEADER in header */ 29 /* files to ensure that the declarations within are properly */ 30 /* encapsulated in an `extern "C" { .. }' block when included from a */ 31 /* C++ compiler. */ 32 /* */ 33 #ifdef __cplusplus 34 #define FT_BEGIN_HEADER extern "C" { 35 #else 36 #define FT_BEGIN_HEADER /* nothing */ 37 #endif 38 39 40 /*@***********************************************************************/ 41 /* */ 42 /* <Macro> */ 43 /* FT_END_HEADER */ 44 /* */ 45 /* <Description> */ 46 /* This macro is used in association with @FT_BEGIN_HEADER in header */ 47 /* files to ensure that the declarations within are properly */ 48 /* encapsulated in an `extern "C" { .. }' block when included from a */ 49 /* C++ compiler. */ 50 /* */ 51 #ifdef __cplusplus 52 #define FT_END_HEADER } 53 #else 54 #define FT_END_HEADER /* nothing */ 55 #endif 56 57 58 /*************************************************************************/ 59 /* */ 60 /* Aliases for the FreeType 2 public and configuration files. */ 61 /* */ 62 /*************************************************************************/ 63 64 /*************************************************************************/ 65 /* */ 66 /* <Section> */ 67 /* header_file_macros */ 68 /* */ 69 /* <Title> */ 70 /* Header File Macros */ 71 /* */ 72 /* <Abstract> */ 73 /* Macro definitions used to #include specific header files. */ 74 /* */ 75 /* <Description> */ 76 /* The following macros are defined to the name of specific */ 77 /* FreeType~2 header files. They can be used directly in #include */ 78 /* statements as in: */ 79 /* */ 80 /* { */ 81 /* #include FT_FREETYPE_H */ 82 /* #include FT_MULTIPLE_MASTERS_H */ 83 /* #include FT_GLYPH_H */ 84 /* } */ 85 /* */ 86 /* There are several reasons why we are now using macros to name */ 87 /* public header files. The first one is that such macros are not */ 88 /* limited to the infamous 8.3~naming rule required by DOS (and */ 89 /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ 90 /* */ 91 /* The second reason is that it allows for more flexibility in the */ 92 /* way FreeType~2 is installed on a given system. */ 93 /* */ 94 /*************************************************************************/ 95 96 97 /* configuration files */ 98 99 /************************************************************************* 100 * 101 * @macro: 102 * FT_CONFIG_CONFIG_H 103 * 104 * @description: 105 * A macro used in #include statements to name the file containing 106 * FreeType~2 configuration data. 107 * 108 */ 109 #ifndef FT_CONFIG_CONFIG_H 110 #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> 111 #endif 112 113 114 /************************************************************************* 115 * 116 * @macro: 117 * FT_CONFIG_STANDARD_LIBRARY_H 118 * 119 * @description: 120 * A macro used in #include statements to name the file containing 121 * FreeType~2 interface to the standard C library functions. 122 * 123 */ 124 #ifndef FT_CONFIG_STANDARD_LIBRARY_H 125 #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> 126 #endif 127 128 129 /************************************************************************* 130 * 131 * @macro: 132 * FT_CONFIG_OPTIONS_H 133 * 134 * @description: 135 * A macro used in #include statements to name the file containing 136 * FreeType~2 project-specific configuration options. 137 * 138 */ 139 #ifndef FT_CONFIG_OPTIONS_H 140 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> 141 #endif 142 143 144 /************************************************************************* 145 * 146 * @macro: 147 * FT_CONFIG_MODULES_H 148 * 149 * @description: 150 * A macro used in #include statements to name the file containing the 151 * list of FreeType~2 modules that are statically linked to new library 152 * instances in @FT_Init_FreeType. 153 * 154 */ 155 #ifndef FT_CONFIG_MODULES_H 156 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> 157 #endif 158 159 /* */ 160 161 /* public headers */ 162 163 /************************************************************************* 164 * 165 * @macro: 166 * FT_FREETYPE_H 167 * 168 * @description: 169 * A macro used in #include statements to name the file containing the 170 * base FreeType~2 API. 171 * 172 */ 173 #define FT_FREETYPE_H <freetype/freetype.h> 174 175 176 /************************************************************************* 177 * 178 * @macro: 179 * FT_ERRORS_H 180 * 181 * @description: 182 * A macro used in #include statements to name the file containing the 183 * list of FreeType~2 error codes (and messages). 184 * 185 * It is included by @FT_FREETYPE_H. 186 * 187 */ 188 #define FT_ERRORS_H <freetype/fterrors.h> 189 190 191 /************************************************************************* 192 * 193 * @macro: 194 * FT_MODULE_ERRORS_H 195 * 196 * @description: 197 * A macro used in #include statements to name the file containing the 198 * list of FreeType~2 module error offsets (and messages). 199 * 200 */ 201 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> 202 203 204 /************************************************************************* 205 * 206 * @macro: 207 * FT_SYSTEM_H 208 * 209 * @description: 210 * A macro used in #include statements to name the file containing the 211 * FreeType~2 interface to low-level operations (i.e., memory management 212 * and stream i/o). 213 * 214 * It is included by @FT_FREETYPE_H. 215 * 216 */ 217 #define FT_SYSTEM_H <freetype/ftsystem.h> 218 219 220 /************************************************************************* 221 * 222 * @macro: 223 * FT_IMAGE_H 224 * 225 * @description: 226 * A macro used in #include statements to name the file containing type 227 * definitions related to glyph images (i.e., bitmaps, outlines, 228 * scan-converter parameters). 229 * 230 * It is included by @FT_FREETYPE_H. 231 * 232 */ 233 #define FT_IMAGE_H <freetype/ftimage.h> 234 235 236 /************************************************************************* 237 * 238 * @macro: 239 * FT_TYPES_H 240 * 241 * @description: 242 * A macro used in #include statements to name the file containing the 243 * basic data types defined by FreeType~2. 244 * 245 * It is included by @FT_FREETYPE_H. 246 * 247 */ 248 #define FT_TYPES_H <freetype/fttypes.h> 249 250 251 /************************************************************************* 252 * 253 * @macro: 254 * FT_LIST_H 255 * 256 * @description: 257 * A macro used in #include statements to name the file containing the 258 * list management API of FreeType~2. 259 * 260 * (Most applications will never need to include this file.) 261 * 262 */ 263 #define FT_LIST_H <freetype/ftlist.h> 264 265 266 /************************************************************************* 267 * 268 * @macro: 269 * FT_OUTLINE_H 270 * 271 * @description: 272 * A macro used in #include statements to name the file containing the 273 * scalable outline management API of FreeType~2. 274 * 275 */ 276 #define FT_OUTLINE_H <freetype/ftoutln.h> 277 278 279 /************************************************************************* 280 * 281 * @macro: 282 * FT_SIZES_H 283 * 284 * @description: 285 * A macro used in #include statements to name the file containing the 286 * API which manages multiple @FT_Size objects per face. 287 * 288 */ 289 #define FT_SIZES_H <freetype/ftsizes.h> 290 291 292 /************************************************************************* 293 * 294 * @macro: 295 * FT_MODULE_H 296 * 297 * @description: 298 * A macro used in #include statements to name the file containing the 299 * module management API of FreeType~2. 300 * 301 */ 302 #define FT_MODULE_H <freetype/ftmodapi.h> 303 304 305 /************************************************************************* 306 * 307 * @macro: 308 * FT_RENDER_H 309 * 310 * @description: 311 * A macro used in #include statements to name the file containing the 312 * renderer module management API of FreeType~2. 313 * 314 */ 315 #define FT_RENDER_H <freetype/ftrender.h> 316 317 318 /************************************************************************* 319 * 320 * @macro: 321 * FT_TYPE1_TABLES_H 322 * 323 * @description: 324 * A macro used in #include statements to name the file containing the 325 * types and API specific to the Type~1 format. 326 * 327 */ 328 #define FT_TYPE1_TABLES_H <freetype/t1tables.h> 329 330 331 /************************************************************************* 332 * 333 * @macro: 334 * FT_TRUETYPE_IDS_H 335 * 336 * @description: 337 * A macro used in #include statements to name the file containing the 338 * enumeration values which identify name strings, languages, encodings, 339 * etc. This file really contains a _large_ set of constant macro 340 * definitions, taken from the TrueType and OpenType specifications. 341 * 342 */ 343 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> 344 345 346 /************************************************************************* 347 * 348 * @macro: 349 * FT_TRUETYPE_TABLES_H 350 * 351 * @description: 352 * A macro used in #include statements to name the file containing the 353 * types and API specific to the TrueType (as well as OpenType) format. 354 * 355 */ 356 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h> 357 358 359 /************************************************************************* 360 * 361 * @macro: 362 * FT_TRUETYPE_TAGS_H 363 * 364 * @description: 365 * A macro used in #include statements to name the file containing the 366 * definitions of TrueType four-byte `tags' which identify blocks in 367 * SFNT-based font formats (i.e., TrueType and OpenType). 368 * 369 */ 370 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h> 371 372 373 /************************************************************************* 374 * 375 * @macro: 376 * FT_BDF_H 377 * 378 * @description: 379 * A macro used in #include statements to name the file containing the 380 * definitions of an API which accesses BDF-specific strings from a 381 * face. 382 * 383 */ 384 #define FT_BDF_H <freetype/ftbdf.h> 385 386 387 /************************************************************************* 388 * 389 * @macro: 390 * FT_CID_H 391 * 392 * @description: 393 * A macro used in #include statements to name the file containing the 394 * definitions of an API which access CID font information from a 395 * face. 396 * 397 */ 398 #define FT_CID_H <freetype/ftcid.h> 399 400 401 /************************************************************************* 402 * 403 * @macro: 404 * FT_GZIP_H 405 * 406 * @description: 407 * A macro used in #include statements to name the file containing the 408 * definitions of an API which supports gzip-compressed files. 409 * 410 */ 411 #define FT_GZIP_H <freetype/ftgzip.h> 412 413 414 /************************************************************************* 415 * 416 * @macro: 417 * FT_LZW_H 418 * 419 * @description: 420 * A macro used in #include statements to name the file containing the 421 * definitions of an API which supports LZW-compressed files. 422 * 423 */ 424 #define FT_LZW_H <freetype/ftlzw.h> 425 426 427 /************************************************************************* 428 * 429 * @macro: 430 * FT_BZIP2_H 431 * 432 * @description: 433 * A macro used in #include statements to name the file containing the 434 * definitions of an API which supports bzip2-compressed files. 435 * 436 */ 437 #define FT_BZIP2_H <freetype/ftbzip2.h> 438 439 440 /************************************************************************* 441 * 442 * @macro: 443 * FT_WINFONTS_H 444 * 445 * @description: 446 * A macro used in #include statements to name the file containing the 447 * definitions of an API which supports Windows FNT files. 448 * 449 */ 450 #define FT_WINFONTS_H <freetype/ftwinfnt.h> 451 452 453 /************************************************************************* 454 * 455 * @macro: 456 * FT_GLYPH_H 457 * 458 * @description: 459 * A macro used in #include statements to name the file containing the 460 * API of the optional glyph management component. 461 * 462 */ 463 #define FT_GLYPH_H <freetype/ftglyph.h> 464 465 466 /************************************************************************* 467 * 468 * @macro: 469 * FT_BITMAP_H 470 * 471 * @description: 472 * A macro used in #include statements to name the file containing the 473 * API of the optional bitmap conversion component. 474 * 475 */ 476 #define FT_BITMAP_H <freetype/ftbitmap.h> 477 478 479 /************************************************************************* 480 * 481 * @macro: 482 * FT_BBOX_H 483 * 484 * @description: 485 * A macro used in #include statements to name the file containing the 486 * API of the optional exact bounding box computation routines. 487 * 488 */ 489 #define FT_BBOX_H <freetype/ftbbox.h> 490 491 492 /************************************************************************* 493 * 494 * @macro: 495 * FT_CACHE_H 496 * 497 * @description: 498 * A macro used in #include statements to name the file containing the 499 * API of the optional FreeType~2 cache sub-system. 500 * 501 */ 502 #define FT_CACHE_H <freetype/ftcache.h> 503 504 505 /************************************************************************* 506 * 507 * @macro: 508 * FT_CACHE_IMAGE_H 509 * 510 * @description: 511 * A macro used in #include statements to name the file containing the 512 * `glyph image' API of the FreeType~2 cache sub-system. 513 * 514 * It is used to define a cache for @FT_Glyph elements. You can also 515 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to 516 * store small glyph bitmaps, as it will use less memory. 517 * 518 * This macro is deprecated. Simply include @FT_CACHE_H to have all 519 * glyph image-related cache declarations. 520 * 521 */ 522 #define FT_CACHE_IMAGE_H FT_CACHE_H 523 524 525 /************************************************************************* 526 * 527 * @macro: 528 * FT_CACHE_SMALL_BITMAPS_H 529 * 530 * @description: 531 * A macro used in #include statements to name the file containing the 532 * `small bitmaps' API of the FreeType~2 cache sub-system. 533 * 534 * It is used to define a cache for small glyph bitmaps in a relatively 535 * memory-efficient way. You can also use the API defined in 536 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, 537 * including scalable outlines. 538 * 539 * This macro is deprecated. Simply include @FT_CACHE_H to have all 540 * small bitmaps-related cache declarations. 541 * 542 */ 543 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H 544 545 546 /************************************************************************* 547 * 548 * @macro: 549 * FT_CACHE_CHARMAP_H 550 * 551 * @description: 552 * A macro used in #include statements to name the file containing the 553 * `charmap' API of the FreeType~2 cache sub-system. 554 * 555 * This macro is deprecated. Simply include @FT_CACHE_H to have all 556 * charmap-based cache declarations. 557 * 558 */ 559 #define FT_CACHE_CHARMAP_H FT_CACHE_H 560 561 562 /************************************************************************* 563 * 564 * @macro: 565 * FT_MAC_H 566 * 567 * @description: 568 * A macro used in #include statements to name the file containing the 569 * Macintosh-specific FreeType~2 API. The latter is used to access 570 * fonts embedded in resource forks. 571 * 572 * This header file must be explicitly included by client applications 573 * compiled on the Mac (note that the base API still works though). 574 * 575 */ 576 #define FT_MAC_H <freetype/ftmac.h> 577 578 579 /************************************************************************* 580 * 581 * @macro: 582 * FT_MULTIPLE_MASTERS_H 583 * 584 * @description: 585 * A macro used in #include statements to name the file containing the 586 * optional multiple-masters management API of FreeType~2. 587 * 588 */ 589 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> 590 591 592 /************************************************************************* 593 * 594 * @macro: 595 * FT_SFNT_NAMES_H 596 * 597 * @description: 598 * A macro used in #include statements to name the file containing the 599 * optional FreeType~2 API which accesses embedded `name' strings in 600 * SFNT-based font formats (i.e., TrueType and OpenType). 601 * 602 */ 603 #define FT_SFNT_NAMES_H <freetype/ftsnames.h> 604 605 606 /************************************************************************* 607 * 608 * @macro: 609 * FT_OPENTYPE_VALIDATE_H 610 * 611 * @description: 612 * A macro used in #include statements to name the file containing the 613 * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, 614 * GPOS, GSUB, JSTF). 615 * 616 */ 617 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> 618 619 620 /************************************************************************* 621 * 622 * @macro: 623 * FT_GX_VALIDATE_H 624 * 625 * @description: 626 * A macro used in #include statements to name the file containing the 627 * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, 628 * mort, morx, bsln, just, kern, opbd, trak, prop). 629 * 630 */ 631 #define FT_GX_VALIDATE_H <freetype/ftgxval.h> 632 633 634 /************************************************************************* 635 * 636 * @macro: 637 * FT_PFR_H 638 * 639 * @description: 640 * A macro used in #include statements to name the file containing the 641 * FreeType~2 API which accesses PFR-specific data. 642 * 643 */ 644 #define FT_PFR_H <freetype/ftpfr.h> 645 646 647 /************************************************************************* 648 * 649 * @macro: 650 * FT_STROKER_H 651 * 652 * @description: 653 * A macro used in #include statements to name the file containing the 654 * FreeType~2 API which provides functions to stroke outline paths. 655 */ 656 #define FT_STROKER_H <freetype/ftstroke.h> 657 658 659 /************************************************************************* 660 * 661 * @macro: 662 * FT_SYNTHESIS_H 663 * 664 * @description: 665 * A macro used in #include statements to name the file containing the 666 * FreeType~2 API which performs artificial obliquing and emboldening. 667 */ 668 #define FT_SYNTHESIS_H <freetype/ftsynth.h> 669 670 671 /************************************************************************* 672 * 673 * @macro: 674 * FT_XFREE86_H 675 * 676 * @description: 677 * A macro used in #include statements to name the file containing the 678 * FreeType~2 API which provides functions specific to the XFree86 and 679 * X.Org X11 servers. 680 */ 681 #define FT_XFREE86_H <freetype/ftxf86.h> 682 683 684 /************************************************************************* 685 * 686 * @macro: 687 * FT_TRIGONOMETRY_H 688 * 689 * @description: 690 * A macro used in #include statements to name the file containing the 691 * FreeType~2 API which performs trigonometric computations (e.g., 692 * cosines and arc tangents). 693 */ 694 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h> 695 696 697 /************************************************************************* 698 * 699 * @macro: 700 * FT_LCD_FILTER_H 701 * 702 * @description: 703 * A macro used in #include statements to name the file containing the 704 * FreeType~2 API which performs color filtering for subpixel rendering. 705 */ 706 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h> 707 708 709 /************************************************************************* 710 * 711 * @macro: 712 * FT_UNPATENTED_HINTING_H 713 * 714 * @description: 715 * A macro used in #include statements to name the file containing the 716 * FreeType~2 API which performs color filtering for subpixel rendering. 717 */ 718 #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h> 719 720 721 /************************************************************************* 722 * 723 * @macro: 724 * FT_INCREMENTAL_H 725 * 726 * @description: 727 * A macro used in #include statements to name the file containing the 728 * FreeType~2 API which performs color filtering for subpixel rendering. 729 */ 730 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 731 732 733 /************************************************************************* 734 * 735 * @macro: 736 * FT_GASP_H 737 * 738 * @description: 739 * A macro used in #include statements to name the file containing the 740 * FreeType~2 API which returns entries from the TrueType GASP table. 741 */ 742 #define FT_GASP_H <freetype/ftgasp.h> 743 744 745 /************************************************************************* 746 * 747 * @macro: 748 * FT_ADVANCES_H 749 * 750 * @description: 751 * A macro used in #include statements to name the file containing the 752 * FreeType~2 API which returns individual and ranged glyph advances. 753 */ 754 #define FT_ADVANCES_H <freetype/ftadvanc.h> 755 756 757 /* */ 758 759 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> 760 761 762 /* The internals of the cache sub-system are no longer exposed. We */ 763 /* default to FT_CACHE_H at the moment just in case, but we know of */ 764 /* no rogue client that uses them. */ 765 /* */ 766 #define FT_CACHE_MANAGER_H <freetype/ftcache.h> 767 #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h> 768 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h> 769 #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h> 770 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h> 771 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h> 772 #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h> 773 774 775 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 776 777 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> 778 779 780 /* 781 * Include internal headers definitions from <freetype/internal/...> 782 * only when building the library. 783 */ 784 #ifdef FT2_BUILD_LIBRARY 785 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> 786 #include FT_INTERNAL_INTERNAL_H 787 #endif /* FT2_BUILD_LIBRARY */ 788 789 790 #endif /* __FT2_BUILD_H__ */ 791 792 793 /* END */ 794