VxWorks汉字显示解决方案
②每个字符点阵也有一个范围大小,其大小与每个字符有关。该大小一般不会填满整个字模空间。相关参数有:
width——宽度。
height——高度。
ascent——点阵打点开始位置在baseline之上的偏移,如果是负
数,则点阵在baseline之下开始打点。
Ascent和height决定了点阵从字模的多少行开始打点,要打多少行。而列的打点起始位置,固定是0,即字模的最左边,所以只有width描述打点的宽度。
③字符横向和纵向都要有额外空间,以防止字符粘接重叠。相关参数有:
leading——行间距。
④对字符的一些变换选项,字符读取的标志等。相关参数有:
pixelSixe——平均行、列大小。
weight——行、列加粗属性。
italic——斜体属性。
spacing——字符行间距属性。
charSet——字符集标志。
faceName——字符集名称。
familyName——字符集的家族名称。
scalable——字符放大缩小比例。
WindML显示字符时,以maxAscent+maxDescend作为字符高度(不加leading),以width作为字符宽度(不以maxAdvance,不判断spacing);根据字符ascent和字符height取出字符点阵数据,进行weight、italic、scalable等运算(很多运算需要用户开发),然后输出到屏幕。
4 WindML的点阵存储结构和操作方法
WindML双字节编码显示的参数和实现思路集中体现在点阵存储文件的结构上,该文件的框架如下(这些文件在WIND_BASE/target/src/ugl/fonts/bmf目录下):
UGL_LOCAL const unsigned char UGL_FAR_DATA
page0Data[]=
{…
/*0x0023('#')*/
0,/*page*/
0x23,/*index*/
0,/*size(MSB)*/
20,/*size(LSB)*/
8,/*width*/
16,/*high*/
14,/*ascent*/
0x00,0x00,0x00,0x00,0x44,0x44,0x44,0xfe,0x44,0x44,0x44,0xfe,0x44,0x44,0x44,0x00,/*数据*/
《VxWorks汉字显示解决方案(第2页)》