b957d05bedd28e8078464639b3ddd905ebdb0c7e
[reactos.git] / reactos / lib / 3rdparty / freetype / include / freetype / config / ftheader.h
1 /***************************************************************************/
2 /* */
3 /* ftheader.h */
4 /* */
5 /* Build macros of the FreeType 2 library. */
6 /* */
7 /* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 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 __FT_HEADER_H__
19 #define __FT_HEADER_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 /* public headers */
161
162 /*************************************************************************
163 *
164 * @macro:
165 * FT_FREETYPE_H
166 *
167 * @description:
168 * A macro used in #include statements to name the file containing the
169 * base FreeType 2 API.
170 *
171 */
172 #define FT_FREETYPE_H <freetype/freetype.h>
173
174
175 /*************************************************************************
176 *
177 * @macro:
178 * FT_ERRORS_H
179 *
180 * @description:
181 * A macro used in #include statements to name the file containing the
182 * list of FreeType 2 error codes (and messages).
183 *
184 * It is included by @FT_FREETYPE_H.
185 *
186 */
187 #define FT_ERRORS_H <freetype/fterrors.h>
188
189
190 /*************************************************************************
191 *
192 * @macro:
193 * FT_MODULE_ERRORS_H
194 *
195 * @description:
196 * A macro used in #include statements to name the file containing the
197 * list of FreeType 2 module error offsets (and messages).
198 *
199 */
200 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
201
202
203 /*************************************************************************
204 *
205 * @macro:
206 * FT_SYSTEM_H
207 *
208 * @description:
209 * A macro used in #include statements to name the file containing the
210 * FreeType 2 interface to low-level operations (i.e., memory management
211 * and stream i/o).
212 *
213 * It is included by @FT_FREETYPE_H.
214 *
215 */
216 #define FT_SYSTEM_H <freetype/ftsystem.h>
217
218
219 /*************************************************************************
220 *
221 * @macro:
222 * FT_IMAGE_H
223 *
224 * @description:
225 * A macro used in #include statements to name the file containing type
226 * definitions related to glyph images (i.e., bitmaps, outlines,
227 * scan-converter parameters).
228 *
229 * It is included by @FT_FREETYPE_H.
230 *
231 */
232 #define FT_IMAGE_H <freetype/ftimage.h>
233
234
235 /*************************************************************************
236 *
237 * @macro:
238 * FT_TYPES_H
239 *
240 * @description:
241 * A macro used in #include statements to name the file containing the
242 * basic data types defined by FreeType 2.
243 *
244 * It is included by @FT_FREETYPE_H.
245 *
246 */
247 #define FT_TYPES_H <freetype/fttypes.h>
248
249
250 /*************************************************************************
251 *
252 * @macro:
253 * FT_LIST_H
254 *
255 * @description:
256 * A macro used in #include statements to name the file containing the
257 * list management API of FreeType 2.
258 *
259 * (Most applications will never need to include this file.)
260 *
261 */
262 #define FT_LIST_H <freetype/ftlist.h>
263
264
265 /*************************************************************************
266 *
267 * @macro:
268 * FT_OUTLINE_H
269 *
270 * @description:
271 * A macro used in #include statements to name the file containing the
272 * scalable outline management API of FreeType 2.
273 *
274 */
275 #define FT_OUTLINE_H <freetype/ftoutln.h>
276
277
278 /*************************************************************************
279 *
280 * @macro:
281 * FT_SIZES_H
282 *
283 * @description:
284 * A macro used in #include statements to name the file containing the
285 * API which manages multiple @FT_Size objects per face.
286 *
287 */
288 #define FT_SIZES_H <freetype/ftsizes.h>
289
290
291 /*************************************************************************
292 *
293 * @macro:
294 * FT_MODULE_H
295 *
296 * @description:
297 * A macro used in #include statements to name the file containing the
298 * module management API of FreeType 2.
299 *
300 */
301 #define FT_MODULE_H <freetype/ftmodapi.h>
302
303
304 /*************************************************************************
305 *
306 * @macro:
307 * FT_RENDER_H
308 *
309 * @description:
310 * A macro used in #include statements to name the file containing the
311 * renderer module management API of FreeType 2.
312 *
313 */
314 #define FT_RENDER_H <freetype/ftrender.h>
315
316
317 /*************************************************************************
318 *
319 * @macro:
320 * FT_TYPE1_TABLES_H
321 *
322 * @description:
323 * A macro used in #include statements to name the file containing the
324 * types and API specific to the Type 1 format.
325 *
326 */
327 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
328
329
330 /*************************************************************************
331 *
332 * @macro:
333 * FT_TRUETYPE_IDS_H
334 *
335 * @description:
336 * A macro used in #include statements to name the file containing the
337 * enumeration values which identify name strings, languages, encodings,
338 * etc. This file really contains a _large_ set of constant macro
339 * definitions, taken from the TrueType and OpenType specifications.
340 *
341 */
342 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
343
344
345 /*************************************************************************
346 *
347 * @macro:
348 * FT_TRUETYPE_TABLES_H
349 *
350 * @description:
351 * A macro used in #include statements to name the file containing the
352 * types and API specific to the TrueType (as well as OpenType) format.
353 *
354 */
355 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
356
357
358 /*************************************************************************
359 *
360 * @macro:
361 * FT_TRUETYPE_TAGS_H
362 *
363 * @description:
364 * A macro used in #include statements to name the file containing the
365 * definitions of TrueType four-byte `tags' which identify blocks in
366 * SFNT-based font formats (i.e., TrueType and OpenType).
367 *
368 */
369 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
370
371
372 /*************************************************************************
373 *
374 * @macro:
375 * FT_BDF_H
376 *
377 * @description:
378 * A macro used in #include statements to name the file containing the
379 * definitions of an API which accesses BDF-specific strings from a
380 * face.
381 *
382 */
383 #define FT_BDF_H <freetype/ftbdf.h>
384
385
386 /*************************************************************************
387 *
388 * @macro:
389 * FT_GZIP_H
390 *
391 * @description:
392 * A macro used in #include statements to name the file containing the
393 * definitions of an API which supports gzip-compressed files.
394 *
395 */
396 #define FT_GZIP_H <freetype/ftgzip.h>
397
398
399 /*************************************************************************
400 *
401 * @macro:
402 * FT_LZW_H
403 *
404 * @description:
405 * A macro used in #include statements to name the file containing the
406 * definitions of an API which supports LZW-compressed files.
407 *
408 */
409 #define FT_LZW_H <freetype/ftlzw.h>
410
411
412 /*************************************************************************
413 *
414 * @macro:
415 * FT_WINFONTS_H
416 *
417 * @description:
418 * A macro used in #include statements to name the file containing the
419 * definitions of an API which supports Windows FNT files.
420 *
421 */
422 #define FT_WINFONTS_H <freetype/ftwinfnt.h>
423
424
425 /*************************************************************************
426 *
427 * @macro:
428 * FT_GLYPH_H
429 *
430 * @description:
431 * A macro used in #include statements to name the file containing the
432 * API of the optional glyph management component.
433 *
434 */
435 #define FT_GLYPH_H <freetype/ftglyph.h>
436
437
438 /*************************************************************************
439 *
440 * @macro:
441 * FT_BITMAP_H
442 *
443 * @description:
444 * A macro used in #include statements to name the file containing the
445 * API of the optional bitmap conversion component.
446 *
447 */
448 #define FT_BITMAP_H <freetype/ftbitmap.h>
449
450
451 /*************************************************************************
452 *
453 * @macro:
454 * FT_BBOX_H
455 *
456 * @description:
457 * A macro used in #include statements to name the file containing the
458 * API of the optional exact bounding box computation routines.
459 *
460 */
461 #define FT_BBOX_H <freetype/ftbbox.h>
462
463
464 /*************************************************************************
465 *
466 * @macro:
467 * FT_CACHE_H
468 *
469 * @description:
470 * A macro used in #include statements to name the file containing the
471 * API of the optional FreeType 2 cache sub-system.
472 *
473 */
474 #define FT_CACHE_H <freetype/ftcache.h>
475
476
477 /*************************************************************************
478 *
479 * @macro:
480 * FT_CACHE_IMAGE_H
481 *
482 * @description:
483 * A macro used in #include statements to name the file containing the
484 * `glyph image' API of the FreeType 2 cache sub-system.
485 *
486 * It is used to define a cache for @FT_Glyph elements. You can also
487 * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
488 * store small glyph bitmaps, as it will use less memory.
489 *
490 * This macro is deprecated. Simply include @FT_CACHE_H to have all
491 * glyph image-related cache declarations.
492 *
493 */
494 #define FT_CACHE_IMAGE_H FT_CACHE_H
495
496
497 /*************************************************************************
498 *
499 * @macro:
500 * FT_CACHE_SMALL_BITMAPS_H
501 *
502 * @description:
503 * A macro used in #include statements to name the file containing the
504 * `small bitmaps' API of the FreeType 2 cache sub-system.
505 *
506 * It is used to define a cache for small glyph bitmaps in a relatively
507 * memory-efficient way. You can also use the API defined in
508 * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
509 * including scalable outlines.
510 *
511 * This macro is deprecated. Simply include @FT_CACHE_H to have all
512 * small bitmaps-related cache declarations.
513 *
514 */
515 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
516
517
518 /*************************************************************************
519 *
520 * @macro:
521 * FT_CACHE_CHARMAP_H
522 *
523 * @description:
524 * A macro used in #include statements to name the file containing the
525 * `charmap' API of the FreeType 2 cache sub-system.
526 *
527 * This macro is deprecated. Simply include @FT_CACHE_H to have all
528 * charmap-based cache declarations.
529 *
530 */
531 #define FT_CACHE_CHARMAP_H FT_CACHE_H
532
533
534 /*************************************************************************
535 *
536 * @macro:
537 * FT_MAC_H
538 *
539 * @description:
540 * A macro used in #include statements to name the file containing the
541 * Macintosh-specific FreeType 2 API. The latter is used to access
542 * fonts embedded in resource forks.
543 *
544 * This header file must be explicitly included by client applications
545 * compiled on the Mac (note that the base API still works though).
546 *
547 */
548 #define FT_MAC_H <freetype/ftmac.h>
549
550
551 /*************************************************************************
552 *
553 * @macro:
554 * FT_MULTIPLE_MASTERS_H
555 *
556 * @description:
557 * A macro used in #include statements to name the file containing the
558 * optional multiple-masters management API of FreeType 2.
559 *
560 */
561 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
562
563
564 /*************************************************************************
565 *
566 * @macro:
567 * FT_SFNT_NAMES_H
568 *
569 * @description:
570 * A macro used in #include statements to name the file containing the
571 * optional FreeType 2 API which accesses embedded `name' strings in
572 * SFNT-based font formats (i.e., TrueType and OpenType).
573 *
574 */
575 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
576
577
578 /*************************************************************************
579 *
580 * @macro:
581 * FT_OPENTYPE_VALIDATE_H
582 *
583 * @description:
584 * A macro used in #include statements to name the file containing the
585 * optional FreeType 2 API which validates OpenType tables (BASE, GDEF,
586 * GPOS, GSUB, JSTF).
587 *
588 */
589 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
590
591
592 /*************************************************************************
593 *
594 * @macro:
595 * FT_GX_VALIDATE_H
596 *
597 * @description:
598 * A macro used in #include statements to name the file containing the
599 * optional FreeType 2 API which validates TrueTypeGX/AAT tables (feat,
600 * mort, morx, bsln, just, kern, opbd, trak, prop).
601 *
602 */
603 #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
604
605
606 /*************************************************************************
607 *
608 * @macro:
609 * FT_PFR_H
610 *
611 * @description:
612 * A macro used in #include statements to name the file containing the
613 * FreeType 2 API which accesses PFR-specific data.
614 *
615 */
616 #define FT_PFR_H <freetype/ftpfr.h>
617
618
619 /*************************************************************************
620 *
621 * @macro:
622 * FT_STROKER_H
623 *
624 * @description:
625 * A macro used in #include statements to name the file containing the
626 * FreeType 2 API which provides functions to stroke outline paths.
627 */
628 #define FT_STROKER_H <freetype/ftstroke.h>
629
630
631 /*************************************************************************
632 *
633 * @macro:
634 * FT_SYNTHESIS_H
635 *
636 * @description:
637 * A macro used in #include statements to name the file containing the
638 * FreeType 2 API which performs artificial obliquing and emboldening.
639 */
640 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
641
642
643 /*************************************************************************
644 *
645 * @macro:
646 * FT_XFREE86_H
647 *
648 * @description:
649 * A macro used in #include statements to name the file containing the
650 * FreeType 2 API which provides functions specific to the XFree86 and
651 * X.Org X11 servers.
652 */
653 #define FT_XFREE86_H <freetype/ftxf86.h>
654
655
656 /*************************************************************************
657 *
658 * @macro:
659 * FT_TRIGONOMETRY_H
660 *
661 * @description:
662 * A macro used in #include statements to name the file containing the
663 * FreeType 2 API which performs trigonometric computations (e.g.,
664 * cosines and arc tangents).
665 */
666 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
667
668
669 /*************************************************************************
670 *
671 * @macro:
672 * FT_LCD_FILTER_H
673 *
674 * @description:
675 * A macro used in #include statements to name the file containing the
676 * FreeType 2 API which performs color filtering for subpixel rendering.
677 */
678 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
679
680
681 /*************************************************************************
682 *
683 * @macro:
684 * FT_GASP_H
685 *
686 * @description:
687 * A macro used in #include statements to name the file containing the
688 * FreeType 2 API which returns entries from the TrueType GASP table.
689 */
690 #define FT_GASP_H <freetype/ftgasp.h>
691
692
693 /* */
694
695 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
696
697
698 /* The internals of the cache sub-system are no longer exposed. We */
699 /* default to FT_CACHE_H at the moment just in case, but we know of */
700 /* no rogue client that uses them. */
701 /* */
702 #define FT_CACHE_MANAGER_H <freetype/ftcache.h>
703 #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
704 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
705 #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
706 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
707 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
708 #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
709
710
711 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
712
713 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
714
715
716 /*
717 * Include internal headers definitions from <freetype/internal/...>
718 * only when building the library.
719 */
720 #ifdef FT2_BUILD_LIBRARY
721 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
722 #include FT_INTERNAL_INTERNAL_H
723 #endif /* FT2_BUILD_LIBRARY */
724
725
726 #endif /* __FT2_BUILD_H__ */
727
728
729 /* END */