6/11/2009

To support QPF font

最近比较忙而且blogspot 仍然被封锁中,因此很久没更新了,手头上的任务比较多阿,比如其中一个活儿就是为公司的一款老设备增加QPF 字体的支持,因为使用QPF,能进一步提高UI 的速度并减小占有的资源,现在已经做的差不多了(不然也没空来写这个了:-))。

那么什么是 QPF 呢,全称 Qt Prerendered Font ,是用于QT/Embedded下的不可缩放的字体,对于QPF 字体以相同格式的存储,所以在字体显示时,Qt只要读取字体,做相应分 析,然后显示就完成了,这样进一步减少了对RAM 资源的浪费,另外QPF字体是基于UNICODE 编码的,因此具有良好的可移植性。

我们定义的字体名称格式为:type-family-style-width-height-charset-encoding1[,encoding2,...]
另外QPF 结构的定义为:
typedef struct _QPFMETRICS
{
    char ascent, descent;
    char leftbearing, rightbearing;
    unsigned char maxwidth;
    char leading;
    unsigned char flags;
    unsigned char underlinepos;
    unsigned char underlinewidth;
    unsigned char reserved3;
} QPFMETRICS;

typedef struct
{  
    char font_name [LEN_UNIDEVFONT_NAME + 1];
    unsigned int height;
    unsigned int width;
       
    unsigned int file_size;
    QPFMETRICS* fm;
   
    GLYPHTREE* tree;
} QPFINFO;

对于 QPF 字体就是围绕该结构体进行一系列的操作了。

没有评论: