private void SceneGameRunThread() { // Create the form from this thread GameForm = new EmbeddedGameForm { TopLevel = false, Visible = false, }; windowHandle = GameForm.Handle; var context = new GameContextWinforms(GameForm) { InitializeDatabase = false }; RegisterToDragDropEvents(); // Wait for shaders to be loaded Asset.ServiceProvider.Get <GameStudioBuilderService>().WaitForShaders(); // Create and register services serviceRegistry = new EditorGameServiceRegistry(); InitializeServices(serviceRegistry); Game.RegisterServices(serviceRegistry); // Notify game start gameStartedTaskSource.SetResult(true); Game.Run(context); Game.Dispose(); }
private void StrideUIThread() { gameForm = new EmbeddedGameForm { TopLevel = false, Visible = false }; windowHandle = gameForm.Handle; initializationSignal.Set(); PreviewGame = new PreviewGame(AssetBuilderService.EffectCompiler); var context = new GameContextWinforms(gameForm) { InitializeDatabase = false }; // Wait for shaders to be loaded AssetBuilderService.WaitForShaders(); // TODO: For now we stop if there is an exception // Ideally, we should try to recreate the game. if (!DisablePreview) { PreviewGame.GraphicsDeviceManager.DeviceCreated += GraphicsDeviceManagerDeviceCreated; PreviewGame.Run(context); PreviewGame.Dispose(); } }
private void OnLoaded(object sender, EventArgs e) { GameContext = new GameContextWinforms(this); GameInstance = new MyGame { GraphicsDeviceManager = { PreferredGraphicsProfile = new[] { GraphicsProfile.Level_11_2 } }, AutoLoadDefaultSettings = true }; GameInstance.WindowCreated += (o, args) => { //GameInstance.InitVulkan(); GameInstance.Window.AllowUserResizing = true; GameInstance.GraphicsDeviceManager.DeviceCreated += OnGameGraphicsCreated; }; GameInstance.Run(GameContext); }