mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-25 21:06:58 -05:00
EmuWindow: Made pad/touch functions non-static.
This commit is contained in:
parent
a1a1a5c6c5
commit
953e09ddb5
3 changed files with 20 additions and 24 deletions
|
@ -16,35 +16,36 @@ EmuWindow_GLFW* EmuWindow_GLFW::GetEmuWindow(GLFWwindow* win) {
|
|||
return static_cast<EmuWindow_GLFW*>(glfwGetWindowUserPointer(win));
|
||||
}
|
||||
|
||||
void EmuWindow_GLFW::OnMouseButtonEvent(GLFWwindow* window, int button, int action, int mods) {
|
||||
void EmuWindow_GLFW::OnMouseButtonEvent(GLFWwindow* win, int button, int action, int mods) {
|
||||
if (button == GLFW_MOUSE_BUTTON_LEFT) {
|
||||
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
|
||||
auto emu_window = GetEmuWindow(win);
|
||||
auto layout = emu_window->GetFramebufferLayout();
|
||||
double x, y;
|
||||
glfwGetCursorPos(window, &x, &y);
|
||||
glfwGetCursorPos(win, &x, &y);
|
||||
|
||||
if (action == GLFW_PRESS) {
|
||||
EmuWindow::TouchPressed(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
emu_window->TouchPressed(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
} else if (action == GLFW_RELEASE) {
|
||||
EmuWindow::TouchReleased(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
emu_window->TouchReleased(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EmuWindow_GLFW::OnCursorPosEvent(GLFWwindow* window, double x, double y) {
|
||||
|
||||
auto layout = GetEmuWindow(window)->GetFramebufferLayout();
|
||||
EmuWindow::TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
void EmuWindow_GLFW::OnCursorPosEvent(GLFWwindow* win, double x, double y) {
|
||||
auto emu_window = GetEmuWindow(win);
|
||||
auto layout = emu_window->GetFramebufferLayout();
|
||||
emu_window->TouchMoved(layout, static_cast<u16>(x), static_cast<u16>(y));
|
||||
}
|
||||
|
||||
/// Called by GLFW when a key event occurs
|
||||
void EmuWindow_GLFW::OnKeyEvent(GLFWwindow* win, int key, int scancode, int action, int mods) {
|
||||
|
||||
int keyboard_id = GetEmuWindow(win)->keyboard_id;
|
||||
auto emu_window = GetEmuWindow(win);
|
||||
int keyboard_id = emu_window->keyboard_id;
|
||||
|
||||
if (action == GLFW_PRESS) {
|
||||
EmuWindow::KeyPressed({key, keyboard_id});
|
||||
emu_window->KeyPressed({key, keyboard_id});
|
||||
} else if (action == GLFW_RELEASE) {
|
||||
EmuWindow::KeyReleased({key, keyboard_id});
|
||||
emu_window->KeyReleased({ key, keyboard_id });
|
||||
}
|
||||
|
||||
Service::HID::PadUpdateComplete();
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
#include "emu_window.h"
|
||||
#include "video_core/video_core.h"
|
||||
|
||||
bool EmuWindow::touch_pressed = false;
|
||||
|
||||
void EmuWindow::KeyPressed(KeyMap::HostDeviceKey key) {
|
||||
Service::HID::PadState mapped_key = KeyMap::GetPadKey(key);
|
||||
|
||||
|
|
|
@ -71,10 +71,10 @@ public:
|
|||
virtual void ReloadSetKeymaps() = 0;
|
||||
|
||||
/// Signals a key press action to the HID module
|
||||
static void KeyPressed(KeyMap::HostDeviceKey key);
|
||||
void KeyPressed(KeyMap::HostDeviceKey key);
|
||||
|
||||
/// Signals a key release action to the HID module
|
||||
static void KeyReleased(KeyMap::HostDeviceKey key);
|
||||
void KeyReleased(KeyMap::HostDeviceKey key);
|
||||
|
||||
/**
|
||||
* Signal that a touch pressed event has occurred (e.g. mouse click pressed)
|
||||
|
@ -82,8 +82,7 @@ public:
|
|||
* @param framebuffer_x Framebuffer x-coordinate that was pressed
|
||||
* @param framebuffer_y Framebuffer y-coordinate that was pressed
|
||||
*/
|
||||
static void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x,
|
||||
unsigned framebuffer_y);
|
||||
void TouchPressed(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||
|
||||
/**
|
||||
* Signal that a touch released event has occurred (e.g. mouse click released)
|
||||
|
@ -91,8 +90,7 @@ public:
|
|||
* @param framebuffer_x Framebuffer x-coordinate that was released
|
||||
* @param framebuffer_y Framebuffer y-coordinate that was released
|
||||
*/
|
||||
static void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x,
|
||||
unsigned framebuffer_y);
|
||||
void TouchReleased(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||
|
||||
/**
|
||||
* Signal that a touch movement event has occurred (e.g. mouse was moved over the emu window)
|
||||
|
@ -100,8 +98,7 @@ public:
|
|||
* @param framebuffer_x Framebuffer x-coordinate
|
||||
* @param framebuffer_y Framebuffer y-coordinate
|
||||
*/
|
||||
static void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x,
|
||||
unsigned framebuffer_y);
|
||||
void TouchMoved(const FramebufferLayout& layout, unsigned framebuffer_x, unsigned framebuffer_y);
|
||||
|
||||
/**
|
||||
* Returns currently active configuration.
|
||||
|
@ -196,5 +193,5 @@ private:
|
|||
WindowConfig config; ///< Internal configuration (changes pending for being applied in ProcessConfigurationChanges)
|
||||
WindowConfig active_config; ///< Internal active configuration
|
||||
|
||||
static bool touch_pressed; ///< True if touchpad area is currently pressed, otherwise false
|
||||
bool touch_pressed; ///< True if touchpad area is currently pressed, otherwise false
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue