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
>>>
>>>
>>>
>>>
>>>
>>
>

Reply via email to