Another TODO issue.
[ttfautohint.git] / TODO
blob40966758b9f4c494ff04458bbde162336a7c0d0d
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 improve handling of GDI ClearType by snapping to the pixel grid (this is,
13 integer coordinates of horizontal segments)
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 activation threshold of blue zone widths
39 control the width of blue zones
41 handle normal and bold fonts differently; cf. Infinality patches
42   Maybe an option `never shrink the glyphs vertically'?  This should help
43   avoid filling of bowls (like in `e') for bold shapes.
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'
51   cf. the `never shrink the glyph vertically' idea above
53 improve `pre-hinting' by making the used PPEM value configurable
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 correctly set `lowestRecPPEM' field in `head'
67 control dropout mode
69 apply hinting in x direction also?
70   -> warper: shifting with and without scaling
71   -> `standard' autofit hinting
73 try to reduce size of hints by handling strong points separately
75 add a config and/or command file for batch handling
77 warn against overwrite of output file?
79 reduce output size of option -p:
80   1. compare outline rendered at EM value with unhinted outline
81   2. pre-hint only if 1. differs more than given threshold (default 0.5%?)
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
103 add GNU copyright exception so that created fonts don't inherit the GPL
105 add notice to font that it has been processed by ttfautohint