diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-05-22 22:52:57 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-05-22 22:52:57 +0000 |
commit | 4887e51504f734bb5d6081cb75810e7e58fcc74f (patch) | |
tree | e6950c41524359b6b43d97b97139bc07e59d4e23 /libass | |
parent | 3ccca8b7136d16cf288f5d1b8f5f5ba988fbb628 (diff) | |
download | libass-4887e51504f734bb5d6081cb75810e7e58fcc74f.tar.bz2 libass-4887e51504f734bb5d6081cb75810e7e58fcc74f.tar.xz |
Read all faces of a memory font, not just the first one.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26856 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_fontconfig.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index 34ffdb85..2d858802 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -351,12 +351,15 @@ static void process_fontdata(fc_instance_t* priv, ass_library_t* library, FT_Lib FcPattern* pattern; FcFontSet* fset; FcBool res; + int face_index, num_faces = 1; - rc = FT_New_Memory_Face(ftlibrary, (unsigned char*)data, data_size, 0, &face); + for (face_index = 0; face_index < num_faces; ++face_index) { + rc = FT_New_Memory_Face(ftlibrary, (unsigned char*)data, data_size, face_index, &face); if (rc) { mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_ErrorOpeningMemoryFont, name); return; } + num_faces = face->num_faces; pattern = FcFreeTypeQueryFace(face, (unsigned char*)name, 0, FcConfigGetBlanks(priv->config)); if (!pattern) { @@ -380,6 +383,7 @@ static void process_fontdata(fc_instance_t* priv, ass_library_t* library, FT_Lib } FT_Done_Face(face); + } #endif } |