diff options
Diffstat (limited to 'libass')
-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 1de1890..04a6cb4 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 43a32fb..651968d 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 cfa8998..5310060 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; } |