如何在 OGRE 中使用 SDL

鉴客 发布于 2012/02/11 11:19
阅读 986
收藏 0

当我在 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.

加载中
0
鉴客
鉴客

我自己解决了这个问题。

是因为 OGRE 的 Mac GL 后端不支持 currentGLContext 选项,因此最好的解决办法是升级到 SDL 1.3,然后使用 SDL_CreateWindowFrom 去获取通过 OGRE 创建的窗体事件。同时需要注意的是 OGRE 窗体必须将 macAPI 设置为 cocoa,否则 SDL 将不会重新处理该窗体。

返回顶部
顶部