Exemple #1
0
        public void GraphicsManager_loopOverAllGraphicsSettings()
        {
            var tickCount = 0;
            var fpsList   = new List <int>();

            var game = new TestGame();

            game.InitializeInjection = () =>
            {
                GraphicsManager.Instance.EnableFXAA       = false;
                GraphicsManager.Instance.EnableSky        = false;
                GraphicsManager.Instance.EnableVSync      = false;
                GraphicsManager.Instance.EnableFullscreen = false;
                GraphicsManager.Instance.EnableMaxFps     = false;
                GraphicsManager.Instance.MaxFps           = 120;
                GraphicsManager.Instance.EnableSSAO       = false;
                GraphicsManager.Instance.EnableLights     = false;
                GraphicsManager.Instance.EnableShadows    = false;

                game.UpdateGraphicsSettings();
            };

            game.UpdateInjection = gameTime =>
            {
                if (gameTime.TotalGameTime.Ticks % 20 == 0)
                {
                    var fps = game.GetFps();
                    fpsList.Add(fps);
                }

                if (gameTime.TotalGameTime.Ticks % 240 != 0)
                {
                    return;
                }

                switch (tickCount)
                {
                case 0:
                    GraphicsManager.Instance.EnableFXAA = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 1:
                    GraphicsManager.Instance.EnableFXAA = false;
                    GraphicsManager.Instance.EnableSSAO = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 2:
                    GraphicsManager.Instance.EnableSSAO   = false;
                    GraphicsManager.Instance.EnableLights = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 3:
                    GraphicsManager.Instance.EnableLights = false;
                    GraphicsManager.Instance.EnableSky    = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 4:
                    GraphicsManager.Instance.EnableSky     = false;
                    GraphicsManager.Instance.EnableShadows = true;
                    break;

                case 5:
                    GraphicsManager.Instance.EnableShadows    = false;
                    GraphicsManager.Instance.EnableFullscreen = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 6:
                    GraphicsManager.Instance.EnableFXAA    = true;
                    GraphicsManager.Instance.EnableSky     = true;
                    GraphicsManager.Instance.EnableSSAO    = true;
                    GraphicsManager.Instance.EnableLights  = true;
                    GraphicsManager.Instance.EnableShadows = true;
                    game.UpdateGraphicsSettings();
                    break;

                case 7:
                    GraphicsManager.Instance.EnableVSync      = true;
                    GraphicsManager.Instance.EnableFullscreen = false;
                    game.UpdateGraphicsSettings();
                    break;

                default:
                    game.Exit();
                    break;
                }

                tickCount++;
            };

            game.Run();

            Console.WriteLine("Lowest FPS: " + fpsList.Min());
            Console.WriteLine("Average FPS: " + fpsList.Average());
            Console.WriteLine("Highest FPS: " + fpsList.Max());
        }