| 1 | /**************************************************************************** | 
| 2 |  * | 
| 3 |  * ftparams.h | 
| 4 |  * | 
| 5 |  *   FreeType API for possible FT_Parameter tags (specification only). | 
| 6 |  * | 
| 7 |  * Copyright (C) 2017-2021 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 |  |