MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / set_fullscreen

Function set_fullscreen

native/windows/src/lib.rs:64–102  ·  view source on GitHub ↗
(fullscreen: bool)

Source from the content-addressed store, hash-verified

62 static mut WINDOWED_RECT: RECT = RECT { left: 0, top: 0, right: 0, bottom: 0 };
63
64 pub fn set_fullscreen(fullscreen: bool) {
65 unsafe {
66 let Some(hwnd) = HWND_GLOBAL else { return };
67
68 if fullscreen && !IS_FULLSCREEN {
69 // Save current style and window rect for restore
70 WINDOWED_STYLE = GetWindowLongW(hwnd, GWL_STYLE) as u32;
71 let _ = GetWindowRect(hwnd, &mut WINDOWED_RECT);
72
73 // Get monitor dimensions
74 let monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
75 let mut mi: MONITORINFO = std::mem::zeroed();
76 mi.cbSize = std::mem::size_of::<MONITORINFO>() as u32;
77 let _ = GetMonitorInfoW(monitor, &mut mi);
78
79 // Set borderless fullscreen
80 SetWindowLongW(hwnd, GWL_STYLE, (WS_POPUP | WS_VISIBLE).0 as i32);
81 let _ = SetWindowPos(
82 hwnd, HWND_TOP,
83 mi.rcMonitor.left, mi.rcMonitor.top,
84 mi.rcMonitor.right - mi.rcMonitor.left,
85 mi.rcMonitor.bottom - mi.rcMonitor.top,
86 SWP_FRAMECHANGED | SWP_NOOWNERZORDER,
87 );
88 IS_FULLSCREEN = true;
89 } else if !fullscreen && IS_FULLSCREEN {
90 // Restore windowed mode
91 SetWindowLongW(hwnd, GWL_STYLE, WINDOWED_STYLE as i32);
92 let _ = SetWindowPos(
93 hwnd, None,
94 WINDOWED_RECT.left, WINDOWED_RECT.top,
95 WINDOWED_RECT.right - WINDOWED_RECT.left,
96 WINDOWED_RECT.bottom - WINDOWED_RECT.top,
97 SWP_FRAMECHANGED | SWP_NOOWNERZORDER | SWP_NOZORDER,
98 );
99 IS_FULLSCREEN = false;
100 }
101 }
102 }
103
104 pub fn toggle_fullscreen() {
105 unsafe { set_fullscreen(!IS_FULLSCREEN); }

Callers 2

toggle_fullscreenFunction · 0.70
bloom_init_windowFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected