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