diff options
author | greg <greg@blackbox> | 2009-06-19 06:04:45 +0200 |
---|---|---|
committer | greg <greg@blackbox> | 2009-06-20 03:38:00 +0200 |
commit | 21ab30f2ffbc71af46c0e64824e0596f14ddb424 (patch) | |
tree | af165e3c5931b65e4f3a0f29f153c46bd98104d3 /libass/ass_fontconfig.c | |
parent | 4600a9a40e82d9583e6b99a6633cadd379b8aa93 (diff) | |
download | libass-21ab30f2ffbc71af46c0e64824e0596f14ddb424.tar.bz2 libass-21ab30f2ffbc71af46c0e64824e0596f14ddb424.tar.xz |
ass_set_fonts: optionally pass fontconfig config path
Optionally pass a fontconfig config file to the fontconfig
initialisation.
This changes the public API.
Diffstat (limited to 'libass/ass_fontconfig.c')
-rw-r--r-- | libass/ass_fontconfig.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index 0a2eb3f..54479cf 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -427,7 +427,7 @@ static void process_fontdata(fc_instance_t *priv, ass_library_t *library, */ fc_instance_t *fontconfig_init(ass_library_t *library, FT_Library ftlibrary, const char *family, - const char *path, int fc) + const char *path, int fc, const char *config) { int rc; fc_instance_t *priv = calloc(1, sizeof(fc_instance_t)); @@ -440,11 +440,19 @@ fc_instance_t *fontconfig_init(ass_library_t *library, goto exit; } - rc = FcInit(); - assert(rc); + if (config) { + priv->config = FcConfigCreate(); + rc = FcConfigParseAndLoad(priv->config, (unsigned char *)config, + FcTrue); + FcConfigBuildFonts(priv->config); + FcConfigSetCurrent(priv->config); + } else { + rc = FcInit(); + assert(rc); + priv->config = FcConfigGetCurrent(); + } - priv->config = FcConfigGetCurrent(); - if (!priv->config) { + if (!rc || !priv->config) { mp_msg(MSGT_ASS, MSGL_FATAL, MSGTR_LIBASS_FcInitLoadConfigAndFontsFailed); goto exit; |