diff options
author | bunnei <bunneidev@gmail.com> | 2021-10-30 09:29:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-30 09:29:05 +0200 |
commit | a3a353edf22d21d87f42ea3dc2bba444c3682ab8 (patch) | |
tree | df1d962f88816aa90a856fc4f239a9d12a361baf | |
parent | Merge pull request #7244 from Morph1984/application-lang-pt-br (diff) | |
parent | yuzu qt: Disable the screensaver with SDL2 (diff) | |
download | yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar.gz yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar.bz2 yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar.lz yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar.xz yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.tar.zst yuzu-a3a353edf22d21d87f42ea3dc2bba444c3682ab8.zip |
-rw-r--r-- | src/yuzu/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/yuzu/main.cpp | 19 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 402be6a78..d62fd566f 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -299,6 +299,11 @@ if (YUZU_USE_BUNDLED_QT) copy_yuzu_Qt5_deps(yuzu) endif() +if (ENABLE_SDL2) + target_link_libraries(yuzu PRIVATE SDL2) + target_compile_definitions(yuzu PRIVATE HAVE_SDL2) +endif() + if (MSVC) include(CopyYuzuSDLDeps) include(CopyYuzuFFmpegDeps) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 2af582fe5..e871fee36 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -66,6 +66,10 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual #include <QUrl> #include <QtConcurrent/QtConcurrent> +#ifdef HAVE_SDL2 +#include <SDL.h> // For SDL ScreenSaver functions +#endif + #include <fmt/format.h> #include "common/detached_tasks.h" #include "common/fs/fs.h" @@ -287,6 +291,14 @@ GMainWindow::GMainWindow() ui->action_Fullscreen->setChecked(false); +#if defined(HAVE_SDL2) && !defined(_WIN32) + SDL_InitSubSystem(SDL_INIT_VIDEO); + // SDL disables the screen saver by default, and setting the hint + // SDL_HINT_VIDEO_ALLOW_SCREENSAVER doesn't seem to work, so we just enable the screen saver + // for now. + SDL_EnableScreenSaver(); +#endif + QStringList args = QApplication::arguments(); if (args.size() < 2) { @@ -357,8 +369,9 @@ GMainWindow::GMainWindow() GMainWindow::~GMainWindow() { // will get automatically deleted otherwise - if (render_window->parent() == nullptr) + if (render_window->parent() == nullptr) { delete render_window; + } } void GMainWindow::RegisterMetaTypes() { @@ -1223,12 +1236,16 @@ void GMainWindow::OnDisplayTitleBars(bool show) { void GMainWindow::PreventOSSleep() { #ifdef _WIN32 SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED); +#elif defined(HAVE_SDL2) + SDL_DisableScreenSaver(); #endif } void GMainWindow::AllowOSSleep() { #ifdef _WIN32 SetThreadExecutionState(ES_CONTINUOUS); +#elif defined(HAVE_SDL2) + SDL_EnableScreenSaver(); #endif } |