@ -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 . h eight
/ / Normalize gestureEvent . position [ x ] for screenWidth and screenH eight
gestureEvent . position [ 0 ] . x / = ( float ) GetScreenWidth ( ) ;
gestureEvent . position [ 0 ] . y / = ( float ) GetScreenHeight ( ) ;