其实这个没什么技术含量。这个技术在我自己的引擎Edge2d中被实现了,这里把其核心部分迁移到HGE中。
大致原理就是:利用GDI将文字信息写到HGE的纹理上(本质也就是DX8纹理),然后再绘制HGE纹理到屏幕上。关键效率的处理在于,使用一个缓存保存这些纹理。每次绘制一个文字时,就查询该文字对应的纹理是否被创建,是的话就直接从缓存中取出纹理然后绘制,否的话就立即创建该纹理并保存纹理到缓存中。
核心思想也就是这样,这里上传个DEMO,有兴趣的人可以拿去完善。我是纯碎无聊,随便写写。其实这个方法跟之前使用Free Type原理是一样的。只不过这个方法是使用的GDI来绘制字体到纹理。考虑到HGE本身就是基于WINDOWS平台的,所以这里使用GDI完全不存在跨平台的因素----本身HGE就不跨平台,作为其扩展,当然也没必要跨平台了。
顺便打个广告,Edge2d是跨平台的。但是其插件可以不跨平台,所以Edge2d中使用这个技术实现的TTFont插件也就仅在WINDOWS平台炫炫了。
demo下载(含代码):