FreeType2不能正确显示内嵌点阵的TrueType字体

FrankHB1989 2011-07-13 11:04:32
平台:NDS果机/DeSmuMe+libnds。
内容:自己写着玩的GUI……
症状:http://tieba.baidu.com/f?kz=1043526998的17楼。
封装代码:
http://code.google.com/p/yslib/source/browse/YSLib/include/YSLib/Adaptor/yfont.h
http://code.google.com/p/yslib/source/browse/YSLib/source/YSLib/Adaptor/yfont.cpp
间接调用代码(关系不大,应该是底层的原因):
http://code.google.com/p/yslib/source/browse/YSLib/source/YSLib/Service/ytext.cpp
http://code.google.com/p/yslib/source/browse/YSLib/source/YSLib/UI/label.cpp
使用的库版本是2.4.5,除了cache部分是2.4.4(实测2.4.5的get ascender有问题,看了一下源码应该没啥依赖性于是就复制过来了),手写makefile用devkitPro编译。
modules.cfg生成的ftconfig.h:
FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
FT_USE_MODULE( FT_Module_Class, autofit_module_class )
FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
编译选项只改了优化成-O3。
有人遇到过类似问题吗?求可能原因。。。
...全文
335 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankHB1989 2013-07-04
  • 打赏
  • 举报
回复
好吧趁还能回就挖坟封顶好了…… (之前这里也能搜得到有人问类似问题但没回答的。) 原因很脑残……居然漏了检查格式,而宋体的内嵌位图是黑白的,分配的空间显然比预期的小,照256阶灰度访问于是就越界了…… 具体来说就是无视了FTC_SBitRec_::format……← ← 对应FT_Bitmap::pixel_mode→ → 太2了……
2011-07-13
  • 打赏
  • 举报
回复
刚刚试了一下,FreeType2 在处理宋体点阵的时候只要遇到空格就会抽风,不是字符编码的问题……
2011-07-13
  • 打赏
  • 举报
回复
我昨天晚上用 Windows 的宋体也出这个问题,后来换了文泉驿就好了……

会不会是字符编码不对?
ryfdizuo 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hpsmouse 的回复:]
刚刚试了一下,FreeType2 在处理宋体点阵的时候只要遇到空格就会抽风,不是字符编码的问题……
[/Quote]
以前我用过ft2 记得没这个问题啊,晚上回去试试~

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧