mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-13 12:40:04 +00:00
Pass only the X11 window to Ogre, otherwise it would treat it as parentWindowHandle instead of externalWindowHandle. parentWindowHandle does not seem to play nice with SDL and occasionally crashes with a GLXBadDrawable error on startup.
This commit is contained in:
parent
91f6d87126
commit
50a0d16f8f
6
extern/sdl4ogre/sdlinputwrapper.cpp
vendored
6
extern/sdl4ogre/sdlinputwrapper.cpp
vendored
@ -105,6 +105,12 @@ namespace SFO
|
||||
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||
case SDL_WINDOWEVENT_CLOSE:
|
||||
break;
|
||||
case SDL_WINDOWEVENT_SHOWN:
|
||||
mOgreWindow->setVisible(true);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_HIDDEN:
|
||||
mOgreWindow->setVisible(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -315,9 +315,7 @@ void OgreRenderer::createWindow(const std::string &title, const WindowSettings&
|
||||
break;
|
||||
#else
|
||||
case SDL_SYSWM_X11:
|
||||
winHandle = Ogre::StringConverter::toString((unsigned long)wmInfo.info.x11.display);
|
||||
winHandle += ":0:";
|
||||
winHandle += Ogre::StringConverter::toString((unsigned long)wmInfo.info.x11.window);
|
||||
winHandle = Ogre::StringConverter::toString((unsigned long)wmInfo.info.x11.window);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
@ -325,6 +323,8 @@ void OgreRenderer::createWindow(const std::string &title, const WindowSettings&
|
||||
break;
|
||||
}
|
||||
|
||||
/// \todo externalWindowHandle is deprecated according to the source code. Figure out a way to get parentWindowHandle
|
||||
/// to work properly. On Linux/X11 it causes an occasional GLXBadDrawable error.
|
||||
params.insert(std::make_pair("externalWindowHandle", winHandle));
|
||||
|
||||
mWindow = mRoot->createRenderWindow(title, settings.window_x, settings.window_y, settings.fullscreen, ¶ms);
|
||||
|
Loading…
x
Reference in New Issue
Block a user