[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Devel] Re: Mac fonts: getting multiple faces from FOND?
From: |
Leonard Rosenthol |
Subject: |
[Devel] Re: Mac fonts: getting multiple faces from FOND? |
Date: |
Wed, 12 Feb 2003 13:40:43 -0500 |
At 12:09 PM -0600 2/12/03, Dan Williams wrote:
How do you get access to all the rest of the 'sfnt' faces? From my
reading of the code, you can _never_ get an aface back that contains
_any_ of the other faces, like 20647, 5177, 1404, or 5669.
parse_fond() contains code to deal with this:
fond = (FamRec*)fond_data;
assoc = (AsscEntry*)( fond_data + sizeof ( FamRec ) + 2 );
base_assoc = assoc;
assoc += face_index; /* add on the face_index! */ <-----
ALWAYS will be 0 by here
But by this point, FT_New_Face_From_dfont() has already set
face_index to 0 before it passed face_index to
FT_New_Face_From_FOND()!!
Oh, that would indeed be an issue - I hadn't noticed that...
If this behavior of face_index always being 0 is intended, then why
is this comment here (from Oct 2001)?
Thanks to Paul Miller (address@hidden) for the fix
to load a face OTHER than the first one in the FOND!
So it sounds like the dfont() method needs to do something
similar to what we've done in the other methods to allow face_index
to be correct.
Our problem with OpenOffice.org is that we use Freetype for font
rendering, but do our own font management. So therefore, we have to
get all 'sfnt' resources in a Mac font file, but we can't make
Freetype see them at all.
If you've already got a Handle to the sfnt, why not just do
what Joost suggested and call New_Face_From_SFNT()?? (once we export
it)
LDR
--
---------------------------------------------------------------------------
Leonard Rosenthol <mailto:address@hidden>
<http://www.lazerware.com>