More TODO additions and deletions.
[ttfautohint.git] / TODO
blob917c14eb936300c4b982ca1a063a4edeac4c1548
2 important improvements
3 ----------------------
5 add features to the GUI
6   -> direct control over `actions'
7   -> preview similar to ftgrid
9 handle OT features
10   -> use HarfBuzz?
12 control `gasp' table; Adam Twardoch suggest the following:
14   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
15      stems (y direction distances) for lowercase Latin letters.
16   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
17      entire range (rangeMaxPPEM 0xFFFF, value 15)
18   3. Else, calculate gaspthreshold as follows:
19        ceil(1.33 * upm / gaspstem) - 1
20   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
21      gaspthreshold, value 7), and apply symmetric smoothing above.
23   In addition, ttfautohint should provide a commandline parameter that
24   allows the user to override the automatic logic.  If that parameter = 0,
25   then gasp value 15 should be applied across the entire range.  If the
26   parameter > 0, then up to that parameter value the gasp value 7 should be
27   applied, and gasp value 15 should be applied above.
29 create a separate blue zone class for `i' and `j':
30   . if the values differ more than a given threshold, handle them
31     separately
32   . otherwise, unify them with `f' and friends.
34 control the characters used for blue zones
35   -> non-latin scripts
37 user-defined blue zones?
38   -> old-style digits
40 control the width of blue zones
42 add control over character ranges which define a script; in particular, add
43   support for the PUA
45 handle normal and bold fonts differently; cf. Infinality patches;
46   this should help avoid filling of bowls (like in `e') for bold shapes.
48 control the minimum stem width
50 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
51   patches
53 implement `x-height-snapping-exceptions'
55 improve `pre-hinting' by making the used PPEM value configurable
57 allow hinting of single glyphs, using a config file which holds the global
58   settings
60 better handling of `incomplete' fonts (this is, fonts which lack the minimum
61   set of glyphs necessary to determine the blue zones)
64 minor improvements
65 ------------------
67 reject fonts which are `hopeless' (for example, `Lipstick')
69 reduce memory consumption by using 16bit data types in large arrays if 32bit
70   are not necessary
72 correctly set `lowestRecPPEM' field in `head'
74 control dropout mode
76 apply hinting in x direction also?
77   -> warper: shifting with and without scaling
78   -> `standard' autofit hinting
80 add a config and/or command file for batch handling
82 warn against overwrite of output file?
84 reduce output size of option -p:
85   1. compare outline rendered at EM value with unhinted outline
86   2. pre-hint only if 1. differs more than given threshold (default 0.5%?)
88 make it possible to hint fonts which aren't alphabetic at all, for example,
89   icons; to do so, provide means to skip the global feature analysis
91 better control -i output
93 allow processing of multiple files by using globs as in the Midnight
94   Commander
97 later enhancements
98 ------------------
100 add CJK autohinting module
101 add Hebrew autohinting module
103 instead of emitting bytecode, write the hints as a VTT or FontLab script
105 Windows/Mac installer
108 various
109 -------
111 testing with Windows and Apple font checkers
113 man page for ttfautohint library
115 install library
117 add help2man script so that parallel builds always work