前几篇文章已经分别讲述了miniGui和freetype的移植,本篇才是真正用到他们的时候,目的就是为了在miniGui中使用TTF字体。
在编译miniGUI时打开ttf开关(--enable-ttfsupport),但是配置显示信息中ttf还是关闭的,找了相关文章说是miniGUI没有找到freetype库,可是我把相关库和头文件已经拷贝到交叉编译环境中,几经努力未果,我只能手动在“config.h”中添加“#define _TTF_SUPPORT 1”来打开ttf。这么做目前还不知道会不会有bug。(如果有高手路过请告诉小弟怎么才能让miniGUI找到freetype)
此时编译miniGUI会发现打开TT比没有打开编译花费的时间长很多。编译过程中,会报2个错误:首先说找不到freetype.c里面的相关头文件,根据代码要将前面移植的freetype的相关头文件放在指定的目录里(freetype1/,需要手动创建);其次就是freetype.c最后这个结构定义static FONTOPS freetype_font_ops要去掉关键字"static",因为在文件外也要引用它。
这样,编译miniGUI顺利通过。在网上下载了一个楷体.ttf.放在字体资源目录里(font/).
编译用户程序时要带上ttf库(-lttf)。将所有东西拷贝到目标板上,修改MiniGUI.cfg,配置字体。
[systemfont]
font_number=6
font0=rbf-fixed-rrncnn-8-16-ISO8859-1
font1=*-fixed-rrncnn-*-16-GB2312
font2=*-Courier-rrncnn-*-16-GB2312
font3=*-kt-rrncnn-0-16-GB2312
font4=*-Times-rrncnn-*-16-GB2312
font5=*-Helvetica-rrncnn-*-16-ISO8859-1
default=0
wchar_def=3
fixed=3
caption=3
menu=3
control=3