private void UpdateWindowKeys(KeyboardState keyboard) { if (keyboard.IsKeyDown(Key.Escape)) { Exit(); } if (keyboard[Key.F11] && (lastKeyboard[Key.F11] != keyboard[Key.F11])) { DisplayDevice defaultDisplayDevice = DisplayDevice.GetDisplay(DisplayIndex.Default); if (WindowState == WindowState.Fullscreen) { WindowState = WindowState.Normal; CursorVisible = true; defaultDisplayDevice.RestoreResolution(); } else { WindowState = WindowState.Fullscreen; CursorVisible = false; defaultDisplayDevice .ChangeResolution( Const.DISPLAY_FULLHD_W, Const.DISPLAY_FULLHD_H, Const.DISPLAY_BITPERPIXEL, Const.DISPLAY_REFRESH_RATE); } } // if state F11 } // UpdateWindowKeys()
public override void FullScreen() { DisplayDevice device = DisplayDevice.GetDisplay(0); device.ChangeResolution(width, height, 32, -1); window.WindowBorder = WindowBorder.Hidden; window.WindowState = WindowState.Fullscreen; }
public static void Main() { for (int i = 0; i < 6; i++) { DisplayDevice dev = DisplayDevice.GetDisplay(DisplayIndex.First + i); if (dev != null) { Trace.WriteLine(dev.ToString()); MessageBox.Show(dev.ToString()); dev.ChangeResolution(dev.SelectResolution(640, 480, 32, 60.0f)); Thread.Sleep(1000); MessageBox.Show(dev.ToString()); dev.RestoreResolution(); Thread.Sleep(1000); MessageBox.Show(dev.ToString()); } } }
private void ToggleFullscreen() { DisplayDevice defaultDisplayDevice = DisplayDevice.GetDisplay(DisplayIndex.Default); if (WindowState == WindowState.Fullscreen) { WindowState = WindowState.Normal; CursorVisible = true; defaultDisplayDevice.RestoreResolution(); } else { WindowState = WindowState.Fullscreen; CursorVisible = false; defaultDisplayDevice .ChangeResolution( Const.DISPLAY_FULLHD_W, Const.DISPLAY_FULLHD_H, Const.DISPLAY_BITPERPIXEL, Const.DISPLAY_REFRESH_RATE); } }
protected virtual void ChangeResolution(DisplayDevice display, Size newSize) { if (newSize.Width == display.Width && newSize.Height == display.Height) { return; } var newResolution = display.AvailableResolutions .Where(r => r.Width == newSize.Width && r.Height == newSize.Height) .OrderByDescending(r => r.RefreshRate) .FirstOrDefault(); if (newResolution == null) { // we wanted a new resolution but got nothing, which means OpenTK didn't find this resolution RestoreResolution(display); } else { display.ChangeResolution(newResolution); ClientSize = newSize; } }
// VID_SetMode (int modenum, unsigned char *palette) // sets the mode; only used by the Quake engine for resetting to mode 0 (the // base mode) on memory allocation failures public static void SetMode(int modenum, byte[] palette) { if (modenum < 0 || modenum >= _Modes.Length) { Sys.Error("Bad video mode\n"); } mode_t mode = _Modes[modenum]; // so Con_Printfs don't mess us up by forcing vid and snd updates bool temp = Scr.IsDisabledForLoading; Scr.IsDisabledForLoading = true; CDAudio.Pause(); // Set either the fullscreen or windowed mode DisplayDevice dev = MainForm.DisplayDevice; MainForm form = MainForm.Instance; if (_Windowed) { form.WindowState = WindowState.Normal; form.WindowBorder = WindowBorder.Fixed; form.Location = new Point((mode.width - form.Width) / 2, (mode.height - form.Height) / 2); if (_WindowedMouse.Value != 0 && Key.Destination == keydest_t.key_game) { Input.ActivateMouse(); Input.HideMouse(); } else { Input.DeactivateMouse(); Input.ShowMouse(); } } else { try { dev.ChangeResolution(mode.width, mode.height, mode.bpp, mode.refreshRate); } catch (Exception ex) { Sys.Error("Couldn't set video mode: " + ex.Message); } form.WindowState = WindowState.Fullscreen; form.WindowBorder = WindowBorder.Hidden; } viddef_t vid = Scr.vid; if (vid.conheight > dev.Height) { vid.conheight = dev.Height; } if (vid.conwidth > dev.Width) { vid.conwidth = dev.Width; } vid.width = vid.conwidth; vid.height = vid.conheight; vid.numpages = 2; CDAudio.Resume(); Scr.IsDisabledForLoading = temp; _ModeNum = modenum; Cvar.Set("vid_mode", (float)_ModeNum); // fix the leftover Alt from any Alt-Tab or the like that switched us away ClearAllStates(); Con.SafePrint("Video mode {0} initialized.\n", GetModeDescription(_ModeNum)); SetPalette(palette); vid.recalc_refdef = true; }
public static void VID_SetMode(int modenum, byte[] palette) { if (modenum < 0 || modenum >= vid_modes.Length) Sys_Error("Bad video mode\n"); mode_t mode = vid_modes[modenum]; // so Con_Printfs don't mess us up by forcing vid and snd updates bool temp = scr_disabled_for_loading; scr_disabled_for_loading = true; CDAudio_Pause(); // Set either the fullscreen or windowed mode DisplayDevice dev = MainForm.DisplayDevice; MainForm form = MainForm.Instance; if(!windowed) { try { dev.ChangeResolution(mode.width, mode.height, mode.bpp, mode.refreshRate); } catch (Exception ex) { Sys_Error("Couldn't set video mode: " + ex.Message); } form.WindowState = WindowState.Fullscreen; form.WindowBorder = WindowBorder.Hidden; } else { form.WindowState = WindowState.Normal; form.WindowBorder = WindowBorder.Fixed; form.Size = new Size(mode.width, mode.height); form.Location = new Point((mode.width - form.Width) / 2, (mode.height - form.Height) / 2); if (_windowed_mouse.value != 0 && key_dest == keydest_t.key_game) { IN_ActivateMouse(); IN_HideMouse(); } else { IN_DeactivateMouse(); IN_ShowMouse(); } } if (vid.conheight > mode.height) vid.conheight = mode.height; if (vid.conwidth > mode.width) vid.conwidth = mode.width; vid.width = vid.conwidth; vid.height = vid.conheight; vid.numpages = 2; CDAudio_Resume(); scr_disabled_for_loading = temp; vid_modenum = modenum; Cvar.Cvar_SetValue("vid_mode", vid_modenum); // fix the leftover Alt from any Alt-Tab or the like that switched us away ClearAllStates(); Con_SafePrintf("Video mode {0} initialized.\n", VID_GetModeDescription(vid_modenum)); VID_SetPalette(palette); vid.recalc_refdef = true; }