天天看点

OGRE CEGUI LAYOUT

 //CEGUI

 CEGUI::System *mSystem;

 CEGUI::OgreCEGUIRenderer *mRenderer;

  //通过已有的window和scenemanager创建CEGUI渲染器

  //创建mRenderer实例,导入.scheme文件,设置默认鼠标指针图像和默认字体

  mRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false,3000, mSceneMgr);

  通过已有的CEGUI渲染器构造渲染系统

  mSystem = new CEGUI::System(mRenderer);

  //读入scheme文件,这里使用TaharezLookSkin,scheme文件中又关联到其他文件如font,imageset,looknfeel

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

  mSystem->setDefaultMouseCursor((CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");

  //要用到中文字,使用中文字体,simhei(黑体)是自己要添加的还要制作一个.font文件,放到相应的位置

  //并在scheme文件中“调用”(添加字体选择)

  mSystem->setDefaultFont((CEGUI::utf8*)"simhei-12");

  //CEGUI::WindowManager *win = CEGUI::WindowManager::getSingletonPtr();

  //CEGUI::Window *sheet = win->createWindow("DefaultGUISheet", "root");

  A按钮窗口

  //CEGUI::Window *quit = win->createWindow("TaharezLook/Button", "quit");

  //quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

  //quit->setSize(CEGUI::UVector2(CEGUI::UDim(0.15,0), CEGUI::UDim(0.05, 0)));

  //sheet->addChildWindow(quit);

  B视图窗口

  setProperty中使用了名为"RttImage"的纹理映射到B视图窗口中

  //CEGUI::Window *si = win->createWindow((CEGUI::utf8*)"TaharezLook/StaticImage","root/viewtu");

  //si->setSize(CEGUI::UVector2(CEGUI::UDim(0.25f, 0), CEGUI::UDim(0.25f, 0)));

  //si->setPosition(CEGUI::UVector2(CEGUI::UDim(0.75f, 0), CEGUI::UDim(0, 0)));

  si->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

  //sheet->addChildWindow(si);

  //mSystem->setGUISheet(sheet);

OGRE CEGUI LAYOUT

  //CEGUI::Window* sheet2 = CEGUI::WindowManager::getSingleton().loadWindowLayout((CEGUI::utf8*)"mylayout.layout");

  //CEGUI::Window * textureWindow=CEGUI::WindowManager::getSingletonPtr()->getWindow("Root/viewtu");

  //CEGUI::Window *quit = CEGUI::WindowManager::getSingletonPtr()->getWindow("quit");

  //quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

  //textureWindow->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

  //mSystem->setGUISheet(sheet2);

  //简化

  //将CEGUI::WindowManager::getSingleton()值存储于窗口管理变量wmgr便于书写

  CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

  //mylayout.layout文件是用CELayoutEditor制作的

  //在原OGRESDK中的GUI只有TaharezLook的skin,而在CELayoutEditor还有Vanilla和WindowsLook

  //也就是说DEMO中的layout都是使用TaharezLook的skin,如果要用其他的skin,还要处理将相关联的文件

  //否则会出错

OGRE CEGUI LAYOUT
OGRE CEGUI LAYOUT

  CEGUI::Window* sheet2 = wmgr.loadWindowLayout((CEGUI::utf8*)"myoutlay.layout");

  CEGUI::Window * textureWindow=wmgr.getWindow("Root/viewtu");

  CEGUI::Window *quit = wmgr.getWindow("quit");

  quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

  //textureWindow->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

  mSystem->setGUISheet(sheet2);

    //响应“quit”按钮,放于侦听类中,"quit"名称要对应

  CEGUI::WindowManager *wmgr = CEGUI::WindowManager::getSingletonPtr();

  CEGUI::Window *quit = wmgr->getWindow((CEGUI::utf8*)"quit");

  quit->subscribeEvent(CEGUI::PushButton::EventClicked,

   CEGUI::Event::Subscriber(&MainFrameListener::quit, this));

OGRE CEGUI LAYOUT

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yeazer0/archive/2009/12/28/5094349.aspx