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