• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  *
3  * ftheader.h
4  *
5  *   Build macros of the FreeType 2 library.
6  *
7  * Copyright 1996-2018 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 FTHEADER_H_
19 #define FTHEADER_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_DRIVER_H
322    *
323    * @description:
324    *   A macro used in #include statements to name the file containing
325    *   structures and macros related to the driver modules.
326    *
327    */
328 #define FT_DRIVER_H  <freetype/ftdriver.h>
329 
330 
331   /*************************************************************************
332    *
333    * @macro:
334    *   FT_AUTOHINTER_H
335    *
336    * @description:
337    *   A macro used in #include statements to name the file containing
338    *   structures and macros related to the auto-hinting module.
339    *
340    *   Deprecated since version 2.9; use @FT_DRIVER_H instead.
341    *
342    */
343 #define FT_AUTOHINTER_H  FT_DRIVER_H
344 
345 
346   /*************************************************************************
347    *
348    * @macro:
349    *   FT_CFF_DRIVER_H
350    *
351    * @description:
352    *   A macro used in #include statements to name the file containing
353    *   structures and macros related to the CFF driver module.
354    *
355    *   Deprecated since version 2.9; use @FT_DRIVER_H instead.
356    *
357    */
358 #define FT_CFF_DRIVER_H  FT_DRIVER_H
359 
360 
361   /*************************************************************************
362    *
363    * @macro:
364    *   FT_TRUETYPE_DRIVER_H
365    *
366    * @description:
367    *   A macro used in #include statements to name the file containing
368    *   structures and macros related to the TrueType driver module.
369    *
370    *   Deprecated since version 2.9; use @FT_DRIVER_H instead.
371    *
372    */
373 #define FT_TRUETYPE_DRIVER_H  FT_DRIVER_H
374 
375 
376   /*************************************************************************
377    *
378    * @macro:
379    *   FT_PCF_DRIVER_H
380    *
381    * @description:
382    *   A macro used in #include statements to name the file containing
383    *   structures and macros related to the PCF driver module.
384    *
385    *   Deprecated since version 2.9; use @FT_DRIVER_H instead.
386    *
387    */
388 #define FT_PCF_DRIVER_H  FT_DRIVER_H
389 
390 
391   /*************************************************************************
392    *
393    * @macro:
394    *   FT_TYPE1_TABLES_H
395    *
396    * @description:
397    *   A macro used in #include statements to name the file containing the
398    *   types and API specific to the Type~1 format.
399    *
400    */
401 #define FT_TYPE1_TABLES_H  <freetype/t1tables.h>
402 
403 
404   /*************************************************************************
405    *
406    * @macro:
407    *   FT_TRUETYPE_IDS_H
408    *
409    * @description:
410    *   A macro used in #include statements to name the file containing the
411    *   enumeration values which identify name strings, languages, encodings,
412    *   etc.  This file really contains a _large_ set of constant macro
413    *   definitions, taken from the TrueType and OpenType specifications.
414    *
415    */
416 #define FT_TRUETYPE_IDS_H  <freetype/ttnameid.h>
417 
418 
419   /*************************************************************************
420    *
421    * @macro:
422    *   FT_TRUETYPE_TABLES_H
423    *
424    * @description:
425    *   A macro used in #include statements to name the file containing the
426    *   types and API specific to the TrueType (as well as OpenType) format.
427    *
428    */
429 #define FT_TRUETYPE_TABLES_H  <freetype/tttables.h>
430 
431 
432   /*************************************************************************
433    *
434    * @macro:
435    *   FT_TRUETYPE_TAGS_H
436    *
437    * @description:
438    *   A macro used in #include statements to name the file containing the
439    *   definitions of TrueType four-byte `tags' which identify blocks in
440    *   SFNT-based font formats (i.e., TrueType and OpenType).
441    *
442    */
443 #define FT_TRUETYPE_TAGS_H  <freetype/tttags.h>
444 
445 
446   /*************************************************************************
447    *
448    * @macro:
449    *   FT_BDF_H
450    *
451    * @description:
452    *   A macro used in #include statements to name the file containing the
453    *   definitions of an API which accesses BDF-specific strings from a
454    *   face.
455    *
456    */
457 #define FT_BDF_H  <freetype/ftbdf.h>
458 
459 
460   /*************************************************************************
461    *
462    * @macro:
463    *   FT_CID_H
464    *
465    * @description:
466    *   A macro used in #include statements to name the file containing the
467    *   definitions of an API which access CID font information from a
468    *   face.
469    *
470    */
471 #define FT_CID_H  <freetype/ftcid.h>
472 
473 
474   /*************************************************************************
475    *
476    * @macro:
477    *   FT_GZIP_H
478    *
479    * @description:
480    *   A macro used in #include statements to name the file containing the
481    *   definitions of an API which supports gzip-compressed files.
482    *
483    */
484 #define FT_GZIP_H  <freetype/ftgzip.h>
485 
486 
487   /*************************************************************************
488    *
489    * @macro:
490    *   FT_LZW_H
491    *
492    * @description:
493    *   A macro used in #include statements to name the file containing the
494    *   definitions of an API which supports LZW-compressed files.
495    *
496    */
497 #define FT_LZW_H  <freetype/ftlzw.h>
498 
499 
500   /*************************************************************************
501    *
502    * @macro:
503    *   FT_BZIP2_H
504    *
505    * @description:
506    *   A macro used in #include statements to name the file containing the
507    *   definitions of an API which supports bzip2-compressed files.
508    *
509    */
510 #define FT_BZIP2_H  <freetype/ftbzip2.h>
511 
512 
513   /*************************************************************************
514    *
515    * @macro:
516    *   FT_WINFONTS_H
517    *
518    * @description:
519    *   A macro used in #include statements to name the file containing the
520    *   definitions of an API which supports Windows FNT files.
521    *
522    */
523 #define FT_WINFONTS_H   <freetype/ftwinfnt.h>
524 
525 
526   /*************************************************************************
527    *
528    * @macro:
529    *   FT_GLYPH_H
530    *
531    * @description:
532    *   A macro used in #include statements to name the file containing the
533    *   API of the optional glyph management component.
534    *
535    */
536 #define FT_GLYPH_H  <freetype/ftglyph.h>
537 
538 
539   /*************************************************************************
540    *
541    * @macro:
542    *   FT_BITMAP_H
543    *
544    * @description:
545    *   A macro used in #include statements to name the file containing the
546    *   API of the optional bitmap conversion component.
547    *
548    */
549 #define FT_BITMAP_H  <freetype/ftbitmap.h>
550 
551 
552   /*************************************************************************
553    *
554    * @macro:
555    *   FT_BBOX_H
556    *
557    * @description:
558    *   A macro used in #include statements to name the file containing the
559    *   API of the optional exact bounding box computation routines.
560    *
561    */
562 #define FT_BBOX_H  <freetype/ftbbox.h>
563 
564 
565   /*************************************************************************
566    *
567    * @macro:
568    *   FT_CACHE_H
569    *
570    * @description:
571    *   A macro used in #include statements to name the file containing the
572    *   API of the optional FreeType~2 cache sub-system.
573    *
574    */
575 #define FT_CACHE_H  <freetype/ftcache.h>
576 
577 
578   /*************************************************************************
579    *
580    * @macro:
581    *   FT_MAC_H
582    *
583    * @description:
584    *   A macro used in #include statements to name the file containing the
585    *   Macintosh-specific FreeType~2 API.  The latter is used to access
586    *   fonts embedded in resource forks.
587    *
588    *   This header file must be explicitly included by client applications
589    *   compiled on the Mac (note that the base API still works though).
590    *
591    */
592 #define FT_MAC_H  <freetype/ftmac.h>
593 
594 
595   /*************************************************************************
596    *
597    * @macro:
598    *   FT_MULTIPLE_MASTERS_H
599    *
600    * @description:
601    *   A macro used in #include statements to name the file containing the
602    *   optional multiple-masters management API of FreeType~2.
603    *
604    */
605 #define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
606 
607 
608   /*************************************************************************
609    *
610    * @macro:
611    *   FT_SFNT_NAMES_H
612    *
613    * @description:
614    *   A macro used in #include statements to name the file containing the
615    *   optional FreeType~2 API which accesses embedded `name' strings in
616    *   SFNT-based font formats (i.e., TrueType and OpenType).
617    *
618    */
619 #define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
620 
621 
622   /*************************************************************************
623    *
624    * @macro:
625    *   FT_OPENTYPE_VALIDATE_H
626    *
627    * @description:
628    *   A macro used in #include statements to name the file containing the
629    *   optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
630    *   GPOS, GSUB, JSTF).
631    *
632    */
633 #define FT_OPENTYPE_VALIDATE_H  <freetype/ftotval.h>
634 
635 
636   /*************************************************************************
637    *
638    * @macro:
639    *   FT_GX_VALIDATE_H
640    *
641    * @description:
642    *   A macro used in #include statements to name the file containing the
643    *   optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
644    *   mort, morx, bsln, just, kern, opbd, trak, prop).
645    *
646    */
647 #define FT_GX_VALIDATE_H  <freetype/ftgxval.h>
648 
649 
650   /*************************************************************************
651    *
652    * @macro:
653    *   FT_PFR_H
654    *
655    * @description:
656    *   A macro used in #include statements to name the file containing the
657    *   FreeType~2 API which accesses PFR-specific data.
658    *
659    */
660 #define FT_PFR_H  <freetype/ftpfr.h>
661 
662 
663   /*************************************************************************
664    *
665    * @macro:
666    *   FT_STROKER_H
667    *
668    * @description:
669    *   A macro used in #include statements to name the file containing the
670    *   FreeType~2 API which provides functions to stroke outline paths.
671    */
672 #define FT_STROKER_H  <freetype/ftstroke.h>
673 
674 
675   /*************************************************************************
676    *
677    * @macro:
678    *   FT_SYNTHESIS_H
679    *
680    * @description:
681    *   A macro used in #include statements to name the file containing the
682    *   FreeType~2 API which performs artificial obliquing and emboldening.
683    */
684 #define FT_SYNTHESIS_H  <freetype/ftsynth.h>
685 
686 
687   /*************************************************************************
688    *
689    * @macro:
690    *   FT_FONT_FORMATS_H
691    *
692    * @description:
693    *   A macro used in #include statements to name the file containing the
694    *   FreeType~2 API which provides functions specific to font formats.
695    */
696 #define FT_FONT_FORMATS_H  <freetype/ftfntfmt.h>
697 
698   /* deprecated */
699 #define FT_XFREE86_H  FT_FONT_FORMATS_H
700 
701 
702   /*************************************************************************
703    *
704    * @macro:
705    *   FT_TRIGONOMETRY_H
706    *
707    * @description:
708    *   A macro used in #include statements to name the file containing the
709    *   FreeType~2 API which performs trigonometric computations (e.g.,
710    *   cosines and arc tangents).
711    */
712 #define FT_TRIGONOMETRY_H  <freetype/fttrigon.h>
713 
714 
715   /*************************************************************************
716    *
717    * @macro:
718    *   FT_LCD_FILTER_H
719    *
720    * @description:
721    *   A macro used in #include statements to name the file containing the
722    *   FreeType~2 API which performs color filtering for subpixel rendering.
723    */
724 #define FT_LCD_FILTER_H  <freetype/ftlcdfil.h>
725 
726 
727   /*************************************************************************
728    *
729    * @macro:
730    *   FT_INCREMENTAL_H
731    *
732    * @description:
733    *   A macro used in #include statements to name the file containing the
734    *   FreeType~2 API which performs incremental glyph loading.
735    */
736 #define FT_INCREMENTAL_H  <freetype/ftincrem.h>
737 
738 
739   /*************************************************************************
740    *
741    * @macro:
742    *   FT_GASP_H
743    *
744    * @description:
745    *   A macro used in #include statements to name the file containing the
746    *   FreeType~2 API which returns entries from the TrueType GASP table.
747    */
748 #define FT_GASP_H  <freetype/ftgasp.h>
749 
750 
751   /*************************************************************************
752    *
753    * @macro:
754    *   FT_ADVANCES_H
755    *
756    * @description:
757    *   A macro used in #include statements to name the file containing the
758    *   FreeType~2 API which returns individual and ranged glyph advances.
759    */
760 #define FT_ADVANCES_H  <freetype/ftadvanc.h>
761 
762 
763   /*************************************************************************
764    *
765    * @macro:
766    *   FT_COLOR_H
767    *
768    * @description:
769    *   A macro used in #include statements to name the file containing the
770    *   FreeType~2 API which handles the OpenType CPAL table.
771    */
772 #define FT_COLOR_H  <freetype/ftcolor.h>
773 
774 
775   /* */
776 
777   /* These header files don't need to be included by the user. */
778 #define FT_ERROR_DEFINITIONS_H  <freetype/fterrdef.h>
779 #define FT_PARAMETER_TAGS_H     <freetype/ftparams.h>
780 
781   /* Deprecated macros. */
782 #define FT_UNPATENTED_HINTING_H   <freetype/ftparams.h>
783 #define FT_TRUETYPE_UNPATENTED_H  <freetype/ftparams.h>
784 
785   /* FT_CACHE_H is the only header file needed for the cache subsystem. */
786 #define FT_CACHE_IMAGE_H          FT_CACHE_H
787 #define FT_CACHE_SMALL_BITMAPS_H  FT_CACHE_H
788 #define FT_CACHE_CHARMAP_H        FT_CACHE_H
789 
790   /* The internals of the cache sub-system are no longer exposed.  We */
791   /* default to FT_CACHE_H at the moment just in case, but we know of */
792   /* no rogue client that uses them.                                  */
793   /*                                                                  */
794 #define FT_CACHE_MANAGER_H           FT_CACHE_H
795 #define FT_CACHE_INTERNAL_MRU_H      FT_CACHE_H
796 #define FT_CACHE_INTERNAL_MANAGER_H  FT_CACHE_H
797 #define FT_CACHE_INTERNAL_CACHE_H    FT_CACHE_H
798 #define FT_CACHE_INTERNAL_GLYPH_H    FT_CACHE_H
799 #define FT_CACHE_INTERNAL_IMAGE_H    FT_CACHE_H
800 #define FT_CACHE_INTERNAL_SBITS_H    FT_CACHE_H
801 
802 
803   /*
804    * Include internal headers definitions from <internal/...>
805    * only when building the library.
806    */
807 #ifdef FT2_BUILD_LIBRARY
808 #define  FT_INTERNAL_INTERNAL_H  <freetype/internal/internal.h>
809 #include FT_INTERNAL_INTERNAL_H
810 #endif /* FT2_BUILD_LIBRARY */
811 
812 
813 #endif /* FTHEADER_H_ */
814 
815 
816 /* END */
817