1 | /***************************************************************************/ |
---|
2 | /* */ |
---|
3 | /* ftgasp.h */ |
---|
4 | /* */ |
---|
5 | /* Access of TrueType's `gasp' table (specification). */ |
---|
6 | /* */ |
---|
7 | /* Copyright 2007, 2008 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. |
---|
67 | * |
---|
68 | * FT_GASP_DO_GRAY :: |
---|
69 | * Anti-aliased rendering should be performed at the specified ppem. |
---|
70 | * |
---|
71 | * FT_GASP_SYMMETRIC_SMOOTHING :: |
---|
72 | * Smoothing along multiple axes must be used with ClearType. |
---|
73 | * |
---|
74 | * FT_GASP_SYMMETRIC_GRIDFIT :: |
---|
75 | * Grid-fitting must be used with ClearType's symmetric smoothing. |
---|
76 | * |
---|
77 | * @note: |
---|
78 | * `ClearType' is Microsoft's implementation of LCD rendering, partly |
---|
79 | * protected by patents. |
---|
80 | * |
---|
81 | * @since: |
---|
82 | * 2.3.0 |
---|
83 | */ |
---|
84 | #define FT_GASP_NO_TABLE -1 |
---|
85 | #define FT_GASP_DO_GRIDFIT 0x01 |
---|
86 | #define FT_GASP_DO_GRAY 0x02 |
---|
87 | #define FT_GASP_SYMMETRIC_SMOOTHING 0x08 |
---|
88 | #define FT_GASP_SYMMETRIC_GRIDFIT 0x10 |
---|
89 | |
---|
90 | |
---|
91 | /************************************************************************* |
---|
92 | * |
---|
93 | * @func: |
---|
94 | * FT_Get_Gasp |
---|
95 | * |
---|
96 | * @description: |
---|
97 | * Read the `gasp' table from a TrueType or OpenType font file and |
---|
98 | * return the entry corresponding to a given character pixel size. |
---|
99 | * |
---|
100 | * @input: |
---|
101 | * face :: The source face handle. |
---|
102 | * ppem :: The vertical character pixel size. |
---|
103 | * |
---|
104 | * @return: |
---|
105 | * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no |
---|
106 | * `gasp' table in the face. |
---|
107 | * |
---|
108 | * @since: |
---|
109 | * 2.3.0 |
---|
110 | */ |
---|
111 | FT_EXPORT( FT_Int ) |
---|
112 | FT_Get_Gasp( FT_Face face, |
---|
113 | FT_UInt ppem ); |
---|
114 | |
---|
115 | /* */ |
---|
116 | |
---|
117 | #endif /* _FT_GASP_H_ */ |
---|
118 | |
---|
119 | |
---|
120 | /* END */ |
---|