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窗口界面布局有两种办法,一是手动创建,二是使用编辑器如CELayoutEditor(如图)制作layout(xml)文件
下面分别使用两种方法制作A按钮和B视图为例
*/
/*方法一:
创建两个窗口,一个A按钮窗口,一个B视图窗口
DefaultGUISheet,TaharezLook/Button为窗口类型,有关窗口类型的知识这里不探讨
createWindow(类型,命名),A按钮名"quit",B视图名"root/viewtu"
然后设置窗口的文字和大小,窗口内可以有子窗口,"root"窗口为跟窗口
*/
//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);
/*方法二:
直接导入做好的layout文件,直接回去文件中的窗口"quit"和"Root/viewtu"(如图)
之后再进行调用,方法二相对方法一灵活方便,推荐
*/
//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,还要处理将相关联的文件
//否则会出错
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));
更多阅读
2015年最新卡免费点亮纪念版超级QQ教程
2015年最新卡免费点亮纪念版超级QQ教程
photoshop学习教程
photoshop学习教程——简介photoshop是一款强大的图片处理软件,用它强大的功能,可以使我们达成很多目的。今天我就来教大家用ps去水印的方法。photoshop学习教程——工具/原料?psphotoshop学习教程——方法/步骤photoshop学习教程 1
安卓系统手机如何刷机教程 安卓系统手机刷机教程
安卓系统手机如何刷机教程——简介手机系统就跟电脑系统是一样,刷机也就跟安装电脑系统一样。手机刷机就是改变你手机的系统,比如你手机是安卓2.0的,你可以刷成安卓4.0的。安卓系统手机如何刷机教程——工具/原料电脑安卓手机安卓系
手机贴膜方法技巧图文教程 贴膜技巧
多专用用具比如皮老虎镜头笔等可能普通用户没有,只要使用贴膜附带的擦镜布将屏幕擦干净就可以了,教程采用了PSP作为对象是方便您了解贴膜过程,手机贴膜过程是一样的。贴膜前的准备工作贴膜应该在一个灰尘相对比较少的室内进行,切勿在室
Win8.1安装秘钥 win8.1怎么安装详细图文教程 超详细xp封装图文教程
【Win8.1安装秘钥】win8.1怎么安装详细图文教程——简介win8.1系统怎么安装详细图文教程 Win8系统发布之后,很多小伙伴都抢着当小白鼠哈。由于系统配置原因,win8要求硬件配置(1G以上内存,20GB以上空间集成显卡(64M显存)或独立显卡以上