DirectFB学习之适配FreeType支持
在DirectFB学习之移植到nuc972平台中最后我们有两个警告没有决解,一个FreeType的支持,一个是png图片的支持,今天我们就来把FreeType加进去。
按照之前的选择软件版本的原则,我选择了FreeType的2.4.6版本,编译方法也是相同的套路,用如下命令:
./configure --prefix=/home/share/mnt CC=arm-linux-gcc --host=arm-linux --build=i386-linux
make
make install
安装过程我的有个路径相关的错误提示,按照提示做下相关修改就好了,还是很顺利的。
接下来就是要加入DirectFB的编译的了,使用命令./configure --help
查看知FreeType靠FREETYPE_CFLAGS和FREETYPE_LIBS两个变量来设置,那我们用如下命令来设置:
export FREETYPE_CFLAGS="-I/home/share/mnt/include"
export FREETYPE_LIBS="-L/home/share/mnt/lib -lfreetype"
./configure --prefix=/home/share/mnt CC=arm-linux-gcc --host=arm-linux --build=i386-linux --disable-x11.........
make
make install
编译过程我也遇到几个错误,也是路径相关的,按照提示设置正确的头文件存放的路径就好了
编译通过了那我们就赶紧来测试下吧,先找个字体文件,我是在windows目录下的font目录里面找了个幼园简体中文字体,然后用如下测试程序测试:
......................................................
DFBFontDescription fdesc;
IDirectFBFont *font = NULL;
fdesc.flags = DFDESC_HEIGHT;
fdesc.height = 48;
ret = dfb->CreateFont(dfb, "/mnt/SIMYOU.TTF", &fdesc, &font);
if (ret) {
D_DERROR( ret, "IDirectFB::CreateFont() failed!\n" );
goto out;
}
dest->SetFont(dest, font);
dest->SetColor( dest, rand()%256, rand()%256, rand()%256, rand()%256 );
dest->DrawString(dest, "\u6211\u4eec", -1, 450, 100, DSTF_LEFT);
dest->Flip( dest, NULL, DSFLIP_BLIT );
......................................................
其中”\u6211\u4eec”用的转义字符即是中文“我们”两个字的unicode码。