Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
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-2008, 2010, 2012, 2013 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_AUTOHINTER_H
322  *
323  * @description:
324  * A macro used in #include statements to name the file containing
325  * structures and macros related to the auto-hinting module.
326  *
327  */
328 #define FT_AUTOHINTER_H <freetype/ftautoh.h>
329 
330 
331  /*************************************************************************
332  *
333  * @macro:
334  * FT_CFF_DRIVER_H
335  *
336  * @description:
337  * A macro used in #include statements to name the file containing
338  * structures and macros related to the CFF driver module.
339  *
340  */
341 #define FT_CFF_DRIVER_H <freetype/ftcffdrv.h>
342 
343 
344  /*************************************************************************
345  *
346  * @macro:
347  * FT_TYPE1_TABLES_H
348  *
349  * @description:
350  * A macro used in #include statements to name the file containing the
351  * types and API specific to the Type~1 format.
352  *
353  */
354 #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
355 
356 
357  /*************************************************************************
358  *
359  * @macro:
360  * FT_TRUETYPE_IDS_H
361  *
362  * @description:
363  * A macro used in #include statements to name the file containing the
364  * enumeration values which identify name strings, languages, encodings,
365  * etc. This file really contains a _large_ set of constant macro
366  * definitions, taken from the TrueType and OpenType specifications.
367  *
368  */
369 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
370 
371 
372  /*************************************************************************
373  *
374  * @macro:
375  * FT_TRUETYPE_TABLES_H
376  *
377  * @description:
378  * A macro used in #include statements to name the file containing the
379  * types and API specific to the TrueType (as well as OpenType) format.
380  *
381  */
382 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
383 
384 
385  /*************************************************************************
386  *
387  * @macro:
388  * FT_TRUETYPE_TAGS_H
389  *
390  * @description:
391  * A macro used in #include statements to name the file containing the
392  * definitions of TrueType four-byte `tags' which identify blocks in
393  * SFNT-based font formats (i.e., TrueType and OpenType).
394  *
395  */
396 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
397 
398 
399  /*************************************************************************
400  *
401  * @macro:
402  * FT_BDF_H
403  *
404  * @description:
405  * A macro used in #include statements to name the file containing the
406  * definitions of an API which accesses BDF-specific strings from a
407  * face.
408  *
409  */
410 #define FT_BDF_H <freetype/ftbdf.h>
411 
412 
413  /*************************************************************************
414  *
415  * @macro:
416  * FT_CID_H
417  *
418  * @description:
419  * A macro used in #include statements to name the file containing the
420  * definitions of an API which access CID font information from a
421  * face.
422  *
423  */
424 #define FT_CID_H <freetype/ftcid.h>
425 
426 
427  /*************************************************************************
428  *
429  * @macro:
430  * FT_GZIP_H
431  *
432  * @description:
433  * A macro used in #include statements to name the file containing the
434  * definitions of an API which supports gzip-compressed files.
435  *
436  */
437 #define FT_GZIP_H <freetype/ftgzip.h>
438 
439 
440  /*************************************************************************
441  *
442  * @macro:
443  * FT_LZW_H
444  *
445  * @description:
446  * A macro used in #include statements to name the file containing the
447  * definitions of an API which supports LZW-compressed files.
448  *
449  */
450 #define FT_LZW_H <freetype/ftlzw.h>
451 
452 
453  /*************************************************************************
454  *
455  * @macro:
456  * FT_BZIP2_H
457  *
458  * @description:
459  * A macro used in #include statements to name the file containing the
460  * definitions of an API which supports bzip2-compressed files.
461  *
462  */
463 #define FT_BZIP2_H <freetype/ftbzip2.h>
464 
465 
466  /*************************************************************************
467  *
468  * @macro:
469  * FT_WINFONTS_H
470  *
471  * @description:
472  * A macro used in #include statements to name the file containing the
473  * definitions of an API which supports Windows FNT files.
474  *
475  */
476 #define FT_WINFONTS_H <freetype/ftwinfnt.h>
477 
478 
479  /*************************************************************************
480  *
481  * @macro:
482  * FT_GLYPH_H
483  *
484  * @description:
485  * A macro used in #include statements to name the file containing the
486  * API of the optional glyph management component.
487  *
488  */
489 #define FT_GLYPH_H <freetype/ftglyph.h>
490 
491 
492  /*************************************************************************
493  *
494  * @macro:
495  * FT_BITMAP_H
496  *
497  * @description:
498  * A macro used in #include statements to name the file containing the
499  * API of the optional bitmap conversion component.
500  *
501  */
502 #define FT_BITMAP_H <freetype/ftbitmap.h>
503 
504 
505  /*************************************************************************
506  *
507  * @macro:
508  * FT_BBOX_H
509  *
510  * @description:
511  * A macro used in #include statements to name the file containing the
512  * API of the optional exact bounding box computation routines.
513  *
514  */
515 #define FT_BBOX_H <freetype/ftbbox.h>
516 
517 
518  /*************************************************************************
519  *
520  * @macro:
521  * FT_CACHE_H
522  *
523  * @description:
524  * A macro used in #include statements to name the file containing the
525  * API of the optional FreeType~2 cache sub-system.
526  *
527  */
528 #define FT_CACHE_H <freetype/ftcache.h>
529 
530 
531  /*************************************************************************
532  *
533  * @macro:
534  * FT_CACHE_IMAGE_H
535  *
536  * @description:
537  * A macro used in #include statements to name the file containing the
538  * `glyph image' API of the FreeType~2 cache sub-system.
539  *
540  * It is used to define a cache for @FT_Glyph elements. You can also
541  * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
542  * store small glyph bitmaps, as it will use less memory.
543  *
544  * This macro is deprecated. Simply include @FT_CACHE_H to have all
545  * glyph image-related cache declarations.
546  *
547  */
548 #define FT_CACHE_IMAGE_H FT_CACHE_H
549 
550 
551  /*************************************************************************
552  *
553  * @macro:
554  * FT_CACHE_SMALL_BITMAPS_H
555  *
556  * @description:
557  * A macro used in #include statements to name the file containing the
558  * `small bitmaps' API of the FreeType~2 cache sub-system.
559  *
560  * It is used to define a cache for small glyph bitmaps in a relatively
561  * memory-efficient way. You can also use the API defined in
562  * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,
563  * including scalable outlines.
564  *
565  * This macro is deprecated. Simply include @FT_CACHE_H to have all
566  * small bitmaps-related cache declarations.
567  *
568  */
569 #define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
570 
571 
572  /*************************************************************************
573  *
574  * @macro:
575  * FT_CACHE_CHARMAP_H
576  *
577  * @description:
578  * A macro used in #include statements to name the file containing the
579  * `charmap' API of the FreeType~2 cache sub-system.
580  *
581  * This macro is deprecated. Simply include @FT_CACHE_H to have all
582  * charmap-based cache declarations.
583  *
584  */
585 #define FT_CACHE_CHARMAP_H FT_CACHE_H
586 
587 
588  /*************************************************************************
589  *
590  * @macro:
591  * FT_MAC_H
592  *
593  * @description:
594  * A macro used in #include statements to name the file containing the
595  * Macintosh-specific FreeType~2 API. The latter is used to access
596  * fonts embedded in resource forks.
597  *
598  * This header file must be explicitly included by client applications
599  * compiled on the Mac (note that the base API still works though).
600  *
601  */
602 #define FT_MAC_H <freetype/ftmac.h>
603 
604 
605  /*************************************************************************
606  *
607  * @macro:
608  * FT_MULTIPLE_MASTERS_H
609  *
610  * @description:
611  * A macro used in #include statements to name the file containing the
612  * optional multiple-masters management API of FreeType~2.
613  *
614  */
615 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
616 
617 
618  /*************************************************************************
619  *
620  * @macro:
621  * FT_SFNT_NAMES_H
622  *
623  * @description:
624  * A macro used in #include statements to name the file containing the
625  * optional FreeType~2 API which accesses embedded `name' strings in
626  * SFNT-based font formats (i.e., TrueType and OpenType).
627  *
628  */
629 #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
630 
631 
632  /*************************************************************************
633  *
634  * @macro:
635  * FT_OPENTYPE_VALIDATE_H
636  *
637  * @description:
638  * A macro used in #include statements to name the file containing the
639  * optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
640  * GPOS, GSUB, JSTF).
641  *
642  */
643 #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
644 
645 
646  /*************************************************************************
647  *
648  * @macro:
649  * FT_GX_VALIDATE_H
650  *
651  * @description:
652  * A macro used in #include statements to name the file containing the
653  * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
654  * mort, morx, bsln, just, kern, opbd, trak, prop).
655  *
656  */
657 #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
658 
659 
660  /*************************************************************************
661  *
662  * @macro:
663  * FT_PFR_H
664  *
665  * @description:
666  * A macro used in #include statements to name the file containing the
667  * FreeType~2 API which accesses PFR-specific data.
668  *
669  */
670 #define FT_PFR_H <freetype/ftpfr.h>
671 
672 
673  /*************************************************************************
674  *
675  * @macro:
676  * FT_STROKER_H
677  *
678  * @description:
679  * A macro used in #include statements to name the file containing the
680  * FreeType~2 API which provides functions to stroke outline paths.
681  */
682 #define FT_STROKER_H <freetype/ftstroke.h>
683 
684 
685  /*************************************************************************
686  *
687  * @macro:
688  * FT_SYNTHESIS_H
689  *
690  * @description:
691  * A macro used in #include statements to name the file containing the
692  * FreeType~2 API which performs artificial obliquing and emboldening.
693  */
694 #define FT_SYNTHESIS_H <freetype/ftsynth.h>
695 
696 
697  /*************************************************************************
698  *
699  * @macro:
700  * FT_XFREE86_H
701  *
702  * @description:
703  * A macro used in #include statements to name the file containing the
704  * FreeType~2 API which provides functions specific to the XFree86 and
705  * X.Org X11 servers.
706  */
707 #define FT_XFREE86_H <freetype/ftxf86.h>
708 
709 
710  /*************************************************************************
711  *
712  * @macro:
713  * FT_TRIGONOMETRY_H
714  *
715  * @description:
716  * A macro used in #include statements to name the file containing the
717  * FreeType~2 API which performs trigonometric computations (e.g.,
718  * cosines and arc tangents).
719  */
720 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
721 
722 
723  /*************************************************************************
724  *
725  * @macro:
726  * FT_LCD_FILTER_H
727  *
728  * @description:
729  * A macro used in #include statements to name the file containing the
730  * FreeType~2 API which performs color filtering for subpixel rendering.
731  */
732 #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
733 
734 
735  /*************************************************************************
736  *
737  * @macro:
738  * FT_UNPATENTED_HINTING_H
739  *
740  * @description:
741  * A macro used in #include statements to name the file containing the
742  * FreeType~2 API which performs color filtering for subpixel rendering.
743  */
744 #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
745 
746 
747  /*************************************************************************
748  *
749  * @macro:
750  * FT_INCREMENTAL_H
751  *
752  * @description:
753  * A macro used in #include statements to name the file containing the
754  * FreeType~2 API which performs color filtering for subpixel rendering.
755  */
756 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
757 
758 
759  /*************************************************************************
760  *
761  * @macro:
762  * FT_GASP_H
763  *
764  * @description:
765  * A macro used in #include statements to name the file containing the
766  * FreeType~2 API which returns entries from the TrueType GASP table.
767  */
768 #define FT_GASP_H <freetype/ftgasp.h>
769 
770 
771  /*************************************************************************
772  *
773  * @macro:
774  * FT_ADVANCES_H
775  *
776  * @description:
777  * A macro used in #include statements to name the file containing the
778  * FreeType~2 API which returns individual and ranged glyph advances.
779  */
780 #define FT_ADVANCES_H <freetype/ftadvanc.h>
781 
782 
783  /* */
784 
785 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
786 
787 
788  /* The internals of the cache sub-system are no longer exposed. We */
789  /* default to FT_CACHE_H at the moment just in case, but we know of */
790  /* no rogue client that uses them. */
791  /* */
792 #define FT_CACHE_MANAGER_H <freetype/ftcache.h>
793 #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
794 #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
795 #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
796 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
797 #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
798 #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
799 
800 
801 #define FT_INCREMENTAL_H <freetype/ftincrem.h>
802 
803 #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
804 
805 
806  /*
807  * Include internal headers definitions from <freetype/internal/...>
808  * only when building the library.
809  */
810 #ifdef FT2_BUILD_LIBRARY
811 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
812 #include FT_INTERNAL_INTERNAL_H
813 #endif /* FT2_BUILD_LIBRARY */
814 
815 
816 #endif /* __FT2_BUILD_H__ */
817 
818 
819 /* END */