CEGUI框架简介
CEGUI(Crazy Eddie's GUI http:// www.cegui.org.uk )是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。
CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,比如Ogre,RenderWare等。
针对于CEGUI,还提供了官方界面编译器LayoutEditor和ImageSet编译器,以方便UI和图像集的制作。作为界面编译器,它需要系统级界面以及提供编译器操作,0.3.0版是基于MFC实现的;而在0.4.0版本以后,改为基于wxWidgets(跨平台的本地UI框架,这里的UI指的是windows操作系统底层,如:windows,Unix和Mac,详见 http://www.wxwidgets.org )实现。
一般情况下,生成的CEGUI的源代码内容如下图所示:
ImageCodecModules目录: 是CEGUI封装的各种图像解析库。CEGUI封装了CoronaImage,DevILImage,FreeImage,SILLYImage, TGAImage的解析库。
RenderMoudules 目录: 是CEGUI提供的渲染模块的集合,里面Direct3D9,Direct3D10,Irrlicht,OpenGL和Ogre的支持。
Samples目录:包含了CEGUI提供的所有例子的源代码。
ScriptingMoudules目录: 脚本模块目录,cegui提供了对脚本的支持,它使用了tolua++以及LuaPlus提供了对lua的支持。
WindowRenderSets目录:保存了所有渲染CEGUIBase里窗口的类。
XMLParserMoudules目录: 包含了expatParser,libxmlParser,TinyXMLParser,XercesParser等四种XML解析库的源代码。这四个子模块分别通过四种XML解析库实现了CEGUI需要的XML解析模块。不论使用那一模块都可以。
关于CEGUI.sln的分析,如下图:
CEGUIBase: CEGUI的基本库,也是最早的库。
图像解码库:所有工程名带Codec的都想,共有5个工程。分别是CoronaImage,DevILImage,FreeImage,SILLYImage,TGAImage等都是图像解码工程。
渲染库: 有两个,一个是CEGUIDirect3D9Render,另一个是CEGUIOpenGLRender。
CEGUIFalagardWRBase: CEGUI的渲染库。
脚本模板库: 有三个,都含有lua,分别是CEGUILuaScriptModule,tolua++,tolua++cegui等。
摘抄于:《CEGUI深入解析》