code: func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) {
  	mobileMutex.Lock()
  	defer mobileMutex.Unlock()
  
  	updateTouchesOnIOSImpl(phase, ptr, x, y)
  }
docs: // 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.