Sergej, Paul,
from time to time we from the FreeType team get reports that our engine doesn't rasterize certain TrueType glyphs correctly. The most noticeable and disturbing case is glyph `W' in the font `arialuni.ttf' (see attached image). Careful inspection has shown that the very problem here (and in other cases) is a rounding bug in the MS rasterizer which the bytecode instructions of arialuni.ttf explicitly circumvent. Rogier van Dalen writes: I see the very same asymmetry on my rasterizer. Point 25 is the problematic point. I've calculated it all; Microsoft rounds the x-coordinate 895.455782 up to 896 (14.0) in an interpolate instruction. It is then rounded to half a pixel, to 14.5 according to the MS interpreter, to 13.5 according to FreeType's and mine. A delta instruction then moves it left to 13.5 (12.5). To conclude, the MS rasterizer does faulty rounding here, and a delta instruction could have been spared if they had implemented it properly. I'm quite sure that this rounding bug has historical roots and won't be fixed -- many, many fonts would render worse. This means that we have to emulate the behaviour of the MS rasterizer to get `correct' results. Can you tell us more about this problem? Which instructions are affected? What exactly is the reason for the incorrect rounding? Since so many fonts rely on this `feature' it should be documented -- ideally in the TrueType specification. Werner PS: I wonder whether Apple's rasterizer renders this glyph similar to MS Windows...
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype-devel