1 /**************************************************************************** 2 * 3 * ftparams.h 4 * 5 * FreeType API for possible FT_Parameter tags (specification only). 6 * 7 * Copyright (C) 2017-2023 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_IGNORE_SBIX 119 * 120 * @description: 121 * A tag for @FT_Parameter to make @FT_Open_Face ignore an 'sbix' table 122 * while loading a font. Use this if @FT_FACE_FLAG_SBIX is set and you 123 * want to access the outline glyphs in the font. 124 * 125 */ 126 #define FT_PARAM_TAG_IGNORE_SBIX \ 127 FT_MAKE_TAG( 'i', 's', 'b', 'x' ) 128 129 130 /************************************************************************** 131 * 132 * @enum: 133 * FT_PARAM_TAG_LCD_FILTER_WEIGHTS 134 * 135 * @description: 136 * An @FT_Parameter tag to be used with @FT_Face_Properties. The 137 * corresponding argument specifies the five LCD filter weights for a 138 * given face (if using @FT_LOAD_TARGET_LCD, for example), overriding the 139 * global default values or the values set up with 140 * @FT_Library_SetLcdFilterWeights. 141 * 142 * @since: 143 * 2.8 144 * 145 */ 146 #define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \ 147 FT_MAKE_TAG( 'l', 'c', 'd', 'f' ) 148 149 150 /************************************************************************** 151 * 152 * @enum: 153 * FT_PARAM_TAG_RANDOM_SEED 154 * 155 * @description: 156 * An @FT_Parameter tag to be used with @FT_Face_Properties. The 157 * corresponding 32bit signed integer argument overrides the font 158 * driver's random seed value with a face-specific one; see @random-seed. 159 * 160 * @since: 161 * 2.8 162 * 163 */ 164 #define FT_PARAM_TAG_RANDOM_SEED \ 165 FT_MAKE_TAG( 's', 'e', 'e', 'd' ) 166 167 168 /************************************************************************** 169 * 170 * @enum: 171 * FT_PARAM_TAG_STEM_DARKENING 172 * 173 * @description: 174 * An @FT_Parameter tag to be used with @FT_Face_Properties. The 175 * corresponding Boolean argument specifies whether to apply stem 176 * darkening, overriding the global default values or the values set up 177 * with @FT_Property_Set (see @no-stem-darkening). 178 * 179 * This is a passive setting that only takes effect if the font driver or 180 * autohinter honors it, which the CFF, Type~1, and CID drivers always 181 * do, but the autohinter only in 'light' hinting mode (as of version 182 * 2.9). 183 * 184 * @since: 185 * 2.8 186 * 187 */ 188 #define FT_PARAM_TAG_STEM_DARKENING \ 189 FT_MAKE_TAG( 'd', 'a', 'r', 'k' ) 190 191 192 /************************************************************************** 193 * 194 * @enum: 195 * FT_PARAM_TAG_UNPATENTED_HINTING 196 * 197 * @description: 198 * Deprecated, no effect. 199 * 200 * Previously: A constant used as the tag of an @FT_Parameter structure 201 * to indicate that unpatented methods only should be used by the 202 * TrueType bytecode interpreter for a typeface opened by @FT_Open_Face. 203 * 204 */ 205 #define FT_PARAM_TAG_UNPATENTED_HINTING \ 206 FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) 207 208 209 /* */ 210 211 212 FT_END_HEADER 213 214 215 #endif /* FTPARAMS_H_ */ 216 217 218 /* END */ 219