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 */
805