OLD | NEW |
(Empty) | |
| 1 /***************************************************************************/ |
| 2 /* */ |
| 3 /* ttsubpix.h */ |
| 4 /* */ |
| 5 /* TrueType Subpixel Hinting. */ |
| 6 /* */ |
| 7 /* Copyright 2010-2013 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 __TTSUBPIX_H__ |
| 20 #define __TTSUBPIX_H__ |
| 21 |
| 22 #include <ft2build.h> |
| 23 #include "ttobjs.h" |
| 24 #include "ttinterp.h" |
| 25 |
| 26 |
| 27 FT_BEGIN_HEADER |
| 28 |
| 29 |
| 30 #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING |
| 31 |
| 32 /*************************************************************************/ |
| 33 /* */ |
| 34 /* ID flags to identify special functions at FDEF and runtime. */ |
| 35 /* */ |
| 36 /* */ |
| 37 #define SPH_FDEF_INLINE_DELTA_1 0x0000001 |
| 38 #define SPH_FDEF_INLINE_DELTA_2 0x0000002 |
| 39 #define SPH_FDEF_DIAGONAL_STROKE 0x0000004 |
| 40 #define SPH_FDEF_VACUFORM_ROUND_1 0x0000008 |
| 41 #define SPH_FDEF_TTFAUTOHINT_1 0x0000010 |
| 42 #define SPH_FDEF_SPACING_1 0x0000020 |
| 43 #define SPH_FDEF_SPACING_2 0x0000040 |
| 44 #define SPH_FDEF_TYPEMAN_STROKES 0x0000080 |
| 45 #define SPH_FDEF_TYPEMAN_DIAGENDCTRL 0x0000100 |
| 46 |
| 47 |
| 48 /*************************************************************************/ |
| 49 /* */ |
| 50 /* Tweak flags that are set for each glyph by the below rules. */ |
| 51 /* */ |
| 52 /* */ |
| 53 #define SPH_TWEAK_ALLOW_X_DMOVE 0x0000001 |
| 54 #define SPH_TWEAK_ALWAYS_DO_DELTAP 0x0000002 |
| 55 #define SPH_TWEAK_ALWAYS_SKIP_DELTAP 0x0000004 |
| 56 #define SPH_TWEAK_COURIER_NEW_2_HACK 0x0000008 |
| 57 #define SPH_TWEAK_DEEMBOLDEN 0x0000010 |
| 58 #define SPH_TWEAK_DO_SHPIX 0x0000020 |
| 59 #define SPH_TWEAK_EMBOLDEN 0x0000040 |
| 60 #define SPH_TWEAK_MIAP_HACK 0x0000080 |
| 61 #define SPH_TWEAK_NORMAL_ROUND 0x0000100 |
| 62 #define SPH_TWEAK_NO_ALIGNRP_AFTER_IUP 0x0000200 |
| 63 #define SPH_TWEAK_NO_CALL_AFTER_IUP 0x0000400 |
| 64 #define SPH_TWEAK_NO_DELTAP_AFTER_IUP 0x0000800 |
| 65 #define SPH_TWEAK_PIXEL_HINTING 0x0001000 |
| 66 #define SPH_TWEAK_RASTERIZER_35 0x0002000 |
| 67 #define SPH_TWEAK_ROUND_NONPIXEL_Y_MOVES 0x0004000 |
| 68 #define SPH_TWEAK_SKIP_IUP 0x0008000 |
| 69 #define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES 0x0010000 |
| 70 #define SPH_TWEAK_SKIP_OFFPIXEL_Y_MOVES 0x0020000 |
| 71 #define SPH_TWEAK_TIMES_NEW_ROMAN_HACK 0x0040000 |
| 72 #define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP 0x0080000 |
| 73 |
| 74 |
| 75 FT_LOCAL( FT_Bool ) |
| 76 sph_test_tweak( TT_Face face, |
| 77 const FT_String* family, |
| 78 FT_UInt ppem, |
| 79 const FT_String* style, |
| 80 FT_UInt glyph_index, |
| 81 const SPH_TweakRule* rule, |
| 82 FT_UInt num_rules ); |
| 83 |
| 84 FT_LOCAL( FT_UInt ) |
| 85 sph_test_tweak_x_scaling( TT_Face face, |
| 86 const FT_String* family, |
| 87 FT_UInt ppem, |
| 88 const FT_String* style, |
| 89 FT_UInt glyph_index ); |
| 90 |
| 91 FT_LOCAL( void ) |
| 92 sph_set_tweaks( TT_Loader loader, |
| 93 FT_UInt glyph_index ); |
| 94 |
| 95 |
| 96 /* These macros are defined absent a method for setting them */ |
| 97 #define SPH_OPTION_BITMAP_WIDTHS FALSE |
| 98 #define SPH_OPTION_SET_SUBPIXEL TRUE |
| 99 #define SPH_OPTION_SET_GRAYSCALE FALSE |
| 100 #define SPH_OPTION_SET_COMPATIBLE_WIDTHS FALSE |
| 101 #define SPH_OPTION_SET_RASTERIZER_VERSION 38 |
| 102 |
| 103 #endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ |
| 104 |
| 105 |
| 106 FT_END_HEADER |
| 107 |
| 108 #endif /* __TTSUBPIX_H__ */ |
| 109 |
| 110 /* END */ |
OLD | NEW |