using System.Threading.Tasks; using Microsoft.JSInterop; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using MLEM.Misc; namespace Demos.Web.Pages; public partial class Index { private Game game; protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) await this.JsRuntime.InvokeAsync("initRenderJS", DotNetObjectReference.Create(this)); } [JSInvokable] public void TickDotNet() { if (this.game == null) { MlemPlatform.Current = new MlemPlatform.DesktopGl((w, c) => w.TextInput += c); this.game = new GameImpl(); this.game.Run(); } this.game.Tick(); } }