找回密码
 注册
搜索
查看: 4311|回复: 26

[讨论] 懂MTK字体的进,请教个问题

[复制链接]
发表于 2010-10-11 11:14:46 | 显示全部楼层 |阅读模式
字体的问题没有搞过,最近在看MKT的,有以下疑惑:
1.点阵与矢量:我按照MTK的说明,由MCT生成了中文c h文件,也可以显示。
这时定义FONT_ENGINE = FONT_ENGINE_FREETYPE_DEMO,这样是矢量字体?
FONT_ENGINE = NONE,这样生成的是点阵字体?
即:仅仅将mct生成的文件merge进对应的文件,通过FONT_ENGINE就可以控制
点阵或者矢量,是这样吗?
2.点阵与矢量字体在代码中如何具体执行的,仅仅看到make文件中的FONT_ENGINE
来控制,没有看到具体的c代码?
谢谢!
发表于 2010-10-17 20:04:31 | 显示全部楼层
真是个好学的好孩子。。呵呵

你研究freetype当然复杂了。
把它当做黑盒就好,不用看里面的原理,能用就好了。
加入一个ttf文件到系统,经过freetype这个引擎处理后能把对应的字模轮廓显示在lcd上就好了。

你关注的共同抽象层 PixcomFontEngine.c 里面。
点评回复

使用道具 举报

 楼主| 发表于 2010-10-14 16:38:09 | 显示全部楼层
以下是引用oosky在2010-10-13 23:23:16的发言:
FONT_ENGINE = FONT_ENGINE_FREETYPE
就可以了。
mtk_gLanguageArray可全部去掉也可以
ttf需要你自己去看看freetype部分了。


ttf的加入即是资源的加入过程,resgen生成的相关文件是plutommi\Customer\CustResource目录下的CustFontMapExt.c 、custfontdatahw.h CustFontResExt.c(点阵字体时也会生成这些文件,只不过数组设为了null,只保留与矢量基本的机构,以兼容),矢量字库相关的文件主要还有PixcomFontEngine.c、freetype_adaptation.c(采用FreeType)、在MMITask.c中call矢量字库的初始化mmi_fe_init(),其详细过程需要参考FreeType的参考文档(如http://wenku.baidu.com/view/14bd527d27284b73f2425091.html)

mtk只给个sop,stepbystep 虽然加进去了可不知啥原理。。。
粗略看了一下,实在是复杂。
新的问题是:觉得点阵与矢量应该有个含有共同结构的抽象层(要不怎么只在make中通过FONT_ENGINE就可以切换),
这个点不知隐匿在何处?
还请研究过的达人告知一二

PS:看5# 8#,好像高手都在夜深人静时出没
[em31][em15]
点评回复

使用道具 举报

发表于 2010-10-13 23:23:16 | 显示全部楼层
FONT_ENGINE = FONT_ENGINE_FREETYPE
就可以了。
mtk_gLanguageArray可全部去掉也可以
ttf需要你自己去看看freetype部分了。
点评回复

使用道具 举报

发表于 2010-10-13 09:06:47 | 显示全部楼层
路过,学习了,帮你顶。。。
点评回复

使用道具 举报

 楼主| 发表于 2010-10-12 20:59:31 | 显示全部楼层
以下是引用xrseu在2010-10-11 23:59:08的发言:
FONT_ENGINE = FONT_ENGINE_FREETYPE_DEMO
这样的话是使用矢量字体,也就是font目录下的ttf文件;

FONT_ENGINE = NONE
这样的话使用bdf点阵字体,相关文件位于verdor\font目录下

按照你描述的现象,说明mct生成的字库文件有误,重新检查BDF文件或者生成的c、h文件



非常感谢xrseu!我加入的中文的确有问题,还以为是我用mct生成的加入的,原来工程本来就有中文ttf文件,因为开了矢量字体,只要打开 中文的宏就好了。
但我还是有个疑问:
如果FONT_ENGINE = FONT_ENGINE_FREETYPE_DEMO,就是矢量字体,fontres.c中mtk_gLanguageArray  中文字库的加入{ FONT_LOAD(&pluto_ch_standardFamily)实际是NULL, 我的理解是字库实际应该就是通过ADD_FONT_RESOURCE加入的ttf文件,但是此ttf文件是如何被引用的(当点阵时对字库头文件的引用是通过类似这样的数组xxx_Data和xxx_RangeOffset),并没有具体的接口?
谢谢!
[此贴子已经被作者于2010-10-13 10:13:01编辑过]
点评回复

使用道具 举报

发表于 2010-10-11 23:59:08 | 显示全部楼层
FONT_ENGINE = FONT_ENGINE_FREETYPE_DEMO
这样的话是使用矢量字体,也就是font目录下的ttf文件;

FONT_ENGINE = NONE
这样的话使用bdf点阵字体,相关文件位于verdor\font目录下

按照你描述的现象,说明mct生成的字库文件有误,重新检查BDF文件或者生成的c、h文件
点评回复

使用道具 举报

 楼主| 发表于 2010-10-11 17:46:05 | 显示全部楼层
请达人指点,急。。。
点评回复

使用道具 举报

 楼主| 发表于 2010-10-11 12:50:48 | 显示全部楼层
以下是引用13428785344在2010-10-11 11:48:23的发言:
MCT生成的.c和.h都是点阵字体的数据。[em01]

但现在的情况是:
mct生成的文件并且FONT_ENGINE = FONT_ENGINE_FREETYPE_DEMO(这不是设为矢量字体吗)可以正常显示
mct生成的文件并且FONT_ENGINE = NONE(这不是设为点阵字体吗)显示框框。
请问如何解释
点评回复

使用道具 举报

发表于 2010-10-11 11:48:23 | 显示全部楼层
MCT生成的.c和.h都是点阵字体的数据。[em01]
点评回复

使用道具 举报

发表于 2010-11-1 10:47:35 | 显示全部楼层
路过。学习了。不错的讨论!顶
点评回复

使用道具 举报

发表于 2010-12-11 12:29:49 | 显示全部楼层
ding [em08]
点评回复

使用道具 举报

发表于 2010-12-17 11:04:41 | 显示全部楼层
MARKING
点评回复

使用道具 举报

发表于 2011-1-9 11:36:47 | 显示全部楼层
学习 了    没搞过!!!
点评回复

使用道具 举报

发表于 2011-2-27 13:39:17 | 显示全部楼层
路过。学习了。不错的讨论!顶
点评回复

使用道具 举报

发表于 2011-2-27 01:21:31 | 显示全部楼层
看过,没有搞过
点评回复

使用道具 举报

发表于 2011-3-22 00:35:02 | 显示全部楼层
都支持矢量字体了!!!
点评回复

使用道具 举报

发表于 2011-4-26 20:17:02 | 显示全部楼层
今天用到,受教了!
希望以后有更多这样的学习讨论帖![em01]
点评回复

使用道具 举报

发表于 2011-5-6 15:23:22 | 显示全部楼层
这年头啥鸟都有,,国家还说物种减少。。。。。不像[em07]
点评回复

使用道具 举报

发表于 2011-5-5 00:18:26 | 显示全部楼层
做软件的兄弟们,有个赚钱项目,有兴趣想赚钱的加我QQ271723945   欢迎合作,共同发展!非诚勿扰!谢谢
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-24 09:41 , Processed in 0.083128 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表