text: /***************************************************************************/
  /*                                                                         */
  /*  ttsubpix.h                                                             */
  /*                                                                         */
  /*    TrueType Subpixel Hinting.                                           */
  /*                                                                         */
  /*  Copyright 2010-2016 by                                                 */
  /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  /*                                                                         */
  /*  This file is part of the FreeType project, and may only be used,       */
  /*  modified, and distributed under the terms of the FreeType project      */
  /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  /*  this file you indicate that you have read the license and              */
  /*  understand and accept it fully.                                        */
  /*                                                                         */
  /***************************************************************************/
  
  
  #ifndef TTSUBPIX_H_
  #define TTSUBPIX_H_
  
  #include <ft2build.h>
  #include "ttobjs.h"
  #include "ttinterp.h"
  
  
  FT_BEGIN_HEADER
  
  
  #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
  
    /*************************************************************************/
    /*                                                                       */
    /* ID flags to identify special functions at FDEF and runtime.           */
    /*                                                                       */
    /*                                                                       */
  #define SPH_FDEF_INLINE_DELTA_1       0x0000001
  #define SPH_FDEF_INLINE_DELTA_2       0x0000002
  #define SPH_FDEF_DIAGONAL_STROKE      0x0000004
  #define SPH_FDEF_VACUFORM_ROUND_1     0x0000008
  #define SPH_FDEF_TTFAUTOHINT_1        0x0000010
  #define SPH_FDEF_SPACING_1            0x0000020
  #define SPH_FDEF_SPACING_2            0x0000040
  #define SPH_FDEF_TYPEMAN_STROKES      0x0000080
  #define SPH_FDEF_TYPEMAN_DIAGENDCTRL  0x0000100
  
  
    /*************************************************************************/
    /*                                                                       */
    /* Tweak flags that are set for each glyph by the below rules.           */
    /*                                                                       */
    /*                                                                       */
  #define SPH_TWEAK_ALLOW_X_DMOVE                   0x0000001UL
  #define SPH_TWEAK_ALWAYS_DO_DELTAP                0x0000002UL
  #define SPH_TWEAK_ALWAYS_SKIP_DELTAP              0x0000004UL
  #define SPH_TWEAK_COURIER_NEW_2_HACK              0x0000008UL
  #define SPH_TWEAK_DEEMBOLDEN                      0x0000010UL
  #define SPH_TWEAK_DO_SHPIX                        0x0000020UL
  #define SPH_TWEAK_EMBOLDEN                        0x0000040UL
  #define SPH_TWEAK_MIAP_HACK                       0x0000080UL
  #define SPH_TWEAK_NORMAL_ROUND                    0x0000100UL
  #define SPH_TWEAK_NO_ALIGNRP_AFTER_IUP            0x0000200UL
  #define SPH_TWEAK_NO_CALL_AFTER_IUP               0x0000400UL
  #define SPH_TWEAK_NO_DELTAP_AFTER_IUP             0x0000800UL
  #define SPH_TWEAK_PIXEL_HINTING                   0x0001000UL
  #define SPH_TWEAK_RASTERIZER_35                   0x0002000UL
  #define SPH_TWEAK_ROUND_NONPIXEL_Y_MOVES          0x0004000UL
  #define SPH_TWEAK_SKIP_IUP                        0x0008000UL
  #define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES           0x0010000UL
  #define SPH_TWEAK_SKIP_OFFPIXEL_Y_MOVES           0x0020000UL
  #define SPH_TWEAK_TIMES_NEW_ROMAN_HACK            0x0040000UL
  #define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP    0x0080000UL
  
  
    FT_LOCAL( FT_Bool )
    sph_test_tweak( TT_Face               face,
                    const FT_String*      family,
                    FT_UInt               ppem,
                    const FT_String*      style,
                    FT_UInt               glyph_index,
                    const SPH_TweakRule*  rule,
                    FT_UInt               num_rules );
  
    FT_LOCAL( FT_UInt )
    sph_test_tweak_x_scaling( TT_Face           face,
                              const FT_String*  family,
                              FT_UInt           ppem,
                              const FT_String*  style,
                              FT_UInt           glyph_index );
  
    FT_LOCAL( void )
    sph_set_tweaks( TT_Loader  loader,
                    FT_UInt    glyph_index );
  
  
    /* These macros are defined absent a method for setting them */
  #define SPH_OPTION_BITMAP_WIDTHS           FALSE
  #define SPH_OPTION_SET_SUBPIXEL            TRUE
  #define SPH_OPTION_SET_GRAYSCALE           FALSE
  #define SPH_OPTION_SET_COMPATIBLE_WIDTHS   FALSE
  #define SPH_OPTION_SET_RASTERIZER_VERSION  38
  
  #endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
  
  
  FT_END_HEADER
  
  #endif /* TTSUBPIX_H_ */
  
  
  /* END */
  