sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
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 */
freetype
include
freetype
config
ftheader.h
Generated by
1.18.0