HGE使用GDI绘制中文字体

来源:互联网 发布:编程器使用教程 编辑:程序博客网 时间:2024/05/01 02:35

其实这个没什么技术含量。这个技术在我自己的引擎Edge2d中被实现了,这里把其核心部分迁移到HGE中。

 

大致原理就是:利用GDI将文字信息写到HGE的纹理上(本质也就是DX8纹理),然后再绘制HGE纹理到屏幕上。关键效率的处理在于,使用一个缓存保存这些纹理。每次绘制一个文字时,就查询该文字对应的纹理是否被创建,是的话就直接从缓存中取出纹理然后绘制,否的话就立即创建该纹理并保存纹理到缓存中。

 

核心思想也就是这样,这里上传个DEMO,有兴趣的人可以拿去完善。我是纯碎无聊,随便写写。其实这个方法跟之前使用Free Type原理是一样的。只不过这个方法是使用的GDI来绘制字体到纹理。考虑到HGE本身就是基于WINDOWS平台的,所以这里使用GDI完全不存在跨平台的因素----本身HGE就不跨平台,作为其扩展,当然也没必要跨平台了。

 

顺便打个广告,Edge2d是跨平台的。但是其插件可以不跨平台,所以Edge2d中使用这个技术实现的TTFont插件也就仅在WINDOWS平台炫炫了。

demo下载(含代码):

http://blog.blogwhy.com/azjex/upload/hgegdifont.rar