[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How does freetype get the "right" family name
From: |
Lawrence D'Oliveiro |
Subject: |
Re: How does freetype get the "right" family name |
Date: |
Fri, 27 May 2022 09:52:08 +1200 |
On Thu, 26 May 2022 15:53:13 -0400, Moi15 Moi wrote:
> I am trying to understand how does freetype determine what is the
> "right" family name.
Is this code helpful? (From the routine sfnt_load_face in
src/sfnt/sfobjs.c):
face->root.family_name = NULL;
face->root.style_name = NULL;
if ( face->os2.version != 0xFFFFU && face->os2.fsSelection & 256 )
{
if ( !ignore_typographic_family )
GET_NAME( TYPOGRAPHIC_FAMILY, &face->root.family_name );
if ( !face->root.family_name )
GET_NAME( FONT_FAMILY, &face->root.family_name );
if ( !ignore_typographic_subfamily )
GET_NAME( TYPOGRAPHIC_SUBFAMILY, &face->root.style_name );
if ( !face->root.style_name )
GET_NAME( FONT_SUBFAMILY, &face->root.style_name );
}
else
{
GET_NAME( WWS_FAMILY, &face->root.family_name );
if ( !face->root.family_name && !ignore_typographic_family )
GET_NAME( TYPOGRAPHIC_FAMILY, &face->root.family_name );
if ( !face->root.family_name )
GET_NAME( FONT_FAMILY, &face->root.family_name );
GET_NAME( WWS_SUBFAMILY, &face->root.style_name );
if ( !face->root.style_name && !ignore_typographic_subfamily )
GET_NAME( TYPOGRAPHIC_SUBFAMILY, &face->root.style_name );
if ( !face->root.style_name )
GET_NAME( FONT_SUBFAMILY, &face->root.style_name );
}