ENGINES: Remove code for toggling fullscreen mode (#2523)
* GRIM: Remove code for toggling fullscreen mode * MYST3: Remove code for toggling fullscreen mode * STARK: Remove code for toggling fullscreen mode * ENGINES: Remove the fullscreen argument from initGraphics3d()
This commit is contained in:
parent
9abb3f5111
commit
03e8f0ed2d
20 changed files with 27 additions and 88 deletions
|
@ -395,11 +395,11 @@ void initGraphics(int width, int height) {
|
|||
initGraphics(width, height, &format);
|
||||
}
|
||||
|
||||
void initGraphics3d(int width, int height, bool fullscreen) {
|
||||
void initGraphics3d(int width, int height) {
|
||||
g_system->beginGFXTransaction();
|
||||
g_system->setGraphicsMode(0, OSystem::kGfxModeRender3d);
|
||||
g_system->initSize(width, height);
|
||||
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, fullscreen);
|
||||
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen")); // TODO: Replace this with initCommonGFX()
|
||||
g_system->endGFXTransaction();
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ public:
|
|||
* @param screenH the height of the context
|
||||
* @param fullscreen true if fullscreen is desired, false otherwise.
|
||||
*/
|
||||
virtual void setupScreen(int screenW, int screenH, bool fullscreen) = 0;
|
||||
virtual void setupScreen(int screenW, int screenH) = 0;
|
||||
|
||||
/**
|
||||
* Query whether the current context is hardware-accelerated
|
||||
|
|
|
@ -124,7 +124,7 @@ GfxOpenGL::~GfxOpenGL() {
|
|||
}
|
||||
}
|
||||
|
||||
void GfxOpenGL::setupScreen(int screenW, int screenH, bool fullscreen) {
|
||||
void GfxOpenGL::setupScreen(int screenW, int screenH) {
|
||||
_screenWidth = screenW;
|
||||
_screenHeight = screenH;
|
||||
_scaleW = _screenWidth / (float)_gameWidth;
|
||||
|
@ -136,7 +136,7 @@ void GfxOpenGL::setupScreen(int screenW, int screenH, bool fullscreen) {
|
|||
_useDepthShader = false;
|
||||
_useDimShader = false;
|
||||
|
||||
g_system->showMouse(!fullscreen);
|
||||
g_system->showMouse(false);
|
||||
|
||||
int screenSize = _screenWidth * _screenHeight * 4;
|
||||
_storedDisplay = new byte[screenSize];
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
GfxOpenGL();
|
||||
virtual ~GfxOpenGL();
|
||||
|
||||
void setupScreen(int screenW, int screenH, bool fullscreen) override;
|
||||
void setupScreen(int screenW, int screenH) override;
|
||||
|
||||
const char *getVideoDeviceName() override;
|
||||
|
||||
|
|
|
@ -400,7 +400,7 @@ void GfxOpenGLS::setupShaders() {
|
|||
}
|
||||
}
|
||||
|
||||
void GfxOpenGLS::setupScreen(int screenW, int screenH, bool fullscreen) {
|
||||
void GfxOpenGLS::setupScreen(int screenW, int screenH) {
|
||||
_screenWidth = screenW;
|
||||
_screenHeight = screenH;
|
||||
_scaleW = _screenWidth / (float)_gameWidth;
|
||||
|
|
|
@ -41,9 +41,8 @@ public:
|
|||
*
|
||||
* @param screenW the width of the context
|
||||
* @param screenH the height of the context
|
||||
* @param fullscreen true if fullscreen is desired, false otherwise.
|
||||
*/
|
||||
virtual void setupScreen(int screenW, int screenH, bool fullscreen) override;
|
||||
virtual void setupScreen(int screenW, int screenH) override;
|
||||
|
||||
/**
|
||||
* Query whether the current context is hardware-accelerated
|
||||
|
|
|
@ -77,13 +77,13 @@ GfxTinyGL::~GfxTinyGL() {
|
|||
}
|
||||
}
|
||||
|
||||
void GfxTinyGL::setupScreen(int screenW, int screenH, bool fullscreen) {
|
||||
void GfxTinyGL::setupScreen(int screenW, int screenH) {
|
||||
_screenWidth = screenW;
|
||||
_screenHeight = screenH;
|
||||
_scaleW = _screenWidth / (float)_gameWidth;
|
||||
_scaleH = _screenHeight / (float)_gameHeight;
|
||||
|
||||
g_system->showMouse(!fullscreen);
|
||||
g_system->showMouse(false);
|
||||
|
||||
_pixelFormat = g_system->getScreenFormat();
|
||||
debug("INFO: TinyGL front buffer pixel format: %s", _pixelFormat.toString().c_str());
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
GfxTinyGL();
|
||||
virtual ~GfxTinyGL();
|
||||
|
||||
void setupScreen(int screenW, int screenH, bool fullscreen) override;
|
||||
void setupScreen(int screenW, int screenH) override;
|
||||
|
||||
const char *getVideoDeviceName() override;
|
||||
|
||||
|
|
|
@ -263,14 +263,14 @@ LuaBase *GrimEngine::createLua() {
|
|||
}
|
||||
}
|
||||
|
||||
GfxBase *GrimEngine::createRenderer(int screenW, int screenH, bool fullscreen) {
|
||||
GfxBase *GrimEngine::createRenderer(int screenW, int screenH) {
|
||||
Common::String rendererConfig = ConfMan.get("renderer");
|
||||
Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
|
||||
Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
|
||||
|
||||
_softRenderer = matchingRendererType == Graphics::kRendererTypeTinyGL;
|
||||
if (!_softRenderer) {
|
||||
initGraphics3d(screenW, screenH, fullscreen);
|
||||
initGraphics3d(screenW, screenH);
|
||||
} else {
|
||||
initGraphics(screenW, screenH, nullptr);
|
||||
}
|
||||
|
@ -306,7 +306,7 @@ GfxBase *GrimEngine::createRenderer(int screenW, int screenH, bool fullscreen) {
|
|||
error("Unable to create a '%s' renderer", rendererConfig.c_str());
|
||||
}
|
||||
|
||||
renderer->setupScreen(screenW, screenH, fullscreen);
|
||||
renderer->setupScreen(screenW, screenH);
|
||||
renderer->loadEmergFont();
|
||||
return renderer;
|
||||
}
|
||||
|
@ -379,11 +379,10 @@ Common::Error GrimEngine::run() {
|
|||
}
|
||||
g_sound = new SoundPlayer();
|
||||
|
||||
bool fullscreen = ConfMan.getBool("fullscreen");
|
||||
if (getGameType() == GType_GRIM && (g_grim->getGameFlags() & ADGF_REMASTERED)) {
|
||||
g_driver = createRenderer(1600, 900, fullscreen);
|
||||
g_driver = createRenderer(1600, 900);
|
||||
} else {
|
||||
g_driver = createRenderer(640, 480, fullscreen);
|
||||
g_driver = createRenderer(640, 480);
|
||||
}
|
||||
|
||||
if (getGameType() == GType_MONKEY4 && SearchMan.hasFile("AMWI.m4b")) {
|
||||
|
@ -970,7 +969,6 @@ void GrimEngine::mainLoop() {
|
|||
_shortFrame = false;
|
||||
bool resetShortFrame = false;
|
||||
_changeHardwareState = false;
|
||||
_changeFullscreenState = false;
|
||||
_setupChanged = true;
|
||||
|
||||
for (;;) {
|
||||
|
@ -992,25 +990,11 @@ void GrimEngine::mainLoop() {
|
|||
savegameSave();
|
||||
}
|
||||
|
||||
// If the backend can keep the OpenGL context when switching to fullscreen,
|
||||
// just toggle the fullscreen feature (SDL2 path).
|
||||
if (_changeFullscreenState &&
|
||||
_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
|
||||
bool fullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
|
||||
_system->setFeatureState(OSystem::kFeatureFullscreenMode, !fullscreen);
|
||||
_changeFullscreenState = false;
|
||||
}
|
||||
|
||||
// If the backend destroys the OpenGL context or the user switched to a different
|
||||
// renderer, the GFX driver needs to be recreated (SDL1 path).
|
||||
if (_changeHardwareState || _changeFullscreenState) {
|
||||
// renderer, the GFX driver needs to be recreated.
|
||||
if (_changeHardwareState) {
|
||||
_changeHardwareState = false;
|
||||
|
||||
bool fullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
|
||||
if (_changeFullscreenState) {
|
||||
fullscreen = !fullscreen;
|
||||
}
|
||||
|
||||
uint screenWidth = g_driver->getScreenWidth();
|
||||
uint screenHeight = g_driver->getScreenHeight();
|
||||
|
||||
|
@ -1021,7 +1005,7 @@ void GrimEngine::mainLoop() {
|
|||
clearPools();
|
||||
|
||||
delete g_driver;
|
||||
g_driver = createRenderer(screenWidth, screenHeight, fullscreen);
|
||||
g_driver = createRenderer(screenWidth, screenHeight);
|
||||
savegameRestore();
|
||||
|
||||
if (mode == DrawMode) {
|
||||
|
@ -1031,7 +1015,6 @@ void GrimEngine::mainLoop() {
|
|||
g_driver->dimScreen();
|
||||
}
|
||||
setMode(mode);
|
||||
_changeFullscreenState = false;
|
||||
}
|
||||
|
||||
g_sound->flushTracks();
|
||||
|
|
|
@ -208,7 +208,7 @@ protected:
|
|||
void cameraPostChangeHandle(int num);
|
||||
void buildActiveActorsList();
|
||||
void savegameCallback();
|
||||
GfxBase *createRenderer(int screenW, int screenH, bool fullscreen);
|
||||
GfxBase *createRenderer(int screenW, int screenH);
|
||||
void playAspyrLogo();
|
||||
virtual LuaBase *createLua();
|
||||
virtual void updateNormalMode();
|
||||
|
@ -255,7 +255,6 @@ protected:
|
|||
float *_joyAxisPosition;
|
||||
|
||||
bool _changeHardwareState;
|
||||
bool _changeFullscreenState;
|
||||
|
||||
Actor *_selectedActor;
|
||||
Iris *_iris;
|
||||
|
|
|
@ -291,12 +291,6 @@ void GrimEngine::handleChars(Common::EventType operation, const Common::KeyState
|
|||
}
|
||||
|
||||
void GrimEngine::handleControls(Common::EventType operation, const Common::KeyState &key) {
|
||||
// Might also want to support keypad-enter?
|
||||
if (key.hasFlags(Common::KBD_ALT) && key.keycode == Common::KEYCODE_RETURN && operation == Common::EVENT_KEYDOWN) {
|
||||
_changeFullscreenState = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// If we're not supposed to handle the key then don't
|
||||
if (!_controlsEnabled[key.keycode])
|
||||
return;
|
||||
|
|
|
@ -193,7 +193,6 @@ Renderer *createRenderer(OSystem *system) {
|
|||
Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
|
||||
Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
|
||||
|
||||
bool fullscreen = ConfMan.getBool("fullscreen");
|
||||
bool isAccelerated = matchingRendererType != Graphics::kRendererTypeTinyGL;
|
||||
|
||||
uint width;
|
||||
|
@ -205,7 +204,7 @@ Renderer *createRenderer(OSystem *system) {
|
|||
}
|
||||
|
||||
if (isAccelerated) {
|
||||
initGraphics3d(width, height, fullscreen);
|
||||
initGraphics3d(width, height);
|
||||
} else {
|
||||
initGraphics(width, height, nullptr);
|
||||
}
|
||||
|
@ -239,16 +238,6 @@ Renderer *createRenderer(OSystem *system) {
|
|||
error("Unable to create a '%s' renderer", rendererConfig.c_str());
|
||||
}
|
||||
|
||||
void Renderer::toggleFullscreen() {
|
||||
if (!_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
|
||||
warning("Unable to toggle the fullscreen state because the current backend would destroy the graphics context");
|
||||
return;
|
||||
}
|
||||
|
||||
bool oldFullscreen = _system->getFeatureState(OSystem::kFeatureFullscreenMode);
|
||||
_system->setFeatureState(OSystem::kFeatureFullscreenMode, !oldFullscreen);
|
||||
}
|
||||
|
||||
void Renderer::renderDrawable(Drawable *drawable, Window *window) {
|
||||
if (drawable->isConstrainedToWindow()) {
|
||||
selectTargetWindow(window, drawable->is3D(), drawable->isScaled());
|
||||
|
|
|
@ -113,7 +113,6 @@ public:
|
|||
|
||||
virtual void init() = 0;
|
||||
virtual void clear() = 0;
|
||||
void toggleFullscreen();
|
||||
|
||||
/**
|
||||
* Swap the buffers, making the drawn screen visible
|
||||
|
|
|
@ -495,11 +495,7 @@ void Myst3Engine::processInput(bool interactive) {
|
|||
break;
|
||||
case Common::KEYCODE_RETURN:
|
||||
case Common::KEYCODE_KP_ENTER:
|
||||
if (event.kbd.hasFlags(Common::KBD_ALT)) {
|
||||
_gfx->toggleFullscreen();
|
||||
} else {
|
||||
shouldInteractWithHoveredElement = true;
|
||||
}
|
||||
shouldInteractWithHoveredElement = true;
|
||||
break;
|
||||
case Common::KEYCODE_F5:
|
||||
// Open main menu
|
||||
|
|
|
@ -37,8 +37,7 @@ namespace Gfx {
|
|||
|
||||
Driver *Driver::create() {
|
||||
#if defined(USE_GLES2) || defined(USE_OPENGL_SHADERS)
|
||||
bool fullscreen = ConfMan.getBool("fullscreen");
|
||||
initGraphics3d(kOriginalWidth, kOriginalHeight, fullscreen);
|
||||
initGraphics3d(kOriginalWidth, kOriginalHeight);
|
||||
|
||||
if (OpenGLContext.shadersSupported) {
|
||||
return new OpenGLSDriver();
|
||||
|
@ -58,16 +57,6 @@ const Graphics::PixelFormat Driver::getRGBAPixelFormat() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void Driver::toggleFullscreen() const {
|
||||
if (!g_system->hasFeature(OSystem::kFeatureFullscreenToggleKeepsContext)) {
|
||||
warning("Unable to toggle the fullscreen state because the current backend would destroy the graphics context");
|
||||
return;
|
||||
}
|
||||
|
||||
bool oldFullscreen = g_system->getFeatureState(OSystem::kFeatureFullscreenMode);
|
||||
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !oldFullscreen);
|
||||
}
|
||||
|
||||
bool Driver::computeScreenViewport() {
|
||||
int32 screenWidth = g_system->getWidth();
|
||||
int32 screenHeight = g_system->getHeight();
|
||||
|
|
|
@ -49,11 +49,6 @@ public:
|
|||
|
||||
virtual void init() = 0;
|
||||
|
||||
/**
|
||||
* Toggle between windowed mode and fullscreen when spported by the backend.
|
||||
*/
|
||||
void toggleFullscreen() const;
|
||||
|
||||
bool computeScreenViewport();
|
||||
virtual void setScreenViewport(bool noScaling) = 0; // deprecated
|
||||
|
||||
|
|
|
@ -197,10 +197,7 @@ void StarkEngine::processEvents() {
|
|||
continue;
|
||||
}
|
||||
|
||||
if ((e.kbd.keycode == Common::KEYCODE_RETURN || e.kbd.keycode == Common::KEYCODE_KP_ENTER)
|
||||
&& e.kbd.hasFlags(Common::KBD_ALT)) {
|
||||
StarkGfx->toggleFullscreen();
|
||||
} else if (e.kbd.keycode == Common::KEYCODE_p) {
|
||||
if (e.kbd.keycode == Common::KEYCODE_p) {
|
||||
if (StarkUserInterface->isInGameScreen()) {
|
||||
_gamePauseToken = pauseEngine();
|
||||
debug("The game is paused");
|
||||
|
|
|
@ -60,6 +60,6 @@ void initGraphicsModes(const Graphics::ModeList &modes);
|
|||
void initGraphics(int width, int height);
|
||||
void initGraphics(int width, int height, const Graphics::PixelFormat *format);
|
||||
void initGraphics(int width, int height, const Common::List<Graphics::PixelFormat> &formatList);
|
||||
void initGraphics3d(int width, int height, bool fullscreen);
|
||||
void initGraphics3d(int width, int height);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -499,8 +499,7 @@ bool BaseGame::initialize1() {
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
bool BaseGame::initialize2() { // we know whether we are going to be accelerated
|
||||
#ifdef ENABLE_WME3D
|
||||
bool fullscreen = ConfMan.getBool("fullscreen");
|
||||
initGraphics3d(_settings->getResWidth(), _settings->getResHeight(), fullscreen);
|
||||
initGraphics3d(_settings->getResWidth(), _settings->getResHeight());
|
||||
|
||||
Common::String rendererConfig = ConfMan.get("renderer");
|
||||
Graphics::RendererType desiredRendererType = Graphics::parseRendererTypeCode(rendererConfig);
|
||||
|
|
|
@ -129,7 +129,7 @@ Common::Error WintermuteEngine::run() {
|
|||
return Common::kUnsupportedColorMode;
|
||||
}
|
||||
#else
|
||||
initGraphics3d(800, 600, ConfMan.getBool("fullscreen"));
|
||||
initGraphics3d(800, 600);
|
||||
#endif
|
||||
|
||||
// Create debugger console. It requires GFX to be initialized
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue