微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503 0x09c7/0x09cb/0x09cc组合后无法连接

mt2503 0x09c7/0x09cb/0x09cc组合后无法连接

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
0x09c7/0x09cb/0x09cc三个音节和其他字符组合时,无法连接。


[SOLUTION]
问题原因是MMIfontengine只传入了一个cluster信息让Etrumpadaption进行shaper。但是孟加拉语比较特殊,两个cluster之间也会存在变形,因此
需要传入两个cluster给
Etrumpengine进行变形处理。可以使用如下两个方式中的一种来解决:
方式一、按照如下方式修改代码:
1)etrump_shaper函数中添加cluster定义:
//添加代码
#ifdefined(__MMI_INDIC_ALG__)
mmi_fe_cluster_infopre_cluster;
mmi_fe_cluster_infoall_cluster;
mmi_fe_cluster_info_init(&pre_cluster);
mmi_fe_cluster_info_init(&all_cluster);
#endif
//添加结束
etrump_reset_face_glyphs();
2)etrump_shaper函数中
原始代码:
#ifdefined(OPENTYPE_SUPPORT)
FT_Shape_OpenType_Info(etrump_font_list[etrump_curr_font].Layout,&text[start_index],run_len,0,(MT_Cluster_Info)cluster);
#endif
改为:
#ifdefined(OPENTYPE_SUPPORT)
//添加开始
#ifdefined(__MMI_INDIC_ALG__)
FT_Shape_OpenType_Info(etrump_font_list[etrump_curr_font].layout,text,text_len-run_len,0,(MT_Cluster_Info)&pre_cluster);
FT_Shape_OpenType_Info(etrump_font_list[etrump_curr_font].layout,text,text_len,0,(MT_Cluster_Info)&all_cluster);
for(i=0;i<all_cluster.glyph_len;i++)
{
meMCPy(&cluster->glyph_buf,&all_cluster.glyph_buf[pre_cluster.glyph_len+i],sizeof(mmi_fe_glyph_ot_info));
}
cluster->glyph_len=all_cluster.glyph_len-pre_cluster.glyph_len;
#else
FT_Shape_OpenType_Info(etrump_font_list[etrump_curr_font].layout,&text[start_index],run_len,0,(MT_Cluster_Info)cluster);
#endif
//添加结束
#endif
方式二、通过申请patch:MAUI_03159885

666666

我的妈呀,这是火星文么?

小小的x

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top