参考:http://www.cnblogs.com/vibilin/archive/2010/12/31/1923464.html
Torchlight(火炬之光)的UI资源是开放的, 所以尝试用CEGUI读取其UI. CEGUI的编辑器包括CELayoutEditor和CEImagesetEditor, 我使用的是最新0.7.1版本的. 主要是有几点要注意:
1. 用编译好的CELayoutEditor去直接读取Torchlight里的UI时会报找不到一些资源文件的错, 这是由于Torchlight的scheme, layout, imageset的配置路径问题,我是将资源分别放到datafiles下对应的目录中,并把配置路径改成相应的值。
2. CEImagesetEditor也有同样的问题, 处理方法同上.
3. 在scheme 文件中, 旧版本的CEGUI中是这样写: <WindowSet Filename='CEGUIFalagardWRBase' />
而在0.7.1中应该这样写:<WindowRendererSet Filename='CEGUIFalagardWRBase' />. 不然会报一个这样的错: (这是我在http://blog.sina.com.cn/u/1749132077 找到的解决办法)
CEGUI::InvalidRequestException in filef:\@working\cegui-0.7.1\cegui-0.7.1\cegui\src\ceguifactorymodule.cpp(116): FactoryModule::registerAllFactories - Required function export'uint registerAllFactories(void)' was not found in module'CEGUIFalagardWRBase_d'.
4. LayoutEditor默认使用SILLY读取图片的, 但是它不支持dds文件的读取, 所以就要在EditorFrame::InitializeCEGUI()中, 改用FreeImage或者DevIL, 它们都支持dds.同样ImagesetEditor也要修改, 它是在EditorGLCanvas::initialiseCEGUI()处理.
主要是这一句:CEGUI::System::setDefaultImageCodecName("FreeImageImageCodec");
截图: