summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core.c72
1 files changed, 6 insertions, 66 deletions
diff --git a/src/core.c b/src/core.c
index 5eb7e21f..3d04d4e1 100644
--- a/src/core.c
+++ b/src/core.c
@@ -4272,54 +4272,6 @@ static int32_t AndroidInputCallback(struct android_app *app, AInputEvent *event)
// Stop processing gamepad buttons
return 1;
}
-
- int32_t action = AMotionEvent_getAction(event);
- unsigned int flags = action & AMOTION_EVENT_ACTION_MASK;
-
- // Simple touch position
- if (flags == AMOTION_EVENT_ACTION_DOWN)
- {
- // Get first touch position
- CORE.Input.Touch.position[0].x = AMotionEvent_getX(event, 0);
- CORE.Input.Touch.position[0].y = AMotionEvent_getY(event, 0);
- }
-
-#if defined(SUPPORT_GESTURES_SYSTEM)
- GestureEvent gestureEvent;
-
- // Register touch actions
- if (flags == AMOTION_EVENT_ACTION_DOWN) gestureEvent.touchAction = TOUCH_DOWN;
- else if (flags == AMOTION_EVENT_ACTION_UP) gestureEvent.touchAction = TOUCH_UP;
- else if (flags == AMOTION_EVENT_ACTION_MOVE) gestureEvent.touchAction = TOUCH_MOVE;
-
- // Register touch points count
- // NOTE: Documentation says pointerCount is Always >= 1,
- // but in practice it can be 0 or over a million
- gestureEvent.pointCount = AMotionEvent_getPointerCount(event);
-
- // Only enable gestures for 1-3 touch points
- if ((gestureEvent.pointCount > 0) && (gestureEvent.pointCount < 4))
- {
- // Register touch points id
- // NOTE: Only two points registered
- gestureEvent.pointerId[0] = AMotionEvent_getPointerId(event, 0);
- gestureEvent.pointerId[1] = AMotionEvent_getPointerId(event, 1);
-
- // Register touch points position
- gestureEvent.position[0] = (Vector2){ AMotionEvent_getX(event, 0), AMotionEvent_getY(event, 0) };
- gestureEvent.position[1] = (Vector2){ AMotionEvent_getX(event, 1), AMotionEvent_getY(event, 1) };
-
- // Normalize gestureEvent.position[x] for screenWidth and screenHeight
- gestureEvent.position[0].x /= (float)GetScreenWidth();
- gestureEvent.position[0].y /= (float)GetScreenHeight();
-
- gestureEvent.position[1].x /= (float)GetScreenWidth();
- gestureEvent.position[1].y /= (float)GetScreenHeight();
-
- // Gesture data is sent to gestures system for processing
- ProcessGestureEvent(gestureEvent);
- }
-#endif
}
else if (type == AINPUT_EVENT_TYPE_KEY)
{
@@ -4360,26 +4312,14 @@ static int32_t AndroidInputCallback(struct android_app *app, AInputEvent *event)
return 0;
}
+ CORE.Input.Touch.position[0].x = AMotionEvent_getX(event, 0);
+ CORE.Input.Touch.position[0].y = AMotionEvent_getY(event, 0);
+
+#if defined(SUPPORT_GESTURES_SYSTEM)
int32_t action = AMotionEvent_getAction(event);
unsigned int flags = action & AMOTION_EVENT_ACTION_MASK;
- // Support only simple touch position
- if (flags == AMOTION_EVENT_ACTION_DOWN)
- {
- // Get first touch position
- CORE.Input.Touch.position[0].x = AMotionEvent_getX(event, 0);
- CORE.Input.Touch.position[0].y = AMotionEvent_getY(event, 0);
- }
- else if (flags == AMOTION_EVENT_ACTION_UP)
- {
- // Get first touch position
- CORE.Input.Touch.position[0].x = 0;
- CORE.Input.Touch.position[0].y = 0;
- }
- else return 0; // TODO: Not sure what else should be handled
-
-#if defined(SUPPORT_GESTURES_SYSTEM)
- GestureEvent gestureEvent = { 0 };
+ GestureEvent gestureEvent;
// Register touch actions
if (flags == AMOTION_EVENT_ACTION_DOWN) gestureEvent.touchAction = TOUCH_DOWN;
@@ -4403,7 +4343,7 @@ static int32_t AndroidInputCallback(struct android_app *app, AInputEvent *event)
gestureEvent.position[0] = (Vector2){ AMotionEvent_getX(event, 0), AMotionEvent_getY(event, 0) };
gestureEvent.position[1] = (Vector2){ AMotionEvent_getX(event, 1), AMotionEvent_getY(event, 1) };
- // Normalize gestureEvent.position[x] for CORE.Window.screen.width and CORE.Window.screen.height
+ // Normalize gestureEvent.position[x] for screenWidth and screenHeight
gestureEvent.position[0].x /= (float)GetScreenWidth();
gestureEvent.position[0].y /= (float)GetScreenHeight();