]>
Commit | Line | Data |
---|---|---|
7407ac7f BB |
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 ) | |
120 | FT_Get_Gasp( FT_Face face, | |
121 | FT_UInt ppem ); | |
122 | ||
123 | /* */ | |
124 | ||
125 | #endif /* _FT_GASP_H_ */ | |
126 | ||
127 | ||
128 | /* END */ |