Around 23 o'clock on Mar 14, Adam Sampson wrote: > I'm using FreeType 2.1.7 (upgraded just before I did fontconfig/libXft). Well, the bdf/pcf handlers in that version are broken. The basic problem is that someone had the bright idea of adding another set of metrics to measure bitmap instances with. We used to have width ??? height 'pixel height' of the face (basically point/72 * dpi) Now we've got width average 'width' value (spacing to next character) height ascent + descent + leading? x_ppem horizontal pixels in M square y_ppem vertical pixels in M square Note that 'new y_ppem' == 'old height' (an M square is generally defined by the nominal height of the face, with a bit of aspect ratio thrown in to whack the horizontal value) The problem is the BDF/PCF loaders were matching sizes passed in against width/height instead of x_ppem/y_ppem. But, the TTF loader matches x_ppem/ y_ppem. It's just a bug in FreeType. I'm pretty sure it's been fixed since; I sent a detailed message to them explaining what I found http://www.freetype.org/pipermail/devel/2004-February/010140.html And, as usual, they were quick to help out. To "fix" the problem, you have to take the x_ppem/y_ppem values given to the font selector function and "know" to convert them to width/height values; that means detecting that the font is a BDF/PCF font, that the FreeType version has this bug and walking the bitmap table to convert the values across. Simply backing out the matching code won't work. The font sizes are now extracted from y_ppem/x_ppem values (which the BDF/PCF loaders set correctly). Passing those values in raw will fail to match just as the current code fails now -- you can't send x_ppem/y_ppem values and expect the BDF/PCF loaders to find matching entries -- they're matching against width/height. Probably the best solution would be to have Fontconfig check the version of FreeType and use width/height for really old versions (pre-x_ppem/ y_ppem) when finding out what sizes are available, and then map x_ppem/ y_ppem to width/height when using the BDF/PCF loader from the few versions of FreeType which were broken. -keith -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 228 bytes Desc: not available Url : http://freedesktop.org/pipermail/fontconfig/attachments/20040314/8ce84b5e/attachment.pgp