@Override
 protected void OnLoad(EventArgs arg0) {
   super.OnLoad(arg0);
   MakeCurrent();
   app.listener.create();
   app.listener.resize(0, 0); // FIXME
 }
  @Override
  protected void OnRenderFrame(FrameEventArgs arg0) {
    super.OnRenderFrame(arg0);

    long time = System.nanoTime();
    deltaTime = (time - lastFrameTime) / 1000000000.0f;
    lastFrameTime = time;

    fps++;
    if (time - framesStart >= 1000000000l) {
      framesStart = time;
      fps = frames;
      frames = 0;
    }

    MakeCurrent();
    ((IOSInput) Gdx.input).processEvents();
    app.listener.render();
    SwapBuffers();
  }
 @Override
 protected void ConfigureLayer(CAEAGLLayer layer) {
   layer.set_Opaque(true);
   super.ConfigureLayer(layer);
 }
 @Override
 public void TouchesMoved(NSSet touches, UIEvent event) {
   super.TouchesMoved(touches, event);
   input.touchMoved(touches, event);
 }
 @Override
 public void TouchesCancelled(NSSet touches, UIEvent event) {
   super.TouchesCancelled(touches, event);
   input.touchUp(touches, event);
 }
 @Override
 public void TouchesBegan(NSSet touches, UIEvent event) {
   super.TouchesBegan(touches, event);
   input.touchDown(touches, event);
 }