1 /***************************************************************************/
5 /* Build macros of the FreeType 2 library. */
7 /* Copyright 1996-2001, 2002 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__
21 /*@***********************************************************************/
27 /* This macro is used in association with @FT_END_HEADER in header */
28 /* files to ensure that the declarations within are properly */
29 /* encapsulated in an `extern "C" { .. }' block when included from a */
33 #define FT_BEGIN_HEADER extern "C" {
35 #define FT_BEGIN_HEADER /* nothing */
39 /*@***********************************************************************/
45 /* This macro is used in association with @FT_BEGIN_HEADER in header */
46 /* files to ensure that the declarations within are properly */
47 /* encapsulated in an `extern "C" { .. }' block when included from a */
51 #define FT_END_HEADER }
53 #define FT_END_HEADER /* nothing */
57 /*************************************************************************/
59 /* Aliases for the FreeType 2 public and configuration files. */
61 /*************************************************************************/
63 /*************************************************************************/
66 /* header_file_macros */
69 /* Header File Macros */
72 /* Macro definitions used to #include specific header files. */
75 /* The following macros are defined to the name of specific */
76 /* FreeType 2 header files. They can be used directly in #include */
77 /* statements as in: */
80 /* #include FT_FREETYPE_H */
81 /* #include FT_MULTIPLE_MASTERS_H */
82 /* #include FT_GLYPH_H */
85 /* There are several reasons why we are now using macros to name */
86 /* public header files. The first one is that such macros are not */
87 /* limited to the infamous 8.3 naming rule required by DOS (and */
88 /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */
90 /* The second reason is that is allows for more flexibility in the */
91 /* way FreeType 2 is installed on a given system. */
93 /*************************************************************************/
95 /* configuration files */
97 /*************************************************************************/
100 /* FT_CONFIG_CONFIG_H */
103 /* A macro used in #include statements to name the file containing */
104 /* FreeType 2 configuration data. */
106 #ifndef FT_CONFIG_CONFIG_H
107 #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
111 /*************************************************************************/
114 /* FT_CONFIG_STANDARD_LIBRARY_H */
117 /* A macro used in #include statements to name the file containing */
118 /* FreeType 2 configuration data. */
120 #ifndef FT_CONFIG_STANDARD_LIBRARY_H
121 #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
125 /*************************************************************************/
128 /* FT_CONFIG_OPTIONS_H */
131 /* A macro used in #include statements to name the file containing */
132 /* FreeType 2 project-specific configuration options. */
134 #ifndef FT_CONFIG_OPTIONS_H
135 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
139 /*************************************************************************/
142 /* FT_CONFIG_MODULES_H */
145 /* A macro used in #include statements to name the file containing */
146 /* the list of FreeType 2 modules that are statically linked to new */
147 /* library instances in @FT_Init_FreeType. */
149 #ifndef FT_CONFIG_MODULES_H
150 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
155 /*************************************************************************/
161 /* A macro used in #include statements to name the file containing */
162 /* the base FreeType 2 API. */
164 #define FT_FREETYPE_H <freetype/freetype.h>
167 /*************************************************************************/
173 /* A macro used in #include statements to name the file containing */
174 /* the list of FreeType 2 error codes (and messages). */
176 /* It is included by @FT_FREETYPE_H. */
178 #define FT_ERRORS_H <freetype/fterrors.h>
181 /*************************************************************************/
184 /* FT_MODULE_ERRORS_H */
187 /* A macro used in #include statements to name the file containing */
188 /* the list of FreeType 2 module error offsets (and messages). */
190 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
193 /*************************************************************************/
199 /* A macro used in #include statements to name the file containing */
200 /* the FreeType 2 interface to low-level operations (i.e. memory */
201 /* management and stream i/o). */
203 /* It is included by @FT_FREETYPE_H. */
205 #define FT_SYSTEM_H <freetype/ftsystem.h>
208 /*************************************************************************/
214 /* A macro used in #include statements to name the file containing */
215 /* types definitions related to glyph images (i.e. bitmaps, outlines, */
216 /* scan-converter parameters). */
218 /* It is included by @FT_FREETYPE_H. */
220 #define FT_IMAGE_H <freetype/ftimage.h>
223 /*************************************************************************/
229 /* A macro used in #include statements to name the file containing */
230 /* the basic data types defined by FreeType 2. */
232 /* It is included by @FT_FREETYPE_H. */
234 #define FT_TYPES_H <freetype/fttypes.h>
237 /*************************************************************************/
243 /* A macro used in #include statements to name the file containing */
244 /* the list management API of FreeType 2. */
246 /* (Most applications will never need to include this file.) */
248 #define FT_LIST_H <freetype/ftlist.h>
251 /*************************************************************************/
257 /* A macro used in #include statements to name the file containing */
258 /* the scalable outline management API of FreeType 2. */
260 #define FT_OUTLINE_H <freetype/ftoutln.h>
263 /*************************************************************************/
269 /* A macro used in #include statements to name the file containing */
270 /* the API used to manage multiple @FT_Size objects per face. */
272 #define FT_SIZES_H <freetype/ftsizes.h>
275 /*************************************************************************/
281 /* A macro used in #include statements to name the file containing */
282 /* the module management API of FreeType 2. */
284 #define FT_MODULE_H <freetype/ftmodule.h>
287 /*************************************************************************/
293 /* A macro used in #include statements to name the file containing */
294 /* the renderer module management API of FreeType 2. */
296 #define FT_RENDER_H <freetype/ftrender.h>
299 /*************************************************************************/
302 /* FT_TYPE1_TABLES_H */
305 /* A macro used in #include statements to name the file containing */
306 /* the types and API specific to the Type 1 format. */
308 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
311 /*************************************************************************/
314 /* FT_TRUETYPE_IDS_H */
317 /* A macro used in #include statements to name the file containing */
318 /* the enumeration values used to identify name strings, languages, */
319 /* encodings, etc. This file really contains a _large_ set of */
320 /* constant macro definitions, taken from the TrueType and OpenType */
321 /* specifications. */
323 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
326 /*************************************************************************/
329 /* FT_TRUETYPE_TABLES_H */
332 /* A macro used in #include statements to name the file containing */
333 /* the types and API specific to the TrueType (as well as OpenType) */
336 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
339 /*************************************************************************/
342 /* FT_TRUETYPE_TAGS_H */
345 /* A macro used in #include statements to name the file containing */
346 /* the definitions of TrueType 4-byte `tags' used to identify blocks */
347 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
349 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
352 /*************************************************************************/
358 /* A macro used in #include statements to name the file containing */
359 /* the definitions of an API to access BDF-specific strings from a */
362 #define FT_BDF_H <freetype/ftbdf.h>
364 /*************************************************************************/
370 /* A macro used in #include statements to name the file containing */
371 /* the definitions of an API to support for gzip-compressed files. */
373 #define FT_GZIP_H <freetype/ftgzip.h>
376 /*************************************************************************/
382 /* A macro used in #include statements to name the file containing */
383 /* the definitions of an API to support Windows .FNT files */
385 #define FT_WINFONTS_H <freetype/ftwinfnt.h>
387 /*************************************************************************/
393 /* A macro used in #include statements to name the file containing */
394 /* the API of the optional glyph management component. */
396 #define FT_GLYPH_H <freetype/ftglyph.h>
399 /*************************************************************************/
405 /* A macro used in #include statements to name the file containing */
406 /* the API of the optional exact bounding box computation routines. */
408 #define FT_BBOX_H <freetype/ftbbox.h>
411 /*************************************************************************/
417 /* A macro used in #include statements to name the file containing */
418 /* the API of the optional FreeType 2 cache sub-system. */
420 #define FT_CACHE_H <freetype/ftcache.h>
423 /*************************************************************************/
426 /* FT_CACHE_IMAGE_H */
429 /* A macro used in #include statements to name the file containing */
430 /* the `glyph image' API of the FreeType 2 cache sub-system. */
432 /* It is used to define a cache for @FT_Glyph elements. You can also */
433 /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */
434 /* to store small glyph bitmaps, as it will use less memory. */
436 #define FT_CACHE_IMAGE_H <freetype/cache/ftcimage.h>
439 /*************************************************************************/
442 /* FT_CACHE_SMALL_BITMAPS_H */
445 /* A macro used in #include statements to name the file containing */
446 /* the `small bitmaps' API of the FreeType 2 cache sub-system. */
448 /* It is used to define a cache for small glyph bitmaps in a */
449 /* relatively memory-efficient way. You can also use the API defined */
450 /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */
451 /* including scalable outlines. */
453 #define FT_CACHE_SMALL_BITMAPS_H <freetype/cache/ftcsbits.h>
456 /*************************************************************************/
459 /* FT_CACHE_CHARMAP_H */
462 /* A macro used in #include statements to name the file containing */
463 /* the `charmap' API of the FreeType 2 cache sub-system. */
465 #define FT_CACHE_CHARMAP_H <freetype/cache/ftccmap.h>
468 /*************************************************************************/
474 /* A macro used in #include statements to name the file containing */
475 /* the Macintosh-specific FreeType 2 API. The latter is used to */
476 /* access fonts embedded in resource forks. */
478 /* This header file must be explicitly included by client */
479 /* applications compiled on the Mac (note that the base API still */
482 #define FT_MAC_H <freetype/ftmac.h>
485 /*************************************************************************/
488 /* FT_MULTIPLE_MASTERS_H */
491 /* A macro used in #include statements to name the file containing */
492 /* the optional multiple-masters management API of FreeType 2. */
494 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
497 /*************************************************************************/
500 /* FT_SFNT_NAMES_H */
503 /* A macro used in #include statements to name the file containing */
504 /* the optional FreeType 2 API used to access embedded `name' strings */
505 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
507 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
511 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
512 #define FT_STROKER_H <freetype/ftstroker.h>
513 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
514 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
516 #define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h>
518 #define FT_CACHE_INTERNAL_LRU_H <freetype/cache/ftlru.h>
519 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h>
520 #define FT_CACHE_INTERNAL_CACHE_H <freetype/cache/ftccache.h>
522 #define FT_XFREE86_H <freetype/ftxf86.h>
524 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
526 /* now include internal headers definitions from <freetype/internal/...> */
528 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
529 #include FT_INTERNAL_INTERNAL_H
532 #endif /* __FT2_BUILD_H__ */