00001 /***************************************************************************/ 00002 /* */ 00003 /* ftheader.h */ 00004 /* */ 00005 /* Build macros of the FreeType 2 library. */ 00006 /* */ 00007 /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by */ 00008 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00009 /* */ 00010 /* This file is part of the FreeType project, and may only be used, */ 00011 /* modified, and distributed under the terms of the FreeType project */ 00012 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00013 /* this file you indicate that you have read the license and */ 00014 /* understand and accept it fully. */ 00015 /* */ 00016 /***************************************************************************/ 00017 00018 #ifndef __FT_HEADER_H__ 00019 #define __FT_HEADER_H__ 00020 00021 00022 /*@***********************************************************************/ 00023 /* */ 00024 /* <Macro> */ 00025 /* FT_BEGIN_HEADER */ 00026 /* */ 00027 /* <Description> */ 00028 /* This macro is used in association with @FT_END_HEADER in header */ 00029 /* files to ensure that the declarations within are properly */ 00030 /* encapsulated in an `extern "C" { .. }' block when included from a */ 00031 /* C++ compiler. */ 00032 /* */ 00033 #ifdef __cplusplus 00034 #define FT_BEGIN_HEADER extern "C" { 00035 #else 00036 #define FT_BEGIN_HEADER /* nothing */ 00037 #endif 00038 00039 00040 /*@***********************************************************************/ 00041 /* */ 00042 /* <Macro> */ 00043 /* FT_END_HEADER */ 00044 /* */ 00045 /* <Description> */ 00046 /* This macro is used in association with @FT_BEGIN_HEADER in header */ 00047 /* files to ensure that the declarations within are properly */ 00048 /* encapsulated in an `extern "C" { .. }' block when included from a */ 00049 /* C++ compiler. */ 00050 /* */ 00051 #ifdef __cplusplus 00052 #define FT_END_HEADER } 00053 #else 00054 #define FT_END_HEADER /* nothing */ 00055 #endif 00056 00057 00058 /*************************************************************************/ 00059 /* */ 00060 /* Aliases for the FreeType 2 public and configuration files. */ 00061 /* */ 00062 /*************************************************************************/ 00063 00064 /*************************************************************************/ 00065 /* */ 00066 /* <Section> */ 00067 /* header_file_macros */ 00068 /* */ 00069 /* <Title> */ 00070 /* Header File Macros */ 00071 /* */ 00072 /* <Abstract> */ 00073 /* Macro definitions used to #include specific header files. */ 00074 /* */ 00075 /* <Description> */ 00076 /* The following macros are defined to the name of specific */ 00077 /* FreeType~2 header files. They can be used directly in #include */ 00078 /* statements as in: */ 00079 /* */ 00080 /* { */ 00081 /* #include FT_FREETYPE_H */ 00082 /* #include FT_MULTIPLE_MASTERS_H */ 00083 /* #include FT_GLYPH_H */ 00084 /* } */ 00085 /* */ 00086 /* There are several reasons why we are now using macros to name */ 00087 /* public header files. The first one is that such macros are not */ 00088 /* limited to the infamous 8.3~naming rule required by DOS (and */ 00089 /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ 00090 /* */ 00091 /* The second reason is that it allows for more flexibility in the */ 00092 /* way FreeType~2 is installed on a given system. */ 00093 /* */ 00094 /*************************************************************************/ 00095 00096 00097 /* configuration files */ 00098 00099 /************************************************************************* 00100 * 00101 * @macro: 00102 * FT_CONFIG_CONFIG_H 00103 * 00104 * @description: 00105 * A macro used in #include statements to name the file containing 00106 * FreeType~2 configuration data. 00107 * 00108 */ 00109 #ifndef FT_CONFIG_CONFIG_H 00110 #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> 00111 #endif 00112 00113 00114 /************************************************************************* 00115 * 00116 * @macro: 00117 * FT_CONFIG_STANDARD_LIBRARY_H 00118 * 00119 * @description: 00120 * A macro used in #include statements to name the file containing 00121 * FreeType~2 interface to the standard C library functions. 00122 * 00123 */ 00124 #ifndef FT_CONFIG_STANDARD_LIBRARY_H 00125 #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> 00126 #endif 00127 00128 00129 /************************************************************************* 00130 * 00131 * @macro: 00132 * FT_CONFIG_OPTIONS_H 00133 * 00134 * @description: 00135 * A macro used in #include statements to name the file containing 00136 * FreeType~2 project-specific configuration options. 00137 * 00138 */ 00139 #ifndef FT_CONFIG_OPTIONS_H 00140 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> 00141 #endif 00142 00143 00144 /************************************************************************* 00145 * 00146 * @macro: 00147 * FT_CONFIG_MODULES_H 00148 * 00149 * @description: 00150 * A macro used in #include statements to name the file containing the 00151 * list of FreeType~2 modules that are statically linked to new library 00152 * instances in @FT_Init_FreeType. 00153 * 00154 */ 00155 #ifndef FT_CONFIG_MODULES_H 00156 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> 00157 #endif 00158 00159 /* */ 00160 00161 /* public headers */ 00162 00163 /************************************************************************* 00164 * 00165 * @macro: 00166 * FT_FREETYPE_H 00167 * 00168 * @description: 00169 * A macro used in #include statements to name the file containing the 00170 * base FreeType~2 API. 00171 * 00172 */ 00173 #define FT_FREETYPE_H <freetype/freetype.h> 00174 00175 00176 /************************************************************************* 00177 * 00178 * @macro: 00179 * FT_ERRORS_H 00180 * 00181 * @description: 00182 * A macro used in #include statements to name the file containing the 00183 * list of FreeType~2 error codes (and messages). 00184 * 00185 * It is included by @FT_FREETYPE_H. 00186 * 00187 */ 00188 #define FT_ERRORS_H <freetype/fterrors.h> 00189 00190 00191 /************************************************************************* 00192 * 00193 * @macro: 00194 * FT_MODULE_ERRORS_H 00195 * 00196 * @description: 00197 * A macro used in #include statements to name the file containing the 00198 * list of FreeType~2 module error offsets (and messages). 00199 * 00200 */ 00201 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> 00202 00203 00204 /************************************************************************* 00205 * 00206 * @macro: 00207 * FT_SYSTEM_H 00208 * 00209 * @description: 00210 * A macro used in #include statements to name the file containing the 00211 * FreeType~2 interface to low-level operations (i.e., memory management 00212 * and stream i/o). 00213 * 00214 * It is included by @FT_FREETYPE_H. 00215 * 00216 */ 00217 #define FT_SYSTEM_H <freetype/ftsystem.h> 00218 00219 00220 /************************************************************************* 00221 * 00222 * @macro: 00223 * FT_IMAGE_H 00224 * 00225 * @description: 00226 * A macro used in #include statements to name the file containing type 00227 * definitions related to glyph images (i.e., bitmaps, outlines, 00228 * scan-converter parameters). 00229 * 00230 * It is included by @FT_FREETYPE_H. 00231 * 00232 */ 00233 #define FT_IMAGE_H <freetype/ftimage.h> 00234 00235 00236 /************************************************************************* 00237 * 00238 * @macro: 00239 * FT_TYPES_H 00240 * 00241 * @description: 00242 * A macro used in #include statements to name the file containing the 00243 * basic data types defined by FreeType~2. 00244 * 00245 * It is included by @FT_FREETYPE_H. 00246 * 00247 */ 00248 #define FT_TYPES_H <freetype/fttypes.h> 00249 00250 00251 /************************************************************************* 00252 * 00253 * @macro: 00254 * FT_LIST_H 00255 * 00256 * @description: 00257 * A macro used in #include statements to name the file containing the 00258 * list management API of FreeType~2. 00259 * 00260 * (Most applications will never need to include this file.) 00261 * 00262 */ 00263 #define FT_LIST_H <freetype/ftlist.h> 00264 00265 00266 /************************************************************************* 00267 * 00268 * @macro: 00269 * FT_OUTLINE_H 00270 * 00271 * @description: 00272 * A macro used in #include statements to name the file containing the 00273 * scalable outline management API of FreeType~2. 00274 * 00275 */ 00276 #define FT_OUTLINE_H <freetype/ftoutln.h> 00277 00278 00279 /************************************************************************* 00280 * 00281 * @macro: 00282 * FT_SIZES_H 00283 * 00284 * @description: 00285 * A macro used in #include statements to name the file containing the 00286 * API which manages multiple @FT_Size objects per face. 00287 * 00288 */ 00289 #define FT_SIZES_H <freetype/ftsizes.h> 00290 00291 00292 /************************************************************************* 00293 * 00294 * @macro: 00295 * FT_MODULE_H 00296 * 00297 * @description: 00298 * A macro used in #include statements to name the file containing the 00299 * module management API of FreeType~2. 00300 * 00301 */ 00302 #define FT_MODULE_H <freetype/ftmodapi.h> 00303 00304 00305 /************************************************************************* 00306 * 00307 * @macro: 00308 * FT_RENDER_H 00309 * 00310 * @description: 00311 * A macro used in #include statements to name the file containing the 00312 * renderer module management API of FreeType~2. 00313 * 00314 */ 00315 #define FT_RENDER_H <freetype/ftrender.h> 00316 00317 00318 /************************************************************************* 00319 * 00320 * @macro: 00321 * FT_TYPE1_TABLES_H 00322 * 00323 * @description: 00324 * A macro used in #include statements to name the file containing the 00325 * types and API specific to the Type~1 format. 00326 * 00327 */ 00328 #define FT_TYPE1_TABLES_H <freetype/t1tables.h> 00329 00330 00331 /************************************************************************* 00332 * 00333 * @macro: 00334 * FT_TRUETYPE_IDS_H 00335 * 00336 * @description: 00337 * A macro used in #include statements to name the file containing the 00338 * enumeration values which identify name strings, languages, encodings, 00339 * etc. This file really contains a _large_ set of constant macro 00340 * definitions, taken from the TrueType and OpenType specifications. 00341 * 00342 */ 00343 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> 00344 00345 00346 /************************************************************************* 00347 * 00348 * @macro: 00349 * FT_TRUETYPE_TABLES_H 00350 * 00351 * @description: 00352 * A macro used in #include statements to name the file containing the 00353 * types and API specific to the TrueType (as well as OpenType) format. 00354 * 00355 */ 00356 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h> 00357 00358 00359 /************************************************************************* 00360 * 00361 * @macro: 00362 * FT_TRUETYPE_TAGS_H 00363 * 00364 * @description: 00365 * A macro used in #include statements to name the file containing the 00366 * definitions of TrueType four-byte `tags' which identify blocks in 00367 * SFNT-based font formats (i.e., TrueType and OpenType). 00368 * 00369 */ 00370 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h> 00371 00372 00373 /************************************************************************* 00374 * 00375 * @macro: 00376 * FT_BDF_H 00377 * 00378 * @description: 00379 * A macro used in #include statements to name the file containing the 00380 * definitions of an API which accesses BDF-specific strings from a 00381 * face. 00382 * 00383 */ 00384 #define FT_BDF_H <freetype/ftbdf.h> 00385 00386 00387 /************************************************************************* 00388 * 00389 * @macro: 00390 * FT_CID_H 00391 * 00392 * @description: 00393 * A macro used in #include statements to name the file containing the 00394 * definitions of an API which access CID font information from a 00395 * face. 00396 * 00397 */ 00398 #define FT_CID_H <freetype/ftcid.h> 00399 00400 00401 /************************************************************************* 00402 * 00403 * @macro: 00404 * FT_GZIP_H 00405 * 00406 * @description: 00407 * A macro used in #include statements to name the file containing the 00408 * definitions of an API which supports gzip-compressed files. 00409 * 00410 */ 00411 #define FT_GZIP_H <freetype/ftgzip.h> 00412 00413 00414 /************************************************************************* 00415 * 00416 * @macro: 00417 * FT_LZW_H 00418 * 00419 * @description: 00420 * A macro used in #include statements to name the file containing the 00421 * definitions of an API which supports LZW-compressed files. 00422 * 00423 */ 00424 #define FT_LZW_H <freetype/ftlzw.h> 00425 00426 00427 /************************************************************************* 00428 * 00429 * @macro: 00430 * FT_WINFONTS_H 00431 * 00432 * @description: 00433 * A macro used in #include statements to name the file containing the 00434 * definitions of an API which supports Windows FNT files. 00435 * 00436 */ 00437 #define FT_WINFONTS_H <freetype/ftwinfnt.h> 00438 00439 00440 /************************************************************************* 00441 * 00442 * @macro: 00443 * FT_GLYPH_H 00444 * 00445 * @description: 00446 * A macro used in #include statements to name the file containing the 00447 * API of the optional glyph management component. 00448 * 00449 */ 00450 #define FT_GLYPH_H <freetype/ftglyph.h> 00451 00452 00453 /************************************************************************* 00454 * 00455 * @macro: 00456 * FT_BITMAP_H 00457 * 00458 * @description: 00459 * A macro used in #include statements to name the file containing the 00460 * API of the optional bitmap conversion component. 00461 * 00462 */ 00463 #define FT_BITMAP_H <freetype/ftbitmap.h> 00464 00465 00466 /************************************************************************* 00467 * 00468 * @macro: 00469 * FT_BBOX_H 00470 * 00471 * @description: 00472 * A macro used in #include statements to name the file containing the 00473 * API of the optional exact bounding box computation routines. 00474 * 00475 */ 00476 #define FT_BBOX_H <freetype/ftbbox.h> 00477 00478 00479 /************************************************************************* 00480 * 00481 * @macro: 00482 * FT_CACHE_H 00483 * 00484 * @description: 00485 * A macro used in #include statements to name the file containing the 00486 * API of the optional FreeType~2 cache sub-system. 00487 * 00488 */ 00489 #define FT_CACHE_H <freetype/ftcache.h> 00490 00491 00492 /************************************************************************* 00493 * 00494 * @macro: 00495 * FT_CACHE_IMAGE_H 00496 * 00497 * @description: 00498 * A macro used in #include statements to name the file containing the 00499 * `glyph image' API of the FreeType~2 cache sub-system. 00500 * 00501 * It is used to define a cache for @FT_Glyph elements. You can also 00502 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to 00503 * store small glyph bitmaps, as it will use less memory. 00504 * 00505 * This macro is deprecated. Simply include @FT_CACHE_H to have all 00506 * glyph image-related cache declarations. 00507 * 00508 */ 00509 #define FT_CACHE_IMAGE_H FT_CACHE_H 00510 00511 00512 /************************************************************************* 00513 * 00514 * @macro: 00515 * FT_CACHE_SMALL_BITMAPS_H 00516 * 00517 * @description: 00518 * A macro used in #include statements to name the file containing the 00519 * `small bitmaps' API of the FreeType~2 cache sub-system. 00520 * 00521 * It is used to define a cache for small glyph bitmaps in a relatively 00522 * memory-efficient way. You can also use the API defined in 00523 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, 00524 * including scalable outlines. 00525 * 00526 * This macro is deprecated. Simply include @FT_CACHE_H to have all 00527 * small bitmaps-related cache declarations. 00528 * 00529 */ 00530 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H 00531 00532 00533 /************************************************************************* 00534 * 00535 * @macro: 00536 * FT_CACHE_CHARMAP_H 00537 * 00538 * @description: 00539 * A macro used in #include statements to name the file containing the 00540 * `charmap' API of the FreeType~2 cache sub-system. 00541 * 00542 * This macro is deprecated. Simply include @FT_CACHE_H to have all 00543 * charmap-based cache declarations. 00544 * 00545 */ 00546 #define FT_CACHE_CHARMAP_H FT_CACHE_H 00547 00548 00549 /************************************************************************* 00550 * 00551 * @macro: 00552 * FT_MAC_H 00553 * 00554 * @description: 00555 * A macro used in #include statements to name the file containing the 00556 * Macintosh-specific FreeType~2 API. The latter is used to access 00557 * fonts embedded in resource forks. 00558 * 00559 * This header file must be explicitly included by client applications 00560 * compiled on the Mac (note that the base API still works though). 00561 * 00562 */ 00563 #define FT_MAC_H <freetype/ftmac.h> 00564 00565 00566 /************************************************************************* 00567 * 00568 * @macro: 00569 * FT_MULTIPLE_MASTERS_H 00570 * 00571 * @description: 00572 * A macro used in #include statements to name the file containing the 00573 * optional multiple-masters management API of FreeType~2. 00574 * 00575 */ 00576 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> 00577 00578 00579 /************************************************************************* 00580 * 00581 * @macro: 00582 * FT_SFNT_NAMES_H 00583 * 00584 * @description: 00585 * A macro used in #include statements to name the file containing the 00586 * optional FreeType~2 API which accesses embedded `name' strings in 00587 * SFNT-based font formats (i.e., TrueType and OpenType). 00588 * 00589 */ 00590 #define FT_SFNT_NAMES_H <freetype/ftsnames.h> 00591 00592 00593 /************************************************************************* 00594 * 00595 * @macro: 00596 * FT_OPENTYPE_VALIDATE_H 00597 * 00598 * @description: 00599 * A macro used in #include statements to name the file containing the 00600 * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, 00601 * GPOS, GSUB, JSTF). 00602 * 00603 */ 00604 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> 00605 00606 00607 /************************************************************************* 00608 * 00609 * @macro: 00610 * FT_GX_VALIDATE_H 00611 * 00612 * @description: 00613 * A macro used in #include statements to name the file containing the 00614 * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, 00615 * mort, morx, bsln, just, kern, opbd, trak, prop). 00616 * 00617 */ 00618 #define FT_GX_VALIDATE_H <freetype/ftgxval.h> 00619 00620 00621 /************************************************************************* 00622 * 00623 * @macro: 00624 * FT_PFR_H 00625 * 00626 * @description: 00627 * A macro used in #include statements to name the file containing the 00628 * FreeType~2 API which accesses PFR-specific data. 00629 * 00630 */ 00631 #define FT_PFR_H <freetype/ftpfr.h> 00632 00633 00634 /************************************************************************* 00635 * 00636 * @macro: 00637 * FT_STROKER_H 00638 * 00639 * @description: 00640 * A macro used in #include statements to name the file containing the 00641 * FreeType~2 API which provides functions to stroke outline paths. 00642 */ 00643 #define FT_STROKER_H <freetype/ftstroke.h> 00644 00645 00646 /************************************************************************* 00647 * 00648 * @macro: 00649 * FT_SYNTHESIS_H 00650 * 00651 * @description: 00652 * A macro used in #include statements to name the file containing the 00653 * FreeType~2 API which performs artificial obliquing and emboldening. 00654 */ 00655 #define FT_SYNTHESIS_H <freetype/ftsynth.h> 00656 00657 00658 /************************************************************************* 00659 * 00660 * @macro: 00661 * FT_XFREE86_H 00662 * 00663 * @description: 00664 * A macro used in #include statements to name the file containing the 00665 * FreeType~2 API which provides functions specific to the XFree86 and 00666 * X.Org X11 servers. 00667 */ 00668 #define FT_XFREE86_H <freetype/ftxf86.h> 00669 00670 00671 /************************************************************************* 00672 * 00673 * @macro: 00674 * FT_TRIGONOMETRY_H 00675 * 00676 * @description: 00677 * A macro used in #include statements to name the file containing the 00678 * FreeType~2 API which performs trigonometric computations (e.g., 00679 * cosines and arc tangents). 00680 */ 00681 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h> 00682 00683 00684 /************************************************************************* 00685 * 00686 * @macro: 00687 * FT_LCD_FILTER_H 00688 * 00689 * @description: 00690 * A macro used in #include statements to name the file containing the 00691 * FreeType~2 API which performs color filtering for subpixel rendering. 00692 */ 00693 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h> 00694 00695 00696 /************************************************************************* 00697 * 00698 * @macro: 00699 * FT_UNPATENTED_HINTING_H 00700 * 00701 * @description: 00702 * A macro used in #include statements to name the file containing the 00703 * FreeType~2 API which performs color filtering for subpixel rendering. 00704 */ 00705 #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h> 00706 00707 00708 /************************************************************************* 00709 * 00710 * @macro: 00711 * FT_INCREMENTAL_H 00712 * 00713 * @description: 00714 * A macro used in #include statements to name the file containing the 00715 * FreeType~2 API which performs color filtering for subpixel rendering. 00716 */ 00717 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 00718 00719 00720 /************************************************************************* 00721 * 00722 * @macro: 00723 * FT_GASP_H 00724 * 00725 * @description: 00726 * A macro used in #include statements to name the file containing the 00727 * FreeType~2 API which returns entries from the TrueType GASP table. 00728 */ 00729 #define FT_GASP_H <freetype/ftgasp.h> 00730 00731 00732 /************************************************************************* 00733 * 00734 * @macro: 00735 * FT_ADVANCES_H 00736 * 00737 * @description: 00738 * A macro used in #include statements to name the file containing the 00739 * FreeType~2 API which returns individual and ranged glyph advances. 00740 */ 00741 #define FT_ADVANCES_H <freetype/ftadvanc.h> 00742 00743 00744 /* */ 00745 00746 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> 00747 00748 00749 /* The internals of the cache sub-system are no longer exposed. We */ 00750 /* default to FT_CACHE_H at the moment just in case, but we know of */ 00751 /* no rogue client that uses them. */ 00752 /* */ 00753 #define FT_CACHE_MANAGER_H <freetype/ftcache.h> 00754 #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h> 00755 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h> 00756 #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h> 00757 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h> 00758 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h> 00759 #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h> 00760 00761 00762 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 00763 00764 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> 00765 00766 00767 /* 00768 * Include internal headers definitions from <freetype/internal/...> 00769 * only when building the library. 00770 */ 00771 #ifdef FT2_BUILD_LIBRARY 00772 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> 00773 #include FT_INTERNAL_INTERNAL_H 00774 #endif /* FT2_BUILD_LIBRARY */ 00775 00776 00777 #endif /* __FT2_BUILD_H__ */ 00778 00779 00780 /* END */