OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* ftttdrv.h */ | 3 /* ftttdrv.h */ |
4 /* */ | 4 /* */ |
5 /* FreeType API for controlling the TrueType driver */ | 5 /* FreeType API for controlling the TrueType driver */ |
6 /* (specification only). */ | 6 /* (specification only). */ |
7 /* */ | 7 /* */ |
8 /* Copyright 2013 by */ | 8 /* Copyright 2013 by */ |
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
10 /* */ | 10 /* */ |
11 /* This file is part of the FreeType project, and may only be used, */ | 11 /* This file is part of the FreeType project, and may only be used, */ |
12 /* modified, and distributed under the terms of the FreeType project */ | 12 /* modified, and distributed under the terms of the FreeType project */ |
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
14 /* this file you indicate that you have read the license and */ | 14 /* this file you indicate that you have read the license and */ |
15 /* understand and accept it fully. */ | 15 /* understand and accept it fully. */ |
16 /* */ | 16 /* */ |
17 /***************************************************************************/ | 17 /***************************************************************************/ |
18 | 18 |
19 | 19 |
20 #ifndef __FTTTDRV_H__ | 20 #ifndef __FTTTDRV_H__ |
21 #define __FTTTDRV_H__ | 21 #define __FTTTDRV_H__ |
22 | 22 |
23 #include "../ft2build.h" | 23 #include <ft2build.h> |
24 #include "freetype.h" | 24 #include FT_FREETYPE_H |
25 | 25 |
26 #ifdef FREETYPE_H | 26 #ifdef FREETYPE_H |
27 #error "freetype.h of FreeType 1 has been loaded!" | 27 #error "freetype.h of FreeType 1 has been loaded!" |
28 #error "Please fix the directory search order for header files" | 28 #error "Please fix the directory search order for header files" |
29 #error "so that freetype.h of FreeType 2 is found first." | 29 #error "so that freetype.h of FreeType 2 is found first." |
30 #endif | 30 #endif |
31 | 31 |
32 | 32 |
33 FT_BEGIN_HEADER | 33 FT_BEGIN_HEADER |
34 | 34 |
(...skipping 19 matching lines...) Expand all Loading... |
54 * | 54 * |
55 */ | 55 */ |
56 | 56 |
57 | 57 |
58 /************************************************************************** | 58 /************************************************************************** |
59 * | 59 * |
60 * @property: | 60 * @property: |
61 * interpreter-version | 61 * interpreter-version |
62 * | 62 * |
63 * @description: | 63 * @description: |
64 * Currently, two versions are available which represent the bytecode | 64 * Currently, two versions are available, representing the bytecode |
65 * interpreter with and without subpixel hinting support, | 65 * interpreter with and without subpixel hinting support, |
66 * respectively. The default is subpixel support if | 66 * respectively. The default is subpixel support if |
67 * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel | 67 * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel |
68 * support otherwise (since it isn't available then). | 68 * support otherwise (since it isn't available then). |
69 * | 69 * |
70 * If subpixel hinting is on, many TrueType bytecode instructions | 70 * If subpixel hinting is on, many TrueType bytecode instructions |
71 * behave differently compared to B/W or grayscale rendering. The | 71 * behave differently compared to B/W or grayscale rendering. The |
72 * main idea is to render at a much increased horizontal resolution, | 72 * main idea is to render at a much increased horizontal resolution, |
73 * then sampling down the created output to subpixel precision. | 73 * then sampling down the created output to subpixel precision. |
74 * However, many older fonts are not suited to this and must be | 74 * However, many older fonts are not suited to this and must be |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 * @note: | 127 * @note: |
128 * This property controls the behaviour of the bytecode interpreter | 128 * This property controls the behaviour of the bytecode interpreter |
129 * and thus how outlines get hinted. It does *not* control how glyph | 129 * and thus how outlines get hinted. It does *not* control how glyph |
130 * get rasterized! In particular, it does not control subpixel color | 130 * get rasterized! In particular, it does not control subpixel color |
131 * filtering. | 131 * filtering. |
132 * | 132 * |
133 * If FreeType has not been compiled with configuration option | 133 * If FreeType has not been compiled with configuration option |
134 * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an | 134 * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an |
135 * `FT_Err_Unimplemented_Feature' error. | 135 * `FT_Err_Unimplemented_Feature' error. |
136 * | 136 * |
| 137 * Depending on the graphics framework, Microsoft uses different |
| 138 * bytecode engines. As a consequence, the version numbers returned by |
| 139 * a call to the `GETINFO[1]' bytecode instruction are more convoluted |
| 140 * than desired. |
| 141 * |
| 142 * { |
| 143 * framework Windows version result of GETINFO[1] |
| 144 * ---------------------------------------------------- |
| 145 * GDI before XP 35 |
| 146 * GDI XP and later 37 |
| 147 * GDI+ old before Vista 37 |
| 148 * GDI+ old Vista, 7 38 |
| 149 * GDI+ after 7 40 |
| 150 * DWrite before 8 39 |
| 151 * DWrite 8 and later 40 |
| 152 * } |
| 153 * |
| 154 * Since FreeType doesn't provide all capabilities of DWrite ClearType, |
| 155 * using version~38 seems justified. |
| 156 * |
137 */ | 157 */ |
138 #define TT_INTERPRETER_VERSION_35 35 | 158 #define TT_INTERPRETER_VERSION_35 35 |
139 #define TT_INTERPRETER_VERSION_38 38 | 159 #define TT_INTERPRETER_VERSION_38 38 |
140 | 160 |
| 161 /* */ |
141 | 162 |
142 /* */ | |
143 | 163 |
144 FT_END_HEADER | 164 FT_END_HEADER |
145 | 165 |
146 | 166 |
147 #endif /* __FTTTDRV_H__ */ | 167 #endif /* __FTTTDRV_H__ */ |
148 | 168 |
149 | 169 |
150 /* END */ | 170 /* END */ |
OLD | NEW |