Thanks for digging into this. If multiplying the em width by 2 // 3 is the most difficult step in using a bitmap font with pygame, then I'm happy!
Jason ________________________________ From: Lenard Lindstrom <le...@telus.net> To: pygame-users@seul.org Sent: Tuesday, October 8, 2013 12:32 AM Subject: Re: [pygame] freetype + unusual font format: What am I doing wrong? I looked at the BDF code in freetype2, and then ran a debugger on pygame.freetype to confirm. In freetype2, when only a "SIZE" record in a BDF file, the width, in pixels-per-em, is calculated as (height * 2 / 3) [1], which may not be the point size given in the "SIZE" record. For c64.dbf this is (8 * 2 / 3) = 5. The width is used as the font size. This is a quirk of the freetype library. I see no easy work-around. Lenard Lindstrom [1] bdfdrivr.c:438, see http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/bdf/bdfdrivr.c?id=VER-2-5-0-1#n438 On 13-10-06 02:44 PM, Lenard Lindstrom wrote: > Okay, setting the resolution to 45 corrects the sizes: > > pygame.freetype.init(resolution=45) > > Python 2.7.3 > pygame 1.9.2a0 > pygame.freetype 2.4.10 > radon.bdf 12 > radon.bdf 13 > radon-wide.bdf 12 > radon-wide.bdf 13 > c64.bdf 8 > c64d.bdf 16 > > I don't know why this is the case. Explicit bitmap font support is not > built into the freetype module, so is untested. It is something I > intended, but have not got around too. Sorry. > > Lenard Lindstrom. > > On 13-10-05 03:07 PM, Lenard Lindstrom wrote: >> [snip] >> The freetype version of pygame.font.init() is just >> pygame.freetype.init(). It takes a 'resolution' keyword argument that >> sets the default pitch used in rendering. I suppose setting the pitch >> to the screen resolution, in pixels per inch, makes the point size >> equal pixel size. The pygame.freetype.Font type allows pitch to be >> set individually for each Font instance. It is this pitch twiddling >> which allows pygame.freetype.Font to mimic how pygame.font.Font >> handles the default Pygame font, which is scaled differently from >> other fonts. >> >> >> On 13-10-05 01:48 PM, Jason Marshall wrote: >>> Maybe my understanding of size is wrong... >>> http://www.freetype.org/freetype2/docs/ft2faq.html#other-size >>> >>> ------------------------------------------------------------------------ >>> >>> *From:* Jason Marshall <j...@yahoo.com> >>> *To:* "pygame-users@seul.org" <pygame-users@seul.org> >>> *Sent:* Saturday, October 5, 2013 2:41 PM >>> *Subject:* Re: [pygame] freetype + unusual font format: What am I >>> doing wrong? >>> >>> Lenard, >>> >>> Sorry, updating to pygame-1.9.2a0-12de2da43ecb.win32-py3.3.msi >>> didn't help. >>> >>> By passing a different (wrong) size, I was able to get freetype to >>> render some fonts but not others. I made a webpage with the only >>> documentation that I have found, some demo code that can render from >>> some BDF fonts, and a screenshot: >>> http://www.marshallworkshop.com/pygame/freetype-bug/ >>> >>> I suspect that there's a mistake in the documentation for >>> instantiating the pygame.freetype.Font class. If I follow the >>> documentation and pass it the font name, style and size, I get an >>> error. If I just pass only the font name and a certain (wrong) >>> size, it sometimes renders. >>> >>> Jason >>> >>> >>> >>> >>> >> >