Update.
[ttfautohint.git] / TODO
blob4a3ca9f4e208ca2ef70b8d1c9c00dcde79f3efe7
1 essential fixes
2 ---------------
4 simplify hinting bytecode by using the undocumented properties of some
5   instructions to shift the original coordinates of twilight points; this
6   should also fix the rendering problems on platforms like OS X.
8 explicitly check for new functionality of `FT_Sfnt_Table_Info'
10 write a platform-independent GUI
11   -> direct control over `actions'
12   -> preview similar to ftgrid
15 important improvements
16 ----------------------
18 handle OT features
19   -> use HarfBuzz?
21 control `gasp' table; Adam Twardoch suggest the following:
23   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
24      stems (y-direction distances) for lowercase Latin letters.
25   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
26      entire range (rangeMaxPPEM 0xFFFF, value 15)
27   3. Else, calculate gaspthreshold as follows:
28        ceil(1.33 * upm / gaspstem) - 1
29   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
30      gaspthreshold, value 7), and apply symmetric smoothing above.
32   In addition, ttfautohint should provide a commandline parameter that
33   allows the user to override the automatic logic.  If that parameter = 0,
34   then gasp value 15 should be applied across the entire range.  If the
35   parameter > 0, then up to that parameter value the gasp value 7 should be
36   applied, and gasp value 15 should be applied above.
38 control dropout mode
40 control activation threshold of blue zone widths
42 control the width of blue zones
44 handle normal and bold fonts differently; cf. Infinality patches
46 control the minimum stem width
48 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
49   patches
51 implement `x-height-snapping-exceptions' and `pre-hinting'
53 allow hinting of single glyphs, using a config file which holds the global
54   settings
56 better handling of `incomplete' fonts (this is, fonts which lack the minimum
57   set of glyphs necessary to determine the blue zones)
60 minor improvements
61 ------------------
63 make FreeType error codes human-readable
65 correctly set `modified' field in `head'
67 correctly set `lowestRecPPEM' field in `head'
69 set dropout mode et al.
71 apply hinting in x direction also?
72   -> warper: shifting with and without scaling
73   -> `standard' autofit hinting
75 try to reduce size of hints by handling strong points separately
77 add a config and/or command file for batch handling
79 make creation of DSIG table optional
82 later enhancements
83 ------------------
85 add CJK autohinting module
86 add Hebrew autohinting module
88 instead of emitting bytecode, write the hints as a VTT or FontLab script
90 Windows/Mac installer
93 various
94 -------
96 testing with Windows font checker
98 man page for ttfautohint library
99 install library