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