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 "../../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 |