summaryrefslogtreecommitdiffstats
path: root/libass/ass_fontconfig.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-05-22 22:52:57 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-05-22 22:52:57 +0000
commit4887e51504f734bb5d6081cb75810e7e58fcc74f (patch)
treee6950c41524359b6b43d97b97139bc07e59d4e23 /libass/ass_fontconfig.c
parent3ccca8b7136d16cf288f5d1b8f5f5ba988fbb628 (diff)
downloadlibass-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/ass_fontconfig.c')
-rw-r--r--libass/ass_fontconfig.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c
index 34ffdb8..2d85880 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
}