OSG与CEGUI结合
来源:互联网 发布:深圳警察知乎 编辑:程序博客网 时间:2024/05/29 17:13
CEGUI入门
一、资源初始化
不管你用的是什么引擎,至少要做如下所示最基础的三步,才能使CEGUI运行起来。
- 1. 创建 CEGUI::Renderer 对象。
- 2. 创建 CEGUI::System 对象。
- 3. 调用渲染函数。
在OSG源代码例子程序中有一个osgcegui.cpp文件,演示了如何将cegui与osg相结合,例子程序可以编译过,但是不做修改无法正常运行,因为在创建了renderer对象和system对象后,在派生的GUIDrawable对象加载资源前,还应该对CEGUI的资源进行初始化,初始化的方法可以参照CEGUi的例子程序中有个CEGuiBaseApplication类,它有两个成员方法,分别是(1)initialiseResourceGroupDirectories()和(2)initialiseDefaultResourceGroups(),(1)和(2)方法调用也是有顺序的,(1)在前,即先定位资源目录,然后再初始化资源的默认设置
//----------------------------------------------------------------------------//
void CEGuiBaseApplication::initialiseResourceGroupDirectories()
{
// initialise the required dirs for the DefaultResourceProvider
CEGUI::DefaultResourceProvider* rp =
static_cast<CEGUI::DefaultResourceProvider*>
(CEGUI::System::getSingleton().getResourceProvider());
const char* dataPathPrefix = getDataPathPrefix();
char resourcePath[PATH_MAX];
// for each resource type, set a resource group directory
sprintf(resourcePath, "%s/%s", dataPathPrefix, "schemes/");
rp->setResourceGroupDirectory("schemes", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "imagesets/");
rp->setResourceGroupDirectory("imagesets", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "fonts/");
rp->setResourceGroupDirectory("fonts", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "layouts/");
rp->setResourceGroupDirectory("layouts", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "looknfeel/");
rp->setResourceGroupDirectory("looknfeels", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "lua_scripts/");
rp->setResourceGroupDirectory("lua_scripts", resourcePath);
sprintf(resourcePath, "%s/%s", dataPathPrefix, "xml_schemas/");
rp->setResourceGroupDirectory("schemas", resourcePath);
}
//----------------------------------------------------------------------------//
void CEGuiBaseApplication::initialiseDefaultResourceGroups()
{
// set the default resource groups to be used
CEGUI::Imageset::setDefaultResourceGroup("imagesets");
CEGUI::Font::setDefaultResourceGroup("fonts");
CEGUI::Scheme::setDefaultResourceGroup("schemes");
CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
CEGUI::WindowManager::setDefaultResourceGroup("layouts");
CEGUI::ScriptModule::setDefaultResourceGroup("lua_scripts");
// setup default group for validation schemas
CEGUI::XMLParser* parser = CEGUI::System::getSingleton().getXMLParser();
if (parser->isPropertyPresent("SchemaDefaultResourceGroup"))
parser->setProperty("SchemaDefaultResourceGroup", "schemas");
}
进行了这两步的初始化之后,CEGUIDrawable对象才能使用loadschema()、loadfont()等方法,否则运行出错
- OSG与CEGUI结合
- OSG与CEGUI结合
- CEGUI与OSG结合相关问题总结
- OSG与CEGUI集成过程
- ogre与CEGUI结合
- Opencascade与OSG结合
- OSG 与QT 结合
- OSG 与QT 结合
- osg与qt结合
- ODE 与 OSG 的结合
- osg与Qt结合编程
- ogre与cegui结合之显示中文
- OSG与Qt结合--成功使用QTabWidget
- QT+OSG+CEGUI界面编程
- OSG与GLSL结合之默认内置变量
- OSG和Qt结合
- 【Ogre编程入门与进阶】第十七章 Ogre3D 和CEGUI 的结合
- osg::ClipNode与osg::ClipPlane
- web2.0技术-css兼容IE6/IE7/FF的通用方法和著名的Clearfix Hack
- 如何判断Android手机当前是否联网?
- VC++网络编程求助(急)
- tomcat配置cas
- jQuery操作 checkbox 的全选、反选 , radio, select 功能
- OSG与CEGUI结合
- 多样式的用户交互对话框
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- jquer $.get() $.post()
- Linux环境下查看服务器硬件信息
- 透明,半透明窗体
- 软件单元测试(Software Unit Testing)
- NetBean IDE如何变成英文界面?
- .net 4.0海报