<br><br><div class="gmail_quote">On Oct 30, 2007 3:05 PM, Keith Packard <<a href="mailto:keithp@keithp.com">keithp@keithp.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Sazanami Mincho is a Japanese font which offers several bitmap strikes,<br>however coverage of those strikes is not complete. If the first glyph<br>has a bitmap version, cairo assumes that all of the glyphs will and<br>creates the font in A1 format. However, glyphs which do not have bitmap
<br>strikes will get mis-rendered as they are first drawn to an A8 image and<br>then poorly copied to A1. However, if the first glyph does not have a<br>bitmap strike, it will be drawn anti-aliased, and all of the remaining
<br>glyphs will end up getting copied to an A8 surface.<br><br>It seems like we have three options:<br><br> 1) Identify bitmap strike sizes and draw all glyphs as A1 surfaces.<br> 2) Draw bitmap glyphs as bitmaps and other glyphs as A8 surfaces.
<br> 3) Identify whether a bitmap strike is complete and if not, create<br> all glyphs as A8 glyphs in case a non-bitmap glyph is requested.<br><br>The first would require that we discover bitmap strikes in the FreeType
<br>backend and turn off the antialias flag. I think this is fairly simple<br>to do.<br><br>The second would require splitting the font into two objects; XRender<br>glyphsets can only be in a single format. This seems like slightly more
<br>work, but certainly not impossible.<br><font color="#888888"><br></font></blockquote></div>I implemented option 2 in 2006, but was rejected due to its 'complexity'。I attach my old patch here,<br>obviously, it will not be applied any more, that file has been changed a lot :).
<br>