fontconfig mem reduction patch (only load what is needed)

SVN revision: 21880
This commit is contained in:
Carsten Haitzler 2006-04-05 23:23:16 +00:00
parent 97d9523a28
commit 02ab2a4df1
1 changed files with 8 additions and 20 deletions

View File

@ -312,31 +312,19 @@ evas_font_load(Evas *evas, const char *name, const char *source, int size)
if (!font) /* Search using fontconfig */
{
FcPattern *p_nm = NULL;
FcFontSet *set;
FcChar8 *s;
FcResult res;
int i;
p_nm = FcNameParse(name);
FcConfigSubstitute(NULL, p_nm, FcMatchPattern);
FcDefaultSubstitute(p_nm);
/* do matching */
set = FcFontSort(NULL, p_nm, FcTrue, NULL, &res);
/* Do loading for all in family */
for (i = 0; i < set->nfont; i++)
{
FcValue filename;
FcPatternGet(set->fonts[i], FC_FILE, 0, &filename);
if (font)
evas->engine.func->font_add(evas->engine.data.output, font, filename.u.s, size);
else
font = evas->engine.func->font_load(evas->engine.data.output, filename.u.s, size);
}
FcFontSetDestroy(set);
p_nm = FcFontMatch(NULL, p_nm, &res);
res = FcPatternGetString(p_nm, FC_FILE, 0, &s);
if (res == FcResultMatch)
font = evas->engine.func->font_load(evas->engine.data.output, s,
size);
FcPatternDestroy(p_nm);
}
#endif