OGRE 1.64 与 CEGUI 0.71 闲谈一刻

 最近开始搞UI,去CEGUI官网下了最新的稳定版0.7.1,看DEMO。当然,看CEGUI的设计代码更有帮助。可惜以我现在的时间和条件,根本不允许啊~~等工作稳定以后,少不了要看CEGUI及OGRE的设计源码。

 

其实CEGUI的设计很轻便,看DEMO根本就是一种享受。一切都是那么的顺利,知道我想把0.7.1的库链接到我以前的DEMO中去的时候。问题出现了。OgreCEGUIRenderer这个家伙出问题了,它居然有纯虚函数。。。搞不定,重编译OGRE1.6.4,使用最新的CEGUI做依赖。还是不行,好了,只有手动修改源码(当然不涉及OGRE的核心,只是改改OgreCEGUIRenderer~)。结果有些地方改了,可以编译通过了。可还有一些CEGUI的概念,我都搞不太懂,又不敢大改特改~~于是乎,放下问题,吃饭去。

 

一路上,都在想,到底是谁依赖谁啊。OGRE是个图形渲染引擎,CEGUI是UI渲染引擎,基本就是一个界面管理器。而且看看CEGUI的实现,里面包含了对OGL,D3D,OGRE,IRRLICHT等封装的Renderer。。也就是说,CEGUI只关心“业务”,不关心“逻辑”,真正的渲染器应该是OGRE!所以,到了后来OGRE里的CEGUI部分基本就没更新过。到了1.6.4,居然还在使用CEGUI0.5.1~~这可是很不“时髦”的啊,CEGUI官网上几乎找不到0.5.1版本(开个玩笑,最新稳定版0.7.1,上一个稳定版0.6.0,上上一个稳定版0.5.0)。其实,也没什么奇怪的,OGRE根本就不关心那些UI啊,物理啊,声音啊什么的。看看他的命名,OgreGUIRenderer,“根本不把CEGUI放在眼里”,它认为,只要有个UI管理器就行了,管你什么CEGUI呢~其实OGRE有好几个UI管理器可选,只不过CEGUI是最流行,最优秀的一个~

 

好了,这个对接工作OGRE不做了,只更新到CEGUI0.5.1,后面不管了。只是告诉用户有个UI管理器很牛X,他叫CEGUI~这里只有一个体验版,要想用全功能版,自己找去。于是呢,这些工作就落到了CEGUI头上。不过CEGUI真的很强大,也很勤奋,一口气把D3D,OGL,OGRE,IRRLICHT的渲染器,资源管理器什么的都跟你做好~~想用哪个任你挑!

 

有了这个思路,于是,我就找到了CEGUI的OgreRenderer,从此告别了OGRE那陈旧不堪的OgreGUIRenderer~~~

 

世界从此轻松多了,创建Renderer也简单多了。如果使用OGRE自动创建的窗口,CEGUI::OgreRenderer::bootstrapSystem直接空参数启动。不仅如此,它还额外赠送了你一些小礼物,注释上如是说:

 

O(∩_∩)O哈哈~太好了~~(如果你没使用OGRE自动创建的窗口,可以选择static OgreRenderer& bootstrapSystem(Ogre::RenderTarget& target);)。。这个是因为从OGRE的全局Root中可以获取自动创建的窗口。而手动创建的需要制定名称去获取,所以,CEGUI没那么神,它不知道你给你的窗口起了什么名字,这个就不能代劳了~~

 

对了,别忘了释放内存,否则又要泄露了~~

与bootstrapSystem对应的是CEGUI::OgreRenderer::destroySystem();

 

详情请看注释:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值