Home | History | Annotate | Download | only in freetype
      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