diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-03 13:43:11 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-03 13:43:11 +0000 |
commit | 10cd4a7e5a5043b826abdd6696fa267f942222b9 (patch) | |
tree | a4234768b54a5b471869b1cb14ab43fac8e06d44 /libass/ass_font.c | |
parent | 9a4832f06695874c19dd44af8c162cf4712631c5 (diff) | |
download | mpv-10cd4a7e5a5043b826abdd6696fa267f942222b9.tar.bz2 mpv-10cd4a7e5a5043b826abdd6696fa267f942222b9.tar.xz |
More simple and correct font reselection.
Since ass_font_t contains a list of font faces, there is no need to select the
face with maximum charset coverage each time. It is enough to select any face
with the required glyph.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24000 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r-- | libass/ass_font.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index 493a283175..a567a2ef30 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -104,7 +104,7 @@ ass_font_t* ass_font_new(ass_library_t* library, FT_Library ftlibrary, void* fc_ if (fontp) return fontp; - path = fontconfig_select(fc_priv, desc->family, desc->bold, desc->italic, &index); + path = fontconfig_select(fc_priv, desc->family, desc->bold, desc->italic, &index, 0); mem_idx = find_font(library, path); if (mem_idx >= 0) { @@ -135,10 +135,6 @@ ass_font_t* ass_font_new(ass_library_t* library, FT_Library ftlibrary, void* fc_ font.v.x = font.v.y = 0; font.size = 0.; -#ifdef HAVE_FONTCONFIG - font.charset = FcCharSetCreate(); -#endif - return ass_font_cache_add(&font); } @@ -208,8 +204,8 @@ static void ass_font_reselect(void* fontconfig_priv, ass_font_t* font, uint32_t if (font->n_faces == ASS_FONT_MAX_FACES) return; - path = fontconfig_select_with_charset(fontconfig_priv, font->desc.family, font->desc.bold, - font->desc.italic, &index, font->charset); + path = fontconfig_select(fontconfig_priv, font->desc.family, font->desc.bold, + font->desc.italic, &index, ch); error = FT_New_Face(font->ftlibrary, path, index, &face); if (error) { @@ -282,7 +278,6 @@ FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch } #ifdef HAVE_FONTCONFIG - FcCharSetAddChar(font->charset, ch); if (index == 0) { mp_msg(MSGT_ASS, MSGL_INFO, MSGTR_LIBASS_GlyphNotFoundReselectingFont, ch, font->desc.family, font->desc.bold, font->desc.italic); @@ -359,8 +354,5 @@ void ass_font_free(ass_font_t* font) for (i = 0; i < font->n_faces; ++i) if (font->faces[i]) FT_Done_Face(font->faces[i]); if (font->desc.family) free(font->desc.family); -#ifdef HAVE_FONTCONFIG - if (font->charset) FcCharSetDestroy(font->charset); -#endif free(font); } |