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