Pango fonts and font names query

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Pango fonts and font names query

timrowledge
A probably simple and not terribly important question for anyone familiar with how Pango/Cairo works wrt font names etc. but I’m curious.

Scratch does some font rendering with Pango, depending upon circumstances. The exact definition of those circumstances is, to say the least, a bit confusing, but never mind. What is puzzling me right now is that with one of asian languages selected (apologies to speakers but I’m not familiar enough with any of them to spot which is which on sight) the StringMorph in use has a StrikeFont (Scratch does some *interesting* things to handle OS font naming) called VerdanaBold installed.

When tracing through to see what happens with it in order to get the proper glyphs on screen we see some name manipulation to go from ‘VerdanaBold' to ‘Verdana' + bold:= true and then the UnicodePlugin interface to Pango is passed

        RenderPlugin
                primSetFont: fontName
                size: fontSize
                bold: isBold
                italic: false
                antialias: antialiasFlag.
… so we are passing ‘Verdana’ as the font name. Which would be fine - and produces appropriate glyphs - except that when listing all the fonts available from Pango, Verdana isn’t in the list. I’m wondering what happens inside all that plugin/library code. Is there a name conversion dictionary in use, some deeply buried config file…?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Always loses battles of wits because he's unarmed.



Reply | Threaded
Open this post in threaded view
|

Re: Pango fonts and font names query

David T. Lewis
On Wed, Jul 30, 2014 at 05:06:23PM -0700, tim Rowledge wrote:

> A probably simple and not terribly important question for anyone familiar with how Pango/Cairo works wrt font names etc. but I?m curious.
>
> Scratch does some font rendering with Pango, depending upon circumstances. The exact definition of those circumstances is, to say the least, a bit confusing, but never mind. What is puzzling me right now is that with one of asian languages selected (apologies to speakers but I?m not familiar enough with any of them to spot which is which on sight) the StringMorph in use has a StrikeFont (Scratch does some *interesting* things to handle OS font naming) called VerdanaBold installed.
>
> When tracing through to see what happens with it in order to get the proper glyphs on screen we see some name manipulation to go from ?VerdanaBold' to ?Verdana' + bold:= true and then the UnicodePlugin interface to Pango is passed
>
> RenderPlugin
> primSetFont: fontName
> size: fontSize
> bold: isBold
> italic: false
> antialias: antialiasFlag.
> ? so we are passing ?Verdana? as the font name. Which would be fine - and produces appropriate glyphs - except that when listing all the fonts available from Pango, Verdana isn?t in the list. I?m wondering what happens inside all that plugin/library code. Is there a name conversion dictionary in use, some deeply buried config file??
>

I know little about this topic, but I do recall that in X11, and probably
other similar systems, there is a font naming convention that is used
for looking up fonts. See http://www.x.org/docs/XLFD/xlfd.pdf for an overview,
and try "xlsfonts -l" on your linux box to get a feel for it.

I suspect that Pango works in a similar manner, such that a plugin would
identify a desired font by a font name, size, boldness, etc.

So it would make sense that something in the image that wants to ask
a plugin to find a 'VerdanaBold' font would contrive some way to turn
this into a request to the plugin for 'Verdana' where the bold attribute
is true. No doubt this is some sort of expedient hack, but it does seem
to make sense.

I have no idea how this might translate into non-European languages.

Dave