Update TODO list.
[ttfautohint.git] / TODO
blob788f4a70c3915ab235452201903f444e6580f3a9
1 essential fixes
2 ---------------
4 explicitly check for new functionality of `FT_Sfnt_Table_Info', both at
5 compile and run time.
7 write a platform-independent GUI
8   -> direct control over `actions'
9   -> preview similar to ftgrid
12 important improvements
13 ----------------------
15 handle OT features
16   -> use HarfBuzz?
18 control `gasp' table; Adam Twardoch suggest the following:
20   1. Calculate "gaspstem", i.e. the most common thickness of horizontal
21      stems (y direction distances) for lowercase Latin letters.
22   2. If gaspstem <= 0.03 * upm, apply gasp symmetric smoothing across the
23      entire range (rangeMaxPPEM 0xFFFF, value 15)
24   3. Else, calculate gaspthreshold as follows:
25        ceil(1.33 * upm / gaspstem) - 1
26   4. Apply no symmetric smoothing up to the gaspthreshold ppem (rangeMaxPPEM
27      gaspthreshold, value 7), and apply symmetric smoothing above.
29   In addition, ttfautohint should provide a commandline parameter that
30   allows the user to override the automatic logic.  If that parameter = 0,
31   then gasp value 15 should be applied across the entire range.  If the
32   parameter > 0, then up to that parameter value the gasp value 7 should be
33   applied, and gasp value 15 should be applied above.
35 disable hinting at large ppem values (> ~2000) to avoid numeric overflows
37 control dropout mode
39 control activation threshold of blue zone widths
41 control the width of blue zones
43 handle normal and bold fonts differently; cf. Infinality patches
45 control the minimum stem width
47 try to `embolden' fonts at small sizes to avoid drop-outs; cf. Infinality
48   patches
50 implement `x-height-snapping-exceptions' and `pre-hinting'
52 allow hinting of single glyphs, using a config file which holds the global
53   settings
55 better handling of `incomplete' fonts (this is, fonts which lack the minimum
56   set of glyphs necessary to determine the blue zones)
59 minor improvements
60 ------------------
62 make FreeType error codes human-readable
64 correctly set `modified' field in `head'
66 correctly set `lowestRecPPEM' field in `head'
68 set dropout mode et al.
70 apply hinting in x direction also?
71   -> warper: shifting with and without scaling
72   -> `standard' autofit hinting
74 try to reduce size of hints by handling strong points separately
76 add a config and/or command file for batch handling
78 make creation of DSIG table optional
81 later enhancements
82 ------------------
84 add CJK autohinting module
85 add Hebrew autohinting module
87 instead of emitting bytecode, write the hints as a VTT or FontLab script
89 Windows/Mac installer
92 various
93 -------
95 testing with Windows font checker
97 man page for ttfautohint library
98 install library