func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) {
	mobileMutex.Lock()
	defer mobileMutex.Unlock()

	updateTouchesOnIOSImpl(phase, ptr, x, y)
}
func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) {
	mobileMutex.Lock()
	defer mobileMutex.Unlock()

	updateTouchesOnIOSImpl(phase, ptr, x, y)
}
// UpdateTouchesOnIOS updates the touch state on iOS.
//
// This should be called with touch handlers of UIViewController like this:
//
//     - (GLKView*)glkView {
//         return (GLKView*)[self.view viewWithTag:100];
//     }
//     - (void)updateTouches:(NSSet*)touches {
//         for (UITouch* touch in touches) {
//             if (touch.view != [self glkView]) {
//                 continue;
//             }
//             CGPoint location = [touch locationInView: [self glkView]];
//             // Exported function for UpdateTouchesOnIOS
//             YourGameUpdateTouchesOnIOS(touch.phase, (int64_t)touch, location.x, location.y);
//         }
//     }
//     - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
//         [self updateTouches:touches];
//     }
//     - (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
//         [self updateTouches:touches];
//     }
//     - (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
//         [self updateTouches:touches];
//     }
//     - (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event {
//         [self updateTouches:touches];
//     }
//
// The coodinate x/y is in point.
//
// UpdateTouchesOnIOS can be called even before Start is called.
//
// UpdateTouchesOnIOS is concurrent-safe.
//
// For more details, see https://github.com/hajimehoshi/ebiten/wiki/iOS.