1 /***************************************************************************/
5 /* Build macros of the FreeType 2 library. */
7 /* Copyright 1996-2008, 2010, 2012, 2013 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
18 #ifndef __FT_HEADER_H__
19 #define __FT_HEADER_H__
22 /*@***********************************************************************/
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 */
34 #define FT_BEGIN_HEADER extern "C" {
36 #define FT_BEGIN_HEADER /* nothing */
40 /*@***********************************************************************/
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 */
52 #define FT_END_HEADER }
54 #define FT_END_HEADER /* nothing */
58 /*************************************************************************/
60 /* Aliases for the FreeType 2 public and configuration files. */
62 /*************************************************************************/
64 /*************************************************************************/
67 /* header_file_macros */
70 /* Header File Macros */
73 /* Macro definitions used to #include specific header files. */
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: */
81 /* #include FT_FREETYPE_H */
82 /* #include FT_MULTIPLE_MASTERS_H */
83 /* #include FT_GLYPH_H */
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'). */
91 /* The second reason is that it allows for more flexibility in the */
92 /* way FreeType~2 is installed on a given system. */
94 /*************************************************************************/
97 /* configuration files */
99 /*************************************************************************
105 * A macro used in #include statements to name the file containing
106 * FreeType~2 configuration data.
109 #ifndef FT_CONFIG_CONFIG_H
110 #define FT_CONFIG_CONFIG_H <config/ftconfig.h>
114 /*************************************************************************
117 * FT_CONFIG_STANDARD_LIBRARY_H
120 * A macro used in #include statements to name the file containing
121 * FreeType~2 interface to the standard C library functions.
124 #ifndef FT_CONFIG_STANDARD_LIBRARY_H
125 #define FT_CONFIG_STANDARD_LIBRARY_H <config/ftstdlib.h>
129 /*************************************************************************
132 * FT_CONFIG_OPTIONS_H
135 * A macro used in #include statements to name the file containing
136 * FreeType~2 project-specific configuration options.
139 #ifndef FT_CONFIG_OPTIONS_H
140 #define FT_CONFIG_OPTIONS_H <config/ftoption.h>
144 /*************************************************************************
147 * FT_CONFIG_MODULES_H
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.
155 #ifndef FT_CONFIG_MODULES_H
156 #define FT_CONFIG_MODULES_H <config/ftmodule.h>
163 /*************************************************************************
169 * A macro used in #include statements to name the file containing the
170 * base FreeType~2 API.
173 #define FT_FREETYPE_H <freetype.h>
176 /*************************************************************************
182 * A macro used in #include statements to name the file containing the
183 * list of FreeType~2 error codes (and messages).
185 * It is included by @FT_FREETYPE_H.
188 #define FT_ERRORS_H <fterrors.h>
191 /*************************************************************************
197 * A macro used in #include statements to name the file containing the
198 * list of FreeType~2 module error offsets (and messages).
201 #define FT_MODULE_ERRORS_H <ftmoderr.h>
204 /*************************************************************************
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
214 * It is included by @FT_FREETYPE_H.
217 #define FT_SYSTEM_H <ftsystem.h>
220 /*************************************************************************
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).
230 * It is included by @FT_FREETYPE_H.
233 #define FT_IMAGE_H <ftimage.h>
236 /*************************************************************************
242 * A macro used in #include statements to name the file containing the
243 * basic data types defined by FreeType~2.
245 * It is included by @FT_FREETYPE_H.
248 #define FT_TYPES_H <fttypes.h>
251 /*************************************************************************
257 * A macro used in #include statements to name the file containing the
258 * list management API of FreeType~2.
260 * (Most applications will never need to include this file.)
263 #define FT_LIST_H <ftlist.h>
266 /*************************************************************************
272 * A macro used in #include statements to name the file containing the
273 * scalable outline management API of FreeType~2.
276 #define FT_OUTLINE_H <ftoutln.h>
279 /*************************************************************************
285 * A macro used in #include statements to name the file containing the
286 * API which manages multiple @FT_Size objects per face.
289 #define FT_SIZES_H <ftsizes.h>
292 /*************************************************************************
298 * A macro used in #include statements to name the file containing the
299 * module management API of FreeType~2.
302 #define FT_MODULE_H <ftmodapi.h>
305 /*************************************************************************
311 * A macro used in #include statements to name the file containing the
312 * renderer module management API of FreeType~2.
315 #define FT_RENDER_H <ftrender.h>
318 /*************************************************************************
324 * A macro used in #include statements to name the file containing
325 * structures and macros related to the auto-hinting module.
328 #define FT_AUTOHINTER_H <ftautoh.h>
331 /*************************************************************************
337 * A macro used in #include statements to name the file containing
338 * structures and macros related to the CFF driver module.
341 #define FT_CFF_DRIVER_H <ftcffdrv.h>
344 /*************************************************************************
347 * FT_TRUETYPE_DRIVER_H
350 * A macro used in #include statements to name the file containing
351 * structures and macros related to the TrueType driver module.
354 #define FT_TRUETYPE_DRIVER_H <ftttdrv.h>
357 /*************************************************************************
363 * A macro used in #include statements to name the file containing the
364 * types and API specific to the Type~1 format.
367 #define FT_TYPE1_TABLES_H <t1tables.h>
370 /*************************************************************************
376 * A macro used in #include statements to name the file containing the
377 * enumeration values which identify name strings, languages, encodings,
378 * etc. This file really contains a _large_ set of constant macro
379 * definitions, taken from the TrueType and OpenType specifications.
382 #define FT_TRUETYPE_IDS_H <ttnameid.h>
385 /*************************************************************************
388 * FT_TRUETYPE_TABLES_H
391 * A macro used in #include statements to name the file containing the
392 * types and API specific to the TrueType (as well as OpenType) format.
395 #define FT_TRUETYPE_TABLES_H <tttables.h>
398 /*************************************************************************
404 * A macro used in #include statements to name the file containing the
405 * definitions of TrueType four-byte `tags' which identify blocks in
406 * SFNT-based font formats (i.e., TrueType and OpenType).
409 #define FT_TRUETYPE_TAGS_H <tttags.h>
412 /*************************************************************************
418 * A macro used in #include statements to name the file containing the
419 * definitions of an API which accesses BDF-specific strings from a
423 #define FT_BDF_H <ftbdf.h>
426 /*************************************************************************
432 * A macro used in #include statements to name the file containing the
433 * definitions of an API which access CID font information from a
437 #define FT_CID_H <ftcid.h>
440 /*************************************************************************
446 * A macro used in #include statements to name the file containing the
447 * definitions of an API which supports gzip-compressed files.
450 #define FT_GZIP_H <ftgzip.h>
453 /*************************************************************************
459 * A macro used in #include statements to name the file containing the
460 * definitions of an API which supports LZW-compressed files.
463 #define FT_LZW_H <ftlzw.h>
466 /*************************************************************************
472 * A macro used in #include statements to name the file containing the
473 * definitions of an API which supports bzip2-compressed files.
476 #define FT_BZIP2_H <ftbzip2.h>
479 /*************************************************************************
485 * A macro used in #include statements to name the file containing the
486 * definitions of an API which supports Windows FNT files.
489 #define FT_WINFONTS_H <ftwinfnt.h>
492 /*************************************************************************
498 * A macro used in #include statements to name the file containing the
499 * API of the optional glyph management component.
502 #define FT_GLYPH_H <ftglyph.h>
505 /*************************************************************************
511 * A macro used in #include statements to name the file containing the
512 * API of the optional bitmap conversion component.
515 #define FT_BITMAP_H <ftbitmap.h>
518 /*************************************************************************
524 * A macro used in #include statements to name the file containing the
525 * API of the optional exact bounding box computation routines.
528 #define FT_BBOX_H <ftbbox.h>
531 /*************************************************************************
537 * A macro used in #include statements to name the file containing the
538 * API of the optional FreeType~2 cache sub-system.
541 #define FT_CACHE_H <ftcache.h>
544 /*************************************************************************
550 * A macro used in #include statements to name the file containing the
551 * `glyph image' API of the FreeType~2 cache sub-system.
553 * It is used to define a cache for @FT_Glyph elements. You can also
554 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
555 * store small glyph bitmaps, as it will use less memory.
557 * This macro is deprecated. Simply include @FT_CACHE_H to have all
558 * glyph image-related cache declarations.
561 #define FT_CACHE_IMAGE_H FT_CACHE_H
564 /*************************************************************************
567 * FT_CACHE_SMALL_BITMAPS_H
570 * A macro used in #include statements to name the file containing the
571 * `small bitmaps' API of the FreeType~2 cache sub-system.
573 * It is used to define a cache for small glyph bitmaps in a relatively
574 * memory-efficient way. You can also use the API defined in
575 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
576 * including scalable outlines.
578 * This macro is deprecated. Simply include @FT_CACHE_H to have all
579 * small bitmaps-related cache declarations.
582 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
585 /*************************************************************************
591 * A macro used in #include statements to name the file containing the
592 * `charmap' API of the FreeType~2 cache sub-system.
594 * This macro is deprecated. Simply include @FT_CACHE_H to have all
595 * charmap-based cache declarations.
598 #define FT_CACHE_CHARMAP_H FT_CACHE_H
601 /*************************************************************************
607 * A macro used in #include statements to name the file containing the
608 * Macintosh-specific FreeType~2 API. The latter is used to access
609 * fonts embedded in resource forks.
611 * This header file must be explicitly included by client applications
612 * compiled on the Mac (note that the base API still works though).
615 #define FT_MAC_H <ftmac.h>
618 /*************************************************************************
621 * FT_MULTIPLE_MASTERS_H
624 * A macro used in #include statements to name the file containing the
625 * optional multiple-masters management API of FreeType~2.
628 #define FT_MULTIPLE_MASTERS_H <ftmm.h>
631 /*************************************************************************
637 * A macro used in #include statements to name the file containing the
638 * optional FreeType~2 API which accesses embedded `name' strings in
639 * SFNT-based font formats (i.e., TrueType and OpenType).
642 #define FT_SFNT_NAMES_H <ftsnames.h>
645 /*************************************************************************
648 * FT_OPENTYPE_VALIDATE_H
651 * A macro used in #include statements to name the file containing the
652 * optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
656 #define FT_OPENTYPE_VALIDATE_H <ftotval.h>
659 /*************************************************************************
665 * A macro used in #include statements to name the file containing the
666 * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
667 * mort, morx, bsln, just, kern, opbd, trak, prop).
670 #define FT_GX_VALIDATE_H <ftgxval.h>
673 /*************************************************************************
679 * A macro used in #include statements to name the file containing the
680 * FreeType~2 API which accesses PFR-specific data.
683 #define FT_PFR_H <ftpfr.h>
686 /*************************************************************************
692 * A macro used in #include statements to name the file containing the
693 * FreeType~2 API which provides functions to stroke outline paths.
695 #define FT_STROKER_H <ftstroke.h>
698 /*************************************************************************
704 * A macro used in #include statements to name the file containing the
705 * FreeType~2 API which performs artificial obliquing and emboldening.
707 #define FT_SYNTHESIS_H <ftsynth.h>
710 /*************************************************************************
716 * A macro used in #include statements to name the file containing the
717 * FreeType~2 API which provides functions specific to the XFree86 and
720 #define FT_XFREE86_H <ftxf86.h>
723 /*************************************************************************
729 * A macro used in #include statements to name the file containing the
730 * FreeType~2 API which performs trigonometric computations (e.g.,
731 * cosines and arc tangents).
733 #define FT_TRIGONOMETRY_H <fttrigon.h>
736 /*************************************************************************
742 * A macro used in #include statements to name the file containing the
743 * FreeType~2 API which performs color filtering for subpixel rendering.
745 #define FT_LCD_FILTER_H <ftlcdfil.h>
748 /*************************************************************************
751 * FT_UNPATENTED_HINTING_H
754 * A macro used in #include statements to name the file containing the
755 * FreeType~2 API which performs color filtering for subpixel rendering.
757 #define FT_UNPATENTED_HINTING_H <ttunpat.h>
760 /*************************************************************************
766 * A macro used in #include statements to name the file containing the
767 * FreeType~2 API which performs color filtering for subpixel rendering.
769 #define FT_INCREMENTAL_H <ftincrem.h>
772 /*************************************************************************
778 * A macro used in #include statements to name the file containing the
779 * FreeType~2 API which returns entries from the TrueType GASP table.
781 #define FT_GASP_H <ftgasp.h>
784 /*************************************************************************
790 * A macro used in #include statements to name the file containing the
791 * FreeType~2 API which returns individual and ranged glyph advances.
793 #define FT_ADVANCES_H <ftadvanc.h>
798 #define FT_ERROR_DEFINITIONS_H <fterrdef.h>
801 /* The internals of the cache sub-system are no longer exposed. We */
802 /* default to FT_CACHE_H at the moment just in case, but we know of */
803 /* no rogue client that uses them. */
805 #define FT_CACHE_MANAGER_H <ftcache.h>
806 #define FT_CACHE_INTERNAL_MRU_H <ftcache.h>
807 #define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h>
808 #define FT_CACHE_INTERNAL_CACHE_H <ftcache.h>
809 #define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h>
810 #define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h>
811 #define FT_CACHE_INTERNAL_SBITS_H <ftcache.h>
814 #define FT_INCREMENTAL_H <ftincrem.h>
816 #define FT_TRUETYPE_UNPATENTED_H <ttunpat.h>
820 * Include internal headers definitions from <internal/...>
821 * only when building the library.
823 #ifdef FT2_BUILD_LIBRARY
824 #define FT_INTERNAL_INTERNAL_H <internal/internal.h>
825 #include FT_INTERNAL_INTERNAL_H
826 #endif /* FT2_BUILD_LIBRARY */
829 #endif /* __FT2_BUILD_H__ */