[vdr] [ANNOUNCE] VDR developer version 1.5.3

Anssi Hannula anssi.hannula at gmail.com
Sat Jun 16 16:29:34 CEST 2007


Klaus Schmidinger wrote:
> On 06/15/07 18:07, Anssi Hannula wrote:
>> Klaus Schmidinger wrote:
>>> On 06/10/07 17:53, Anssi Hannula wrote:
>>>> ...
>>>> Alternatively, you could use the fontconfig library [1] for managing 
>>>> fonts. This would also allow using using the system default fonts via 
>>>> aliases like 'sans-serif' etc, and using a font list instead of having 
>>>> to manually write the font filename via OSD.
>>>>
>>>> You can get a quick idea from looking at the patch which added 
>>>> fontconfig support for mplayer [2], though of course you should look in 
>>>> fontconfig documentation instead of copying conventions from mplayer :)
>>>>
>>>> [1] http://fontconfig.org/
>>>> [2] 
>>>> http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2003-November/022218.html
>>> When I do
>>>
>>>      const char *font_name = "sans-serif";
>>>      FcInit();
>>>      FcPattern *fc_pattern = FcNameParse((FcChar8 *)font_name);
>> While fontconfig is usually configured to ignore bitmap fonts anyway, I 
>> think you should enforce that by putting this call here:
>> FcPatternAddBool(fc_pattern, FC_SCALABLE, FcTrue);
> 
> Thanks.

Actually, I was wrong here. This won't guarantee anything, as the 
preference priorities of parameters is predefined, and the family name 
and, apparently, various other parameters (which are actually left at 
their defaults) are given a priority over the font being scalable. I was 
hit with this when trying to select FC_FAMILY "Utopia", and it kept 
returning the non-scalable version, even though a scalable version with 
the same name is available.

Solution is given here:
http://lists.freedesktop.org/archives/fontconfig/2006-March/002165.html

So it is doable, but you have to use FcFontSort() ( 
http://www.xemacs.org/Documentation/packages/html/fontconfig_3.html#SEC20 
), which returns a similar FcFontSet as the FcFontList() which is used 
for the font listing, but this time the fonts are ordered according to 
the closeness of match, allowing you to pick the first font with 
FC_SCALABLE being true.

[...]

I don't know if you have noticed / thought of these already, but few tips:
- For the fixed-size font list, you can use a match of FC_SPACING being 
FC_MONO so that non-monospace fonts are not listed.
- Have a "default" (or "system default") font setting in the font list, 
which causes VDR to use the default aliases instead of user-specified font

-- 
Anssi Hannula



More information about the vdr mailing list