如何在 OGRE 中使用 SDL

发布于 2021-11-12 22:47:25 字数 808 浏览 764 评论 1

当我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女净妖师 2021-11-16 07:00:03

我自己解决了这个问题。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文