使用CEGUI读取Torchlight(火炬之光)的UI资源 冷夜

  参考: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");

截图:

 

原文地址:https://www.cnblogs.com/gamesky/p/2859187.html