diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/platforms/rcore_desktop_sdl.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 127c302b..8cb0c1be 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1138,6 +1138,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 1; + CORE.Input.Touch.currentTouchState[btn] = 1; touchAction = 1; gestureUpdate = true; @@ -1151,6 +1152,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 0; + CORE.Input.Touch.currentTouchState[btn] = 0; touchAction = 0; gestureUpdate = true; @@ -1179,6 +1181,31 @@ void PollInputEvents(void) gestureUpdate = true; } break; + // Check touch events + // NOTE: These cases need to be reviewed on a real touch screen + case SDL_FINGERDOWN: + { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 1; + + touchAction = 1; + gestureUpdate = true; + } break; + case SDL_FINGERUP: + { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 0; + + touchAction = 0; + gestureUpdate = true; + } break; + case SDL_FINGERMOTION: + { + CORE.Input.Touch.position[event.tfinger.fingerId].x = (float)event.motion.x; + CORE.Input.Touch.position[event.tfinger.fingerId].y = (float)event.motion.y; + + touchAction = 2; + gestureUpdate = true; + } break; + // Check gamepad events case SDL_JOYAXISMOTION: { |
