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