• 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, 2010 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_BZIP2_H
431    *
432    * @description:
433    *   A macro used in #include statements to name the file containing the
434    *   definitions of an API which supports bzip2-compressed files.
435    *
436    */
437 #define FT_BZIP2_H  <freetype/ftbzip2.h>
438 
439 
440   /*************************************************************************
441    *
442    * @macro:
443    *   FT_WINFONTS_H
444    *
445    * @description:
446    *   A macro used in #include statements to name the file containing the
447    *   definitions of an API which supports Windows FNT files.
448    *
449    */
450 #define FT_WINFONTS_H   <freetype/ftwinfnt.h>
451 
452 
453   /*************************************************************************
454    *
455    * @macro:
456    *   FT_GLYPH_H
457    *
458    * @description:
459    *   A macro used in #include statements to name the file containing the
460    *   API of the optional glyph management component.
461    *
462    */
463 #define FT_GLYPH_H  <freetype/ftglyph.h>
464 
465 
466   /*************************************************************************
467    *
468    * @macro:
469    *   FT_BITMAP_H
470    *
471    * @description:
472    *   A macro used in #include statements to name the file containing the
473    *   API of the optional bitmap conversion component.
474    *
475    */
476 #define FT_BITMAP_H  <freetype/ftbitmap.h>
477 
478 
479   /*************************************************************************
480    *
481    * @macro:
482    *   FT_BBOX_H
483    *
484    * @description:
485    *   A macro used in #include statements to name the file containing the
486    *   API of the optional exact bounding box computation routines.
487    *
488    */
489 #define FT_BBOX_H  <freetype/ftbbox.h>
490 
491 
492   /*************************************************************************
493    *
494    * @macro:
495    *   FT_CACHE_H
496    *
497    * @description:
498    *   A macro used in #include statements to name the file containing the
499    *   API of the optional FreeType~2 cache sub-system.
500    *
501    */
502 #define FT_CACHE_H  <freetype/ftcache.h>
503 
504 
505   /*************************************************************************
506    *
507    * @macro:
508    *   FT_CACHE_IMAGE_H
509    *
510    * @description:
511    *   A macro used in #include statements to name the file containing the
512    *   `glyph image' API of the FreeType~2 cache sub-system.
513    *
514    *   It is used to define a cache for @FT_Glyph elements.  You can also
515    *   use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
516    *   store small glyph bitmaps, as it will use less memory.
517    *
518    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
519    *   glyph image-related cache declarations.
520    *
521    */
522 #define FT_CACHE_IMAGE_H  FT_CACHE_H
523 
524 
525   /*************************************************************************
526    *
527    * @macro:
528    *   FT_CACHE_SMALL_BITMAPS_H
529    *
530    * @description:
531    *   A macro used in #include statements to name the file containing the
532    *   `small bitmaps' API of the FreeType~2 cache sub-system.
533    *
534    *   It is used to define a cache for small glyph bitmaps in a relatively
535    *   memory-efficient way.  You can also use the API defined in
536    *   @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
537    *   including scalable outlines.
538    *
539    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
540    *   small bitmaps-related cache declarations.
541    *
542    */
543 #define FT_CACHE_SMALL_BITMAPS_H  FT_CACHE_H
544 
545 
546   /*************************************************************************
547    *
548    * @macro:
549    *   FT_CACHE_CHARMAP_H
550    *
551    * @description:
552    *   A macro used in #include statements to name the file containing the
553    *   `charmap' API of the FreeType~2 cache sub-system.
554    *
555    *   This macro is deprecated.  Simply include @FT_CACHE_H to have all
556    *   charmap-based cache declarations.
557    *
558    */
559 #define FT_CACHE_CHARMAP_H  FT_CACHE_H
560 
561 
562   /*************************************************************************
563    *
564    * @macro:
565    *   FT_MAC_H
566    *
567    * @description:
568    *   A macro used in #include statements to name the file containing the
569    *   Macintosh-specific FreeType~2 API.  The latter is used to access
570    *   fonts embedded in resource forks.
571    *
572    *   This header file must be explicitly included by client applications
573    *   compiled on the Mac (note that the base API still works though).
574    *
575    */
576 #define FT_MAC_H  <freetype/ftmac.h>
577 
578 
579   /*************************************************************************
580    *
581    * @macro:
582    *   FT_MULTIPLE_MASTERS_H
583    *
584    * @description:
585    *   A macro used in #include statements to name the file containing the
586    *   optional multiple-masters management API of FreeType~2.
587    *
588    */
589 #define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
590 
591 
592   /*************************************************************************
593    *
594    * @macro:
595    *   FT_SFNT_NAMES_H
596    *
597    * @description:
598    *   A macro used in #include statements to name the file containing the
599    *   optional FreeType~2 API which accesses embedded `name' strings in
600    *   SFNT-based font formats (i.e., TrueType and OpenType).
601    *
602    */
603 #define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
604 
605 
606   /*************************************************************************
607    *
608    * @macro:
609    *   FT_OPENTYPE_VALIDATE_H
610    *
611    * @description:
612    *   A macro used in #include statements to name the file containing the
613    *   optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
614    *   GPOS, GSUB, JSTF).
615    *
616    */
617 #define FT_OPENTYPE_VALIDATE_H  <freetype/ftotval.h>
618 
619 
620   /*************************************************************************
621    *
622    * @macro:
623    *   FT_GX_VALIDATE_H
624    *
625    * @description:
626    *   A macro used in #include statements to name the file containing the
627    *   optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
628    *   mort, morx, bsln, just, kern, opbd, trak, prop).
629    *
630    */
631 #define FT_GX_VALIDATE_H  <freetype/ftgxval.h>
632 
633 
634   /*************************************************************************
635    *
636    * @macro:
637    *   FT_PFR_H
638    *
639    * @description:
640    *   A macro used in #include statements to name the file containing the
641    *   FreeType~2 API which accesses PFR-specific data.
642    *
643    */
644 #define FT_PFR_H  <freetype/ftpfr.h>
645 
646 
647   /*************************************************************************
648    *
649    * @macro:
650    *   FT_STROKER_H
651    *
652    * @description:
653    *   A macro used in #include statements to name the file containing the
654    *   FreeType~2 API which provides functions to stroke outline paths.
655    */
656 #define FT_STROKER_H  <freetype/ftstroke.h>
657 
658 
659   /*************************************************************************
660    *
661    * @macro:
662    *   FT_SYNTHESIS_H
663    *
664    * @description:
665    *   A macro used in #include statements to name the file containing the
666    *   FreeType~2 API which performs artificial obliquing and emboldening.
667    */
668 #define FT_SYNTHESIS_H  <freetype/ftsynth.h>
669 
670 
671   /*************************************************************************
672    *
673    * @macro:
674    *   FT_XFREE86_H
675    *
676    * @description:
677    *   A macro used in #include statements to name the file containing the
678    *   FreeType~2 API which provides functions specific to the XFree86 and
679    *   X.Org X11 servers.
680    */
681 #define FT_XFREE86_H  <freetype/ftxf86.h>
682 
683 
684   /*************************************************************************
685    *
686    * @macro:
687    *   FT_TRIGONOMETRY_H
688    *
689    * @description:
690    *   A macro used in #include statements to name the file containing the
691    *   FreeType~2 API which performs trigonometric computations (e.g.,
692    *   cosines and arc tangents).
693    */
694 #define FT_TRIGONOMETRY_H  <freetype/fttrigon.h>
695 
696 
697   /*************************************************************************
698    *
699    * @macro:
700    *   FT_LCD_FILTER_H
701    *
702    * @description:
703    *   A macro used in #include statements to name the file containing the
704    *   FreeType~2 API which performs color filtering for subpixel rendering.
705    */
706 #define FT_LCD_FILTER_H  <freetype/ftlcdfil.h>
707 
708 
709   /*************************************************************************
710    *
711    * @macro:
712    *   FT_UNPATENTED_HINTING_H
713    *
714    * @description:
715    *   A macro used in #include statements to name the file containing the
716    *   FreeType~2 API which performs color filtering for subpixel rendering.
717    */
718 #define FT_UNPATENTED_HINTING_H  <freetype/ttunpat.h>
719 
720 
721   /*************************************************************************
722    *
723    * @macro:
724    *   FT_INCREMENTAL_H
725    *
726    * @description:
727    *   A macro used in #include statements to name the file containing the
728    *   FreeType~2 API which performs color filtering for subpixel rendering.
729    */
730 #define FT_INCREMENTAL_H  <freetype/ftincrem.h>
731 
732 
733   /*************************************************************************
734    *
735    * @macro:
736    *   FT_GASP_H
737    *
738    * @description:
739    *   A macro used in #include statements to name the file containing the
740    *   FreeType~2 API which returns entries from the TrueType GASP table.
741    */
742 #define FT_GASP_H  <freetype/ftgasp.h>
743 
744 
745   /*************************************************************************
746    *
747    * @macro:
748    *   FT_ADVANCES_H
749    *
750    * @description:
751    *   A macro used in #include statements to name the file containing the
752    *   FreeType~2 API which returns individual and ranged glyph advances.
753    */
754 #define FT_ADVANCES_H  <freetype/ftadvanc.h>
755 
756 
757   /* */
758 
759 #define FT_ERROR_DEFINITIONS_H  <freetype/fterrdef.h>
760 
761 
762   /* The internals of the cache sub-system are no longer exposed.  We */
763   /* default to FT_CACHE_H at the moment just in case, but we know of */
764   /* no rogue client that uses them.                                  */
765   /*                                                                  */
766 #define FT_CACHE_MANAGER_H           <freetype/ftcache.h>
767 #define FT_CACHE_INTERNAL_MRU_H      <freetype/ftcache.h>
768 #define FT_CACHE_INTERNAL_MANAGER_H  <freetype/ftcache.h>
769 #define FT_CACHE_INTERNAL_CACHE_H    <freetype/ftcache.h>
770 #define FT_CACHE_INTERNAL_GLYPH_H    <freetype/ftcache.h>
771 #define FT_CACHE_INTERNAL_IMAGE_H    <freetype/ftcache.h>
772 #define FT_CACHE_INTERNAL_SBITS_H    <freetype/ftcache.h>
773 
774 
775 #define FT_INCREMENTAL_H          <freetype/ftincrem.h>
776 
777 #define FT_TRUETYPE_UNPATENTED_H  <freetype/ttunpat.h>
778 
779 
780   /*
781    * Include internal headers definitions from <freetype/internal/...>
782    * only when building the library.
783    */
784 #ifdef FT2_BUILD_LIBRARY
785 #define  FT_INTERNAL_INTERNAL_H  <freetype/internal/internal.h>
786 #include FT_INTERNAL_INTERNAL_H
787 #endif /* FT2_BUILD_LIBRARY */
788 
789 
790 #endif /* __FT2_BUILD_H__ */
791 
792 
793 /* END */
794