瀏覽代碼

[rcore] Fix `IsMouseButtonUp()` and add touch events for `PLATFORM_DESKTOP_SDL` (#3610)

* Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL

* Fix coding convention
pull/3615/head
ubkp 2 年之前
committed by GitHub
父節點
當前提交
ab9bddb3bd
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 1 個檔案被更改,包括 27 行新增0 行删除
  1. +27
    -0
      src/platforms/rcore_desktop_sdl.c

+ 27
- 0
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:
{

Loading…
取消
儲存