• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    * @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
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    * @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
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    * @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
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    * @enum:
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    * @enum:
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