1
/***************************************************************************/
5
/* Build macros of the FreeType 2 library. */
7
/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 by */
8
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16
/***************************************************************************/
18
#ifndef __FT_HEADER_H__
19
#define __FT_HEADER_H__
22
/*@***********************************************************************/
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 */
34
#define FT_BEGIN_HEADER extern "C" {
36
#define FT_BEGIN_HEADER /* nothing */
40
/*@***********************************************************************/
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 */
52
#define FT_END_HEADER }
54
#define FT_END_HEADER /* nothing */
58
/*************************************************************************/
60
/* Aliases for the FreeType 2 public and configuration files. */
62
/*************************************************************************/
64
/*************************************************************************/
67
/* header_file_macros */
70
/* Header File Macros */
73
/* Macro definitions used to #include specific header files. */
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: */
81
/* #include FT_FREETYPE_H */
82
/* #include FT_MULTIPLE_MASTERS_H */
83
/* #include FT_GLYPH_H */
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'). */
91
/* The second reason is that it allows for more flexibility in the */
92
/* way FreeType~2 is installed on a given system. */
94
/*************************************************************************/
97
/* configuration files */
99
/*************************************************************************
105
* A macro used in #include statements to name the file containing
106
* FreeType~2 configuration data.
109
#ifndef FT_CONFIG_CONFIG_H
110
#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
114
/*************************************************************************
117
* FT_CONFIG_STANDARD_LIBRARY_H
120
* A macro used in #include statements to name the file containing
121
* FreeType~2 interface to the standard C library functions.
124
#ifndef FT_CONFIG_STANDARD_LIBRARY_H
125
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
129
/*************************************************************************
132
* FT_CONFIG_OPTIONS_H
135
* A macro used in #include statements to name the file containing
136
* FreeType~2 project-specific configuration options.
139
#ifndef FT_CONFIG_OPTIONS_H
140
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
144
/*************************************************************************
147
* FT_CONFIG_MODULES_H
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.
155
#ifndef FT_CONFIG_MODULES_H
156
#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
163
/*************************************************************************
169
* A macro used in #include statements to name the file containing the
170
* base FreeType~2 API.
173
#define FT_FREETYPE_H <freetype/freetype.h>
176
/*************************************************************************
182
* A macro used in #include statements to name the file containing the
183
* list of FreeType~2 error codes (and messages).
185
* It is included by @FT_FREETYPE_H.
188
#define FT_ERRORS_H <freetype/fterrors.h>
191
/*************************************************************************
197
* A macro used in #include statements to name the file containing the
198
* list of FreeType~2 module error offsets (and messages).
201
#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
204
/*************************************************************************
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
214
* It is included by @FT_FREETYPE_H.
217
#define FT_SYSTEM_H <freetype/ftsystem.h>
220
/*************************************************************************
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).
230
* It is included by @FT_FREETYPE_H.
233
#define FT_IMAGE_H <freetype/ftimage.h>
236
/*************************************************************************
242
* A macro used in #include statements to name the file containing the
243
* basic data types defined by FreeType~2.
245
* It is included by @FT_FREETYPE_H.
248
#define FT_TYPES_H <freetype/fttypes.h>
251
/*************************************************************************
257
* A macro used in #include statements to name the file containing the
258
* list management API of FreeType~2.
260
* (Most applications will never need to include this file.)
263
#define FT_LIST_H <freetype/ftlist.h>
266
/*************************************************************************
272
* A macro used in #include statements to name the file containing the
273
* scalable outline management API of FreeType~2.
276
#define FT_OUTLINE_H <freetype/ftoutln.h>
279
/*************************************************************************
285
* A macro used in #include statements to name the file containing the
286
* API which manages multiple @FT_Size objects per face.
289
#define FT_SIZES_H <freetype/ftsizes.h>
292
/*************************************************************************
298
* A macro used in #include statements to name the file containing the
299
* module management API of FreeType~2.
302
#define FT_MODULE_H <freetype/ftmodapi.h>
305
/*************************************************************************
311
* A macro used in #include statements to name the file containing the
312
* renderer module management API of FreeType~2.
315
#define FT_RENDER_H <freetype/ftrender.h>
318
/*************************************************************************
324
* A macro used in #include statements to name the file containing the
325
* types and API specific to the Type~1 format.
328
#define FT_TYPE1_TABLES_H <freetype/t1tables.h>
331
/*************************************************************************
337
* A macro used in #include statements to name the file containing the
338
* enumeration values which identify name strings, languages, encodings,
339
* etc. This file really contains a _large_ set of constant macro
340
* definitions, taken from the TrueType and OpenType specifications.
343
#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
346
/*************************************************************************
349
* FT_TRUETYPE_TABLES_H
352
* A macro used in #include statements to name the file containing the
353
* types and API specific to the TrueType (as well as OpenType) format.
356
#define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
359
/*************************************************************************
365
* A macro used in #include statements to name the file containing the
366
* definitions of TrueType four-byte `tags' which identify blocks in
367
* SFNT-based font formats (i.e., TrueType and OpenType).
370
#define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
373
/*************************************************************************
379
* A macro used in #include statements to name the file containing the
380
* definitions of an API which accesses BDF-specific strings from a
384
#define FT_BDF_H <freetype/ftbdf.h>
387
/*************************************************************************
393
* A macro used in #include statements to name the file containing the
394
* definitions of an API which access CID font information from a
398
#define FT_CID_H <freetype/ftcid.h>
401
/*************************************************************************
407
* A macro used in #include statements to name the file containing the
408
* definitions of an API which supports gzip-compressed files.
411
#define FT_GZIP_H <freetype/ftgzip.h>
414
/*************************************************************************
420
* A macro used in #include statements to name the file containing the
421
* definitions of an API which supports LZW-compressed files.
424
#define FT_LZW_H <freetype/ftlzw.h>
427
/*************************************************************************
433
* A macro used in #include statements to name the file containing the
434
* definitions of an API which supports bzip2-compressed files.
437
#define FT_BZIP2_H <freetype/ftbzip2.h>
440
/*************************************************************************
446
* A macro used in #include statements to name the file containing the
447
* definitions of an API which supports Windows FNT files.
450
#define FT_WINFONTS_H <freetype/ftwinfnt.h>
453
/*************************************************************************
459
* A macro used in #include statements to name the file containing the
460
* API of the optional glyph management component.
463
#define FT_GLYPH_H <freetype/ftglyph.h>
466
/*************************************************************************
472
* A macro used in #include statements to name the file containing the
473
* API of the optional bitmap conversion component.
476
#define FT_BITMAP_H <freetype/ftbitmap.h>
479
/*************************************************************************
485
* A macro used in #include statements to name the file containing the
486
* API of the optional exact bounding box computation routines.
489
#define FT_BBOX_H <freetype/ftbbox.h>
492
/*************************************************************************
498
* A macro used in #include statements to name the file containing the
499
* API of the optional FreeType~2 cache sub-system.
502
#define FT_CACHE_H <freetype/ftcache.h>
505
/*************************************************************************
511
* A macro used in #include statements to name the file containing the
512
* `glyph image' API of the FreeType~2 cache sub-system.
514
* It is used to define a cache for @FT_Glyph elements. You can also
515
* use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
516
* store small glyph bitmaps, as it will use less memory.
518
* This macro is deprecated. Simply include @FT_CACHE_H to have all
519
* glyph image-related cache declarations.
522
#define FT_CACHE_IMAGE_H FT_CACHE_H
525
/*************************************************************************
528
* FT_CACHE_SMALL_BITMAPS_H
531
* A macro used in #include statements to name the file containing the
532
* `small bitmaps' API of the FreeType~2 cache sub-system.
534
* It is used to define a cache for small glyph bitmaps in a relatively
535
* memory-efficient way. You can also use the API defined in
536
* @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
537
* including scalable outlines.
539
* This macro is deprecated. Simply include @FT_CACHE_H to have all
540
* small bitmaps-related cache declarations.
543
#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
546
/*************************************************************************
552
* A macro used in #include statements to name the file containing the
553
* `charmap' API of the FreeType~2 cache sub-system.
555
* This macro is deprecated. Simply include @FT_CACHE_H to have all
556
* charmap-based cache declarations.
559
#define FT_CACHE_CHARMAP_H FT_CACHE_H
562
/*************************************************************************
568
* A macro used in #include statements to name the file containing the
569
* Macintosh-specific FreeType~2 API. The latter is used to access
570
* fonts embedded in resource forks.
572
* This header file must be explicitly included by client applications
573
* compiled on the Mac (note that the base API still works though).
576
#define FT_MAC_H <freetype/ftmac.h>
579
/*************************************************************************
582
* FT_MULTIPLE_MASTERS_H
585
* A macro used in #include statements to name the file containing the
586
* optional multiple-masters management API of FreeType~2.
589
#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
592
/*************************************************************************
598
* A macro used in #include statements to name the file containing the
599
* optional FreeType~2 API which accesses embedded `name' strings in
600
* SFNT-based font formats (i.e., TrueType and OpenType).
603
#define FT_SFNT_NAMES_H <freetype/ftsnames.h>
606
/*************************************************************************
609
* FT_OPENTYPE_VALIDATE_H
612
* A macro used in #include statements to name the file containing the
613
* optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
617
#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
620
/*************************************************************************
626
* A macro used in #include statements to name the file containing the
627
* optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
628
* mort, morx, bsln, just, kern, opbd, trak, prop).
631
#define FT_GX_VALIDATE_H <freetype/ftgxval.h>
634
/*************************************************************************
640
* A macro used in #include statements to name the file containing the
641
* FreeType~2 API which accesses PFR-specific data.
644
#define FT_PFR_H <freetype/ftpfr.h>
647
/*************************************************************************
653
* A macro used in #include statements to name the file containing the
654
* FreeType~2 API which provides functions to stroke outline paths.
656
#define FT_STROKER_H <freetype/ftstroke.h>
659
/*************************************************************************
665
* A macro used in #include statements to name the file containing the
666
* FreeType~2 API which performs artificial obliquing and emboldening.
668
#define FT_SYNTHESIS_H <freetype/ftsynth.h>
671
/*************************************************************************
677
* A macro used in #include statements to name the file containing the
678
* FreeType~2 API which provides functions specific to the XFree86 and
681
#define FT_XFREE86_H <freetype/ftxf86.h>
684
/*************************************************************************
690
* A macro used in #include statements to name the file containing the
691
* FreeType~2 API which performs trigonometric computations (e.g.,
692
* cosines and arc tangents).
694
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
697
/*************************************************************************
703
* A macro used in #include statements to name the file containing the
704
* FreeType~2 API which performs color filtering for subpixel rendering.
706
#define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
709
/*************************************************************************
712
* FT_UNPATENTED_HINTING_H
715
* A macro used in #include statements to name the file containing the
716
* FreeType~2 API which performs color filtering for subpixel rendering.
718
#define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
721
/*************************************************************************
727
* A macro used in #include statements to name the file containing the
728
* FreeType~2 API which performs color filtering for subpixel rendering.
730
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
733
/*************************************************************************
739
* A macro used in #include statements to name the file containing the
740
* FreeType~2 API which returns entries from the TrueType GASP table.
742
#define FT_GASP_H <freetype/ftgasp.h>
745
/*************************************************************************
751
* A macro used in #include statements to name the file containing the
752
* FreeType~2 API which returns individual and ranged glyph advances.
754
#define FT_ADVANCES_H <freetype/ftadvanc.h>
759
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
762
/* The internals of the cache sub-system are no longer exposed. We */
763
/* default to FT_CACHE_H at the moment just in case, but we know of */
764
/* no rogue client that uses them. */
766
#define FT_CACHE_MANAGER_H <freetype/ftcache.h>
767
#define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
768
#define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
769
#define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
770
#define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
771
#define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
772
#define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
775
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
777
#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
781
* Include internal headers definitions from <freetype/internal/...>
782
* only when building the library.
784
#ifdef FT2_BUILD_LIBRARY
785
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
786
#include FT_INTERNAL_INTERNAL_H
787
#endif /* FT2_BUILD_LIBRARY */
790
#endif /* __FT2_BUILD_H__ */