[fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
Except for the final FcFontRenderPrepare(). This way we have more flexibility to do caching in FcFontMatch() while leaving FcFontSetMatch() intact.
This commit is contained in:
parent
a5a384c5ff
commit
6d764a3f9b
|
@ -459,12 +459,12 @@ FcFontRenderPrepare (FcConfig *config,
|
||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
FcPattern *
|
static FcPattern *
|
||||||
FcFontSetMatch (FcConfig *config,
|
FcFontSetMatchInternal (FcConfig *config,
|
||||||
FcFontSet **sets,
|
FcFontSet **sets,
|
||||||
int nsets,
|
int nsets,
|
||||||
FcPattern *p,
|
FcPattern *p,
|
||||||
FcResult *result)
|
FcResult *result)
|
||||||
{
|
{
|
||||||
double score[NUM_MATCH_VALUES], bestscore[NUM_MATCH_VALUES];
|
double score[NUM_MATCH_VALUES], bestscore[NUM_MATCH_VALUES];
|
||||||
int f;
|
int f;
|
||||||
|
@ -481,12 +481,6 @@ FcFontSetMatch (FcConfig *config,
|
||||||
printf ("Match ");
|
printf ("Match ");
|
||||||
FcPatternPrint (p);
|
FcPatternPrint (p);
|
||||||
}
|
}
|
||||||
if (!config)
|
|
||||||
{
|
|
||||||
config = FcConfigGetCurrent ();
|
|
||||||
if (!config)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
for (set = 0; set < nsets; set++)
|
for (set = 0; set < nsets; set++)
|
||||||
{
|
{
|
||||||
s = sets[set];
|
s = sets[set];
|
||||||
|
@ -537,6 +531,25 @@ FcFontSetMatch (FcConfig *config,
|
||||||
*result = FcResultNoMatch;
|
*result = FcResultNoMatch;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
return best;
|
||||||
|
}
|
||||||
|
|
||||||
|
FcPattern *
|
||||||
|
FcFontSetMatch (FcConfig *config,
|
||||||
|
FcFontSet **sets,
|
||||||
|
int nsets,
|
||||||
|
FcPattern *p,
|
||||||
|
FcResult *result)
|
||||||
|
{
|
||||||
|
FcPattern *best;
|
||||||
|
|
||||||
|
if (!config)
|
||||||
|
{
|
||||||
|
config = FcConfigGetCurrent ();
|
||||||
|
if (!config)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
best = FcFontSetMatchInternal (config, sets, nsets, p, result);
|
||||||
return FcFontRenderPrepare (config, p, best);
|
return FcFontRenderPrepare (config, p, best);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,6 +560,7 @@ FcFontMatch (FcConfig *config,
|
||||||
{
|
{
|
||||||
FcFontSet *sets[2];
|
FcFontSet *sets[2];
|
||||||
int nsets;
|
int nsets;
|
||||||
|
FcPattern *best;
|
||||||
|
|
||||||
if (!config)
|
if (!config)
|
||||||
{
|
{
|
||||||
|
@ -559,7 +573,9 @@ FcFontMatch (FcConfig *config,
|
||||||
sets[nsets++] = config->fonts[FcSetSystem];
|
sets[nsets++] = config->fonts[FcSetSystem];
|
||||||
if (config->fonts[FcSetApplication])
|
if (config->fonts[FcSetApplication])
|
||||||
sets[nsets++] = config->fonts[FcSetApplication];
|
sets[nsets++] = config->fonts[FcSetApplication];
|
||||||
return FcFontSetMatch (config, sets, nsets, p, result);
|
|
||||||
|
best = FcFontSetMatchInternal (config, sets, nsets, p, result);
|
||||||
|
return FcFontRenderPrepare (config, p, best);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _FcSortNode {
|
typedef struct _FcSortNode {
|
||||||
|
|
Loading…
Reference in New Issue