1 /***************************************************************************/ 2 /* */ 3 /* ftheader.h */ 4 /* */ 5 /* Build macros of the FreeType 2 library. */ 6 /* */ 7 /* Copyright 1996-2008, 2010, 2012, 2013 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 <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 <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 <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 <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.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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <ftrender.h> 316 317 318 /************************************************************************* 319 * 320 * @macro: 321 * FT_AUTOHINTER_H 322 * 323 * @description: 324 * A macro used in #include statements to name the file containing 325 * structures and macros related to the auto-hinting module. 326 * 327 */ 328 #define FT_AUTOHINTER_H <ftautoh.h> 329 330 331 /************************************************************************* 332 * 333 * @macro: 334 * FT_CFF_DRIVER_H 335 * 336 * @description: 337 * A macro used in #include statements to name the file containing 338 * structures and macros related to the CFF driver module. 339 * 340 */ 341 #define FT_CFF_DRIVER_H <ftcffdrv.h> 342 343 344 /************************************************************************* 345 * 346 * @macro: 347 * FT_TRUETYPE_DRIVER_H 348 * 349 * @description: 350 * A macro used in #include statements to name the file containing 351 * structures and macros related to the TrueType driver module. 352 * 353 */ 354 #define FT_TRUETYPE_DRIVER_H <ftttdrv.h> 355 356 357 /************************************************************************* 358 * 359 * @macro: 360 * FT_TYPE1_TABLES_H 361 * 362 * @description: 363 * A macro used in #include statements to name the file containing the 364 * types and API specific to the Type~1 format. 365 * 366 */ 367 #define FT_TYPE1_TABLES_H <t1tables.h> 368 369 370 /************************************************************************* 371 * 372 * @macro: 373 * FT_TRUETYPE_IDS_H 374 * 375 * @description: 376 * A macro used in #include statements to name the file containing the 377 * enumeration values which identify name strings, languages, encodings, 378 * etc. This file really contains a _large_ set of constant macro 379 * definitions, taken from the TrueType and OpenType specifications. 380 * 381 */ 382 #define FT_TRUETYPE_IDS_H <ttnameid.h> 383 384 385 /************************************************************************* 386 * 387 * @macro: 388 * FT_TRUETYPE_TABLES_H 389 * 390 * @description: 391 * A macro used in #include statements to name the file containing the 392 * types and API specific to the TrueType (as well as OpenType) format. 393 * 394 */ 395 #define FT_TRUETYPE_TABLES_H <tttables.h> 396 397 398 /************************************************************************* 399 * 400 * @macro: 401 * FT_TRUETYPE_TAGS_H 402 * 403 * @description: 404 * A macro used in #include statements to name the file containing the 405 * definitions of TrueType four-byte `tags' which identify blocks in 406 * SFNT-based font formats (i.e., TrueType and OpenType). 407 * 408 */ 409 #define FT_TRUETYPE_TAGS_H <tttags.h> 410 411 412 /************************************************************************* 413 * 414 * @macro: 415 * FT_BDF_H 416 * 417 * @description: 418 * A macro used in #include statements to name the file containing the 419 * definitions of an API which accesses BDF-specific strings from a 420 * face. 421 * 422 */ 423 #define FT_BDF_H <ftbdf.h> 424 425 426 /************************************************************************* 427 * 428 * @macro: 429 * FT_CID_H 430 * 431 * @description: 432 * A macro used in #include statements to name the file containing the 433 * definitions of an API which access CID font information from a 434 * face. 435 * 436 */ 437 #define FT_CID_H <ftcid.h> 438 439 440 /************************************************************************* 441 * 442 * @macro: 443 * FT_GZIP_H 444 * 445 * @description: 446 * A macro used in #include statements to name the file containing the 447 * definitions of an API which supports gzip-compressed files. 448 * 449 */ 450 #define FT_GZIP_H <ftgzip.h> 451 452 453 /************************************************************************* 454 * 455 * @macro: 456 * FT_LZW_H 457 * 458 * @description: 459 * A macro used in #include statements to name the file containing the 460 * definitions of an API which supports LZW-compressed files. 461 * 462 */ 463 #define FT_LZW_H <ftlzw.h> 464 465 466 /************************************************************************* 467 * 468 * @macro: 469 * FT_BZIP2_H 470 * 471 * @description: 472 * A macro used in #include statements to name the file containing the 473 * definitions of an API which supports bzip2-compressed files. 474 * 475 */ 476 #define FT_BZIP2_H <ftbzip2.h> 477 478 479 /************************************************************************* 480 * 481 * @macro: 482 * FT_WINFONTS_H 483 * 484 * @description: 485 * A macro used in #include statements to name the file containing the 486 * definitions of an API which supports Windows FNT files. 487 * 488 */ 489 #define FT_WINFONTS_H <ftwinfnt.h> 490 491 492 /************************************************************************* 493 * 494 * @macro: 495 * FT_GLYPH_H 496 * 497 * @description: 498 * A macro used in #include statements to name the file containing the 499 * API of the optional glyph management component. 500 * 501 */ 502 #define FT_GLYPH_H <ftglyph.h> 503 504 505 /************************************************************************* 506 * 507 * @macro: 508 * FT_BITMAP_H 509 * 510 * @description: 511 * A macro used in #include statements to name the file containing the 512 * API of the optional bitmap conversion component. 513 * 514 */ 515 #define FT_BITMAP_H <ftbitmap.h> 516 517 518 /************************************************************************* 519 * 520 * @macro: 521 * FT_BBOX_H 522 * 523 * @description: 524 * A macro used in #include statements to name the file containing the 525 * API of the optional exact bounding box computation routines. 526 * 527 */ 528 #define FT_BBOX_H <ftbbox.h> 529 530 531 /************************************************************************* 532 * 533 * @macro: 534 * FT_CACHE_H 535 * 536 * @description: 537 * A macro used in #include statements to name the file containing the 538 * API of the optional FreeType~2 cache sub-system. 539 * 540 */ 541 #define FT_CACHE_H <ftcache.h> 542 543 544 /************************************************************************* 545 * 546 * @macro: 547 * FT_CACHE_IMAGE_H 548 * 549 * @description: 550 * A macro used in #include statements to name the file containing the 551 * `glyph image' API of the FreeType~2 cache sub-system. 552 * 553 * It is used to define a cache for @FT_Glyph elements. You can also 554 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to 555 * store small glyph bitmaps, as it will use less memory. 556 * 557 * This macro is deprecated. Simply include @FT_CACHE_H to have all 558 * glyph image-related cache declarations. 559 * 560 */ 561 #define FT_CACHE_IMAGE_H FT_CACHE_H 562 563 564 /************************************************************************* 565 * 566 * @macro: 567 * FT_CACHE_SMALL_BITMAPS_H 568 * 569 * @description: 570 * A macro used in #include statements to name the file containing the 571 * `small bitmaps' API of the FreeType~2 cache sub-system. 572 * 573 * It is used to define a cache for small glyph bitmaps in a relatively 574 * memory-efficient way. You can also use the API defined in 575 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, 576 * including scalable outlines. 577 * 578 * This macro is deprecated. Simply include @FT_CACHE_H to have all 579 * small bitmaps-related cache declarations. 580 * 581 */ 582 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H 583 584 585 /************************************************************************* 586 * 587 * @macro: 588 * FT_CACHE_CHARMAP_H 589 * 590 * @description: 591 * A macro used in #include statements to name the file containing the 592 * `charmap' API of the FreeType~2 cache sub-system. 593 * 594 * This macro is deprecated. Simply include @FT_CACHE_H to have all 595 * charmap-based cache declarations. 596 * 597 */ 598 #define FT_CACHE_CHARMAP_H FT_CACHE_H 599 600 601 /************************************************************************* 602 * 603 * @macro: 604 * FT_MAC_H 605 * 606 * @description: 607 * A macro used in #include statements to name the file containing the 608 * Macintosh-specific FreeType~2 API. The latter is used to access 609 * fonts embedded in resource forks. 610 * 611 * This header file must be explicitly included by client applications 612 * compiled on the Mac (note that the base API still works though). 613 * 614 */ 615 #define FT_MAC_H <ftmac.h> 616 617 618 /************************************************************************* 619 * 620 * @macro: 621 * FT_MULTIPLE_MASTERS_H 622 * 623 * @description: 624 * A macro used in #include statements to name the file containing the 625 * optional multiple-masters management API of FreeType~2. 626 * 627 */ 628 #define FT_MULTIPLE_MASTERS_H <ftmm.h> 629 630 631 /************************************************************************* 632 * 633 * @macro: 634 * FT_SFNT_NAMES_H 635 * 636 * @description: 637 * A macro used in #include statements to name the file containing the 638 * optional FreeType~2 API which accesses embedded `name' strings in 639 * SFNT-based font formats (i.e., TrueType and OpenType). 640 * 641 */ 642 #define FT_SFNT_NAMES_H <ftsnames.h> 643 644 645 /************************************************************************* 646 * 647 * @macro: 648 * FT_OPENTYPE_VALIDATE_H 649 * 650 * @description: 651 * A macro used in #include statements to name the file containing the 652 * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, 653 * GPOS, GSUB, JSTF). 654 * 655 */ 656 #define FT_OPENTYPE_VALIDATE_H <ftotval.h> 657 658 659 /************************************************************************* 660 * 661 * @macro: 662 * FT_GX_VALIDATE_H 663 * 664 * @description: 665 * A macro used in #include statements to name the file containing the 666 * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, 667 * mort, morx, bsln, just, kern, opbd, trak, prop). 668 * 669 */ 670 #define FT_GX_VALIDATE_H <ftgxval.h> 671 672 673 /************************************************************************* 674 * 675 * @macro: 676 * FT_PFR_H 677 * 678 * @description: 679 * A macro used in #include statements to name the file containing the 680 * FreeType~2 API which accesses PFR-specific data. 681 * 682 */ 683 #define FT_PFR_H <ftpfr.h> 684 685 686 /************************************************************************* 687 * 688 * @macro: 689 * FT_STROKER_H 690 * 691 * @description: 692 * A macro used in #include statements to name the file containing the 693 * FreeType~2 API which provides functions to stroke outline paths. 694 */ 695 #define FT_STROKER_H <ftstroke.h> 696 697 698 /************************************************************************* 699 * 700 * @macro: 701 * FT_SYNTHESIS_H 702 * 703 * @description: 704 * A macro used in #include statements to name the file containing the 705 * FreeType~2 API which performs artificial obliquing and emboldening. 706 */ 707 #define FT_SYNTHESIS_H <ftsynth.h> 708 709 710 /************************************************************************* 711 * 712 * @macro: 713 * FT_XFREE86_H 714 * 715 * @description: 716 * A macro used in #include statements to name the file containing the 717 * FreeType~2 API which provides functions specific to the XFree86 and 718 * X.Org X11 servers. 719 */ 720 #define FT_XFREE86_H <ftxf86.h> 721 722 723 /************************************************************************* 724 * 725 * @macro: 726 * FT_TRIGONOMETRY_H 727 * 728 * @description: 729 * A macro used in #include statements to name the file containing the 730 * FreeType~2 API which performs trigonometric computations (e.g., 731 * cosines and arc tangents). 732 */ 733 #define FT_TRIGONOMETRY_H <fttrigon.h> 734 735 736 /************************************************************************* 737 * 738 * @macro: 739 * FT_LCD_FILTER_H 740 * 741 * @description: 742 * A macro used in #include statements to name the file containing the 743 * FreeType~2 API which performs color filtering for subpixel rendering. 744 */ 745 #define FT_LCD_FILTER_H <ftlcdfil.h> 746 747 748 /************************************************************************* 749 * 750 * @macro: 751 * FT_UNPATENTED_HINTING_H 752 * 753 * @description: 754 * A macro used in #include statements to name the file containing the 755 * FreeType~2 API which performs color filtering for subpixel rendering. 756 */ 757 #define FT_UNPATENTED_HINTING_H <ttunpat.h> 758 759 760 /************************************************************************* 761 * 762 * @macro: 763 * FT_INCREMENTAL_H 764 * 765 * @description: 766 * A macro used in #include statements to name the file containing the 767 * FreeType~2 API which performs color filtering for subpixel rendering. 768 */ 769 #define FT_INCREMENTAL_H <ftincrem.h> 770 771 772 /************************************************************************* 773 * 774 * @macro: 775 * FT_GASP_H 776 * 777 * @description: 778 * A macro used in #include statements to name the file containing the 779 * FreeType~2 API which returns entries from the TrueType GASP table. 780 */ 781 #define FT_GASP_H <ftgasp.h> 782 783 784 /************************************************************************* 785 * 786 * @macro: 787 * FT_ADVANCES_H 788 * 789 * @description: 790 * A macro used in #include statements to name the file containing the 791 * FreeType~2 API which returns individual and ranged glyph advances. 792 */ 793 #define FT_ADVANCES_H <ftadvanc.h> 794 795 796 /* */ 797 798 #define FT_ERROR_DEFINITIONS_H <fterrdef.h> 799 800 801 /* The internals of the cache sub-system are no longer exposed. We */ 802 /* default to FT_CACHE_H at the moment just in case, but we know of */ 803 /* no rogue client that uses them. */ 804 /* */ 805 #define FT_CACHE_MANAGER_H <ftcache.h> 806 #define FT_CACHE_INTERNAL_MRU_H <ftcache.h> 807 #define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h> 808 #define FT_CACHE_INTERNAL_CACHE_H <ftcache.h> 809 #define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h> 810 #define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h> 811 #define FT_CACHE_INTERNAL_SBITS_H <ftcache.h> 812 813 814 #define FT_INCREMENTAL_H <ftincrem.h> 815 816 #define FT_TRUETYPE_UNPATENTED_H <ttunpat.h> 817 818 819 /* 820 * Include internal headers definitions from <internal/...> 821 * only when building the library. 822 */ 823 #ifdef FT2_BUILD_LIBRARY 824 #define FT_INTERNAL_INTERNAL_H <internal/internal.h> 825 #include FT_INTERNAL_INTERNAL_H 826 #endif /* FT2_BUILD_LIBRARY */ 827 828 829 #endif /* __FT2_BUILD_H__ */ 830 831 832 /* END */ 833