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();
        }
Exemple #2
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();
            }
        }
Exemple #3
0
        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);
        }