微妙的平衡

--- 勿以善小而不为,勿以恶小而为之。 ---
随笔 - 29, 文章 - 0, 评论 - 132, 引用 - 0
数据加载中……

HGE下汉字显示的两种解决方案[源码]

本方案是为解决在HGE的项目中支持中文的显示。

目前支持两种方案:

    一、像素字体的显示;

    二、矢量字体的显示。

这两种字体的创建与显示由类 FontSprite 的派生类实现,所以使用时只需要使用 FontSprite 类中不同的创建函数即可创建像素字体或是矢量字体指针。

本解决方案不需要依赖任何图片字模,并支持丰富的显示方法。

使用方法很简单,只需如下几步即可:

    一、包含字体精灵头文件,详细请参阅源码 <CN> 目录下的 Readme.txt 文件。

    二、创建字体指针:

        像素字体: FontSprite* fontspr = FontSprite::Create(字体名,字体大小)
        矢量字体: FontSprite* fontspr = FontSprite::CreateEx(字体文件名,字体大小)

    三、渲染文本: fontspr->Printf(坐标x,坐标y,文本内容)

    四、销毁字体:当程序结束时,使用 fontspr->Release() 来销毁字体。


在这个方案支持,我一直都是用一种比较烂的方案来显示汉字,例如很久之前使用的静态字模的方式。
并且像素字体与矢量字体两种实现方式大相径庭,没有通用性。但看过 Kevin Lynx 推荐的一个矢量字体方案后,就将那个框架移植了过来,并做了一部分的改动。
最重要的是对像素字体与矢量字体做了通用性的修改,使两种字体的解决方案可以互相使用。

在这里感谢 Kevin Lynx 同学推荐的那个矢量字体方案。

若你在使用中还有疑问,请至邮:bogy.cn@gmail.com 我会尽快回复。

源码与范例下载地址:http://bogy.cn/labs/DownLoad.php?file=hge_render_cn.rar

posted on 2007-12-05 14:34 微妙的平衡 阅读(1071) 评论(8)  编辑 收藏 引用 所属分类: Labs

评论

# re: HGE下汉字显示的两种解决方案[源码][未登录]  回复  更多评论   

2007-12-05 14:42 | euclid

# re: HGE下汉字显示的两种解决方案[源码][未登录]  回复  更多评论   

测试过了
速度不错
比HGE提供的画英文的Font快
实际测试下来
不画字,fps在269
用GDIFont画5行中文,fps在248
用hgeFont画5行英文,fps在22X(汗)
2007-12-06 21:17 | Fish

# re: HGE下汉字显示的两种解决方案[源码][未登录]  回复  更多评论   

不过我发现缓存不缓存字体texture, fps都是一样的
即注释掉这行if (idx < font_count && NULL == (m_FontGlyphs[idx].t))
fps没多大改变(一屏幕显示600个左右“上海”),可能从GDI得到Texture很快
这样,应该可以去掉那0xFFFF个结构,可以节约大约1.5Mb 内存
2007-12-06 22:08 | Fish

# re: HGE下汉字显示的两种解决方案[源码][未登录]  回复  更多评论   

看错了
前面还有个if (NULL == (m_FontGlyphs[idx].t))
如果不做缓存的话,速度差好多,
楼上的不作数
2007-12-06 22:18 | Fish

# 感谢  回复  更多评论   

非常感谢微妙的平衡做出的贡献,真的很不错
就是不知道什么时候出新的中文输入的方案呢?
非常期待啊!能不能透露一下呢?

HGE中文化,GUI这边就差中文输入了,我技术不到家,确实写不出来,我想如果你写出的话我就做一个HGE专用的GUI库,提供给使用HGE的国人
2008-01-17 01:20 | 寰子

# re: HGE下汉字显示的两种解决方案[源码]  回复  更多评论   

再留一条,微妙的平衡大哥,一定要写中文输入啊!
上次你写的那个我老是编译不过去,弄的很头疼,我是VC2005,可以的话您留下一个QQ,我想咨询你一下。另外可能上次你的中文输入也是基于图片字模的吧,我打一些生僻词都是乱码。非常希望能和你请教一下!!

我打算把窗口,按钮,图片,文字,滚动条,进度条,FlashPlayer,列表,选择列表都弄到GUI库里
2008-01-17 01:33 | 寰子

# re: HGE下汉字显示的两种解决方案[源码]  回复  更多评论   

嗯,支持,要是做出支持中文件输入的话,HGE会在中国很流行的。。
2008-01-19 22:31 | 小强

# re: HGE下汉字显示的两种解决方案[源码]  回复  更多评论   

在vs2005+HGE1.8下不成功

无法打开文件“freetype235MT.lib”

路途是设对的了,不会什么搞了
2008-01-21 17:30 | 小强

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航: