mirror of
				https://git.h3cjp.net/H3cJP/citra.git
				synced 2025-11-04 00:46:37 +00:00 
			
		
		
		
	EmuWindow: Made pad/touch functions non-static.
This commit is contained in:
		
							parent
							
								
									a1a1a5c6c5
								
							
						
					
					
						commit
						953e09ddb5
					
				| 
						 | 
				
			
			@ -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