diff --git a/src/frontend/KaizenGui.cpp b/src/frontend/KaizenGui.cpp index 5aff93b3..d023be9e 100644 --- a/src/frontend/KaizenGui.cpp +++ b/src/frontend/KaizenGui.cpp @@ -5,7 +5,7 @@ #include #include -KaizenGui::KaizenGui() noexcept : window("Kaizen", 800, 600), settingsWindow(window), vulkanWidget(window.getHandle()), emuThread(fpsCounter, settingsWindow) { +KaizenGui::KaizenGui() noexcept : window("Kaizen", 1280, 720), settingsWindow(window), vulkanWidget(window.getHandle()), emuThread(fpsCounter, settingsWindow) { gui::Initialize(n64::Core::GetInstance().parallel.wsi, window.getHandle()); SDL_InitSubSystem(SDL_INIT_GAMEPAD); @@ -132,17 +132,15 @@ void KaizenGui::HandleInput(const SDL_Event &event) { pif.UpdateButton(0, n64::Controller::Key::LT, keys[SDL_SCANCODE_A]); pif.UpdateButton(0, n64::Controller::Key::RT, keys[SDL_SCANCODE_S]); - if (keys[SDL_SCANCODE_UP]) pif.UpdateAxis(0, n64::Controller::Axis::Y, 86); - else pif.UpdateAxis(0, n64::Controller::Axis::Y, 0); + float x = 0, y = 0; - if (keys[SDL_SCANCODE_DOWN]) pif.UpdateAxis(0, n64::Controller::Axis::Y, -86); - else pif.UpdateAxis(0, n64::Controller::Axis::Y, 0); + if (keys[SDL_SCANCODE_UP]) y = 86; + if (keys[SDL_SCANCODE_DOWN]) y = -86; + if (keys[SDL_SCANCODE_LEFT]) x = -86; + if (keys[SDL_SCANCODE_RIGHT]) x = 86; - if (keys[SDL_SCANCODE_LEFT]) pif.UpdateAxis(0, n64::Controller::Axis::X, -86); - else pif.UpdateAxis(0, n64::Controller::Axis::X, 0); - - if (keys[SDL_SCANCODE_RIGHT]) pif.UpdateAxis(0, n64::Controller::Axis::X, 86); - else pif.UpdateAxis(0, n64::Controller::Axis::X, 0); + pif.UpdateAxis(0, n64::Controller::Axis::X, x); + pif.UpdateAxis(0, n64::Controller::Axis::Y, y); } break; default: break; diff --git a/src/frontend/NativeWindow.hpp b/src/frontend/NativeWindow.hpp index bff83e7e..279afcf4 100644 --- a/src/frontend/NativeWindow.hpp +++ b/src/frontend/NativeWindow.hpp @@ -9,7 +9,8 @@ namespace gui { struct NativeWindow { NativeWindow(const std::string& title, int w, int h, int posX = SDL_WINDOWPOS_CENTERED, int posY = SDL_WINDOWPOS_CENTERED) { SDL_Init(SDL_INIT_VIDEO); - window = SDL_CreateWindow(title.c_str(), w, h, SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIGH_PIXEL_DENSITY); + float scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay()); + window = SDL_CreateWindow(title.c_str(), w * scale, h * scale, SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIGH_PIXEL_DENSITY); if(volkInitialize() != VK_SUCCESS) { panic("Failed to initialize Volk!");