|
@@ -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();
|
|
|
|