前言
本文主要內(nèi)容如下:
1.minigui添加TTF字體
一咨演、運(yùn)行環(huán)境
芯片:TI385
sdk:TI385
軟件環(huán)境:嵌入式linux宠能,2.6.37? armv7l?
二夸楣、具體改動(dòng)
1.關(guān)于整個(gè)工程目錄列表如下:
>iphone-like-demo-1.0.0(這個(gè)暫時(shí)不明白有沒(méi)有用到)
>toolslib(庫(kù)文件夾)
? ? -freetype-1.3.1(TTF字體庫(kù))
? ? -jpeg-7(jpeg支持庫(kù))
? ? -libmgi-2.0.4(mgi支持庫(kù))
? ? -libminigui-3.0.12-linux(minigui庫(kù))
? ? -libpng-1.2.37(png庫(kù))
? ? -tslib(touch校準(zhǔn)支持庫(kù))
? ? -zlib-1.2.2(好像是解壓縮支持庫(kù))
>visminigui(minigui主應(yīng)用程序)
2.進(jìn)入minigui庫(kù)所在目錄
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
注意,需要根據(jù)實(shí)際情況作相應(yīng)的配置抑月,可以通過(guò)configure --help查看树叽。
主要是路徑要正確,作者configure沒(méi)有配置正確谦絮,導(dǎo)致各種問(wèn)題题诵,并且TTF字體沒(méi)有生效,直到最后configure正確才成功挨稿。
可以將configure的內(nèi)容寫(xiě)入到autogen.sh文件中仇轻,運(yùn)行autogen.sh,不用每次輸入命令奶甘。
4)在mgcofig.h文件中添加TTF庫(kù)的支持
/* Define if support TrueType font */
/* #undef _MGFONT_TTF */
#define _MGFONT_TTF 1
5)make
6)make install
會(huì)在install/lib目錄下生成庫(kù)文件。
3.進(jìn)入visminigui主應(yīng)用下
在minigui的init中添加TTF字體庫(kù)支持和字體
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中銷(xiāo)毀
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.將庫(kù)文件祭椰、主應(yīng)用臭家、MiniGUI.cfg放到TI385中對(duì)應(yīng)的minigui路徑對(duì)應(yīng)的文件夾下
>minigui
? ? -./lib/libttf.so.2(這個(gè)是TTF支持庫(kù)freetype-1.3.1)
? ? -./lib/libminigui_procs-3.0.so.12
? ? -./MiniGUI.cfg
? ? -./mginit
? ? -./font/arial.ttf
然后啟動(dòng)可以看到TTF字體效果。
三方淤、總結(jié)
minigui的資料非常少钉赁,走了很多彎路。最開(kāi)始認(rèn)為應(yīng)用和庫(kù)默認(rèn)是支持TTF的携茂,把TTF字體加進(jìn)去后發(fā)現(xiàn)完全沒(méi)有效果你踩。接著在網(wǎng)上看到說(shuō)是要在庫(kù)中支持TTF字體,改mgconfig.h內(nèi)容讳苦,結(jié)果改過(guò)后編譯沒(méi)有反應(yīng)带膜。加打印才發(fā)現(xiàn)關(guān)于TTF的部分沒(méi)有編譯,然后又看到有說(shuō)要configure配置鸳谜,如果不是網(wǎng)上提到膝藕,甚至都都不知道這個(gè),而且對(duì)minigui不熟悉咐扭,花了很多時(shí)間在configure上面芭挽。最后同事幫忙才搞定configure滑废,作者即使是現(xiàn)在,configure要怎么搞都不清楚袜爪。configure搞定就基本沒(méi)別的問(wèn)題了蠕趁。
最終解決這個(gè)問(wèn)題,主要是問(wèn)人辛馆,在網(wǎng)上找資料妻导,查原因。真是折騰了很久怀各,另外也認(rèn)清了現(xiàn)實(shí)倔韭,嵌入式需要學(xué)習(xí)的東西太多了,作者還有許多路要走瓢对。