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