4 write a platform-independent GUI
5 -> direct control over `actions'
6 -> preview similar to ftgrid
10 ----------------------
12 improve handling of GDI ClearType by snapping to the pixel grid (this is,
13 integer coordinates of horizontal segments)
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
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
50 implement `x-height-snapping-exceptions' and `pre-hinting'
52 allow hinting of single glyphs, using a config file which holds the global
55 better handling of `incomplete' fonts (this is, fonts which lack the minimum
56 set of glyphs necessary to determine the blue zones)
62 correctly set `lowestRecPPEM' field in `head'
64 set dropout mode et al.
66 apply hinting in x direction also?
67 -> warper: shifting with and without scaling
68 -> `standard' autofit hinting
70 try to reduce size of hints by handling strong points separately
72 add a config and/or command file for batch handling
74 warn against overwrite of output file?
76 improve rendering of composite glyphs
78 1. scan font to mark all glyphs used as composite elements and collect its
80 2. for glyphs found in 1.: use CVS register to pass nesting level to
81 bytecode; if > 0, don't apply it
82 3. don't pass FT_LOAD_NO_RECURSE to autohinter
86 a. prepend a composite element (with a single point) to all composite
87 glyphs so that we can apply bytecoode to increase the nesting level; it
88 gets decreased in the composite's bytecode instructions
89 b. for glyphs found in 1.: adjust all AnchorFormat2 tables in the GPOS
90 table to fit the changed point indices
92 reduce output size of option -p:
93 1. compare outline rendered at EM value with unhinted outline
94 2. pre-hint only if 1. differs more than given threshold (default 0.5%?)
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
111 testing with Windows font checker
113 man page for ttfautohint library