diff --git a/CHANGELOG.md b/CHANGELOG.md index 4eff013a4..782a817e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,7 @@ Bug #4459: NotCell dialogue condition doesn't support partial matches Bug #4461: "Open" spell from non-player caster isn't a crime Bug #4469: Abot Silt Striders – Model turn 90 degrees on horizontal + Bug #4471: Retrieve SDL window settings instead of using magic numbers Feature #3276: Editor: Search- Show number of (remaining) search results and indicate a search without any results Feature #4222: 360° screenshots Feature #4256: Implement ToggleBorders (TB) console command diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 72dfaa0e4..8c3c9494c 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -381,20 +381,33 @@ void OMW::Engine::createWindow(Settings::Manager& settings) setWindowIcon(); osg::ref_ptr traits = new osg::GraphicsContext::Traits; + int redSize; + int greenSize; + int blueSize; + int depthSize; + int stencilSize; + int doubleBuffer; + + SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &redSize); + SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &greenSize); + SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &blueSize); + SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &depthSize); + SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &stencilSize); + SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &doubleBuffer); + SDL_GetWindowPosition(mWindow, &traits->x, &traits->y); SDL_GetWindowSize(mWindow, &traits->width, &traits->height); + traits->red = redSize; + traits->green = greenSize; + traits->blue = blueSize; + traits->depth = depthSize; + traits->stencil = stencilSize; + traits->doubleBuffer = doubleBuffer; traits->windowName = SDL_GetWindowTitle(mWindow); traits->windowDecoration = !(SDL_GetWindowFlags(mWindow)&SDL_WINDOW_BORDERLESS); traits->screenNum = SDL_GetWindowDisplayIndex(mWindow); - // FIXME: Some way to get these settings back from the SDL window? - traits->red = 8; - traits->green = 8; - traits->blue = 8; - traits->alpha = 0; // set to 0 to stop ScreenCaptureHandler reading the alpha channel - traits->depth = 24; - traits->stencil = 8; traits->vsync = vsync; - traits->doubleBuffer = true; + traits->alpha = 0; // set to 0 to stop ScreenCaptureHandler reading the alpha channel traits->inheritedWindowData = new SDLUtil::GraphicsWindowSDL2::WindowData(mWindow); osg::ref_ptr graphicsWindow = new SDLUtil::GraphicsWindowSDL2(traits);