1 /***************************************************************************/
5 /* Build macros of the FreeType 2 library. */
7 /* Copyright 1996-2001 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_OPTIONS_H */
117 /* A macro used in #include statements to name the file containing */
118 /* FreeType 2 project-specific configuration options. */
120 #ifndef FT_CONFIG_OPTIONS_H
121 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
125 /*************************************************************************/
128 /* FT_CONFIG_MODULES_H */
131 /* A macro used in #include statements to name the file containing */
132 /* the list of FreeType 2 modules that are statically linked to new */
133 /* library instances in @FT_Init_FreeType. */
135 #ifndef FT_CONFIG_MODULES_H
136 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
141 /*************************************************************************/
147 /* A macro used in #include statements to name the file containing */
148 /* the base FreeType 2 API. */
150 #define FT_FREETYPE_H <freetype/freetype.h>
153 /*************************************************************************/
159 /* A macro used in #include statements to name the file containing */
160 /* the list of FreeType 2 error codes (and messages). */
162 /* It is included by @FT_FREETYPE_H. */
164 #define FT_ERRORS_H <freetype/fterrors.h>
167 /*************************************************************************/
170 /* FT_MODULE_ERRORS_H */
173 /* A macro used in #include statements to name the file containing */
174 /* the list of FreeType 2 module error offsets (and messages). */
176 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
179 /*************************************************************************/
185 /* A macro used in #include statements to name the file containing */
186 /* the FreeType 2 interface to low-level operations (i.e. memory */
187 /* management and stream i/o). */
189 /* It is included by @FT_FREETYPE_H. */
191 #define FT_SYSTEM_H <freetype/ftsystem.h>
194 /*************************************************************************/
200 /* A macro used in #include statements to name the file containing */
201 /* types definitions related to glyph images (i.e. bitmaps, outlines, */
202 /* scan-converter parameters). */
204 /* It is included by @FT_FREETYPE_H. */
206 #define FT_IMAGE_H <freetype/ftimage.h>
209 /*************************************************************************/
215 /* A macro used in #include statements to name the file containing */
216 /* the basic data types defined by FreeType 2. */
218 /* It is included by @FT_FREETYPE_H. */
220 #define FT_TYPES_H <freetype/fttypes.h>
223 /*************************************************************************/
229 /* A macro used in #include statements to name the file containing */
230 /* the list management API of FreeType 2. */
232 /* (Most applications will never need to include this file.) */
234 #define FT_LIST_H <freetype/ftlist.h>
237 /*************************************************************************/
243 /* A macro used in #include statements to name the file containing */
244 /* the scalable outline management API of FreeType 2. */
246 #define FT_OUTLINE_H <freetype/ftoutln.h>
249 /*************************************************************************/
255 /* A macro used in #include statements to name the file containing */
256 /* the API used to manage multiple @FT_Size objects per face. */
258 #define FT_SIZES_H <freetype/ftsizes.h>
261 /*************************************************************************/
267 /* A macro used in #include statements to name the file containing */
268 /* the module management API of FreeType 2. */
270 #define FT_MODULE_H <freetype/ftmodule.h>
273 /*************************************************************************/
279 /* A macro used in #include statements to name the file containing */
280 /* the renderer module management API of FreeType 2. */
282 #define FT_RENDER_H <freetype/ftrender.h>
285 /*************************************************************************/
288 /* FT_TYPE1_TABLES_H */
291 /* A macro used in #include statements to name the file containing */
292 /* the types and API specific to the Type 1 format. */
294 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
297 /*************************************************************************/
300 /* FT_TRUETYPE_IDS_H */
303 /* A macro used in #include statements to name the file containing */
304 /* the enumeration values used to identify name strings, languages, */
305 /* encodings, etc. This file really contains a _large_ set of */
306 /* constant macro definitions, taken from the TrueType and OpenType */
307 /* specifications. */
309 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
312 /*************************************************************************/
315 /* FT_TRUETYPE_TABLES_H */
318 /* A macro used in #include statements to name the file containing */
319 /* the types and API specific to the TrueType (as well as OpenType) */
322 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
325 /*************************************************************************/
328 /* FT_TRUETYPE_TAGS_H */
331 /* A macro used in #include statements to name the file containing */
332 /* the definitions of TrueType 4-byte `tags' used to identify blocks */
333 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
335 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
338 /*************************************************************************/
344 /* A macro used in #include statements to name the file containing */
345 /* the API of the optional glyph management component. */
347 #define FT_GLYPH_H <freetype/ftglyph.h>
350 /*************************************************************************/
356 /* A macro used in #include statements to name the file containing */
357 /* the API of the optional exact bounding box computation routines. */
359 #define FT_BBOX_H <freetype/ftbbox.h>
362 /*************************************************************************/
368 /* A macro used in #include statements to name the file containing */
369 /* a small useful API to handle bezier arcs. Note that you _must_ */
370 /* include FT_FREETYPE_H or FT_IMAGE_H before this header. */
372 #define FT_BEZIER_H <freetype/ftbezier.h>
375 /*************************************************************************/
381 /* A macro used in #include statements to name the file containing */
382 /* the API of the optional FreeType 2 cache sub-system. */
384 #define FT_CACHE_H <freetype/ftcache.h>
387 /*************************************************************************/
390 /* FT_CACHE_IMAGE_H */
393 /* A macro used in #include statements to name the file containing */
394 /* the `glyph image' API of the FreeType 2 cache sub-system. */
396 /* It is used to define a cache for @FT_Glyph elements. You can also */
397 /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */
398 /* to store small glyph bitmaps, as it will use less memory. */
400 #define FT_CACHE_IMAGE_H <freetype/cache/ftcimage.h>
403 /*************************************************************************/
406 /* FT_CACHE_SMALL_BITMAPS_H */
409 /* A macro used in #include statements to name the file containing */
410 /* the `small bitmaps' API of the FreeType 2 cache sub-system. */
412 /* It is used to define a cache for small glyph bitmaps in a */
413 /* relatively memory-efficient way. You can also use the API defined */
414 /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */
415 /* including scalable outlines. */
417 #define FT_CACHE_SMALL_BITMAPS_H <freetype/cache/ftcsbits.h>
420 /*************************************************************************/
426 /* A macro used in #include statements to name the file containing */
427 /* the Macintosh-specific FreeType 2 API. The latter is used to */
428 /* access fonts embedded in resource forks. */
430 /* This header file must be explicitly included by client */
431 /* applications compiled on the Mac (note that the base API still */
434 #define FT_MAC_H <freetype/ftmac.h>
437 /*************************************************************************/
440 /* FT_MULTIPLE_MASTERS_H */
443 /* A macro used in #include statements to name the file containing */
444 /* the optional multiple-masters management API of FreeType 2. */
446 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
449 /*************************************************************************/
452 /* FT_SFNT_NAMES_H */
455 /* A macro used in #include statements to name the file containing */
456 /* the optional FreeType 2 API used to access embedded `name' strings */
457 /* in SFNT-based font formats (i.e. TrueType and OpenType). */
459 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
463 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
464 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
466 #define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h>
468 #define FT_CACHE_INTERNAL_LRU_H <freetype/cache/ftlru.h>
469 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h>
470 #define FT_CACHE_INTERNAL_CHUNK_H <freetype/cache/ftcchunk.h>
472 /* now include internal headers definitions from <freetype/internal/...> */
474 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
475 #include FT_INTERNAL_INTERNAL_H
478 #endif /* __FT2_BUILD_H__ */