1 /****************************************************************************
2  *
3  * ftparams.h
4  *
5  *   FreeType API for possible FT_Parameter tags (specification only).
6  *
7  * Copyright (C) 2017-2019 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    * @enum:
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 1.4).
62    *   Use this for backward compatibility with legacy systems that have a
63    *   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    * @enum:
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    * @enum:
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    * @enum:
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 the
125    *   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    * @enum:
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 @random-seed.
145    *
146    * @since:
147    *   2.8
148    *
149    */
150 #define FT_PARAM_TAG_RANDOM_SEED \
151           FT_MAKE_TAG( 's', 'e', 'e', 'd' )
152 
153 
154   /**************************************************************************
155    *
156    * @enum:
157    *   FT_PARAM_TAG_STEM_DARKENING
158    *
159    * @description:
160    *   An @FT_Parameter tag to be used with @FT_Face_Properties.  The
161    *   corresponding Boolean argument specifies whether to apply stem
162    *   darkening, overriding the global default values or the values set up
163    *   with @FT_Property_Set (see @no-stem-darkening).
164    *
165    *   This is a passive setting that only takes effect if the font driver or
166    *   autohinter honors it, which the CFF, Type~1, and CID drivers always
167    *   do, but the autohinter only in 'light' hinting mode (as of version
168    *   2.9).
169    *
170    * @since:
171    *   2.8
172    *
173    */
174 #define FT_PARAM_TAG_STEM_DARKENING \
175           FT_MAKE_TAG( 'd', 'a', 'r', 'k' )
176 
177 
178   /**************************************************************************
179    *
180    * @enum:
181    *   FT_PARAM_TAG_UNPATENTED_HINTING
182    *
183    * @description:
184    *   Deprecated, no effect.
185    *
186    *   Previously: A constant used as the tag of an @FT_Parameter structure
187    *   to indicate that unpatented methods only should be used by the
188    *   TrueType bytecode interpreter for a typeface opened by @FT_Open_Face.
189    *
190    */
191 #define FT_PARAM_TAG_UNPATENTED_HINTING \
192           FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
193 
194 
195   /* */
196 
197 
198 FT_END_HEADER
199 
200 
201 #endif /* FTPARAMS_H_ */
202 
203 
204 /* END */
205