ogre1.7.x教程中需要修改的地方。

来源:互联网 发布:网络红包用英语怎么说 编辑:程序博客网 时间:2024/05/16 01:03

新版本的Ogre(1.7.1)在使用CEGUI的时候发生了一些变化。这样的变化让很多新手(包括我)在阅读非官方中文wiki上的教程时总会遇到代码不能编译通过,很是沮丧。这些教程包括“基础教程六”,“基础教程七”,“中级教程二”,“中级教程三”等等。

1、头文件的引用应改为:

#include <CEGUIImageset.h>
#include <CEGUISystem.h>
#include <CEGUILogger.h>
#include <CEGUISchemeManager.h>
#include <CEGUIWindowManager.h>
#include <CEGUIWindow.h>
#include <elements/CEGUIPushButton.h>
#include <RendererModules/Ogre/CEGUIOgreRenderer.h>
#include <RendererModules/Ogre/CEGUIOgreResourceProvider.h>
#include <RendererModules/Ogre/CEGUIOgreGeometryBuffer.h>

(并非完全必要,根据自己使用情况改变)

2、CEGUI::OgreCEGUIRenderer  应该改为 CEGUI::OgreRenderer

CEGUI::System *mGUISystem;  这个对象不必要再单独创建,注释掉即可

3、原来的

mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
mGUISystem = new CEGUI::System(mGUIRenderer);

替换为

mGUIRenderer = &CEGUI::OgreRenderer::bootstrapSystem();

4、某个函数发生改变,原来的

CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)”TaharezLookSkin.scheme”);

改为

CEGUI::SchemeManager::getSingleton().create((CEGUI::utf8*)”TaharezLookSkin.scheme”);

5. mGUIRenderer = &CEGUI::OgreRenderer::bootstrapSystem();应该为mRenderer = &CEGUI::OgreRenderer::bootstrapSystem();

6.CEGUI0.7版本之前的Ogre渲染器CEGUI::OgreCEGUIRenderer已由CEGUI::OgreRender替代,并且创建Renderer和System的步骤已经被简化,原来的

1mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false3000,mSceneMgr);
2mGUISystem = new CEGUI::System(mGUIRenderer);

现在可以简化为:
1mGUIRenderer=&CEGUI::OgreRenderer::bootstrapSystem();

7.#include "ScriptingModules/LuaScriptModule/CEGUILua.h"
8.CEGUI::LuaScriptModule* scriptmod = new LuaScriptModule(); 需要修改为
CEGUI::LuaScriptModule* scriptmod = dynamic_cast<CEGUI::LuaScriptModule*>( CEGUI::System::getSingleton().getScriptingModule());


转载地址:http://blog.csdn.net/daocaorencrl/article/details/7825568?reload