diff --git a/src/DisplayWindow.cpp b/src/DisplayWindow.cpp index f67892f4..db89ff80 100644 --- a/src/DisplayWindow.cpp +++ b/src/DisplayWindow.cpp @@ -31,6 +31,7 @@ void DisplayWindow::stop() void DisplayWindow::restart() { + _restart(); m_bResizeWindow = true; } diff --git a/src/DisplayWindow.h b/src/DisplayWindow.h index b4e61eee..b8d73e06 100644 --- a/src/DisplayWindow.h +++ b/src/DisplayWindow.h @@ -72,6 +72,7 @@ private: virtual bool _start() = 0; virtual void _stop() = 0; + virtual void _restart() = 0; virtual void _swapBuffers() = 0; virtual void _saveScreenshot() = 0; virtual void _saveBufferContent(graphics::ObjectHandle _fbo, CachedTexture *_pTexture) = 0; diff --git a/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp b/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp index 3330dc4d..1cf734c2 100644 --- a/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp +++ b/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp @@ -32,6 +32,7 @@ private: bool _start() override; void _stop() override; + void _restart() override; void _swapBuffers() override; void _saveScreenshot() override; void _saveBufferContent(graphics::ObjectHandle _fbo, CachedTexture *_pTexture) override; @@ -130,6 +131,19 @@ void DisplayWindowMupen64plus::_stop() FunctionWrapper::CoreVideo_Quit(); } +void DisplayWindowMupen64plus::_restart() +{ +#ifdef M64P_GLIDENUI + if (_supportsWithRateFunctions && m_bFullscreen) { + m_resizeWidth = config.video.fullscreenWidth; + m_resizeHeight = config.video.fullscreenHeight; + } else { + m_resizeWidth = config.video.windowedWidth; + m_resizeHeight = config.video.windowedHeight; + } +#endif // M64P_GLIDENUI +} + void DisplayWindowMupen64plus::_swapBuffers() { // if emulator defined a render callback function, call it before buffer swap @@ -171,14 +185,6 @@ bool DisplayWindowMupen64plus::_resizeWindow() if (!_supportsWithRateFunctions) m_bFullscreen = false; - if (m_bFullscreen) { - m_resizeWidth = config.video.fullscreenWidth; - m_resizeHeight = config.video.fullscreenHeight; - } else { - m_resizeWidth = config.video.windowedWidth; - m_resizeHeight = config.video.windowedHeight; - } - if (_supportsWithRateFunctions) { m64p_video_flags flags = {}; diff --git a/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp b/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp index 3070ed00..0e7a1644 100644 --- a/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp +++ b/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp @@ -20,6 +20,7 @@ public: private: bool _start() override; void _stop() override; + void _restart() override; void _swapBuffers() override; void _saveScreenshot() override; void _saveBufferContent(graphics::ObjectHandle _fbo, CachedTexture *_pTexture) override; @@ -49,6 +50,11 @@ void DisplayWindowWindows::_stop() FunctionWrapper::windowsStop(); } +void DisplayWindowWindows::_restart() +{ + +} + void DisplayWindowWindows::_swapBuffers() { //Don't let the command queue grow too big buy waiting on no more swap buffers being queued