changeset 26824:6112b693fab9

Read all faces of a memory font, not just the first one.
author eugeni
date Thu, 22 May 2008 22:52:57 +0000
parents a9aae3d4721d
children 13ef1f050cfc
files libass/ass_fontconfig.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libass/ass_fontconfig.c	Thu May 22 20:21:19 2008 +0000
+++ b/libass/ass_fontconfig.c	Thu May 22 22:52:57 2008 +0000
@@ -351,12 +351,15 @@
 	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 @@
 	}
 
 	FT_Done_Face(face);
+	}
 #endif
 }