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 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_WINFONTS_H 431 * 432 * @description: 433 * A macro used in #include statements to name the file containing the 434 * definitions of an API which supports Windows FNT files. 435 * 436 */ 437 #define FT_WINFONTS_H <freetype/ftwinfnt.h> 438 439 440 /************************************************************************* 441 * 442 * @macro: 443 * FT_GLYPH_H 444 * 445 * @description: 446 * A macro used in #include statements to name the file containing the 447 * API of the optional glyph management component. 448 * 449 */ 450 #define FT_GLYPH_H <freetype/ftglyph.h> 451 452 453 /************************************************************************* 454 * 455 * @macro: 456 * FT_BITMAP_H 457 * 458 * @description: 459 * A macro used in #include statements to name the file containing the 460 * API of the optional bitmap conversion component. 461 * 462 */ 463 #define FT_BITMAP_H <freetype/ftbitmap.h> 464 465 466 /************************************************************************* 467 * 468 * @macro: 469 * FT_BBOX_H 470 * 471 * @description: 472 * A macro used in #include statements to name the file containing the 473 * API of the optional exact bounding box computation routines. 474 * 475 */ 476 #define FT_BBOX_H <freetype/ftbbox.h> 477 478 479 /************************************************************************* 480 * 481 * @macro: 482 * FT_CACHE_H 483 * 484 * @description: 485 * A macro used in #include statements to name the file containing the 486 * API of the optional FreeType~2 cache sub-system. 487 * 488 */ 489 #define FT_CACHE_H <freetype/ftcache.h> 490 491 492 /************************************************************************* 493 * 494 * @macro: 495 * FT_CACHE_IMAGE_H 496 * 497 * @description: 498 * A macro used in #include statements to name the file containing the 499 * `glyph image' API of the FreeType~2 cache sub-system. 500 * 501 * It is used to define a cache for @FT_Glyph elements. You can also 502 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to 503 * store small glyph bitmaps, as it will use less memory. 504 * 505 * This macro is deprecated. Simply include @FT_CACHE_H to have all 506 * glyph image-related cache declarations. 507 * 508 */ 509 #define FT_CACHE_IMAGE_H FT_CACHE_H 510 511 512 /************************************************************************* 513 * 514 * @macro: 515 * FT_CACHE_SMALL_BITMAPS_H 516 * 517 * @description: 518 * A macro used in #include statements to name the file containing the 519 * `small bitmaps' API of the FreeType~2 cache sub-system. 520 * 521 * It is used to define a cache for small glyph bitmaps in a relatively 522 * memory-efficient way. You can also use the API defined in 523 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, 524 * including scalable outlines. 525 * 526 * This macro is deprecated. Simply include @FT_CACHE_H to have all 527 * small bitmaps-related cache declarations. 528 * 529 */ 530 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H 531 532 533 /************************************************************************* 534 * 535 * @macro: 536 * FT_CACHE_CHARMAP_H 537 * 538 * @description: 539 * A macro used in #include statements to name the file containing the 540 * `charmap' API of the FreeType~2 cache sub-system. 541 * 542 * This macro is deprecated. Simply include @FT_CACHE_H to have all 543 * charmap-based cache declarations. 544 * 545 */ 546 #define FT_CACHE_CHARMAP_H FT_CACHE_H 547 548 549 /************************************************************************* 550 * 551 * @macro: 552 * FT_MAC_H 553 * 554 * @description: 555 * A macro used in #include statements to name the file containing the 556 * Macintosh-specific FreeType~2 API. The latter is used to access 557 * fonts embedded in resource forks. 558 * 559 * This header file must be explicitly included by client applications 560 * compiled on the Mac (note that the base API still works though). 561 * 562 */ 563 #define FT_MAC_H <freetype/ftmac.h> 564 565 566 /************************************************************************* 567 * 568 * @macro: 569 * FT_MULTIPLE_MASTERS_H 570 * 571 * @description: 572 * A macro used in #include statements to name the file containing the 573 * optional multiple-masters management API of FreeType~2. 574 * 575 */ 576 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> 577 578 579 /************************************************************************* 580 * 581 * @macro: 582 * FT_SFNT_NAMES_H 583 * 584 * @description: 585 * A macro used in #include statements to name the file containing the 586 * optional FreeType~2 API which accesses embedded `name' strings in 587 * SFNT-based font formats (i.e., TrueType and OpenType). 588 * 589 */ 590 #define FT_SFNT_NAMES_H <freetype/ftsnames.h> 591 592 593 /************************************************************************* 594 * 595 * @macro: 596 * FT_OPENTYPE_VALIDATE_H 597 * 598 * @description: 599 * A macro used in #include statements to name the file containing the 600 * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, 601 * GPOS, GSUB, JSTF). 602 * 603 */ 604 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> 605 606 607 /************************************************************************* 608 * 609 * @macro: 610 * FT_GX_VALIDATE_H 611 * 612 * @description: 613 * A macro used in #include statements to name the file containing the 614 * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, 615 * mort, morx, bsln, just, kern, opbd, trak, prop). 616 * 617 */ 618 #define FT_GX_VALIDATE_H <freetype/ftgxval.h> 619 620 621 /************************************************************************* 622 * 623 * @macro: 624 * FT_PFR_H 625 * 626 * @description: 627 * A macro used in #include statements to name the file containing the 628 * FreeType~2 API which accesses PFR-specific data. 629 * 630 */ 631 #define FT_PFR_H <freetype/ftpfr.h> 632 633 634 /************************************************************************* 635 * 636 * @macro: 637 * FT_STROKER_H 638 * 639 * @description: 640 * A macro used in #include statements to name the file containing the 641 * FreeType~2 API which provides functions to stroke outline paths. 642 */ 643 #define FT_STROKER_H <freetype/ftstroke.h> 644 645 646 /************************************************************************* 647 * 648 * @macro: 649 * FT_SYNTHESIS_H 650 * 651 * @description: 652 * A macro used in #include statements to name the file containing the 653 * FreeType~2 API which performs artificial obliquing and emboldening. 654 */ 655 #define FT_SYNTHESIS_H <freetype/ftsynth.h> 656 657 658 /************************************************************************* 659 * 660 * @macro: 661 * FT_XFREE86_H 662 * 663 * @description: 664 * A macro used in #include statements to name the file containing the 665 * FreeType~2 API which provides functions specific to the XFree86 and 666 * X.Org X11 servers. 667 */ 668 #define FT_XFREE86_H <freetype/ftxf86.h> 669 670 671 /************************************************************************* 672 * 673 * @macro: 674 * FT_TRIGONOMETRY_H 675 * 676 * @description: 677 * A macro used in #include statements to name the file containing the 678 * FreeType~2 API which performs trigonometric computations (e.g., 679 * cosines and arc tangents). 680 */ 681 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h> 682 683 684 /************************************************************************* 685 * 686 * @macro: 687 * FT_LCD_FILTER_H 688 * 689 * @description: 690 * A macro used in #include statements to name the file containing the 691 * FreeType~2 API which performs color filtering for subpixel rendering. 692 */ 693 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h> 694 695 696 /************************************************************************* 697 * 698 * @macro: 699 * FT_UNPATENTED_HINTING_H 700 * 701 * @description: 702 * A macro used in #include statements to name the file containing the 703 * FreeType~2 API which performs color filtering for subpixel rendering. 704 */ 705 #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h> 706 707 708 /************************************************************************* 709 * 710 * @macro: 711 * FT_INCREMENTAL_H 712 * 713 * @description: 714 * A macro used in #include statements to name the file containing the 715 * FreeType~2 API which performs color filtering for subpixel rendering. 716 */ 717 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 718 719 720 /************************************************************************* 721 * 722 * @macro: 723 * FT_GASP_H 724 * 725 * @description: 726 * A macro used in #include statements to name the file containing the 727 * FreeType~2 API which returns entries from the TrueType GASP table. 728 */ 729 #define FT_GASP_H <freetype/ftgasp.h> 730 731 732 /************************************************************************* 733 * 734 * @macro: 735 * FT_ADVANCES_H 736 * 737 * @description: 738 * A macro used in #include statements to name the file containing the 739 * FreeType~2 API which returns individual and ranged glyph advances. 740 */ 741 #define FT_ADVANCES_H <freetype/ftadvanc.h> 742 743 744 /* */ 745 746 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> 747 748 749 /* The internals of the cache sub-system are no longer exposed. We */ 750 /* default to FT_CACHE_H at the moment just in case, but we know of */ 751 /* no rogue client that uses them. */ 752 /* */ 753 #define FT_CACHE_MANAGER_H <freetype/ftcache.h> 754 #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h> 755 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h> 756 #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h> 757 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h> 758 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h> 759 #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h> 760 761 762 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 763 764 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> 765 766 767 /* 768 * Include internal headers definitions from <freetype/internal/...> 769 * only when building the library. 770 */ 771 #ifdef FT2_BUILD_LIBRARY 772 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> 773 #include FT_INTERNAL_INTERNAL_H 774 #endif /* FT2_BUILD_LIBRARY */ 775 776 777 #endif /* __FT2_BUILD_H__ */ 778 779 780 /* END */ 781