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]
ftgasp.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftgasp.h */
4 /* */
5 /* Access of TrueType's `gasp' table (specification). */
6 /* */
7 /* Copyright 2007, 2008, 2011 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 
19 #ifndef _FT_GASP_H_
20 #define _FT_GASP_H_
21 
22 #include <ft2build.h>
23 #include FT_FREETYPE_H
24 
25 #ifdef FREETYPE_H
26 #error "freetype.h of FreeType 1 has been loaded!"
27 #error "Please fix the directory search order for header files"
28 #error "so that freetype.h of FreeType 2 is found first."
29 #endif
30 
31 
32  /***************************************************************************
33  *
34  * @section:
35  * gasp_table
36  *
37  * @title:
38  * Gasp Table
39  *
40  * @abstract:
41  * Retrieving TrueType `gasp' table entries.
42  *
43  * @description:
44  * The function @FT_Get_Gasp can be used to query a TrueType or OpenType
45  * font for specific entries in its `gasp' table, if any. This is
46  * mainly useful when implementing native TrueType hinting with the
47  * bytecode interpreter to duplicate the Windows text rendering results.
48  */
49 
50  /*************************************************************************
51  *
52  * @enum:
53  * FT_GASP_XXX
54  *
55  * @description:
56  * A list of values and/or bit-flags returned by the @FT_Get_Gasp
57  * function.
58  *
59  * @values:
60  * FT_GASP_NO_TABLE ::
61  * This special value means that there is no GASP table in this face.
62  * It is up to the client to decide what to do.
63  *
64  * FT_GASP_DO_GRIDFIT ::
65  * Grid-fitting and hinting should be performed at the specified ppem.
66  * This *really* means TrueType bytecode interpretation. If this bit
67  * is not set, no hinting gets applied.
68  *
69  * FT_GASP_DO_GRAY ::
70  * Anti-aliased rendering should be performed at the specified ppem.
71  * If not set, do monochrome rendering.
72  *
73  * FT_GASP_SYMMETRIC_SMOOTHING ::
74  * If set, smoothing along multiple axes must be used with ClearType.
75  *
76  * FT_GASP_SYMMETRIC_GRIDFIT ::
77  * Grid-fitting must be used with ClearType's symmetric smoothing.
78  *
79  * @note:
80  * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be
81  * used for standard font rasterization only. Independently of that,
82  * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to
83  * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and
84  * `FT_GASP_DO_GRAY' are consequently ignored).
85  *
86  * `ClearType' is Microsoft's implementation of LCD rendering, partly
87  * protected by patents.
88  *
89  * @since:
90  * 2.3.0
91  */
92 #define FT_GASP_NO_TABLE -1
93 #define FT_GASP_DO_GRIDFIT 0x01
94 #define FT_GASP_DO_GRAY 0x02
95 #define FT_GASP_SYMMETRIC_SMOOTHING 0x08
96 #define FT_GASP_SYMMETRIC_GRIDFIT 0x10
97 
98 
99  /*************************************************************************
100  *
101  * @func:
102  * FT_Get_Gasp
103  *
104  * @description:
105  * Read the `gasp' table from a TrueType or OpenType font file and
106  * return the entry corresponding to a given character pixel size.
107  *
108  * @input:
109  * face :: The source face handle.
110  * ppem :: The vertical character pixel size.
111  *
112  * @return:
113  * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
114  * `gasp' table in the face.
115  *
116  * @since:
117  * 2.3.0
118  */
119  FT_EXPORT( FT_Int )
121  FT_UInt ppem );
122 
123 /* */
124 
125 #endif /* _FT_GASP_H_ */
126 
127 
128 /* END */
signed int FT_Int
Definition: fttypes.h:216
GLenum GLuint GLint GLenum face
unsigned int FT_UInt
Definition: fttypes.h:227
#define FT_EXPORT(x)
Definition: ftconfig.h:269
FT_Get_Gasp(FT_Face face, FT_UInt ppem)
Definition: ftgasp.c:25