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 */