Ogre3d restoreConfig导致应用程序挂起在Ubuntu上

时间:2010-01-27 03:37:33

标签: c++ opengl ubuntu ogre3d

使用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进行调试。

1 个答案:

答案 0 :(得分:1)

关于鼠标锁定,您可以在另一个显示器上运行gdb。它可以是同一台计算机上的显示器(包括创建嵌套在当前显示器中的虚拟显示器的Xephyr等选项,或者只是另一个显示器上的第二个会话 - 如果你有一个工作.xinitrc运行两个或三个一次X会话很简单),或者它可以在网络上的另一台机器上(即通过ssh -X)。