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 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(); }