From 857c116210e47ac921bfab60eb6abec5738afd15 Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Sun, 3 Aug 2014 23:36:54 +0200 Subject: [PATCH] CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL. This is not implemented within the backend, but relies purely on driver heuristics. --- Source/Core/DolphinWX/Frame.cpp | 19 +++++++++++++++++++ Source/Core/DolphinWX/Frame.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp index 057d20172a..f0f8db9c96 100644 --- a/Source/Core/DolphinWX/Frame.cpp +++ b/Source/Core/DolphinWX/Frame.cpp @@ -192,6 +192,25 @@ WXLRESULT CRenderFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPa } #endif +bool CRenderFrame::ShowFullScreen(bool show, long style) +{ + if (show) + { + // OpenGL requires the pop-up style to activate exclusive mode. + SetWindowStyle((GetWindowStyle() & ~wxDEFAULT_FRAME_STYLE) | wxPOPUP_WINDOW); + } + + bool result = wxTopLevelWindow::ShowFullScreen(show, style); + + if (!show) + { + // Restore the default style. + SetWindowStyle((GetWindowStyle() & ~wxPOPUP_WINDOW) | wxDEFAULT_FRAME_STYLE); + } + + return result; +} + // event tables // Notice that wxID_HELP will be processed for the 'About' menu and the toolbar // help button. diff --git a/Source/Core/DolphinWX/Frame.h b/Source/Core/DolphinWX/Frame.h index cbf9209d65..d550ec1d0d 100644 --- a/Source/Core/DolphinWX/Frame.h +++ b/Source/Core/DolphinWX/Frame.h @@ -60,6 +60,8 @@ class CRenderFrame : public wxFrame const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE); + bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL) override; + private: void OnDropFiles(wxDropFilesEvent& event); static bool IsValidSavestateDropped(const std::string& filepath);