最近打算用guichan作为hge的UI库,来做开发。如果用它做UI库,首先要解决的问题就是中文的显示和中文的输入。但是我google了几天,也没找到相关的资料,所以打算自己从hge开始为guichan添加中文支持。
    我的中文显示方案是微妙的平衡在他blog上公布的方案,其中还包含了Kevin Lynx的freetype方案,这个就不用多说了都有现成的demo,关键是把guichan接受的中文文本通过hge渲染出来,kevin lynx已经将guichan整合到hge中了,而这个中间层的几个类中,有一个关于字体HGEImageFont类,这个类中用于字体渲染的成员变量mHGEFont是hgeFont(即hge的默认字体类)的实例,将这个成员变量换成FontSprite的,这个字体类是支持中文现实的,然后HGEImageFont的函数做相应修改。最后就是字符的转换,guichan接受的是std::string参数,但是在FontSprite接受的参数是wchar_t,所以这里需要做一个std::string到std::wstring的字符转换,这样汉字才能正常渲染。
以下为截图: