diff options
author | wwylele <wwylele@gmail.com> | 2016-12-11 22:32:41 +0100 |
---|---|---|
committer | wwylele <wwylele@gmail.com> | 2016-12-26 09:52:16 +0100 |
commit | bcf9d20d5713e7003792bb8fa740b19a7204920e (patch) | |
tree | a5fd21a9dd1587d8dedddc33a19b09490ceb164d /src/citra/emu_window | |
parent | Common: add Quaternion (diff) | |
download | yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar.gz yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar.bz2 yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar.lz yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar.xz yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.tar.zst yuzu-bcf9d20d5713e7003792bb8fa740b19a7204920e.zip |
Diffstat (limited to '')
-rw-r--r-- | src/citra/emu_window/emu_window_sdl2.cpp | 22 | ||||
-rw-r--r-- | src/citra/emu_window/emu_window_sdl2.h | 5 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/citra/emu_window/emu_window_sdl2.cpp b/src/citra/emu_window/emu_window_sdl2.cpp index b0d82b670..81a3abe3f 100644 --- a/src/citra/emu_window/emu_window_sdl2.cpp +++ b/src/citra/emu_window/emu_window_sdl2.cpp @@ -19,16 +19,22 @@ void EmuWindow_SDL2::OnMouseMotion(s32 x, s32 y) { TouchMoved((unsigned)std::max(x, 0), (unsigned)std::max(y, 0)); + motion_emu->Tilt(x, y); } void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) { - if (button != SDL_BUTTON_LEFT) - return; - - if (state == SDL_PRESSED) { - TouchPressed((unsigned)std::max(x, 0), (unsigned)std::max(y, 0)); - } else { - TouchReleased(); + if (button == SDL_BUTTON_LEFT) { + if (state == SDL_PRESSED) { + TouchPressed((unsigned)std::max(x, 0), (unsigned)std::max(y, 0)); + } else { + TouchReleased(); + } + } else if (button == SDL_BUTTON_RIGHT) { + if (state == SDL_PRESSED) { + motion_emu->BeginTilt(x, y); + } else { + motion_emu->EndTilt(); + } } } @@ -54,6 +60,7 @@ EmuWindow_SDL2::EmuWindow_SDL2() { keyboard_id = KeyMap::NewDeviceId(); ReloadSetKeymaps(); + motion_emu = std::make_unique<Motion::MotionEmu>(*this); SDL_SetMainReady(); @@ -109,6 +116,7 @@ EmuWindow_SDL2::EmuWindow_SDL2() { EmuWindow_SDL2::~EmuWindow_SDL2() { SDL_GL_DeleteContext(gl_context); SDL_Quit(); + motion_emu = nullptr; } void EmuWindow_SDL2::SwapBuffers() { diff --git a/src/citra/emu_window/emu_window_sdl2.h b/src/citra/emu_window/emu_window_sdl2.h index c8cd919c6..b1cbf16d7 100644 --- a/src/citra/emu_window/emu_window_sdl2.h +++ b/src/citra/emu_window/emu_window_sdl2.h @@ -4,8 +4,10 @@ #pragma once +#include <memory> #include <utility> #include "core/frontend/emu_window.h" +#include "core/frontend/motion_emu.h" struct SDL_Window; @@ -61,4 +63,7 @@ private: /// Device id of keyboard for use with KeyMap int keyboard_id; + + /// Motion sensors emulation + std::unique_ptr<Motion::MotionEmu> motion_emu; }; |