1 | /***************************************************************************/ |
2 | /* */ |
3 | /* ftparams.h */ |
4 | /* */ |
5 | /* FreeType API for possible FT_Parameter tags (specification only). */ |
6 | /* */ |
7 | /* Copyright 2017-2018 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 FTPARAMS_H_ |
20 | #define FTPARAMS_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 | FT_BEGIN_HEADER |
33 | |
34 | |
35 | /************************************************************************** |
36 | * |
37 | * @section: |
38 | * parameter_tags |
39 | * |
40 | * @title: |
41 | * Parameter Tags |
42 | * |
43 | * @abstract: |
44 | * Macros for driver property and font loading parameter tags. |
45 | * |
46 | * @description: |
47 | * This section contains macros for the @FT_Parameter structure that are |
48 | * used with various functions to activate some special functionality or |
49 | * different behaviour of various components of FreeType. |
50 | * |
51 | */ |
52 | |
53 | |
54 | /*************************************************************************** |
55 | * |
56 | * @constant: |
57 | * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY |
58 | * |
59 | * @description: |
60 | * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic |
61 | * family names in the `name' table (introduced in OpenType version |
62 | * 1.4). Use this for backward compatibility with legacy systems that |
63 | * have a four-faces-per-family restriction. |
64 | * |
65 | * @since: |
66 | * 2.8 |
67 | * |
68 | */ |
69 | #define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \ |
70 | FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) |
71 | |
72 | |
73 | /* this constant is deprecated */ |
74 | #define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \ |
75 | FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY |
76 | |
77 | |
78 | /*************************************************************************** |
79 | * |
80 | * @constant: |
81 | * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY |
82 | * |
83 | * @description: |
84 | * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic |
85 | * subfamily names in the `name' table (introduced in OpenType version |
86 | * 1.4). Use this for backward compatibility with legacy systems that |
87 | * have a four-faces-per-family restriction. |
88 | * |
89 | * @since: |
90 | * 2.8 |
91 | * |
92 | */ |
93 | #define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \ |
94 | FT_MAKE_TAG( 'i', 'g', 'p', 's' ) |
95 | |
96 | |
97 | /* this constant is deprecated */ |
98 | #define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \ |
99 | FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY |
100 | |
101 | |
102 | /*************************************************************************** |
103 | * |
104 | * @constant: |
105 | * FT_PARAM_TAG_INCREMENTAL |
106 | * |
107 | * @description: |
108 | * An @FT_Parameter tag to be used with @FT_Open_Face to indicate |
109 | * incremental glyph loading. |
110 | * |
111 | */ |
112 | #define FT_PARAM_TAG_INCREMENTAL \ |
113 | FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) |
114 | |
115 | |
116 | /************************************************************************** |
117 | * |
118 | * @constant: |
119 | * FT_PARAM_TAG_LCD_FILTER_WEIGHTS |
120 | * |
121 | * @description: |
122 | * An @FT_Parameter tag to be used with @FT_Face_Properties. The |
123 | * corresponding argument specifies the five LCD filter weights for a |
124 | * given face (if using @FT_LOAD_TARGET_LCD, for example), overriding |
125 | * the global default values or the values set up with |
126 | * @FT_Library_SetLcdFilterWeights. |
127 | * |
128 | * @since: |
129 | * 2.8 |
130 | * |
131 | */ |
132 | #define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \ |
133 | FT_MAKE_TAG( 'l', 'c', 'd', 'f' ) |
134 | |
135 | |
136 | /************************************************************************** |
137 | * |
138 | * @constant: |
139 | * FT_PARAM_TAG_RANDOM_SEED |
140 | * |
141 | * @description: |
142 | * An @FT_Parameter tag to be used with @FT_Face_Properties. The |
143 | * corresponding 32bit signed integer argument overrides the font |
144 | * driver's random seed value with a face-specific one; see |
145 | * @random-seed. |
146 | * |
147 | * @since: |
148 | * 2.8 |
149 | * |
150 | */ |
151 | #define FT_PARAM_TAG_RANDOM_SEED \ |
152 | FT_MAKE_TAG( 's', 'e', 'e', 'd' ) |
153 | |
154 | |
155 | /************************************************************************** |
156 | * |
157 | * @constant: |
158 | * FT_PARAM_TAG_STEM_DARKENING |
159 | * |
160 | * @description: |
161 | * An @FT_Parameter tag to be used with @FT_Face_Properties. The |
162 | * corresponding Boolean argument specifies whether to apply stem |
163 | * darkening, overriding the global default values or the values set up |
164 | * with @FT_Property_Set (see @no-stem-darkening). |
165 | * |
166 | * This is a passive setting that only takes effect if the font driver |
167 | * or autohinter honors it, which the CFF, Type~1, and CID drivers |
168 | * always do, but the autohinter only in `light' hinting mode (as of |
169 | * version 2.9). |
170 | * |
171 | * @since: |
172 | * 2.8 |
173 | * |
174 | */ |
175 | #define FT_PARAM_TAG_STEM_DARKENING \ |
176 | FT_MAKE_TAG( 'd', 'a', 'r', 'k' ) |
177 | |
178 | |
179 | /*************************************************************************** |
180 | * |
181 | * @constant: |
182 | * FT_PARAM_TAG_UNPATENTED_HINTING |
183 | * |
184 | * @description: |
185 | * Deprecated, no effect. |
186 | * |
187 | * Previously: A constant used as the tag of an @FT_Parameter structure to |
188 | * indicate that unpatented methods only should be used by the TrueType |
189 | * bytecode interpreter for a typeface opened by @FT_Open_Face. |
190 | * |
191 | */ |
192 | #define FT_PARAM_TAG_UNPATENTED_HINTING \ |
193 | FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) |
194 | |
195 | |
196 | /* */ |
197 | |
198 | |
199 | FT_END_HEADER |
200 | |
201 | |
202 | #endif /* FTPARAMS_H_ */ |
203 | |
204 | |
205 | /* END */ |
206 | |