TODO: Addition.
[ttfautohint.git] / TODO
blob3982f53b90a27c2322198e1712b6f4dbd578ad44
2 important improvements
3 ----------------------
5 try to reduce size of hints
6   -> handling strong points separately
7   -> `compress' data
8   -> more subroutines to avoid flags
10 add features to the GUI
11   -> direct control over `actions'
12   -> preview similar to ftgrid
14 improve handling of GDI ClearType by snapping to the pixel grid (this is,
15   integer coordinates of horizontal segments)
17 handle OT features
18   -> use HarfBuzz?
20 control `gasp' table; Adam Twardoch suggest the following:
22   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
23      stems (y direction distances) for lowercase Latin letters.
24   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
25      entire range (rangeMaxPPEM 0xFFFF, value 15)
26   3. Else, calculate gaspthreshold as follows:
27        ceil(1.33 * upm / gaspstem) - 1
28   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
29      gaspthreshold, value 7), and apply symmetric smoothing above.
31   In addition, ttfautohint should provide a commandline parameter that
32   allows the user to override the automatic logic.  If that parameter = 0,
33   then gasp value 15 should be applied across the entire range.  If the
34   parameter > 0, then up to that parameter value the gasp value 7 should be
35   applied, and gasp value 15 should be applied above.
37 control activation threshold of blue zone widths; handle fonts with large
38   serifs like `Palatino' or `Quattrocento' (cf. this bug report:
39   https://savannah.nongnu.org/bugs/?36091)
41 create a separate blue zone class for `i' and `j':
42   . if the values differ more than a given threshold, handle them
43     separately
44   . otherwise, unify them with `f' and friends.
46 control the characters used for blue zones
47   -> non-latin scripts
49 user-defined blue zones?
50   -> old-style digits
52 control the width of blue zones
54 handle normal and bold fonts differently; cf. Infinality patches;
55   this should help avoid filling of bowls (like in `e') for bold shapes.
57 control the minimum stem width
59 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
60   patches
62 implement `x-height-snapping-exceptions'
64 improve `pre-hinting' by making the used PPEM value configurable
66 allow hinting of single glyphs, using a config file which holds the global
67   settings
69 better handling of `incomplete' fonts (this is, fonts which lack the minimum
70   set of glyphs necessary to determine the blue zones)
73 minor improvements
74 ------------------
76 correctly set `lowestRecPPEM' field in `head'
78 control dropout mode
80 apply hinting in x direction also?
81   -> warper: shifting with and without scaling
82   -> `standard' autofit hinting
84 add a config and/or command file for batch handling
86 warn against overwrite of output file?
88 reduce output size of option -p:
89   1. compare outline rendered at EM value with unhinted outline
90   2. pre-hint only if 1. differs more than given threshold (default 0.5%?)
92 make it possible to hint fonts which aren't alphabetic at all, for example,
93   icons; to do so, provide means to skip the global feature analysis
96 later enhancements
97 ------------------
99 add CJK autohinting module
100 add Hebrew autohinting module
102 instead of emitting bytecode, write the hints as a VTT or FontLab script
104 Windows/Mac installer
107 various
108 -------
110 testing with Windows and Apple font checkers
112 man page for ttfautohint library
114 install library
116 add help2man script so that parallel builds always work