Пример #1
0
        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);
        }