diff options
| -rw-r--r-- | src/yuzu/main.cpp | 19 | ||||
| -rw-r--r-- | src/yuzu/main.h | 3 | 
2 files changed, 22 insertions, 0 deletions
| diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index a7c656fdb..ac57229d5 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -119,6 +119,7 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);  #endif  #ifdef _WIN32 +#include <windows.h>  extern "C" {  // tells Nvidia and AMD drivers to use the dedicated GPU by default on laptops with switchable  // graphics @@ -747,6 +748,18 @@ void GMainWindow::OnDisplayTitleBars(bool show) {      }  } +void GMainWindow::PreventOSSleep() { +#ifdef _WIN32 +    SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED); +#endif +} + +void GMainWindow::AllowOSSleep() { +#ifdef _WIN32 +    SetThreadExecutionState(ES_CONTINUOUS); +#endif +} +  QStringList GMainWindow::GetUnsupportedGLExtensions() {      QStringList unsupported_ext; @@ -966,6 +979,8 @@ void GMainWindow::BootGame(const QString& filename) {  }  void GMainWindow::ShutdownGame() { +    AllowOSSleep(); +      discord_rpc->Pause();      emu_thread->RequestStop(); @@ -1567,6 +1582,8 @@ void GMainWindow::OnMenuRecentFile() {  }  void GMainWindow::OnStartGame() { +    PreventOSSleep(); +      emu_thread->SetRunning(true);      qRegisterMetaType<Core::Frontend::SoftwareKeyboardParameters>( @@ -1598,6 +1615,8 @@ void GMainWindow::OnPauseGame() {      ui.action_Pause->setEnabled(false);      ui.action_Stop->setEnabled(true);      ui.action_Capture_Screenshot->setEnabled(false); + +    AllowOSSleep();  }  void GMainWindow::OnStopGame() { diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 1137bbc7a..501608ddc 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -130,6 +130,9 @@ private:      void ConnectWidgetEvents();      void ConnectMenuEvents(); +    void PreventOSSleep(); +    void AllowOSSleep(); +      QStringList GetUnsupportedGLExtensions();      bool LoadROM(const QString& filename);      void BootGame(const QString& filename); | 
