如何在OGRE中使用SDL?

Ros*_*ght 5 c++ sdl ogre3d

当我使用带有SDL的OGRE时(如本文所述),我似乎遇到了出现在主渲染窗口后面的第二个窗口.基本上,我使用的代码是这样的:

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);
Run Code Online (Sandbox Code Playgroud)

问题是,我如何摆脱额外的窗口?

仅供后人使用,我使用的是OGRE 1.6.4,Mac OS X 10.6.2和SDL 1.2.14.

Ros*_*ght 7

我最终自己搞清楚了.问题最终是OGRE的Mac GL后端不支持该currentGLContext选项,因此最好的解决方案是更改为SDL 1.3(直接来自Subversion,截至编写时)并使用该SDL_CreateWindowFrom调用开始从创建的窗口获取事件OGRE.还应注意,OGRE窗口需要macAPI设置为cocoa,否则SDL将无法识别窗口句柄.