1 /***************************************************************************/
5 /* Build macros of the FreeType 2 library. */
7 /* Copyright 1996-2001, 2002, 2003, 2004 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 is allows for more flexibility in the */
92 /* way FreeType 2 is installed on a given system. */
94 /*************************************************************************/
97 /* configuration files */
99 /*************************************************************************/
102 /* FT_CONFIG_CONFIG_H */
105 /* A macro used in #include statements to name the file containing */
106 /* FreeType 2 configuration data. */
108 #ifndef FT_CONFIG_CONFIG_H
109 #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
113 /*************************************************************************/
116 /* FT_CONFIG_STANDARD_LIBRARY_H */
119 /* A macro used in #include statements to name the file containing */
120 /* FreeType 2 configuration data. */
122 #ifndef FT_CONFIG_STANDARD_LIBRARY_H
123 #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
127 /*************************************************************************/
130 /* FT_CONFIG_OPTIONS_H */
133 /* A macro used in #include statements to name the file containing */
134 /* FreeType 2 project-specific configuration options. */
136 #ifndef FT_CONFIG_OPTIONS_H
137 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
141 /*************************************************************************/
144 /* FT_CONFIG_MODULES_H */
147 /* A macro used in #include statements to name the file containing */
148 /* the list of FreeType 2 modules that are statically linked to new */
149 /* library instances in @FT_Init_FreeType. */
151 #ifndef FT_CONFIG_MODULES_H
152 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
158 /*************************************************************************/
164 /* A macro used in #include statements to name the file containing */
165 /* the base FreeType 2 API. */
167 #define FT_FREETYPE_H <freetype/freetype.h>
170 /*************************************************************************/
176 /* A macro used in #include statements to name the file containing */
177 /* the list of FreeType 2 error codes (and messages). */
179 /* It is included by @FT_FREETYPE_H. */
181 #define FT_ERRORS_H <freetype/fterrors.h>
184 /*************************************************************************/
187 /* FT_MODULE_ERRORS_H */
190 /* A macro used in #include statements to name the file containing */
191 /* the list of FreeType 2 module error offsets (and messages). */
193 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
196 /*************************************************************************/
202 /* A macro used in #include statements to name the file containing */
203 /* the FreeType 2 interface to low-level operations (i.e. memory */
204 /* management and stream i/o). */
206 /* It is included by @FT_FREETYPE_H. */
208 #define FT_SYSTEM_H <freetype/ftsystem.h>
211 /*************************************************************************/
217 /* A macro used in #include statements to name the file containing */
218 /* types definitions related to glyph images (i.e. bitmaps, outlines, */
219 /* scan-converter parameters). */
221 /* It is included by @FT_FREETYPE_H. */
223 #define FT_IMAGE_H <freetype/ftimage.h>
226 /*************************************************************************/
232 /* A macro used in #include statements to name the file containing */
233 /* the basic data types defined by FreeType 2. */
235 /* It is included by @FT_FREETYPE_H. */
237 #define FT_TYPES_H <freetype/fttypes.h>
240 /*************************************************************************/
246 /* A macro used in #include statements to name the file containing */
247 /* the list management API of FreeType 2. */
249 /* (Most applications will never need to include this file.) */
251 #define FT_LIST_H <freetype/ftlist.h>
254 /*************************************************************************/
260 /* A macro used in #include statements to name the file containing */
261 /* the scalable outline management API of FreeType 2. */
263 #define FT_OUTLINE_H <freetype/ftoutln.h>
266 /*************************************************************************/
272 /* A macro used in #include statements to name the file containing */
273 /* the API used to manage multiple @FT_Size objects per face. */
275 #define FT_SIZES_H <freetype/ftsizes.h>
278 /*************************************************************************/
284 /* A macro used in #include statements to name the file containing */
285 /* the module management API of FreeType 2. */
287 #define FT_MODULE_H <freetype/ftmodapi.h>
290 /*************************************************************************/
296 /* A macro used in #include statements to name the file containing */
297 /* the renderer module management API of FreeType 2. */
299 #define FT_RENDER_H <freetype/ftrender.h>
302 /*************************************************************************/
305 /* FT_TYPE1_TABLES_H */
308 /* A macro used in #include statements to name the file containing */
309 /* the types and API specific to the Type 1 format. */
311 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
314 /*************************************************************************/
317 /* FT_TRUETYPE_IDS_H */
320 /* A macro used in #include statements to name the file containing */
321 /* the enumeration values used to identify name strings, languages, */
322 /* encodings, etc. This file really contains a _large_ set of */
323 /* constant macro definitions, taken from the TrueType and OpenType */
324 /* specifications. */
326 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
329 /*************************************************************************/
332 /* FT_TRUETYPE_TABLES_H */
335 /* A macro used in #include statements to name the file containing */
336 /* the types and API specific to the TrueType (as well as OpenType) */
339 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
342 /*************************************************************************/
345 /* FT_TRUETYPE_TAGS_H */
348 /* A macro used in #include statements to name the file containing */
349 /* the definitions of TrueType 4-byte `tags' used to identify blocks */
350 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
352 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
355 /*************************************************************************/
361 /* A macro used in #include statements to name the file containing */
362 /* the definitions of an API to access BDF-specific strings from a */
365 #define FT_BDF_H <freetype/ftbdf.h>
368 /*************************************************************************/
374 /* A macro used in #include statements to name the file containing */
375 /* the definitions of an API to support for gzip-compressed files. */
377 #define FT_GZIP_H <freetype/ftgzip.h>
380 /*************************************************************************/
386 /* A macro used in #include statements to name the file containing */
387 /* the definitions of an API to support for LZW-compressed files. */
389 #define FT_LZW_H <freetype/ftlzw.h>
392 /*************************************************************************/
398 /* A macro used in #include statements to name the file containing */
399 /* the definitions of an API to support Windows .FNT files */
401 #define FT_WINFONTS_H <freetype/ftwinfnt.h>
404 /*************************************************************************/
410 /* A macro used in #include statements to name the file containing */
411 /* the API of the optional glyph management component. */
413 #define FT_GLYPH_H <freetype/ftglyph.h>
416 /*************************************************************************/
422 /* A macro used in #include statements to name the file containing */
423 /* the API of the optional bitmap conversion component. */
425 #define FT_BITMAP_H <freetype/ftbitmap.h>
428 /*************************************************************************/
434 /* A macro used in #include statements to name the file containing */
435 /* the API of the optional exact bounding box computation routines. */
437 #define FT_BBOX_H <freetype/ftbbox.h>
440 /*************************************************************************/
446 /* A macro used in #include statements to name the file containing */
447 /* the API of the optional FreeType 2 cache sub-system. */
449 #define FT_CACHE_H <freetype/ftcache.h>
452 /*************************************************************************/
455 /* FT_CACHE_IMAGE_H */
458 /* A macro used in #include statements to name the file containing */
459 /* the `glyph image' API of the FreeType 2 cache sub-system. */
461 /* It is used to define a cache for @FT_Glyph elements. You can also */
462 /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */
463 /* to store small glyph bitmaps, as it will use less memory. */
465 /* This macro is deprecated. Simply include @FT_CACHE_H to have all */
466 /* glyph image-related cache declarations. */
468 #define FT_CACHE_IMAGE_H FT_CACHE_H
471 /*************************************************************************/
474 /* FT_CACHE_SMALL_BITMAPS_H */
477 /* A macro used in #include statements to name the file containing */
478 /* the `small bitmaps' API of the FreeType 2 cache sub-system. */
480 /* It is used to define a cache for small glyph bitmaps in a */
481 /* relatively memory-efficient way. You can also use the API defined */
482 /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */
483 /* including scalable outlines. */
485 /* This macro is deprecated. Simply include @FT_CACHE_H to have all */
486 /* small bitmaps-related cache declarations. */
488 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
491 /*************************************************************************/
494 /* FT_CACHE_CHARMAP_H */
497 /* A macro used in #include statements to name the file containing */
498 /* the `charmap' API of the FreeType 2 cache sub-system. */
500 /* This macro is deprecated. Simply include @FT_CACHE_H to have all */
501 /* charmap-based cache declarations. */
503 #define FT_CACHE_CHARMAP_H FT_CACHE_H
506 /*************************************************************************/
512 /* A macro used in #include statements to name the file containing */
513 /* the Macintosh-specific FreeType 2 API. The latter is used to */
514 /* access fonts embedded in resource forks. */
516 /* This header file must be explicitly included by client */
517 /* applications compiled on the Mac (note that the base API still */
520 #define FT_MAC_H <freetype/ftmac.h>
523 /*************************************************************************/
526 /* FT_MULTIPLE_MASTERS_H */
529 /* A macro used in #include statements to name the file containing */
530 /* the optional multiple-masters management API of FreeType 2. */
532 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
535 /*************************************************************************/
538 /* FT_SFNT_NAMES_H */
541 /* A macro used in #include statements to name the file containing */
542 /* the optional FreeType 2 API used to access embedded `name' strings */
543 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
545 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
548 /*************************************************************************/
551 /* FT_OPENTYPE_VALIDATE_H */
554 /* A macro used in #include statements to name the file containing */
555 /* the optional FreeType 2 API used to validate OpenType tables */
556 /* (BASE, GDEF, GPOS, GSUB, JSTF). */
558 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
563 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
564 #define FT_STROKER_H <freetype/ftstroke.h>
565 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
566 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
568 #define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h>
570 #define FT_CACHE_INTERNAL_MRU_H <freetype/cache/ftcmru.h>
571 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/cache/ftcmanag.h>
572 #define FT_CACHE_INTERNAL_CACHE_H <freetype/cache/ftccache.h>
573 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h>
574 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/cache/ftcimage.h>
575 #define FT_CACHE_INTERNAL_SBITS_H <freetype/cache/ftcsbits.h>
578 #define FT_XFREE86_H <freetype/ftxf86.h>
580 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
582 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
584 /* now include internal headers definitions from <freetype/internal/...> */
586 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
587 #include FT_INTERNAL_INTERNAL_H
590 #endif /* __FT2_BUILD_H__ */