diff options
author | Grigori Goronzy <greg@chown.ath.cx> | 2011-08-18 06:19:33 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@chown.ath.cx> | 2015-07-10 10:42:40 +0200 |
commit | 3b72ae063fe2f4d7adb7c59587155e0a45c692d0 (patch) | |
tree | 152ef37547601f32509ff552c7d15ee80388f506 | |
parent | cce454eac1f3bee89cb7cdb8d35032917f430142 (diff) | |
download | libass-3b72ae063fe2f4d7adb7c59587155e0a45c692d0.tar.bz2 libass-3b72ae063fe2f4d7adb7c59587155e0a45c692d0.tar.xz |
Restore fontconfig runtime configuration
Pass the fontconfig configuration file option and enable switch
through into the font selector. This restores some of the old
functionality related to fontconfig.
However, the functionality to delay the fontconfig database update will
not come back. This is not a big problem. Later it will be possible to
manually add the fontconfig provider, which will delay the update in a
comparable way.
-rw-r--r-- | libass/ass_fontselect.c | 11 | ||||
-rw-r--r-- | libass/ass_fontselect.h | 2 | ||||
-rw-r--r-- | libass/ass_render_api.c | 4 |
3 files changed, 8 insertions, 9 deletions
diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c index 1de18905..04a6cb4d 100644 --- a/libass/ass_fontselect.c +++ b/libass/ass_fontselect.c @@ -210,7 +210,7 @@ void ass_font_provider_free(ASS_FontProvider *provider) // TODO: this should probably remove all fonts that belong // to this provider from the list - if (provider->funcs.destroy_provider) + if (provider && provider->funcs.destroy_provider) provider->funcs.destroy_provider(provider->priv); free(provider); } @@ -617,7 +617,7 @@ ass_embedded_fonts_add_provider(ASS_Library *lib, ASS_FontSelector *selector, ASS_FontSelector * ass_fontselect_init(ASS_Library *library, FT_Library ftlibrary, const char *family, - const char *path) + const char *path, const char *config, int fc) { ASS_FontSelector *priv = calloc(1, sizeof(ASS_FontSelector)); @@ -630,8 +630,9 @@ ass_fontselect_init(ASS_Library *library, ftlibrary); #ifdef CONFIG_FONTCONFIG - // XXX: for now, always add the fontconfig provider - priv->default_provider = ass_fontconfig_add_provider(library, priv, NULL); + if (fc != 0) + priv->default_provider = ass_fontconfig_add_provider(library, + priv, config); #endif return priv; @@ -665,9 +666,7 @@ void ass_fontselect_free(ASS_FontSelector *priv) // TODO: we should track all child font providers and // free them here -#ifdef CONFIG_FONTCONFIG ass_font_provider_free(priv->default_provider); -#endif ass_font_provider_free(priv->embedded_provider); free(priv); diff --git a/libass/ass_fontselect.h b/libass/ass_fontselect.h index 43a32fbb..651968dd 100644 --- a/libass/ass_fontselect.h +++ b/libass/ass_fontselect.h @@ -60,7 +60,7 @@ typedef struct font_provider_meta_data { ASS_FontSelector * ass_fontselect_init(ASS_Library *library, FT_Library ftlibrary, const char *family, - const char *path); + const char *path, const char *config, int fc); char *ass_font_select(ASS_FontSelector *priv, ASS_Library *library, ASS_Font *font, int *index, int *uid, uint32_t code); void ass_fontselect_free(ASS_FontSelector *priv); diff --git a/libass/ass_render_api.c b/libass/ass_render_api.c index cfa8998d..5310060e 100644 --- a/libass/ass_render_api.c +++ b/libass/ass_render_api.c @@ -147,7 +147,7 @@ void ass_set_fonts(ASS_Renderer *priv, const char *default_font, if (priv->fontselect) ass_fontselect_free(priv->fontselect); priv->fontselect = ass_fontselect_init(priv->library, priv->ftlibrary, - default_family, default_font); + default_family, default_font, config, fc); } void ass_set_selective_style_override_enabled(ASS_Renderer *priv, int bits) @@ -168,7 +168,7 @@ void ass_set_selective_style_override(ASS_Renderer *priv, ASS_Style *style) int ass_fonts_update(ASS_Renderer *render_priv) { - //return fontconfig_update(render_priv->fontselect); + // This is just a stub now! return 1; } |