diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp index 87adeaa21bb..fe2ea4c010f 100644 --- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp +++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp @@ -28,6 +28,8 @@ #include "graphics/opengl/system_headers.h" +#include "common/config-manager.h" + #include "math/glmath.h" #if defined(USE_OPENGL_GAME) @@ -229,7 +231,10 @@ bool BaseRenderOpenGL3D::saveScreenShot(const Common::String &filename, int size } void BaseRenderOpenGL3D::setWindowed(bool windowed) { - warning("BaseRenderOpenGL3D::setWindowed not yet implemented"); + ConfMan.setBool("fullscreen", !windowed); + g_system->beginGFXTransaction(); + g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !windowed); + g_system->endGFXTransaction(); } void BaseRenderOpenGL3D::fadeToColor(byte r, byte g, byte b, byte a) { @@ -368,11 +373,11 @@ bool BaseRenderOpenGL3D::windowedBlt() { } void Wintermute::BaseRenderOpenGL3D::onWindowChange() { - warning("BaseRenderOpenGL3D::onWindowChange not yet implemented"); + _windowed = !g_system->getFeatureState(OSystem::kFeatureFullscreenMode); } bool BaseRenderOpenGL3D::initRenderer(int width, int height, bool windowed) { - _windowed = windowed; + _windowed = !ConfMan.getBool("fullscreen"); _width = width; _height = height; @@ -435,7 +440,7 @@ bool BaseRenderOpenGL3D::indicatorFlip() { } bool BaseRenderOpenGL3D::forcedFlip() { - warning("BaseRenderOpenGL3D::forcedFlip not yet implemented"); + g_system->updateScreen(); return true; } diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp index 533329911bb..0760d6ac7ad 100644 --- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp +++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp @@ -27,6 +27,8 @@ #include "graphics/opengl/system_headers.h" +#include "common/config-manager.h" + #include "math/glmath.h" #if defined(USE_OPENGL_SHADERS) @@ -343,7 +345,10 @@ bool BaseRenderOpenGL3DShader::saveScreenShot(const Common::String &filename, in } void BaseRenderOpenGL3DShader::setWindowed(bool windowed) { - warning("BaseRenderOpenGL3DShader::setWindowed not yet implemented"); + ConfMan.setBool("fullscreen", !windowed); + g_system->beginGFXTransaction(); + g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !windowed); + g_system->endGFXTransaction(); } void BaseRenderOpenGL3DShader::fadeToColor(byte r, byte g, byte b, byte a) { @@ -480,7 +485,7 @@ bool BaseRenderOpenGL3DShader::windowedBlt() { } void Wintermute::BaseRenderOpenGL3DShader::onWindowChange() { - warning("BaseRenderOpenGL3DShader::onWindowChange not yet implemented"); + _windowed = !g_system->getFeatureState(OSystem::kFeatureFullscreenMode); } bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed) { @@ -518,7 +523,7 @@ bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed disableLight(i); } - _windowed = windowed; + _windowed = !ConfMan.getBool("fullscreen"); _width = width; _height = height; @@ -577,7 +582,7 @@ bool BaseRenderOpenGL3DShader::indicatorFlip() { } bool BaseRenderOpenGL3DShader::forcedFlip() { - warning("BaseRenderOpenGL3DShader::forcedFlip not yet implemented"); + g_system->updateScreen(); return true; }