summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/platforms/rcore_desktop_sdl.c27
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:
{