使用 Ogre3D、CEGUI、OIS 为 Ubuntu 构建一个应用程序,现在所有这些都可以按预期编译和运行。运行基本应用程序后,我决定现在构建一个自定义配置文件,我可以存储图形设置(即分辨率、全屏等)以及我在应用程序中需要的其他可配置设置。
作为起点,我从每次启动时调用 mRoot->showConfigDialog() 更改为:
if(!mRoot->restoreConfig())
mRoot->showConfigDialog();
这是为了从存在的“ogre.cfg”文件中恢复配置,所以它确实做到了,但是在第一个场景创建时加载了天空盒纹理,只是坐在那里什么都不做。
由于这不是我想要的,所以我尝试手动设置,例如:
RenderSystem *rs = mRoot->getRenderSystemByName("OpenGL Rendering Subsystem");
mRoot->setRenderSystem(rs);
rs->setConfigOption("Full Screen","No");
rs->setConfigOption("Video Mode","1024 x 768");
这些与我之前在 showConfigDialog() 函数中使用的“ogre.cfg”中的设置相匹配。然而,我在这个手动配置中遇到了同样的问题,在加载天空盒纹理时它只是停止了。
我无法弄清楚为什么这些更改对应用程序的运行方式有任何影响,并且由于 OIS 获取输入并将鼠标锁定在屏幕上,我在尝试使用 gdb 调试它时遇到了麻烦。