TODO update.
[ttfautohint.git] / TODO
blobdab6fbd66a767429aeeb31da15f75542d6350011
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 disable hinting at large ppem values (> ~2000) to avoid numeric overflows
40 control dropout mode
42 control activation threshold of blue zone widths
44 control the width of blue zones
46 handle normal and bold fonts differently; cf. Infinality patches
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' and `pre-hinting'
55 allow hinting of single glyphs, using a config file which holds the global
56   settings
58 better handling of `incomplete' fonts (this is, fonts which lack the minimum
59   set of glyphs necessary to determine the blue zones)
62 minor improvements
63 ------------------
65 make FreeType error codes human-readable
67 correctly set `modified' field in `head'
69 correctly set `lowestRecPPEM' field in `head'
71 set dropout mode et al.
73 apply hinting in x direction also?
74   -> warper: shifting with and without scaling
75   -> `standard' autofit hinting
77 try to reduce size of hints by handling strong points separately
79 add a config and/or command file for batch handling
81 make creation of DSIG table optional
84 later enhancements
85 ------------------
87 add CJK autohinting module
88 add Hebrew autohinting module
90 instead of emitting bytecode, write the hints as a VTT or FontLab script
92 Windows/Mac installer
95 various
96 -------
98 testing with Windows font checker
100 man page for ttfautohint library
101 install library