Esempio n. 1
0
        void HandleKeyDown(KeyDownEvent e)
        {
            var renderer = GetSubsystem<Renderer>();

            switch (e.Key)
            {
                case Constants.KEY_ESCAPE:
                    BackToSelector();
                    return;
                case Constants.KEY_F1:
                    GetSubsystem<UI>().ToggleConsole();
                    return;
                case Constants.KEY_F2:
                    GetSubsystem<UI>().ToggleDebugHud();
                    return;
            }

            switch (e.Key)
            {
                case Constants.KEY_1:
                    var quality = renderer.TextureQuality;
                    ++quality;
                    if (quality > 2)
                        quality = 0;
                    renderer.TextureQuality = quality;
                    break;

                case Constants.KEY_2:
                    var mquality = renderer.MaterialQuality;
                    ++mquality;
                    if (mquality > 2)
                        mquality = 0;
                    renderer.MaterialQuality = mquality;
                    break;

                case Constants.KEY_3:
                    renderer.SpecularLighting = !renderer.SpecularLighting;
                    break;

                case Constants.KEY_4:
                    renderer.DrawShadows = !renderer.DrawShadows;
                    break;

                case Constants.KEY_5:
                    var shadowMapSize = renderer.ShadowMapSize;
                    shadowMapSize *= 2;
                    if (shadowMapSize > 2048)
                        shadowMapSize = 512;
                    renderer.ShadowMapSize = shadowMapSize;
                    break;

                // shadow depth and filtering quality
                case Constants.KEY_6:
                    var q = (int)renderer.ShadowQuality++;
                    if (q > 3)
                        q = 0;
                    renderer.ShadowQuality = (ShadowQuality)q;
                    break;

                // occlusion culling
                case Constants.KEY_7:
                    var o = !(renderer.MaxOccluderTriangles > 0);
                    renderer.MaxOccluderTriangles = o ? 5000 : 0;
                    break;

                // instancing
                case Constants.KEY_8:
                    renderer.DynamicInstancing = !renderer.DynamicInstancing;
                    break;

                case Constants.KEY_9:
                    Image screenshot = new Image();
                    GetSubsystem<Graphics>().TakeScreenShot(screenshot);
                    screenshot.SavePNG(GetSubsystem<FileSystem>().ProgramDir + $"Data/Screenshot_{GetType().Name}_{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss", CultureInfo.InvariantCulture)}.png");
                    break;
            }
        }
Esempio n. 2
0
		void HandleKeyDown(KeyDownEventArgs e)
		{
			switch (e.Key)
			{
				case Key.Esc:
					Exit();
					return;
				case Key.F1:
					console.Toggle();
					return;
				case Key.F2:
					debugHud.ToggleAll();
					return;
			}

			var renderer = Renderer;
			switch (e.Key)
			{
				case Key.N1:
					var quality = renderer.TextureQuality;
					++quality;
					if (quality > 2)
						quality = 0;
					renderer.TextureQuality = quality;
					break;

				case Key.N2:
					var mquality = renderer.MaterialQuality;
					++mquality;
					if (mquality > 2)
						mquality = 0;
					renderer.MaterialQuality = mquality;
					break;

				case Key.N3:
					renderer.SpecularLighting = !renderer.SpecularLighting;
					break;

				case Key.N4:
					renderer.DrawShadows = !renderer.DrawShadows;
					break;

				case Key.N5:
					var shadowMapSize = renderer.ShadowMapSize;
					shadowMapSize *= 2;
					if (shadowMapSize > 2048)
						shadowMapSize = 512;
					renderer.ShadowMapSize = shadowMapSize;
					break;

				// shadow depth and filtering quality
				case Key.N6:
					var q = (int)renderer.ShadowQuality++;
					if (q > 3)
						q = 0;
					renderer.ShadowQuality = (ShadowQuality)q;
					break;

				// occlusion culling
				case Key.N7:
					var o = !(renderer.MaxOccluderTriangles > 0);
					renderer.MaxOccluderTriangles = o ? 5000 : 0;
					break;

				// instancing
				case Key.N8:
					renderer.DynamicInstancing = !renderer.DynamicInstancing;
					break;

				case Key.N9:
					Image screenshot = new Image();
					Graphics.TakeScreenShot(screenshot);
					screenshot.SavePNG(FileSystem.ProgramDir + $"Data/Screenshot_{GetType().Name}_{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss", CultureInfo.InvariantCulture)}.png");
					break;
			}
		}