zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 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 
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_TYPE1_TABLES_H
322  *
323  * @description:
324  * A macro used in #include statements to name the file containing the
325  * types and API specific to the Type~1 format.
326  *
327  */
328 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
329 
330 
331  /*************************************************************************
332  *
333  * @macro:
334  * FT_TRUETYPE_IDS_H
335  *
336  * @description:
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.
341  *
342  */
343 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
344 
345 
346  /*************************************************************************
347  *
348  * @macro:
349  * FT_TRUETYPE_TABLES_H
350  *
351  * @description:
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.
354  *
355  */
356 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
357 
358 
359  /*************************************************************************
360  *
361  * @macro:
362  * FT_TRUETYPE_TAGS_H
363  *
364  * @description:
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).
368  *
369  */
370 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
371 
372 
373  /*************************************************************************
374  *
375  * @macro:
376  * FT_BDF_H
377  *
378  * @description:
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
381  * face.
382  *
383  */
384 #define FT_BDF_H <freetype/ftbdf.h>
385 
386 
387  /*************************************************************************
388  *
389  * @macro:
390  * FT_CID_H
391  *
392  * @description:
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
395  * face.
396  *
397  */
398 #define FT_CID_H <freetype/ftcid.h>
399 
400 
401  /*************************************************************************
402  *
403  * @macro:
404  * FT_GZIP_H
405  *
406  * @description:
407  * A macro used in #include statements to name the file containing the
408  * definitions of an API which supports gzip-compressed files.
409  *
410  */
411 #define FT_GZIP_H <freetype/ftgzip.h>
412 
413 
414  /*************************************************************************
415  *
416  * @macro:
417  * FT_LZW_H
418  *
419  * @description:
420  * A macro used in #include statements to name the file containing the
421  * definitions of an API which supports LZW-compressed files.
422  *
423  */
424 #define FT_LZW_H <freetype/ftlzw.h>
425 
426 
427  /*************************************************************************
428  *
429  * @macro:
430  * FT_BZIP2_H
431  *
432  * @description:
433  * A macro used in #include statements to name the file containing the
434  * definitions of an API which supports bzip2-compressed files.
435  *
436  */
437 #define FT_BZIP2_H <freetype/ftbzip2.h>
438 
439 
440  /*************************************************************************
441  *
442  * @macro:
443  * FT_WINFONTS_H
444  *
445  * @description:
446  * A macro used in #include statements to name the file containing the
447  * definitions of an API which supports Windows FNT files.
448  *
449  */
450 #define FT_WINFONTS_H <freetype/ftwinfnt.h>
451 
452 
453  /*************************************************************************
454  *
455  * @macro:
456  * FT_GLYPH_H
457  *
458  * @description:
459  * A macro used in #include statements to name the file containing the
460  * API of the optional glyph management component.
461  *
462  */
463 #define FT_GLYPH_H <freetype/ftglyph.h>
464 
465 
466  /*************************************************************************
467  *
468  * @macro:
469  * FT_BITMAP_H
470  *
471  * @description:
472  * A macro used in #include statements to name the file containing the
473  * API of the optional bitmap conversion component.
474  *
475  */
476 #define FT_BITMAP_H <freetype/ftbitmap.h>
477 
478 
479  /*************************************************************************
480  *
481  * @macro:
482  * FT_BBOX_H
483  *
484  * @description:
485  * A macro used in #include statements to name the file containing the
486  * API of the optional exact bounding box computation routines.
487  *
488  */
489 #define FT_BBOX_H <freetype/ftbbox.h>
490 
491 
492  /*************************************************************************
493  *
494  * @macro:
495  * FT_CACHE_H
496  *
497  * @description:
498  * A macro used in #include statements to name the file containing the
499  * API of the optional FreeType~2 cache sub-system.
500  *
501  */
502 #define FT_CACHE_H <freetype/ftcache.h>
503 
504 
505  /*************************************************************************
506  *
507  * @macro:
508  * FT_CACHE_IMAGE_H
509  *
510  * @description:
511  * A macro used in #include statements to name the file containing the
512  * `glyph image' API of the FreeType~2 cache sub-system.
513  *
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.
517  *
518  * This macro is deprecated. Simply include @FT_CACHE_H to have all
519  * glyph image-related cache declarations.
520  *
521  */
522 #define FT_CACHE_IMAGE_H FT_CACHE_H
523 
524 
525  /*************************************************************************
526  *
527  * @macro:
528  * FT_CACHE_SMALL_BITMAPS_H
529  *
530  * @description:
531  * A macro used in #include statements to name the file containing the
532  * `small bitmaps' API of the FreeType~2 cache sub-system.
533  *
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.
538  *
539  * This macro is deprecated. Simply include @FT_CACHE_H to have all
540  * small bitmaps-related cache declarations.
541  *
542  */
543 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
544 
545 
546  /*************************************************************************
547  *
548  * @macro:
549  * FT_CACHE_CHARMAP_H
550  *
551  * @description:
552  * A macro used in #include statements to name the file containing the
553  * `charmap' API of the FreeType~2 cache sub-system.
554  *
555  * This macro is deprecated. Simply include @FT_CACHE_H to have all
556  * charmap-based cache declarations.
557  *
558  */
559 #define FT_CACHE_CHARMAP_H FT_CACHE_H
560 
561 
562  /*************************************************************************
563  *
564  * @macro:
565  * FT_MAC_H
566  *
567  * @description:
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.
571  *
572  * This header file must be explicitly included by client applications
573  * compiled on the Mac (note that the base API still works though).
574  *
575  */
576 #define FT_MAC_H <freetype/ftmac.h>
577 
578 
579  /*************************************************************************
580  *
581  * @macro:
582  * FT_MULTIPLE_MASTERS_H
583  *
584  * @description:
585  * A macro used in #include statements to name the file containing the
586  * optional multiple-masters management API of FreeType~2.
587  *
588  */
589 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
590 
591 
592  /*************************************************************************
593  *
594  * @macro:
595  * FT_SFNT_NAMES_H
596  *
597  * @description:
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).
601  *
602  */
603 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
604 
605 
606  /*************************************************************************
607  *
608  * @macro:
609  * FT_OPENTYPE_VALIDATE_H
610  *
611  * @description:
612  * A macro used in #include statements to name the file containing the
613  * optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
614  * GPOS, GSUB, JSTF).
615  *
616  */
617 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
618 
619 
620  /*************************************************************************
621  *
622  * @macro:
623  * FT_GX_VALIDATE_H
624  *
625  * @description:
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).
629  *
630  */
631 #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
632 
633 
634  /*************************************************************************
635  *
636  * @macro:
637  * FT_PFR_H
638  *
639  * @description:
640  * A macro used in #include statements to name the file containing the
641  * FreeType~2 API which accesses PFR-specific data.
642  *
643  */
644 #define FT_PFR_H <freetype/ftpfr.h>
645 
646 
647  /*************************************************************************
648  *
649  * @macro:
650  * FT_STROKER_H
651  *
652  * @description:
653  * A macro used in #include statements to name the file containing the
654  * FreeType~2 API which provides functions to stroke outline paths.
655  */
656 #define FT_STROKER_H <freetype/ftstroke.h>
657 
658 
659  /*************************************************************************
660  *
661  * @macro:
662  * FT_SYNTHESIS_H
663  *
664  * @description:
665  * A macro used in #include statements to name the file containing the
666  * FreeType~2 API which performs artificial obliquing and emboldening.
667  */
668 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
669 
670 
671  /*************************************************************************
672  *
673  * @macro:
674  * FT_XFREE86_H
675  *
676  * @description:
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
679  * X.Org X11 servers.
680  */
681 #define FT_XFREE86_H <freetype/ftxf86.h>
682 
683 
684  /*************************************************************************
685  *
686  * @macro:
687  * FT_TRIGONOMETRY_H
688  *
689  * @description:
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).
693  */
694 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
695 
696 
697  /*************************************************************************
698  *
699  * @macro:
700  * FT_LCD_FILTER_H
701  *
702  * @description:
703  * A macro used in #include statements to name the file containing the
704  * FreeType~2 API which performs color filtering for subpixel rendering.
705  */
706 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
707 
708 
709  /*************************************************************************
710  *
711  * @macro:
712  * FT_UNPATENTED_HINTING_H
713  *
714  * @description:
715  * A macro used in #include statements to name the file containing the
716  * FreeType~2 API which performs color filtering for subpixel rendering.
717  */
718 #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
719 
720 
721  /*************************************************************************
722  *
723  * @macro:
724  * FT_INCREMENTAL_H
725  *
726  * @description:
727  * A macro used in #include statements to name the file containing the
728  * FreeType~2 API which performs color filtering for subpixel rendering.
729  */
730 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
731 
732 
733  /*************************************************************************
734  *
735  * @macro:
736  * FT_GASP_H
737  *
738  * @description:
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.
741  */
742 #define FT_GASP_H <freetype/ftgasp.h>
743 
744 
745  /*************************************************************************
746  *
747  * @macro:
748  * FT_ADVANCES_H
749  *
750  * @description:
751  * A macro used in #include statements to name the file containing the
752  * FreeType~2 API which returns individual and ranged glyph advances.
753  */
754 #define FT_ADVANCES_H <freetype/ftadvanc.h>
755 
756 
757  /* */
758 
759 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
760 
761 
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. */
765  /* */
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>
773 
774 
775 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
776 
777 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
778 
779 
780  /*
781  * Include internal headers definitions from <freetype/internal/...>
782  * only when building the library.
783  */
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 */
788 
789 
790 #endif /* __FT2_BUILD_H__ */
791 
792 
793 /* END */