|
目前RTGUI使用的是外部字库文件,存放在SD卡,使用"PCtoLCD2002"取模软件,取模方式是逐行式、高位在前,生成12点阵和16点阵的GB2312字体都成功,但想生成24点阵的字库文件,无论何种取模方式都显示乱码。我新建了一个"hz24font.c"文件如下:
#include <rtgui/font.h>
#ifdef RTGUI_USING_FONT24
#ifndef RTGUI_USING_HZ_FILE
const unsigned char hz24_font[] = {};
const struct rtgui_font_bitmap hz24 =
{
hz24_font, /* bmp */
RT_NULL, /* each character width, NULL for fixed font */
RT_NULL, /* offset for each character */
24, /* width */
24, /* height */
0, /* first char */
255 /* last char */
};
extern struct rtgui_font_engine hz_bmp_font_engine;
struct rtgui_font rtgui_font_hz24 =
{
"hz", /* family */
24, /* height */
1, /* refer count */
&hz_bmp_font_engine,/* font engine */
(void *)&hz24, /* font private data */
};
/* size = 267616 bytes */
#else
struct rtgui_hz_file_font hz24 =
{
{RT_NULL}, /* cache root */
0, /* cache size */
24, /* font size */
72, /* font data size */
-1, /* fd */
"/.senjet/fonts/8.fon"//hzk16.fnt" /* font_fn */
};
struct rtgui_font rtgui_font_hz24 =
{
"hz", /* family */
24, /* height */
1, /* refer count */
&rtgui_hz_file_font_engine,/* font engine */
(void*)&hz24, /* font private data */
};
#endif
#endif
然后在font.c文件中添加了如下内容:
rtgui_font_system_add_font(&rtgui_font_hz24);
然而显示出来的字始终不对,显示的点阵是错位的,应该是生成的字库文件组织方式和字体引擎不兼容,所以请教一下如何生成正确的字体库?谢谢 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|