update for HEAD-2003050101
[reactos.git] / lib / freetype / include / freetype / config / ftheader.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  ftheader.h                                                             */
4 /*                                                                         */
5 /*    Build macros of the FreeType 2 library.                              */
6 /*                                                                         */
7 /*  Copyright 1996-2001, 2002 by                                           */
8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9 /*                                                                         */
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.                                        */
15 /*                                                                         */
16 /***************************************************************************/
17
18 #ifndef __FT_HEADER_H__
19 #define __FT_HEADER_H__
20
21   /*@***********************************************************************/
22   /*                                                                       */
23   /* <Macro>                                                               */
24   /*    FT_BEGIN_HEADER                                                    */
25   /*                                                                       */
26   /* <Description>                                                         */
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  */
30   /*    C++ compiler.                                                      */
31   /*                                                                       */
32 #ifdef __cplusplus
33 #define FT_BEGIN_HEADER  extern "C" {
34 #else
35 #define FT_BEGIN_HEADER  /* nothing */
36 #endif
37
38
39   /*@***********************************************************************/
40   /*                                                                       */
41   /* <Macro>                                                               */
42   /*    FT_END_HEADER                                                      */
43   /*                                                                       */
44   /* <Description>                                                         */
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  */
48   /*    C++ compiler.                                                      */
49   /*                                                                       */
50 #ifdef __cplusplus
51 #define FT_END_HEADER  }
52 #else
53 #define FT_END_HEADER  /* nothing */
54 #endif
55
56
57   /*************************************************************************/
58   /*                                                                       */
59   /* Aliases for the FreeType 2 public and configuration files.            */
60   /*                                                                       */
61   /*************************************************************************/
62
63   /*************************************************************************/
64   /*                                                                       */
65   /* <Section>                                                             */
66   /*    header_file_macros                                                 */
67   /*                                                                       */
68   /* <Title>                                                               */
69   /*    Header File Macros                                                 */
70   /*                                                                       */
71   /* <Abstract>                                                            */
72   /*    Macro definitions used to #include specific header files.          */
73   /*                                                                       */
74   /* <Description>                                                         */
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:                                                  */
78   /*                                                                       */
79   /*    {                                                                  */
80   /*      #include FT_FREETYPE_H                                           */
81   /*      #include FT_MULTIPLE_MASTERS_H                                   */
82   /*      #include FT_GLYPH_H                                              */
83   /*    }                                                                  */
84   /*                                                                       */
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').   */
89   /*                                                                       */
90   /*    The second reason is that is allows for more flexibility in the    */
91   /*    way FreeType 2 is installed on a given system.                     */
92   /*                                                                       */
93   /*************************************************************************/
94
95   /* configuration files */
96
97   /*************************************************************************/
98   /*                                                                       */
99   /* @macro:                                                               */
100   /*    FT_CONFIG_CONFIG_H                                                 */
101   /*                                                                       */
102   /* @description:                                                         */
103   /*    A macro used in #include statements to name the file containing    */
104   /*    FreeType 2 configuration data.                                     */
105   /*                                                                       */
106 #ifndef FT_CONFIG_CONFIG_H
107 #define FT_CONFIG_CONFIG_H  <freetype/config/ftconfig.h>
108 #endif
109
110
111   /*************************************************************************/
112   /*                                                                       */
113   /* @macro:                                                               */
114   /*    FT_CONFIG_STANDARD_LIBRARY_H                                       */
115   /*                                                                       */
116   /* @description:                                                         */
117   /*    A macro used in #include statements to name the file containing    */
118   /*    FreeType 2 configuration data.                                     */
119   /*                                                                       */
120 #ifndef FT_CONFIG_STANDARD_LIBRARY_H
121 #define FT_CONFIG_STANDARD_LIBRARY_H  <freetype/config/ftstdlib.h>
122 #endif
123
124
125   /*************************************************************************/
126   /*                                                                       */
127   /* @macro:                                                               */
128   /*    FT_CONFIG_OPTIONS_H                                                */
129   /*                                                                       */
130   /* @description:                                                         */
131   /*    A macro used in #include statements to name the file containing    */
132   /*    FreeType 2 project-specific configuration options.                 */
133   /*                                                                       */
134 #ifndef FT_CONFIG_OPTIONS_H
135 #define FT_CONFIG_OPTIONS_H  <freetype/config/ftoption.h>
136 #endif
137
138
139   /*************************************************************************/
140   /*                                                                       */
141   /* @macro:                                                               */
142   /*    FT_CONFIG_MODULES_H                                                */
143   /*                                                                       */
144   /* @description:                                                         */
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.                            */
148   /*                                                                       */
149 #ifndef FT_CONFIG_MODULES_H
150 #define FT_CONFIG_MODULES_H  <freetype/config/ftmodule.h>
151 #endif
152
153   /* public headers */
154
155   /*************************************************************************/
156   /*                                                                       */
157   /* @macro:                                                               */
158   /*    FT_FREETYPE_H                                                      */
159   /*                                                                       */
160   /* @description:                                                         */
161   /*    A macro used in #include statements to name the file containing    */
162   /*    the base FreeType 2 API.                                           */
163   /*                                                                       */
164 #define FT_FREETYPE_H  <freetype/freetype.h>
165
166
167   /*************************************************************************/
168   /*                                                                       */
169   /* @macro:                                                               */
170   /*    FT_ERRORS_H                                                        */
171   /*                                                                       */
172   /* @description:                                                         */
173   /*    A macro used in #include statements to name the file containing    */
174   /*    the list of FreeType 2 error codes (and messages).                 */
175   /*                                                                       */
176   /*    It is included by @FT_FREETYPE_H.                                  */
177   /*                                                                       */
178 #define FT_ERRORS_H  <freetype/fterrors.h>
179
180
181   /*************************************************************************/
182   /*                                                                       */
183   /* @macro:                                                               */
184   /*    FT_MODULE_ERRORS_H                                                 */
185   /*                                                                       */
186   /* @description:                                                         */
187   /*    A macro used in #include statements to name the file containing    */
188   /*    the list of FreeType 2 module error offsets (and messages).        */
189   /*                                                                       */
190 #define FT_MODULE_ERRORS_H  <freetype/ftmoderr.h>
191
192
193   /*************************************************************************/
194   /*                                                                       */
195   /* @macro:                                                               */
196   /*    FT_SYSTEM_H                                                        */
197   /*                                                                       */
198   /* @description:                                                         */
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).                                        */
202   /*                                                                       */
203   /*    It is included by @FT_FREETYPE_H.                                  */
204   /*                                                                       */
205 #define FT_SYSTEM_H  <freetype/ftsystem.h>
206
207
208   /*************************************************************************/
209   /*                                                                       */
210   /* @macro:                                                               */
211   /*    FT_IMAGE_H                                                         */
212   /*                                                                       */
213   /* @description:                                                         */
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).                                        */
217   /*                                                                       */
218   /*    It is included by @FT_FREETYPE_H.                                  */
219   /*                                                                       */
220 #define FT_IMAGE_H  <freetype/ftimage.h>
221
222
223   /*************************************************************************/
224   /*                                                                       */
225   /* @macro:                                                               */
226   /*    FT_TYPES_H                                                         */
227   /*                                                                       */
228   /* @description:                                                         */
229   /*    A macro used in #include statements to name the file containing    */
230   /*    the basic data types defined by FreeType 2.                        */
231   /*                                                                       */
232   /*    It is included by @FT_FREETYPE_H.                                  */
233   /*                                                                       */
234 #define FT_TYPES_H  <freetype/fttypes.h>
235
236
237   /*************************************************************************/
238   /*                                                                       */
239   /* @macro:                                                               */
240   /*    FT_LIST_H                                                          */
241   /*                                                                       */
242   /* @description:                                                         */
243   /*    A macro used in #include statements to name the file containing    */
244   /*    the list management API of FreeType 2.                             */
245   /*                                                                       */
246   /*    (Most applications will never need to include this file.)          */
247   /*                                                                       */
248 #define FT_LIST_H  <freetype/ftlist.h>
249
250
251   /*************************************************************************/
252   /*                                                                       */
253   /* @macro:                                                               */
254   /*    FT_OUTLINE_H                                                       */
255   /*                                                                       */
256   /* @description:                                                         */
257   /*    A macro used in #include statements to name the file containing    */
258   /*    the scalable outline management API of FreeType 2.                 */
259   /*                                                                       */
260 #define FT_OUTLINE_H  <freetype/ftoutln.h>
261
262
263   /*************************************************************************/
264   /*                                                                       */
265   /* @macro:                                                               */
266   /*    FT_SIZES_H                                                         */
267   /*                                                                       */
268   /* @description:                                                         */
269   /*    A macro used in #include statements to name the file containing    */
270   /*    the API used to manage multiple @FT_Size objects per face.         */
271   /*                                                                       */
272 #define FT_SIZES_H  <freetype/ftsizes.h>
273
274
275   /*************************************************************************/
276   /*                                                                       */
277   /* @macro:                                                               */
278   /*    FT_MODULE_H                                                        */
279   /*                                                                       */
280   /* @description:                                                         */
281   /*    A macro used in #include statements to name the file containing    */
282   /*    the module management API of FreeType 2.                           */
283   /*                                                                       */
284 #define FT_MODULE_H  <freetype/ftmodule.h>
285
286
287   /*************************************************************************/
288   /*                                                                       */
289   /* @macro:                                                               */
290   /*    FT_RENDER_H                                                        */
291   /*                                                                       */
292   /* @description:                                                         */
293   /*    A macro used in #include statements to name the file containing    */
294   /*    the renderer module management API of FreeType 2.                  */
295   /*                                                                       */
296 #define FT_RENDER_H  <freetype/ftrender.h>
297
298
299   /*************************************************************************/
300   /*                                                                       */
301   /* @macro:                                                               */
302   /*    FT_TYPE1_TABLES_H                                                  */
303   /*                                                                       */
304   /* @description:                                                         */
305   /*    A macro used in #include statements to name the file containing    */
306   /*    the types and API specific to the Type 1 format.                   */
307   /*                                                                       */
308 #define FT_TYPE1_TABLES_H  <freetype/t1tables.h>
309
310
311   /*************************************************************************/
312   /*                                                                       */
313   /* @macro:                                                               */
314   /*    FT_TRUETYPE_IDS_H                                                  */
315   /*                                                                       */
316   /* @description:                                                         */
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.                                                    */
322   /*                                                                       */
323 #define FT_TRUETYPE_IDS_H  <freetype/ttnameid.h>
324
325
326   /*************************************************************************/
327   /*                                                                       */
328   /* @macro:                                                               */
329   /*    FT_TRUETYPE_TABLES_H                                               */
330   /*                                                                       */
331   /* @description:                                                         */
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)   */
334   /*    format.                                                            */
335   /*                                                                       */
336 #define FT_TRUETYPE_TABLES_H  <freetype/tttables.h>
337
338
339   /*************************************************************************/
340   /*                                                                       */
341   /* @macro:                                                               */
342   /*    FT_TRUETYPE_TAGS_H                                                 */
343   /*                                                                       */
344   /* @description:                                                         */
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).           */
348   /*                                                                       */
349 #define FT_TRUETYPE_TAGS_H  <freetype/tttags.h>
350
351
352   /*************************************************************************/
353   /*                                                                       */
354   /* @macro:                                                               */
355   /*    FT_BDF_H                                                           */
356   /*                                                                       */
357   /* @description:                                                         */
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    */
360   /*    face.                                                              */
361   /*                                                                       */
362 #define FT_BDF_H  <freetype/ftbdf.h>
363
364   /*************************************************************************/
365   /*                                                                       */
366   /* @macro:                                                               */
367   /*    FT_GZIP_H                                                          */
368   /*                                                                       */
369   /* @description:                                                         */
370   /*    A macro used in #include statements to name the file containing    */
371   /*    the definitions of an API to support for gzip-compressed files.    */
372   /*                                                                       */
373 #define FT_GZIP_H  <freetype/ftgzip.h>
374
375
376   /*************************************************************************/
377   /*                                                                       */
378   /* @macro:                                                               */
379   /*    FT_WINFONTS_H                                                      */
380   /*                                                                       */
381   /* @description:                                                         */
382   /*    A macro used in #include statements to name the file containing    */
383   /*    the definitions of an API to support Windows .FNT files            */
384   /*                                                                       */
385 #define FT_WINFONTS_H   <freetype/ftwinfnt.h>
386
387   /*************************************************************************/
388   /*                                                                       */
389   /* @macro:                                                               */
390   /*    FT_GLYPH_H                                                         */
391   /*                                                                       */
392   /* @description:                                                         */
393   /*    A macro used in #include statements to name the file containing    */
394   /*    the API of the optional glyph management component.                */
395   /*                                                                       */
396 #define FT_GLYPH_H  <freetype/ftglyph.h>
397
398
399   /*************************************************************************/
400   /*                                                                       */
401   /* @macro:                                                               */
402   /*    FT_BBOX_H                                                          */
403   /*                                                                       */
404   /* @description:                                                         */
405   /*    A macro used in #include statements to name the file containing    */
406   /*    the API of the optional exact bounding box computation routines.   */
407   /*                                                                       */
408 #define FT_BBOX_H  <freetype/ftbbox.h>
409
410
411   /*************************************************************************/
412   /*                                                                       */
413   /* @macro:                                                               */
414   /*    FT_CACHE_H                                                         */
415   /*                                                                       */
416   /* @description:                                                         */
417   /*    A macro used in #include statements to name the file containing    */
418   /*    the API of the optional FreeType 2 cache sub-system.               */
419   /*                                                                       */
420 #define FT_CACHE_H  <freetype/ftcache.h>
421
422
423   /*************************************************************************/
424   /*                                                                       */
425   /* @macro:                                                               */
426   /*    FT_CACHE_IMAGE_H                                                   */
427   /*                                                                       */
428   /* @description:                                                         */
429   /*    A macro used in #include statements to name the file containing    */
430   /*    the `glyph image' API of the FreeType 2 cache sub-system.          */
431   /*                                                                       */
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.          */
435   /*                                                                       */
436 #define FT_CACHE_IMAGE_H  <freetype/cache/ftcimage.h>
437
438
439   /*************************************************************************/
440   /*                                                                       */
441   /* @macro:                                                               */
442   /*    FT_CACHE_SMALL_BITMAPS_H                                           */
443   /*                                                                       */
444   /* @description:                                                         */
445   /*    A macro used in #include statements to name the file containing    */
446   /*    the `small bitmaps' API of the FreeType 2 cache sub-system.        */
447   /*                                                                       */
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.                                       */
452   /*                                                                       */
453 #define FT_CACHE_SMALL_BITMAPS_H  <freetype/cache/ftcsbits.h>
454
455
456   /*************************************************************************/
457   /*                                                                       */
458   /* @macro:                                                               */
459   /*    FT_CACHE_CHARMAP_H                                                 */
460   /*                                                                       */
461   /* @description:                                                         */
462   /*    A macro used in #include statements to name the file containing    */
463   /*    the `charmap' API of the FreeType 2 cache sub-system.              */
464   /*                                                                       */
465 #define FT_CACHE_CHARMAP_H  <freetype/cache/ftccmap.h>
466
467
468   /*************************************************************************/
469   /*                                                                       */
470   /* @macro:                                                               */
471   /*    FT_MAC_H                                                           */
472   /*                                                                       */
473   /* @description:                                                         */
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.                           */
477   /*                                                                       */
478   /*    This header file must be explicitly included by client             */
479   /*    applications compiled on the Mac (note that the base API still     */
480   /*    works though).                                                     */
481   /*                                                                       */
482 #define FT_MAC_H  <freetype/ftmac.h>
483
484
485   /*************************************************************************/
486   /*                                                                       */
487   /* @macro:                                                               */
488   /*    FT_MULTIPLE_MASTERS_H                                              */
489   /*                                                                       */
490   /* @description:                                                         */
491   /*    A macro used in #include statements to name the file containing    */
492   /*    the optional multiple-masters management API of FreeType 2.        */
493   /*                                                                       */
494 #define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
495
496
497   /*************************************************************************/
498   /*                                                                       */
499   /* @macro:                                                               */
500   /*    FT_SFNT_NAMES_H                                                    */
501   /*                                                                       */
502   /* @description:                                                         */
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).           */
506   /*                                                                       */
507 #define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
508
509   /* */
510
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>
515
516 #define FT_CACHE_MANAGER_H         <freetype/cache/ftcmanag.h>
517
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>
521
522 #define FT_XFREE86_H               <freetype/ftxf86.h>
523
524 #define FT_INCREMENTAL_H           <freetype/ftincrem.h>
525
526   /* now include internal headers definitions from <freetype/internal/...> */
527
528 #define  FT_INTERNAL_INTERNAL_H    <freetype/internal/internal.h>
529 #include FT_INTERNAL_INTERNAL_H
530
531
532 #endif /* __FT2_BUILD_H__ */
533
534
535 /* END */