diff options
author | wm4 <wm4@nowhere> | 2015-09-01 14:18:51 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-09-01 14:18:51 +0200 |
commit | ab08d0799f82a64d80a2ba124b5308b07681adc4 (patch) | |
tree | 8f968fc8180f471aec5762f252fc6321b1912bae | |
parent | 888c644420b138875bf5e9f956d926b0be784eae (diff) | |
download | libass-ab08d0799f82a64d80a2ba124b5308b07681adc4.tar.bz2 libass-ab08d0799f82a64d80a2ba124b5308b07681adc4.tar.xz |
fontselect: simplify get_fallback signature
Apparently we only need the font family (and even that isn't used in all
font providers). Drop the others.
-rw-r--r-- | libass/ass_coretext.c | 9 | ||||
-rw-r--r-- | libass/ass_directwrite.c | 3 | ||||
-rw-r--r-- | libass/ass_fontconfig.c | 3 | ||||
-rw-r--r-- | libass/ass_fontselect.c | 7 | ||||
-rw-r--r-- | libass/ass_fontselect.h | 3 |
5 files changed, 9 insertions, 16 deletions
diff --git a/libass/ass_coretext.c b/libass/ass_coretext.c index 00d4c45..96c503d 100644 --- a/libass/ass_coretext.c +++ b/libass/ass_coretext.c @@ -262,10 +262,9 @@ static void match_fonts(ASS_Library *lib, ASS_FontProvider *provider, } #endif -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { - char *failed = meta->families[0]; + char *failed = family; CFStringRef name = CFStringCreateWithBytes( 0, (UInt8 *)failed, sizeof(failed), kCFStringEncodingUTF8, false); CTFontRef font = CTFontCreateWithName(name, 0, NULL); @@ -275,7 +274,7 @@ static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, kCFStringEncodingUTF32LE, false); CTFontRef fb = CTFontCreateForString(font, r, CFRangeMake(0, 1)); CFStringRef cffamily = CTFontCopyFamilyName(fb); - char *family = cfstr2buf(cffamily); + char *res_family = cfstr2buf(cffamily); CFRelease(name); CFRelease(font); @@ -283,7 +282,7 @@ static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, CFRelease(fb); CFRelease(cffamily); - return family; + return res_family; } static ASS_FontProviderFuncs coretext_callbacks = { diff --git a/libass/ass_directwrite.c b/libass/ass_directwrite.c index 1ef0616..099c1fe 100644 --- a/libass/ass_directwrite.c +++ b/libass/ass_directwrite.c @@ -374,8 +374,7 @@ static int encode_utf16(wchar_t *chars, uint32_t codepoint) } } -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { HRESULT hr; ProviderPrivate *provider_priv = (ProviderPrivate *)priv; diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index e65e413..e97102b 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -167,8 +167,7 @@ static void cache_fallbacks(ProviderPrivate *fc) FcPatternDestroy(pat); } -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { ProviderPrivate *fc = (ProviderPrivate *)priv; FcResult result; diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c index ab40bd5..4adb146 100644 --- a/libass/ass_fontselect.c +++ b/libass/ass_fontselect.c @@ -636,13 +636,8 @@ char *ass_font_select(ASS_FontSelector *priv, ASS_Library *library, } if (!res && default_provider && default_provider->funcs.get_fallback) { - ASS_FontProviderMetaData meta; - meta.families = &family; - meta.weight = bold; - meta.slant = italic; - meta.width = 100; char *fallback_family = default_provider->funcs.get_fallback( - default_provider->priv, &meta, code); + default_provider->priv, family, code); if (fallback_family) { res = select_font(priv, library, fallback_family, bold, italic, diff --git a/libass/ass_fontselect.h b/libass/ass_fontselect.h index f420935..db8133a 100644 --- a/libass/ass_fontselect.h +++ b/libass/ass_fontselect.h @@ -123,12 +123,13 @@ typedef void (*SubstituteFontFunc)(void *priv, const char *name, * fallbacks. * * \param priv font provider private data + * \param family original font family name (try matching a similar font) * \param codepoint Unicode codepoint (UTF-32) * \return output font family, allocated with malloc(), must be freed * by caller. */ typedef char *(*GetFallbackFunc)(void *priv, - ASS_FontProviderMetaData *meta, + const char *family, uint32_t codepoint); typedef struct font_provider_funcs { |