static void OnConsoleVideoMode(string arguments) { if (!string.IsNullOrEmpty(arguments)) { try { Vector2I mode = Vector2I.Parse(arguments); if (EngineApp.FullscreenEnabled && !SystemSettings.VideoModeExists(mode)) { string text = string.Format("Cannot change screen resolution to \"{0}x{1}\". " + "This resolution is not supported by the system.", mode.X, mode.Y); Log.Warning(text); return; } //!!!! EngineApp.SetFullscreenMode(EngineApp.FullscreenEnabled, mode); //EngineApp.Instance.VideoMode = mode; } catch (Exception ex) { Log.Warning(ex.Message); } } else { Print(string.Format("Value: \"{0}\"", EngineApp.FullscreenSize)); } }
static void OnConsoleFullscreen(string arguments) { if (!string.IsNullOrEmpty(arguments)) { try { bool value; if (arguments == "1") { value = true; } else if (arguments == "0") { value = false; } else { value = bool.Parse(arguments); } //!!!! EngineApp.SetFullscreenMode(value, EngineApp.FullscreenSize); //EngineApp.Fullscreen = value; } catch (Exception ex) { Log.Warning(ex.Message); } } else { Print(string.Format("Value: \"{0}\", Default value: \"{1}\"", EngineApp.FullscreenEnabled, true)); } }
private void Dispatcher_AcceleratorKeyActivated(CoreDispatcher sender, AcceleratorKeyEventArgs args) { var viewport = GetViewport(); if (viewport == null) { return; } if (!GetEKeyByVirtualKey(args.VirtualKey, out EKeys eKey)) { return; } if (args.EventType == CoreAcceleratorKeyEventType.KeyDown || args.EventType == CoreAcceleratorKeyEventType.SystemKeyDown) { bool handled = false; var keyEvent = new KeyEvent(eKey); viewport.PerformKeyDown(keyEvent, ref handled); if (keyEvent.SuppressKeyPress) { args.Handled = true; } if (!handled && EngineApp.InitSettings.AllowChangeScreenVideoMode) { //support Alt+F4 in mouse relative mode. Alt+F4 is disabled during captured cursor. if (viewport.MouseRelativeMode) { if (eKey == EKeys.F4 && viewport.IsKeyPressed(EKeys.Alt)) { EngineApp.NeedExit = true; return; } } if (viewport.IsKeyPressed(EKeys.Alt) && eKey == EKeys.Return) { EngineApp.SetFullscreenMode(!EngineApp.FullscreenEnabled, EngineApp.FullscreenSize); //App.FullScreen = !App.FullScreen; handled = true; } } //args.Handled = handled; } else if (args.EventType == CoreAcceleratorKeyEventType.KeyUp || args.EventType == CoreAcceleratorKeyEventType.SystemKeyUp) { bool handled = false; viewport.PerformKeyUp(new KeyEvent(eKey), ref handled); //args.Handled = handled; } else if (args.EventType == CoreAcceleratorKeyEventType.Character || args.EventType == CoreAcceleratorKeyEventType.UnicodeCharacter) { char keyChar = (char)args.VirtualKey; KeyPressEvent keyPressEvent = new KeyPressEvent(keyChar); bool handled = false; GetViewport()?.PerformKeyPress(keyPressEvent, ref handled); //args.Handled = handled; } }