minigui添加TTF字体支持

前言

本文主要内容如下:

1.minigui添加TTF字体

一、运行环境

芯片:TI385

sdk:TI385

软件环境:嵌入式linux,2.6.37  armv7l 

二、具体改动

1.关于整个工程目录列表如下:

>iphone-like-demo-1.0.0(这个暂时不明白有没有用到)

>toolslib(库文件夹)

    -freetype-1.3.1(TTF字体库)

    -jpeg-7(jpeg支持库)

    -libmgi-2.0.4(mgi支持库)

    -libminigui-3.0.12-linux(minigui库)

    -libpng-1.2.37(png库)

    -tslib(touch校准支持库)

    -zlib-1.2.2(好像是解压缩支持库)

>visminigui(minigui主应用程序)

2.进入minigui库所在目录

1)make clean

2)make uninstall

3)configure

./configure --prefix=$PWD/install CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ LD=arm-none-linux-gnueabi-ld CFLAGS="-I/home/qdg/apps/picencdec/jpeg-6b/install/include -I$PWD/../libpng-1.2.37/install/include -I$PWD/../tslib/install/include -I$PWD/../zlib-1.2.2/install/include -I$PWD/../freetype-1.3.1/install/include -I$PWD/../freetype-1.3.1/install/include/freetype " --host=arm-linux --target=arm-linux --build=i386-linux --with-osname=linux --with-style=classic --with-targetname=fbcon --with-ttfsupport=ft1 --with-ft1-includes=$PWD/../freetype-1.3.1 /install/include/freetype --disable-vbfsupport --enable-jpgsupport --enable-pngsupport --enable-procs --enable-autoial --enable-tslibial --enable-splash=no --enable-pcxvfb=no --disable-screensaver

注意,需要根据实际情况作相应的配置,可以通过configure --help查看。

主要是路径要正确,作者configure没有配置正确,导致各种问题,并且TTF字体没有生效,直到最后configure正确才成功。

可以将configure的内容写入到autogen.sh文件中,运行autogen.sh,不用每次输入命令。

4)在mgcofig.h文件中添加TTF库的支持

/* Define if support TrueType font */

/* #undef _MGFONT_TTF */

#define _MGFONT_TTF 1

5)make

6)make install

会在install/lib目录下生成库文件。

3.进入visminigui主应用下

在minigui的init中添加TTF字体库支持和字体

InitVectorialFonts();

//fonts

//ISO8859-1

    pWinCtrl->fontlist.font_gb2312_song_16 = CreateLogFont("ttf", "arial", "GB2312", FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN,  FONT_SETWIDTH_NORMAL, FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,16,0);

pWinCtrl->fontlist.font_gb2312_song_32 = CreateLogFont("ttf", "arial", "GB2312", FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN,  FONT_SETWIDTH_NORMAL, FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,32,0);

另外需要在destory中销毁

TermVectorialFonts();

使用字体

SelectFont(hdc, pWinCtrl->fontlist.font_gb2312_song_32);

4.在MiniGUI.cfg中修改

[truetypefonts]

font_number=3

name0=ttf-arial-rrncnn-0-0-ISO8859-1

fontfile0=/mnt/apps/dm8107_e700/minigui/res/font/arial.ttf

5.将库文件、主应用、MiniGUI.cfg放到TI385中对应的minigui路径对应的文件夹下

>minigui

    -./lib/libttf.so.2(这个是TTF支持库freetype-1.3.1)

    -./lib/libminigui_procs-3.0.so.12

    -./MiniGUI.cfg

    -./mginit

    -./font/arial.ttf

然后启动可以看到TTF字体效果。

三、总结

minigui的资料非常少,走了很多弯路。最开始认为应用和库默认是支持TTF的,把TTF字体加进去后发现完全没有效果。接着在网上看到说是要在库中支持TTF字体,改mgconfig.h内容,结果改过后编译没有反应。加打印才发现关于TTF的部分没有编译,然后又看到有说要configure配置,如果不是网上提到,甚至都都不知道这个,而且对minigui不熟悉,花了很多时间在configure上面。最后同事帮忙才搞定configure,作者即使是现在,configure要怎么搞都不清楚。configure搞定就基本没别的问题了。

最终解决这个问题,主要是问人,在网上找资料,查原因。真是折腾了很久,另外也认清了现实,嵌入式需要学习的东西太多了,作者还有许多路要走。

你可能感兴趣的:(minigui添加TTF字体支持)