cairo doesn't respect TrueType gasp tables (and fonts look ugly as a result)
@nmiell
Submitted by Nicholas Miell Assigned to David Turner
Description
TrueType fonts have a table called 'gasp' (Grid-fitting And Scan-conversion Procedure) which contains a list of font size ranges and some attributes that control how they should be rendered.
One such attribute is whether or not glyphs at specific sizes should be antialiased.
FreeType does not automatically apply the settings from the gasp table, instead the FreeType user must query the gasp table using FT_Get_Gasp() and then alter their behavior based on that result.
If this is not done, some fonts will be misrendered.
One such font is Verdana Bold. The hinting programs in Verdana Bold assume that sizes 9-16 will not be antialiased (as specified in the gasp table), thus when they query the global antialiasing boolean while being run on size 9-16 glyphs, the resulting hinting is incorrect and the K, N, V and W glyphs (among others) are misrendered.
See http://www.freetype.org/freetype2/docs/reference/ft2-gasp_table.html for more information. (Note that the gasp table also controls whether or not the bytecode should be interpreted at all, which probably also results in rendering errors, but I haven't noticed any.)
Version: 1.9.3