Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }