diff options
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2.h | 5 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2_gl.h | 7 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2_vk.h | 3 | ||||
| -rw-r--r-- | src/yuzu_cmd/yuzu.cpp | 4 |
7 files changed, 23 insertions, 12 deletions
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp index ea3e0ada4..f643a4b0b 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | |||
| @@ -16,8 +16,8 @@ | |||
| 16 | #include "yuzu_cmd/emu_window/emu_window_sdl2.h" | 16 | #include "yuzu_cmd/emu_window/emu_window_sdl2.h" |
| 17 | #include "yuzu_cmd/yuzu_icon.h" | 17 | #include "yuzu_cmd/yuzu_icon.h" |
| 18 | 18 | ||
| 19 | EmuWindow_SDL2::EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem_) | 19 | EmuWindow_SDL2::EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem_, Core::System& system_) |
| 20 | : input_subsystem{input_subsystem_} { | 20 | : input_subsystem{input_subsystem_}, system{system_} { |
| 21 | if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { | 21 | if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { |
| 22 | LOG_CRITICAL(Frontend, "Failed to initialize SDL2! Exiting..."); | 22 | LOG_CRITICAL(Frontend, "Failed to initialize SDL2! Exiting..."); |
| 23 | exit(1); | 23 | exit(1); |
| @@ -218,7 +218,7 @@ void EmuWindow_SDL2::WaitEvent() { | |||
| 218 | 218 | ||
| 219 | const u32 current_time = SDL_GetTicks(); | 219 | const u32 current_time = SDL_GetTicks(); |
| 220 | if (current_time > last_time + 2000) { | 220 | if (current_time > last_time + 2000) { |
| 221 | const auto results = Core::System::GetInstance().GetAndResetPerfStats(); | 221 | const auto results = system.GetAndResetPerfStats(); |
| 222 | const auto title = | 222 | const auto title = |
| 223 | fmt::format("yuzu {} | {}-{} | FPS: {:.0f} ({:.0f}%)", Common::g_build_fullname, | 223 | fmt::format("yuzu {} | {}-{} | FPS: {:.0f} ({:.0f}%)", Common::g_build_fullname, |
| 224 | Common::g_scm_branch, Common::g_scm_desc, results.average_game_fps, | 224 | Common::g_scm_branch, Common::g_scm_desc, results.average_game_fps, |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.h b/src/yuzu_cmd/emu_window/emu_window_sdl2.h index 1b9ab5b93..aa0d52ae4 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2.h +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.h | |||
| @@ -24,7 +24,7 @@ enum class MouseButton; | |||
| 24 | 24 | ||
| 25 | class EmuWindow_SDL2 : public Core::Frontend::EmuWindow { | 25 | class EmuWindow_SDL2 : public Core::Frontend::EmuWindow { |
| 26 | public: | 26 | public: |
| 27 | explicit EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem); | 27 | explicit EmuWindow_SDL2(InputCommon::InputSubsystem* input_subsystem, Core::System& system_); |
| 28 | ~EmuWindow_SDL2(); | 28 | ~EmuWindow_SDL2(); |
| 29 | 29 | ||
| 30 | /// Whether the window is still open, and a close request hasn't yet been sent | 30 | /// Whether the window is still open, and a close request hasn't yet been sent |
| @@ -87,4 +87,7 @@ protected: | |||
| 87 | 87 | ||
| 88 | /// Input subsystem to use with this window. | 88 | /// Input subsystem to use with this window. |
| 89 | InputCommon::InputSubsystem* input_subsystem; | 89 | InputCommon::InputSubsystem* input_subsystem; |
| 90 | |||
| 91 | /// yuzu core instance | ||
| 92 | Core::System& system; | ||
| 90 | }; | 93 | }; |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp index eadb41790..5b98c255b 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp | |||
| @@ -76,8 +76,9 @@ bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() { | |||
| 76 | return unsupported_ext.empty(); | 76 | return unsupported_ext.empty(); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | EmuWindow_SDL2_GL::EmuWindow_SDL2_GL(InputCommon::InputSubsystem* input_subsystem, bool fullscreen) | 79 | EmuWindow_SDL2_GL::EmuWindow_SDL2_GL(InputCommon::InputSubsystem* input_subsystem, |
| 80 | : EmuWindow_SDL2{input_subsystem} { | 80 | Core::System& system_, bool fullscreen) |
| 81 | : EmuWindow_SDL2{input_subsystem, system_} { | ||
| 81 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); | 82 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); |
| 82 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6); | 83 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6); |
| 83 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY); | 84 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY); |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.h b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.h index 9e694d985..d7f2c83d8 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.h +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.h | |||
| @@ -8,13 +8,18 @@ | |||
| 8 | #include "core/frontend/emu_window.h" | 8 | #include "core/frontend/emu_window.h" |
| 9 | #include "yuzu_cmd/emu_window/emu_window_sdl2.h" | 9 | #include "yuzu_cmd/emu_window/emu_window_sdl2.h" |
| 10 | 10 | ||
| 11 | namespace Core { | ||
| 12 | class System; | ||
| 13 | } | ||
| 14 | |||
| 11 | namespace InputCommon { | 15 | namespace InputCommon { |
| 12 | class InputSubsystem; | 16 | class InputSubsystem; |
| 13 | } | 17 | } |
| 14 | 18 | ||
| 15 | class EmuWindow_SDL2_GL final : public EmuWindow_SDL2 { | 19 | class EmuWindow_SDL2_GL final : public EmuWindow_SDL2 { |
| 16 | public: | 20 | public: |
| 17 | explicit EmuWindow_SDL2_GL(InputCommon::InputSubsystem* input_subsystem, bool fullscreen); | 21 | explicit EmuWindow_SDL2_GL(InputCommon::InputSubsystem* input_subsystem, Core::System& system_, |
| 22 | bool fullscreen); | ||
| 18 | ~EmuWindow_SDL2_GL(); | 23 | ~EmuWindow_SDL2_GL(); |
| 19 | 24 | ||
| 20 | std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override; | 25 | std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override; |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp index d1473dbab..cdda375d8 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp | |||
| @@ -24,8 +24,9 @@ | |||
| 24 | #include <SDL.h> | 24 | #include <SDL.h> |
| 25 | #include <SDL_syswm.h> | 25 | #include <SDL_syswm.h> |
| 26 | 26 | ||
| 27 | EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem, bool fullscreen) | 27 | EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem, |
| 28 | : EmuWindow_SDL2{input_subsystem} { | 28 | Core::System& system_, bool fullscreen) |
| 29 | : EmuWindow_SDL2{input_subsystem, system_} { | ||
| 29 | const std::string window_title = fmt::format("yuzu {} | {}-{} (Vulkan)", Common::g_build_name, | 30 | const std::string window_title = fmt::format("yuzu {} | {}-{} (Vulkan)", Common::g_build_name, |
| 30 | Common::g_scm_branch, Common::g_scm_desc); | 31 | Common::g_scm_branch, Common::g_scm_desc); |
| 31 | render_window = | 32 | render_window = |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.h b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.h index de53844f0..3ea521b2a 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.h +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.h | |||
| @@ -19,7 +19,8 @@ class InputSubsystem; | |||
| 19 | 19 | ||
| 20 | class EmuWindow_SDL2_VK final : public EmuWindow_SDL2 { | 20 | class EmuWindow_SDL2_VK final : public EmuWindow_SDL2 { |
| 21 | public: | 21 | public: |
| 22 | explicit EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem, bool fullscreen); | 22 | explicit EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem, Core::System& system, |
| 23 | bool fullscreen); | ||
| 23 | ~EmuWindow_SDL2_VK() override; | 24 | ~EmuWindow_SDL2_VK() override; |
| 24 | 25 | ||
| 25 | std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override; | 26 | std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override; |
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp index 35ce23696..c10093820 100644 --- a/src/yuzu_cmd/yuzu.cpp +++ b/src/yuzu_cmd/yuzu.cpp | |||
| @@ -172,10 +172,10 @@ int main(int argc, char** argv) { | |||
| 172 | std::unique_ptr<EmuWindow_SDL2> emu_window; | 172 | std::unique_ptr<EmuWindow_SDL2> emu_window; |
| 173 | switch (Settings::values.renderer_backend.GetValue()) { | 173 | switch (Settings::values.renderer_backend.GetValue()) { |
| 174 | case Settings::RendererBackend::OpenGL: | 174 | case Settings::RendererBackend::OpenGL: |
| 175 | emu_window = std::make_unique<EmuWindow_SDL2_GL>(&input_subsystem, fullscreen); | 175 | emu_window = std::make_unique<EmuWindow_SDL2_GL>(&input_subsystem, system, fullscreen); |
| 176 | break; | 176 | break; |
| 177 | case Settings::RendererBackend::Vulkan: | 177 | case Settings::RendererBackend::Vulkan: |
| 178 | emu_window = std::make_unique<EmuWindow_SDL2_VK>(&input_subsystem, fullscreen); | 178 | emu_window = std::make_unique<EmuWindow_SDL2_VK>(&input_subsystem, system, fullscreen); |
| 179 | break; | 179 | break; |
| 180 | } | 180 | } |
| 181 | 181 | ||