Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 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 |
||
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 */ |