CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.

This is not implemented within the backend, but relies purely on driver heuristics.
This commit is contained in:
Jules Blok 2014-08-03 23:36:54 +02:00
parent 0bcebd81f6
commit 857c116210
2 changed files with 21 additions and 0 deletions

View File

@ -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.

View File

@ -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);