• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /***************************************************************************/
2 /*                                                                         */
3 /*  ftheader.h                                                             */
4 /*                                                                         */
5 /*    Build macros of the FreeType 2 library.                              */
6 /*                                                                         */
7 /*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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   /*                                                                       */
24   /* <Macro>                                                               */
25   /*    FT_BEGIN_HEADER                                                    */
26   /*                                                                       */
27   /* <Description>                                                         */
28   /*    This macro is used in association with @FT_END_HEADER in header    */
29   /*    files to ensure that the declarations within are properly          */
30   /*    encapsulated in an `extern "C" { .. }' block when included from a  */
31   /*    C++ compiler.                                                      */
32   /*                                                                       */
33 #ifdef __cplusplus
34 #define FT_BEGIN_HEADER  extern "C" {
35 #else
36 #define FT_BEGIN_HEADER  /* nothing */
37 #endif
38 
39 
40   /*@***********************************************************************/
41   /*                                                                       */
42   /* <Macro>                                                               */
43   /*    FT_END_HEADER                                                      */
44   /*                                                                       */
45   /* <Description>                                                         */
46   /*    This macro is used in association with @FT_BEGIN_HEADER in header  */
47   /*    files to ensure that the declarations within are properly          */
48   /*    encapsulated in an `extern "C" { .. }' block when included from a  */
49   /*    C++ compiler.                                                      */
50   /*                                                                       */
51 #ifdef __cplusplus
52 #define FT_END_HEADER  }
53 #else
54 #define FT_END_HEADER  /* nothing */
55 #endif
56 
57 
58   /*************************************************************************/
59   /*                                                                       */
60   /* Aliases for the FreeType 2 public and configuration files.            */
61   /*                                                                       */
62   /*************************************************************************/
63 
64   /*************************************************************************/
65   /*                                                                       */
66   /* <Section>                                                             */
67   /*    header_file_macros                                                 */
68   /*                                                                       */
69   /* <Title>                                                               */
70   /*    Header File Macros                                                 */
71   /*                                                                       */
72   /* <Abstract>                                                            */
73   /*    Macro definitions used to #include specific header files.          */
74   /*                                                                       */
75   /* <Description>                                                         */
76   /*    The following macros are defined to the name of specific           */
77   /*    FreeType~2 header files.  They can be used directly in #include    */
78   /*    statements as in:                                                  */
79   /*                                                                       */
80   /*    {                                                                  */
81   /*      #include FT_FREETYPE_H                                           */
82   /*      #include FT_MULTIPLE_MASTERS_H                                   */
83   /*      #include FT_GLYPH_H                                              */
84   /*    }                                                                  */
85   /*                                                                       */
86   /*    There are several reasons why we are now using macros to name      */
87   /*    public header files.  The first one is that such macros are not    */
88   /*    limited to the infamous 8.3~naming rule required by DOS (and       */
89   /*    `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h').   */
90   /*                                                                       */
91   /*    The second reason is that it allows for more flexibility in the    */
92   /*    way FreeType~2 is installed on a given system.                     */
93   /*                                                                       */
94   /*************************************************************************/
95 
96 
97   /* configuration files */
98 
99   /*************************************************************************
100    *
101    * @macro:
102    *   FT_CONFIG_CONFIG_H
103    *
104    * @description:
105    *   A macro used in #include statements to name the file containing
106    *   FreeType~2 configuration data.
107    *
108    */
109 #ifndef FT_CONFIG_CONFIG_H
110 #define FT_CONFIG_CONFIG_H  <freetype/config/ftconfig.h>
111 #endif
112 
113 
114   /*************************************************************************
115    *
116    * @macro:
117    *   FT_CONFIG_STANDARD_LIBRARY_H
118    *
119    * @description:
120    *   A macro used in #include statements to name the file containing
121    *   FreeType~2 interface to the standard C library functions.
122    *
123    */
124 #ifndef FT_CONFIG_STANDARD_LIBRARY_H
125 #define FT_CONFIG_STANDARD_LIBRARY_H  <freetype/config/ftstdlib.h>
126 #endif
127 
128 
129   /*************************************************************************
130    *
131    * @macro:
132    *   FT_CONFIG_OPTIONS_H
133    *
134    * @description:
135    *   A macro used in #include statements to name the file containing
136    *   FreeType~2 project-specific configuration options.
137    *
138    */
139 #ifndef FT_CONFIG_OPTIONS_H
140 #define FT_CONFIG_OPTIONS_H  <freetype/config/ftoption.h>
141 #endif
142 
143 
144   /*************************************************************************
145    *
146    * @macro:
147    *   FT_CONFIG_MODULES_H
148    *
149    * @description:
150    *   A macro used in #include statements to name the file containing the
151    *   list of FreeType~2 modules that are statically linked to new library
152    *   instances in @FT_Init_FreeType.
153    *
154    */
155 #ifndef FT_CONFIG_MODULES_H
156 #define FT_CONFIG_MODULES_H  <freetype/config/ftmodule.h>
157 #endif
158 
159   /* */
160 
161   /* public headers */
162 
163   /*************************************************************************
164    *
165    * @macro:
166    *   FT_FREETYPE_H
167    *
168    * @description:
169    *   A macro used in #include statements to name the file containing the
170    *   base FreeType~2 API.
171    *
172    */
173 #define FT_FREETYPE_H  <freetype/freetype.h>
174 
175 
176   /*************************************************************************
177    *
178    * @macro:
179    *   FT_ERRORS_H
180    *
181    * @description:
182    *   A macro used in #include statements to name the file containing the
183    *   list of FreeType~2 error codes (and messages).
184    *
185    *   It is included by @FT_FREETYPE_H.
186    *
187    */
188 #define FT_ERRORS_H  <freetype/fterrors.h>
189 
190 
191   /*************************************************************************
192    *
193    * @macro:
194    *   FT_MODULE_ERRORS_H
195    *
196    * @description:
197    *   A macro used in #include statements to name the file containing the
198    *   list of FreeType~2 module error offsets (and messages).
199    *
200    */
201 #define FT_MODULE_ERRORS_H  <freetype/ftmoderr.h>
202 
203 
204   /*************************************************************************
205    *
206    * @macro:
207    *   FT_SYSTEM_H
208    *
209    * @description:
210    *   A macro used in #include statements to name the file containing the
211    *   FreeType~2 interface to low-level operations (i.e., memory management
212    *   and stream i/o).
213    *
214    *   It is included by @FT_FREETYPE_H.
215    *
216    */
217 #define FT_SYSTEM_H  <freetype/ftsystem.h>
218 
219 
220   /*************************************************************************
221    *
222    * @macro:
223    *   FT_IMAGE_H
224    *
225    * @description:
226    *   A macro used in #include statements to name the file containing type
227    *   definitions related to glyph images (i.e., bitmaps, outlines,
228    *   scan-converter parameters).
229    *
230    *   It is included by @FT_FREETYPE_H.
231    *
232    */
233 #define FT_IMAGE_H  <freetype/ftimage.h>
234 
235 
236   /*************************************************************************
237    *
238    * @macro:
239    *   FT_TYPES_H
240    *
241    * @description:
242    *   A macro used in #include statements to name the file containing the
243    *   basic data types defined by FreeType~2.
244    *
245    *   It is included by @FT_FREETYPE_H.
246    *
247    */
248 #define FT_TYPES_H  <freetype/fttypes.h>
249 
250 
251   /*************************************************************************
252    *
253    * @macro:
254    *   FT_LIST_H
255    *
256    * @description:
257    *   A macro used in #include statements to name the file containing the
258    *   list management API of FreeType~2.
259    *
260    *   (Most applications will never need to include this file.)
261    *
262    */
263 #define FT_LIST_H  <freetype/ftlist.h>
264 
265 
266   /*************************************************************************
267    *
268    * @macro:
269    *   FT_OUTLINE_H
270    *
271    * @description:
272    *   A macro used in #include statements to name the file containing the
273    *   scalable outline management API of FreeType~2.
274    *
275    */
276 #define FT_OUTLINE_H  <freetype/ftoutln.h>
277 
278 
279   /*************************************************************************
280    *
281    * @macro:
282    *   FT_SIZES_H
283    *
284    * @description:
285    *   A macro used in #include statements to name the file containing the
286    *   API which manages multiple @FT_Size objects per face.
287    *
288    */
289 #define FT_SIZES_H  <freetype/ftsizes.h>
290 
291 
292   /*************************************************************************
293    *
294    * @macro:
295    *   FT_MODULE_H
296    *
297    * @description:
298    *   A macro used in #include statements to name the file containing the
299    *   module management API of FreeType~2.
300    *
301    */
302 #define FT_MODULE_H  <freetype/ftmodapi.h>
303 
304 
305   /*************************************************************************
306    *
307    * @macro:
308    *   FT_RENDER_H
309    *
310    * @description:
311    *   A macro used in #include statements to name the file containing the
312    *   renderer module management API of FreeType~2.
313    *
314    */
315 #define FT_RENDER_H  <freetype/ftrender.h>
316 
317 
318   /*************************************************************************
319    *
320    * @macro:
321    *   FT_TYPE1_TABLES_H
322    *
323    * @description:
324    *   A macro used in #include statements to name the file containing the
325    *   types and API specific to the Type~1 format.
326    *
327    */
328 #define FT_TYPE1_TABLES_H  <freetype/t1tables.h>
329 
330 
331   /*************************************************************************
332    *
333    * @macro:
334    *   FT_TRUETYPE_IDS_H
335    *
336    * @description:
337    *   A macro used in #include statements to name the file containing the
338    *   enumeration values which identify name strings, languages, encodings,
339    *   etc.  This file really contains a _large_ set of constant macro
340    *   definitions, taken from the TrueType and OpenType specifications.
341    *
342    */
343 #define FT_TRUETYPE_IDS_H  <freetype/ttnameid.h>
344 
345 
346   /*************************************************************************
347    *
348    * @macro:
349    *   FT_TRUETYPE_TABLES_H
350    *
351    * @description:
352    *   A macro used in #include statements to name the file containing the
353    *   types and API specific to the TrueType (as well as OpenType) format.
354    *
355    */
356 #define FT_TRUETYPE_TABLES_H  <freetype/tttables.h>
357 
358 
359   /*************************************************************************
360    *
361    * @macro:
362    *   FT_TRUETYPE_TAGS_H
363    *
364    * @description:
365    *   A macro used in #include statements to name the file containing the
366    *   definitions of TrueType four-byte `tags' which identify blocks in
367    *   SFNT-based font formats (i.e., TrueType and OpenType).
368    *
369    */
370 #define FT_TRUETYPE_TAGS_H  <freetype/tttags.h>
371 
372 
373   /*************************************************************************
374    *
375    * @macro:
376    *   FT_BDF_H
377    *
378    * @description:
379    *   A macro used in #include statements to name the file containing the
380    *   definitions of an API which accesses BDF-specific strings from a
381    *   face.
382    *
383    */
384 #define FT_BDF_H  <freetype/ftbdf.h>
385 
386 
387   /*************************************************************************
388    *
389    * @macro:
390    *   FT_CID_H
391    *
392    * @description:
393    *   A macro used in #include statements to name the file containing the
394    *   definitions of an API which access CID font information from a
395    *   face.
396    *
397    */
398 #define FT_CID_H  <freetype/ftcid.h>
399 
400 
401   /*************************************************************************
402    *
403    * @macro:
404    *   FT_GZIP_H
405    *
406    * @description:
407    *   A macro used in #include statements to name the file containing the
408    *   definitions of an API which supports gzip-compressed files.
409    *
410    */
411 #define FT_GZIP_H  <freetype/ftgzip.h>
412 
413 
414   /*************************************************************************
415    *
416    * @macro:
417    *   FT_LZW_H
418    *
419    * @description:
420    *   A macro used in #include statements to name the file containing the
421    *   definitions of an API which supports LZW-compressed files.
422    *
423    */
424 #define FT_LZW_H  <freetype/ftlzw.h>
425 
426 
427   /*************************************************************************
428    *
429    * @macro:
430    *   FT_WINFONTS_H
431    *
432    * @description:
433    *   A macro used in #include statements to name the file containing the
434    *   definitions of an API which supports Windows FNT files.
435    *
436    */
437 #define FT_WINFONTS_H   <freetype/ftwinfnt.h>
438 
439 
440   /*************************************************************************
441    *
442    * @macro:
443    *   FT_GLYPH_H
444    *
445    * @description:
446    *   A macro used in #include statements to name the file containing the
447    *   API of the optional glyph management component.
448    *
449    */
450 #define FT_GLYPH_H  <freetype/ftglyph.h>
451 
452 
453   /*************************************************************************
454    *
455    * @macro:
456    *   FT_BITMAP_H
457    *
458    * @description:
459    *   A macro used in #include statements to name the file containing the
460    *   API of the optional bitmap conversion component.
461    *
462    */
463 #define FT_BITMAP_H  <freetype/ftbitmap.h>
464 
465 
466   /*************************************************************************
467    *
468    * @macro:
469    *   FT_BBOX_H
470    *
471    * @description:
472    *   A macro used in #include statements to name the file containing the
473    *   API of the optional exact bounding box computation routines.
474    *
475    */
476 #define FT_BBOX_H  <freetype/ftbbox.h>
477 
478 
479   /*************************************************************************
480    *
481    * @macro:
482    *   FT_CACHE_H
483    *
484    * @description:
485    *   A macro used in #include statements to name the file containing the
486    *   API of the optional FreeType~2 cache sub-system.
487    *
488    */
489 #define FT_CACHE_H  <freetype/ftcache.h>
490 
491 
492   /*************************************************************************
493    *
494    * @macro:
495    *   FT_CACHE_IMAGE_H
496    *
497    * @description:
498    *   A macro used in #include statements to name the file containing the
499    *   `glyph image' API of the FreeType~2 cache sub-system.
500    *
501    *   It is used to define a cache for @FT_Glyph elements.  You can also
502    *   use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
503    *   store small glyph bitmaps, as it will use less memory.
504    *
505    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
506    *   glyph image-related cache declarations.
507    *
508    */
509 #define FT_CACHE_IMAGE_H  FT_CACHE_H
510 
511 
512   /*************************************************************************
513    *
514    * @macro:
515    *   FT_CACHE_SMALL_BITMAPS_H
516    *
517    * @description:
518    *   A macro used in #include statements to name the file containing the
519    *   `small bitmaps' API of the FreeType~2 cache sub-system.
520    *
521    *   It is used to define a cache for small glyph bitmaps in a relatively
522    *   memory-efficient way.  You can also use the API defined in
523    *   @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
524    *   including scalable outlines.
525    *
526    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
527    *   small bitmaps-related cache declarations.
528    *
529    */
530 #define FT_CACHE_SMALL_BITMAPS_H  FT_CACHE_H
531 
532 
533   /*************************************************************************
534    *
535    * @macro:
536    *   FT_CACHE_CHARMAP_H
537    *
538    * @description:
539    *   A macro used in #include statements to name the file containing the
540    *   `charmap' API of the FreeType~2 cache sub-system.
541    *
542    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
543    *   charmap-based cache declarations.
544    *
545    */
546 #define FT_CACHE_CHARMAP_H  FT_CACHE_H
547 
548 
549   /*************************************************************************
550    *
551    * @macro:
552    *   FT_MAC_H
553    *
554    * @description:
555    *   A macro used in #include statements to name the file containing the
556    *   Macintosh-specific FreeType~2 API.  The latter is used to access
557    *   fonts embedded in resource forks.
558    *
559    *   This header file must be explicitly included by client applications
560    *   compiled on the Mac (note that the base API still works though).
561    *
562    */
563 #define FT_MAC_H  <freetype/ftmac.h>
564 
565 
566   /*************************************************************************
567    *
568    * @macro:
569    *   FT_MULTIPLE_MASTERS_H
570    *
571    * @description:
572    *   A macro used in #include statements to name the file containing the
573    *   optional multiple-masters management API of FreeType~2.
574    *
575    */
576 #define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
577 
578 
579   /*************************************************************************
580    *
581    * @macro:
582    *   FT_SFNT_NAMES_H
583    *
584    * @description:
585    *   A macro used in #include statements to name the file containing the
586    *   optional FreeType~2 API which accesses embedded `name' strings in
587    *   SFNT-based font formats (i.e., TrueType and OpenType).
588    *
589    */
590 #define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
591 
592 
593   /*************************************************************************
594    *
595    * @macro:
596    *   FT_OPENTYPE_VALIDATE_H
597    *
598    * @description:
599    *   A macro used in #include statements to name the file containing the
600    *   optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
601    *   GPOS, GSUB, JSTF).
602    *
603    */
604 #define FT_OPENTYPE_VALIDATE_H  <freetype/ftotval.h>
605 
606 
607   /*************************************************************************
608    *
609    * @macro:
610    *   FT_GX_VALIDATE_H
611    *
612    * @description:
613    *   A macro used in #include statements to name the file containing the
614    *   optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
615    *   mort, morx, bsln, just, kern, opbd, trak, prop).
616    *
617    */
618 #define FT_GX_VALIDATE_H  <freetype/ftgxval.h>
619 
620 
621   /*************************************************************************
622    *
623    * @macro:
624    *   FT_PFR_H
625    *
626    * @description:
627    *   A macro used in #include statements to name the file containing the
628    *   FreeType~2 API which accesses PFR-specific data.
629    *
630    */
631 #define FT_PFR_H  <freetype/ftpfr.h>
632 
633 
634   /*************************************************************************
635    *
636    * @macro:
637    *   FT_STROKER_H
638    *
639    * @description:
640    *   A macro used in #include statements to name the file containing the
641    *   FreeType~2 API which provides functions to stroke outline paths.
642    */
643 #define FT_STROKER_H  <freetype/ftstroke.h>
644 
645 
646   /*************************************************************************
647    *
648    * @macro:
649    *   FT_SYNTHESIS_H
650    *
651    * @description:
652    *   A macro used in #include statements to name the file containing the
653    *   FreeType~2 API which performs artificial obliquing and emboldening.
654    */
655 #define FT_SYNTHESIS_H  <freetype/ftsynth.h>
656 
657 
658   /*************************************************************************
659    *
660    * @macro:
661    *   FT_XFREE86_H
662    *
663    * @description:
664    *   A macro used in #include statements to name the file containing the
665    *   FreeType~2 API which provides functions specific to the XFree86 and
666    *   X.Org X11 servers.
667    */
668 #define FT_XFREE86_H  <freetype/ftxf86.h>
669 
670 
671   /*************************************************************************
672    *
673    * @macro:
674    *   FT_TRIGONOMETRY_H
675    *
676    * @description:
677    *   A macro used in #include statements to name the file containing the
678    *   FreeType~2 API which performs trigonometric computations (e.g.,
679    *   cosines and arc tangents).
680    */
681 #define FT_TRIGONOMETRY_H  <freetype/fttrigon.h>
682 
683 
684   /*************************************************************************
685    *
686    * @macro:
687    *   FT_LCD_FILTER_H
688    *
689    * @description:
690    *   A macro used in #include statements to name the file containing the
691    *   FreeType~2 API which performs color filtering for subpixel rendering.
692    */
693 #define FT_LCD_FILTER_H  <freetype/ftlcdfil.h>
694 
695 
696   /*************************************************************************
697    *
698    * @macro:
699    *   FT_UNPATENTED_HINTING_H
700    *
701    * @description:
702    *   A macro used in #include statements to name the file containing the
703    *   FreeType~2 API which performs color filtering for subpixel rendering.
704    */
705 #define FT_UNPATENTED_HINTING_H  <freetype/ttunpat.h>
706 
707 
708   /*************************************************************************
709    *
710    * @macro:
711    *   FT_INCREMENTAL_H
712    *
713    * @description:
714    *   A macro used in #include statements to name the file containing the
715    *   FreeType~2 API which performs color filtering for subpixel rendering.
716    */
717 #define FT_INCREMENTAL_H  <freetype/ftincrem.h>
718 
719 
720   /*************************************************************************
721    *
722    * @macro:
723    *   FT_GASP_H
724    *
725    * @description:
726    *   A macro used in #include statements to name the file containing the
727    *   FreeType~2 API which returns entries from the TrueType GASP table.
728    */
729 #define FT_GASP_H  <freetype/ftgasp.h>
730 
731 
732   /*************************************************************************
733    *
734    * @macro:
735    *   FT_ADVANCES_H
736    *
737    * @description:
738    *   A macro used in #include statements to name the file containing the
739    *   FreeType~2 API which returns individual and ranged glyph advances.
740    */
741 #define FT_ADVANCES_H  <freetype/ftadvanc.h>
742 
743 
744   /* */
745 
746 #define FT_ERROR_DEFINITIONS_H  <freetype/fterrdef.h>
747 
748 
749   /* The internals of the cache sub-system are no longer exposed.  We */
750   /* default to FT_CACHE_H at the moment just in case, but we know of */
751   /* no rogue client that uses them.                                  */
752   /*                                                                  */
753 #define FT_CACHE_MANAGER_H           <freetype/ftcache.h>
754 #define FT_CACHE_INTERNAL_MRU_H      <freetype/ftcache.h>
755 #define FT_CACHE_INTERNAL_MANAGER_H  <freetype/ftcache.h>
756 #define FT_CACHE_INTERNAL_CACHE_H    <freetype/ftcache.h>
757 #define FT_CACHE_INTERNAL_GLYPH_H    <freetype/ftcache.h>
758 #define FT_CACHE_INTERNAL_IMAGE_H    <freetype/ftcache.h>
759 #define FT_CACHE_INTERNAL_SBITS_H    <freetype/ftcache.h>
760 
761 
762 #define FT_INCREMENTAL_H          <freetype/ftincrem.h>
763 
764 #define FT_TRUETYPE_UNPATENTED_H  <freetype/ttunpat.h>
765 
766 
767   /*
768    * Include internal headers definitions from <freetype/internal/...>
769    * only when building the library.
770    */
771 #ifdef FT2_BUILD_LIBRARY
772 #define  FT_INTERNAL_INTERNAL_H  <freetype/internal/internal.h>
773 #include FT_INTERNAL_INTERNAL_H
774 #endif /* FT2_BUILD_LIBRARY */
775 
776 
777 #endif /* __FT2_BUILD_H__ */
778 
779 
780 /* END */
781