Когда я иду для использования ЛЮДОЕДА с 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);
Вопрос, как я избавляюсь от дополнительного окна?
Только для потомства, я использую ЛЮДОЕДА 1.6.4, Mac OS X 10.6.2 и SDL 1.2.14.
В итоге я разобрался с этим самостоятельно. Проблема закончилась тем, что бэкэнд OGRE Mac GL не учитывает опцию currentGLContext
, поэтому лучшим решением будет переход на SDL 1.3 (непосредственно из Subversion, на момент написания статьи) и использование вызова SDL_CreateWindowFrom
, чтобы начать получать события из окна, созданного OGRE. Также следует отметить, что окно OGRE должно иметь значение macAPI
, установленное в cocoa
, иначе SDL не распознает дескриптор окна.