Mercurial > mplayer.hg
changeset 19340:f0d49f38ce97
Use FontConfig cache to speedup mplayer startup.
Patch by Zealot <zealot0630 at gmail dot com>.
author | eugeni |
---|---|
date | Sun, 06 Aug 2006 17:56:01 +0000 |
parents | 5717347573b5 |
children | f6661e33aa60 |
files | libass/ass_fontconfig.c |
diffstat | 1 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libass/ass_fontconfig.c Sun Aug 06 14:30:38 2006 +0000 +++ b/libass/ass_fontconfig.c Sun Aug 06 17:56:01 2006 +0000 @@ -152,6 +152,34 @@ return 0; } + if (FcDirCacheValid((const FcChar8 *)dir) == FcFalse) + { + FcFontSet* fcs; + FcStrSet* fss; + mp_msg(MSGT_GLOBAL, MSGL_INFO, "[ass] Updating font cache\n"); + fcs = FcFontSetCreate(); + fss = FcStrSetCreate(); + rc = FcStrSetAdd(fss, (const FcChar8*)dir); + if (!rc) { + mp_msg(MSGT_GLOBAL, MSGL_WARN, "FcStrSetAdd failed\n"); + goto ErrorFontCache; + } + + rc = FcDirScan(fcs, fss, NULL, FcConfigGetBlanks(priv->config), (const FcChar8 *)dir, FcFalse); + if (!rc) { + mp_msg(MSGT_GLOBAL, MSGL_WARN, "FcDirScan failed\n"); + goto ErrorFontCache; + } + + rc = FcDirSave(fcs, fss, (const FcChar8 *)dir); + if (!rc) { + mp_msg(MSGT_GLOBAL, MSGL_WARN, "FcDirSave failed\n"); + goto ErrorFontCache; + } + ErrorFontCache: + ; + } + rc = FcConfigAppFontAddDir(priv->config, (const FcChar8*)dir); if (!rc) { mp_msg(MSGT_GLOBAL, MSGL_WARN, "FcConfigAppFontAddDir failed\n");