CEGUI初级使用方法
【CEGUI SDK的构建】
1)
OGRE_PATHS = { "D:/OgreME/ogre", "OgreMain/include", "lib" }
OIS_PATHS = { "D:/OgreME/ogre/Dependencies", "include/OIS", "lib" }
CEGUI_OLD_OIS_API = false
OGRE_RENDERER = true
2)
解决方法是把CEGUIMultiColumnList.cpp的第702行由
d_grid[i].d_items.insert(d_grid[i].d_items.begin() + position, 0 );
改成
d_grid[i].d_items.insert(d_grid[i].d_items.begin() + position, nullptr );
nullptr是提供给托管和本地两种C++语言,而__nullptr仅仅提供给本地C++。在使用vs2010开发的时候,可以直接使用__nullptr关键字。
3)
4)
【CEGUI的使用步骤和相关渲染器】
不管你使用的是什么引擎,都需要至少做出如下的三步,才能够使得CEGUI运行起来:
1) 创建CEGUI::Renderer对象;
各个渲染引擎的CEGUI::Renderer对象代码如下:
Direct3D 9:
CEGUi::DirectX9Renderer *myRenderer=new
OpenGL:
CEGUI::OpenGLRenderer *myRenderer=new
Ogre3D:
CEGUI::OgreCEGUIRenderer *myRenderer=new CEGUI::OgreCEGUI(myRenderWindow);
Irrlicht Engine
CEGUI::IrrilichRenderer*myRenderer=new CEGUI::IrrilichtRenderer(mylrrilichtDevice.true);
2) 创建CEGUI::System对象
因为上面一步已经初始化了自己的渲染器,所以只需要用CEGUI::System对象来进行系统的初始化就可以了:
New CEGUI::System(myRenderer);
New CEGUI::System(myRenderer);
3) 使用渲染函数;
因为这一步使用不同的渲染引擎会得到不同的代码,其实也就是说使用者需要在每帧渲染之后调用CEGUI::System::renderGUI,使用Ogre3D的话就不需要,因为其将由Ogre3D自动完成。而使用其他引擎的情况下需要做出如下的设置:
Directx3D9
//start the scene
//clear display
//user function to draw 3D scene
//draw GUI
//end the scene
OPENGL