从OGRE纹理到CEGUI纹理 —— 使用RTT实现
这里转别人的一篇噢。改天更新Gamebryo到RTT纹理的方法 ? ? 最近重拾LUA,觉得这个语言太美了。怎一个“简单”了得。不过我现在还太探索它和CEGUI的配合使用问题。虽然LUA的语法半年前就基本掌握了(那是因为LUA最简单的就是语法了~~XD),可现在还得琢磨如何让它和CEGUI及我的程序进行数据共享。好让我的LUA脚本里的回调函数可以直接操作APP里的数据(不知道这样做安全性如何?不过,若不这样,LUA的功能就不能扩大,只停留在非交互模式)。 ?
?
? ? 然后,就是把OGRE的纹理转到CEGUI上去。思路是这样的,OGRE与CEGUI的桥梁是CEGUIOgreRenderer(CEGUI提供,此处不考虑OgreGUIRenderer)。通过OgreRenderer,可以创建一个CEGUI里的纹理,参数就是一个OGRE中的纹理。这太简单了吧。 ?
? OK,去编译&运行吧。。。保证你能看到效果,可是。。效果并不是你所想的那样。。 因为你忘记了更新你的Window,所以,在程序中除非你改变了窗口尺寸或什么的,纹理图片才会改变~~ ?
找到你的FrameListener的frameRenderingQueued,在函数返回之前,添加下面一句: CEGUI::WindowManager::getSingleton().getWindow("Root/framewindow/staticimage")->invalidate(); (这是CEGUI0.7的,如果你还在用CEGUI0.6及其之前的版本,我建议你可以去更新一下了~~如果你非用0.6,好吧,用“requestRedraw”替换invalidate,如果我没记错的话:-D~~) ? 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/eplaylity/archive/2009/11/05/4771742.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |