private void skControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e) { var canvas = e.Surface.Canvas; GameRenderer gameRenderer = new GameRenderer(canvas, _scale, 80, GetHexagonHeight(80), new SKSize(skControl1.Width, skControl1.Height)); gameRenderer.ShowScoreboard = true; gameRenderer.ShowRobotId = chkShowRobotId.Checked; if (_timer.Enabled) { gameRenderer.Speed = timerSpeed; } else { gameRenderer.Speed = 0; } if (cboIndicator.SelectedItem == null || ((RobotIdSelection)cboIndicator.SelectedItem).IsNone) { gameRenderer.ShowDebugIndicators = false; } else if (((RobotIdSelection)cboIndicator.SelectedItem).IsAll) { gameRenderer.ShowDebugIndicators = true; gameRenderer.ShowAllDebugIndicators = true; } else { gameRenderer.ShowDebugIndicators = true; gameRenderer.ShowAllDebugIndicators = false; gameRenderer.ShowDebugIndicatorRobotId = ((RobotIdSelection)cboIndicator.SelectedItem).Id; } if (_gameController != null) { if (_gameController.Round == 0) { gameRenderer.DrawStartScreen(_gameController.BlueTeamName, _gameController.RedTeamName); } else if (_gameController.IsFinished) { gameRenderer.DrawWinnerScreen(_gameController.WinnerTeam, _gameController.WinnerTeam == Team.Blue ? _gameController.BlueTeamName : _gameController.RedTeamName); } else { lock (_syncLockObj) { gameRenderer.DrawGame(_gameController); } } } else { gameRenderer.DrawInfo(); } }