mygui中使用gdi字体
现在很多网络游戏里都使用了FreeType来显示中文字体,它可以实现很绚丽的字体效果。但是有个缺点就是加载太慢了。尤其是mygui里使用FreeType慢的让我无法接受,故打算将其字体支持增加gdi字体,以便备用吧。
程序参考了微妙的平衡(这小子最近消失了)早期的代码,hge的gdi字体。其实这种方法不光是能用于mygui,几乎dx平台下面都能用。这方面的资料也挺多的了,主要是利用一个api,GetGlyphOutline。大致说一下,该函数取得被选进指定设备环境的TrueType字体的字符轮廓或位图。这个函数的具体说明不在此粘贴,可以自己Google。
贴一张图(来自网络)来帮助理解字符轮廓:
mygui与hge结合
最近对mygui有点兴趣,据说ogre官方都力挺她而抛弃cegui了,不说她界面做的多炫,也不管她多方便,更不管她提供了好多例子和编辑工具,就冲着这小三的精神,咱也不能小看了她不是。google搜了一下mygui,结果还挺多,不过内容大多只是简单介绍一下她怎么用,没有实质性的好东西。加上由于她是出自俄国人之手,文档除了没有,就是俄文,然而我也没有找到传说中的教程。
对于ogre、dx、opengl的渲染支持,mygui已经提供,不再赘述。我想以后可能在2d项目中应用mygui,以前做2d的时候用hge比较多,遂打算将hge和mygui结合起来,网上又是一次大搜索,几乎翻遍了,没找到解决方案。然后果断自己动手。下图是一个修改时作为测试的mygui的官方demo,效果是相当不错。
首先,以官方提供的directXPlatform改起(对于mygui的编译可以参考本博其他博文)。目的是使用hge渲染mygui,原则是不修改mygui和hge的源码,只做中间件。主要修改的地方就那么几点,也没有网上说的工作量大的那么邪乎,遇到的问题几乎都是小问题。hge用的是v1.8.1(dx8),mygui是v3.0.1。