文章中部分内容和思路来自《CEGUI深入解析》
简介
1.CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计
2.CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D
3.CEGUI封装了FreeImage,SILLY,DevILI,Corona解析库,另外还自己实现了对TGA文件的支持
4.CEGUI提供了许多官方编辑器,其中最重要的就是图像集编辑器和布局编辑器
布局编辑器
1.CEGUI无法在含有中文的目录里正确加载各种资源,所以布局编辑器的工作目录必须不包含中文字符
2.CEGUI窗口的布局可以在c++代码里指定,创建一个窗口的时候设置子窗口的位置,属性等信息。也可以在布局文件里指定
图像集编辑器
一个图像集代表一张图片,而图像又代表了这章图片上的某个区域。当你要渲染一个CEGUI窗口,你必须找到窗口所要贴的纹理图片。计算出它们的纹理坐标。如果每个小窗口都单独需要一张图片,哪么会有两个问题。第一,显卡处理2的幂尺寸的图片(纹理)时效率最高,所以图片要是2的幂才行。第二,由于第一的限制,每个窗口一张图片必定导致大量的数据浪费。而且显卡在切换纹理的时候,消耗是很大的。哪么CEGUI的解决方案是用一张大的图比如512*512的图,贴上许多小图。每个小图就代表一个CEGUI窗口需要的贴图
CEGUI整体架构