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