Add option `error-string' to get human-readable error messages.
[ttfautohint.git] / TODO
blob1553de21c43377d80d101051b3cd5bb273151c77
1 essential fixes
2 ---------------
4 write a platform-independent GUI
5   -> direct control over `actions'
6   -> preview similar to ftgrid
9 important improvements
10 ----------------------
12 handle OT features
13   -> use HarfBuzz?
15 control `gasp' table; Adam Twardoch suggest the following:
17   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
18      stems (y direction distances) for lowercase Latin letters.
19   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
20      entire range (rangeMaxPPEM 0xFFFF, value 15)
21   3. Else, calculate gaspthreshold as follows:
22        ceil(1.33 * upm / gaspstem) - 1
23   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
24      gaspthreshold, value 7), and apply symmetric smoothing above.
26   In addition, ttfautohint should provide a commandline parameter that
27   allows the user to override the automatic logic.  If that parameter = 0,
28   then gasp value 15 should be applied across the entire range.  If the
29   parameter > 0, then up to that parameter value the gasp value 7 should be
30   applied, and gasp value 15 should be applied above.
32 disable hinting at large ppem values (> ~2000) to avoid numeric overflows
34 control dropout mode
36 control activation threshold of blue zone widths
38 control the width of blue zones
40 handle normal and bold fonts differently; cf. Infinality patches
42 control the minimum stem width
44 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
45   patches
47 implement `x-height-snapping-exceptions' and `pre-hinting'
49 allow hinting of single glyphs, using a config file which holds the global
50   settings
52 better handling of `incomplete' fonts (this is, fonts which lack the minimum
53   set of glyphs necessary to determine the blue zones)
56 minor improvements
57 ------------------
59 correctly set `modified' field in `head'
61 correctly set `lowestRecPPEM' field in `head'
63 set dropout mode et al.
65 apply hinting in x direction also?
66   -> warper: shifting with and without scaling
67   -> `standard' autofit hinting
69 try to reduce size of hints by handling strong points separately
71 add a config and/or command file for batch handling
73 make creation of DSIG table optional
76 later enhancements
77 ------------------
79 add CJK autohinting module
80 add Hebrew autohinting module
82 instead of emitting bytecode, write the hints as a VTT or FontLab script
84 Windows/Mac installer
87 various
88 -------
90 testing with Windows font checker
92 man page for ttfautohint library
93 install library
96 EOF