ReactOS  0.4.14-dev-41-g31d7680
ftheader.h
Go to the documentation of this file.
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  /* These header files don't need to be included by the user. */
766 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
767 #define FT_PARAMETER_TAGS_H <freetype/ftparams.h>
768 
769  /* Deprecated macros. */
770 #define FT_UNPATENTED_HINTING_H <freetype/ftparams.h>
771 #define FT_TRUETYPE_UNPATENTED_H <freetype/ftparams.h>
772 
773  /* FT_CACHE_H is the only header file needed for the cache subsystem. */
774 #define FT_CACHE_IMAGE_H FT_CACHE_H
775 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
776 #define FT_CACHE_CHARMAP_H FT_CACHE_H
777 
778  /* The internals of the cache sub-system are no longer exposed. We */
779  /* default to FT_CACHE_H at the moment just in case, but we know of */
780  /* no rogue client that uses them. */
781  /* */
782 #define FT_CACHE_MANAGER_H FT_CACHE_H
783 #define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H
784 #define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H
785 #define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H
786 #define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H
787 #define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H
788 #define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H
789 
790 
791  /*
792  * Include internal headers definitions from <internal/...>
793  * only when building the library.
794  */
795 #ifdef FT2_BUILD_LIBRARY
796 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
797 #include FT_INTERNAL_INTERNAL_H
798 #endif /* FT2_BUILD_LIBRARY */
799 
800 
801 #endif /* FTHEADER_H_ */
802 
803 
804 /* END */