]> granicus.if.org Git - libass/commitdiff
Read all faces of a memory font, not just the first one.
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Thu, 22 May 2008 22:52:57 +0000 (22:52 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Thu, 22 May 2008 22:52:57 +0000 (22:52 +0000)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26856 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_fontconfig.c

index 34ffdb85195f4ca394711a67ae09f5a6c22da0e8..2d858802e9e74d31fded90fd3df95eb53a16e4b1 100644 (file)
@@ -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
 }