xref: /inferno-os/include/freetype/config/ftheader.h (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
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_GLYPH_H                                                         */
380   /*                                                                       */
381   /* @description:                                                         */
382   /*    A macro used in #include statements to name the file containing    */
383   /*    the API of the optional glyph management component.                */
384   /*                                                                       */
385 #define FT_GLYPH_H  <freetype/ftglyph.h>
386 
387 
388   /*************************************************************************/
389   /*                                                                       */
390   /* @macro:                                                               */
391   /*    FT_BBOX_H                                                          */
392   /*                                                                       */
393   /* @description:                                                         */
394   /*    A macro used in #include statements to name the file containing    */
395   /*    the API of the optional exact bounding box computation routines.   */
396   /*                                                                       */
397 #define FT_BBOX_H  <freetype/ftbbox.h>
398 
399 
400   /*************************************************************************/
401   /*                                                                       */
402   /* @macro:                                                               */
403   /*    FT_CACHE_H                                                         */
404   /*                                                                       */
405   /* @description:                                                         */
406   /*    A macro used in #include statements to name the file containing    */
407   /*    the API of the optional FreeType 2 cache sub-system.               */
408   /*                                                                       */
409 #define FT_CACHE_H  <freetype/ftcache.h>
410 
411 
412   /*************************************************************************/
413   /*                                                                       */
414   /* @macro:                                                               */
415   /*    FT_CACHE_IMAGE_H                                                   */
416   /*                                                                       */
417   /* @description:                                                         */
418   /*    A macro used in #include statements to name the file containing    */
419   /*    the `glyph image' API of the FreeType 2 cache sub-system.          */
420   /*                                                                       */
421   /*    It is used to define a cache for @FT_Glyph elements.  You can also */
422   /*    see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need  */
423   /*    to store small glyph bitmaps, as it will use less memory.          */
424   /*                                                                       */
425 #define FT_CACHE_IMAGE_H  <freetype/cache/ftcimage.h>
426 
427 
428   /*************************************************************************/
429   /*                                                                       */
430   /* @macro:                                                               */
431   /*    FT_CACHE_SMALL_BITMAPS_H                                           */
432   /*                                                                       */
433   /* @description:                                                         */
434   /*    A macro used in #include statements to name the file containing    */
435   /*    the `small bitmaps' API of the FreeType 2 cache sub-system.        */
436   /*                                                                       */
437   /*    It is used to define a cache for small glyph bitmaps in a          */
438   /*    relatively memory-efficient way.  You can also use the API defined */
439   /*    in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,  */
440   /*    including scalable outlines.                                       */
441   /*                                                                       */
442 #define FT_CACHE_SMALL_BITMAPS_H  <freetype/cache/ftcsbits.h>
443 
444 
445   /*************************************************************************/
446   /*                                                                       */
447   /* @macro:                                                               */
448   /*    FT_CACHE_CHARMAP_H                                                 */
449   /*                                                                       */
450   /* @description:                                                         */
451   /*    A macro used in #include statements to name the file containing    */
452   /*    the `charmap' API of the FreeType 2 cache sub-system.              */
453   /*                                                                       */
454 #define FT_CACHE_CHARMAP_H  <freetype/cache/ftccmap.h>
455 
456 
457   /*************************************************************************/
458   /*                                                                       */
459   /* @macro:                                                               */
460   /*    FT_MAC_H                                                           */
461   /*                                                                       */
462   /* @description:                                                         */
463   /*    A macro used in #include statements to name the file containing    */
464   /*    the Macintosh-specific FreeType 2 API. The latter is used to       */
465   /*    access fonts embedded in resource forks.                           */
466   /*                                                                       */
467   /*    This header file must be explicitly included by client             */
468   /*    applications compiled on the Mac (note that the base API still     */
469   /*    works though).                                                     */
470   /*                                                                       */
471 #define FT_MAC_H  <freetype/ftmac.h>
472 
473 
474   /*************************************************************************/
475   /*                                                                       */
476   /* @macro:                                                               */
477   /*    FT_MULTIPLE_MASTERS_H                                              */
478   /*                                                                       */
479   /* @description:                                                         */
480   /*    A macro used in #include statements to name the file containing    */
481   /*    the optional multiple-masters management API of FreeType 2.        */
482   /*                                                                       */
483 #define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
484 
485 
486   /*************************************************************************/
487   /*                                                                       */
488   /* @macro:                                                               */
489   /*    FT_SFNT_NAMES_H                                                    */
490   /*                                                                       */
491   /* @description:                                                         */
492   /*    A macro used in #include statements to name the file containing    */
493   /*    the optional FreeType 2 API used to access embedded `name' strings */
494   /*    in SFNT-based font formats (i.e. TrueType and OpenType).           */
495   /*                                                                       */
496 #define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
497 
498   /* */
499 
500 #define FT_TRIGONOMETRY_H          <freetype/fttrigon.h>
501 #define FT_STROKER_H               <freetype/ftstroker.h>
502 #define FT_SYNTHESIS_H             <freetype/ftsynth.h>
503 #define FT_ERROR_DEFINITIONS_H     <freetype/fterrdef.h>
504 
505 #define FT_CACHE_MANAGER_H         <freetype/cache/ftcmanag.h>
506 
507 #define FT_CACHE_INTERNAL_LRU_H    <freetype/cache/ftlru.h>
508 #define FT_CACHE_INTERNAL_GLYPH_H  <freetype/cache/ftcglyph.h>
509 #define FT_CACHE_INTERNAL_CACHE_H  <freetype/cache/ftccache.h>
510 
511 #define FT_XFREE86_H               <freetype/ftxf86.h>
512 
513 #define FT_INCREMENTAL_H           <freetype/ftincrem.h>
514 
515   /* now include internal headers definitions from <freetype/internal/...> */
516 
517 #define  FT_INTERNAL_INTERNAL_H    <freetype/internal/internal.h>
518 #include FT_INTERNAL_INTERNAL_H
519 
520 
521 #endif /* __FT2_BUILD_H__ */
522 
523 
524 /* END */
525