如何在 OGRE 中使用 SDL
当我在 OGRE 中使用 SDL 时(参考了这篇文章),第二个窗口却显示在主窗口的后面,代码如下:
SDL_init(SDL_INIT_VIDEO); SDL_Surface *screen = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL); Ogre::Root *root = new Ogre::Root(); root->restoreConfig(); root->initialise(false); Ogre::NameValuePairList windowSettings; windowSettings["currentGLContext"] = Ogre::String("True"); Ogre::RenderWindow *window = root->createRenderWindow("MainRenderWindow", 640, 480, false, &windowSettings); window->setVisible(true);
我该怎么办呢?
我使用的是 OGRE 1.6.4, Mac OS X 10.6.2, 和 SDL 1.2.14.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我自己解决了这个问题。
是因为 OGRE 的 Mac GL 后端不支持 currentGLContext 选项,因此最好的解决办法是升级到 SDL 1.3,然后使用
SDL_CreateWindowFrom
去获取通过 OGRE 创建的窗体事件。同时需要注意的是 OGRE 窗体必须将 macAPI 设置为 cocoa,否则 SDL 将不会重新处理该窗体。