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