mirror of
https://github.com/mpv-player/mpv
synced 2024-10-18 10:25:02 +02:00
Prefer microsoft-specific charmaps to all other.
There are some fonts with both 'Unicode' and 'Microsoft/Unicode' charmaps, and the second always seems to be the right choice. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20653 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a28d7004b4
commit
46afb40907
@ -56,6 +56,24 @@ static int font_compare(face_desc_t* a, face_desc_t* b) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select Microfost Unicode CharMap, if the font has one.
|
||||
* Otherwise, let FreeType decide.
|
||||
*/
|
||||
static void charmap_magic(FT_Face face)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < face->num_charmaps; ++i) {
|
||||
FT_CharMap cmap = face->charmaps[i];
|
||||
unsigned pid = cmap->platform_id;
|
||||
unsigned eid = cmap->encoding_id;
|
||||
if (pid == 3 /*microsoft*/ && (eid == 1 /*unicode bmp*/ || eid == 10 /*full unicode*/)) {
|
||||
FT_Set_Charmap(face, cmap);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Get a face object, either from cache or created through FreeType+FontConfig.
|
||||
* \param library FreeType library object
|
||||
@ -91,6 +109,8 @@ int ass_new_face(FT_Library library, void* fontconfig_priv, face_desc_t* desc, /
|
||||
no_more_font_messages = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
charmap_magic(*face);
|
||||
|
||||
item = face_cache + face_cache_size;
|
||||
item->path = strdup(path);
|
||||
|
Loading…
Reference in New Issue
Block a user