private void OnPaintSurface(object sender, SKPaintGLSurfaceEventArgs e) { game.Update(); var canvas = e.Surface.Canvas; canvas.Clear(SKColors.Black); using var save = new SKAutoCanvasRestore(canvas, true); scale = Math.Min( (float)e.BackendRenderTarget.Width / baseSize.Width, (float)e.BackendRenderTarget.Height / baseSize.Height); var screenRect = (SKRect)e.BackendRenderTarget.Rect; var centeredRect = screenRect.AspectFit(baseSize); offset = centeredRect.Location; canvas.Translate(offset); canvas.Scale(scale); canvas.ClipRect(SKRect.Create(baseSize)); game.Draw(canvas); }