ソースを参照

[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 1年前
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:
{

読み込み中…
キャンセル
保存