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