コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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;
            }
        }