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
32FT_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
199FT_END_HEADER
200
201
202#endif /* FTPARAMS_H_ */
203
204
205/* END */
206