mt2503 [ShapeEngine]泰语音标字符发生偏移

[DESCRIPTION]
手机上界面显示如下,一些小字符显示位置不正确
 

[SOLUTION]

修改:
一、
1 、 BOOL RequireToMoveCursor(U16 preCh, U16 curCh)
{
if (curCh >= 0x0E01 && curCh <= 0x0E7F)
{
#if 1 //add begin
if (curCh == 0x0E33 &IsThaiConsonant(preCh) )
{
return FALSE;
}
else
#endif //add end
if (IsThaiBaseLineChar(curCh) || IsThaiDigitChar(curCh) ||
IsThaiBaseSignChar(curCh))
{ /* For base level character */
return TRUE;
}


2 、 MMI_fe_show_thai_char_internal 函数中
if (CharDataAttr==0 && curCh >= 0x0E01 && curCh <= 0x0E7F)
{
if (IsThaiBaseLineChar(curCh))
{
if (IsThaiLongTailChar(preCh))
{
iX += 1;
advance_x += 1;
}
//if the current character is 0x0E33 and previous or previous 2 character
is base line character, 0x0E33 shall be
//moved ahead to let the circyle sign on the top of previous or previous2
character
if (curCh == 0x0E33 && (IsThaiBaseLineChar(preCh) ||
IsThaiBaseLineChar(pre2Ch)))
{
iX -= 3; // 初始值 1
advance_x -= 1;
}
}


二、
mmi_fe_show_thai_char_internal 函数中
S32 PY = 0;// 增加一个变量
else if (IsThaiToneMark(curCh))
{
/* Tone marks */
iY -= 1;
if (IsThaiBaseLineChar(preCh))
{
iX -= ((S32) nWidth);
if (preCh == 0x0E33)
{
iY -= 3 ; /* tone mark higher */
if (IsThaiBaseLineChar(pre2Ch))
{
//iX -= 7; // 去掉 /* Move tone mark ahead across the width of */
PY -=3;// 增加
}
}
iY = CurrentY + (param->BaseLineHeight - ascent)+PY;


三、修改 case3 mmi_fe_show_thai_char_internal 函数中
else if (IsThaiToneMark(curCh))
{
......
else if (IsThaiLongTailChar(preCh))
{
iX -= 5 ;// 3/* move tone mark ahead for 3 pixel */
}资料来源:一牛网论坛 MT2503 http://bbs.16rd.com/thread-454285-1-1.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值