Using event_loop for getting video mode
This commit is contained in:
parent
a738771c93
commit
f539b6e7f6
@ -15,7 +15,7 @@ impl WinitWindows {
|
|||||||
window: &Window,
|
window: &Window,
|
||||||
) {
|
) {
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
let winit_window_builder = {
|
let mut winit_window_builder = {
|
||||||
use winit::platform::windows::WindowBuilderExtWindows;
|
use winit::platform::windows::WindowBuilderExtWindows;
|
||||||
winit::window::WindowBuilder::new().with_drag_and_drop(false)
|
winit::window::WindowBuilder::new().with_drag_and_drop(false)
|
||||||
};
|
};
|
||||||
@ -23,34 +23,26 @@ impl WinitWindows {
|
|||||||
#[cfg(not(target_os = "windows"))]
|
#[cfg(not(target_os = "windows"))]
|
||||||
let mut winit_window_builder = winit::window::WindowBuilder::new();
|
let mut winit_window_builder = winit::window::WindowBuilder::new();
|
||||||
|
|
||||||
winit_window_builder = winit_window_builder.with_title(&window.title);
|
winit_window_builder = match window.mode {
|
||||||
|
WindowMode::BorderlessFullscreen => winit_window_builder.with_fullscreen(Some(
|
||||||
let winit_window = match window.mode {
|
winit::window::Fullscreen::Borderless(event_loop.primary_monitor()),
|
||||||
WindowMode::BorderlessFullscreen => {
|
)),
|
||||||
let winit_window = winit_window_builder.build(&event_loop).unwrap();
|
WindowMode::Fullscreen { use_size } => winit_window_builder.with_fullscreen(Some(
|
||||||
winit_window.set_fullscreen(Some(winit::window::Fullscreen::Borderless(
|
winit::window::Fullscreen::Exclusive(match use_size {
|
||||||
winit_window.current_monitor(),
|
true => get_fitting_videomode(&event_loop.primary_monitor(), &window),
|
||||||
)));
|
false => get_best_videomode(&event_loop.primary_monitor()),
|
||||||
winit_window
|
}),
|
||||||
}
|
)),
|
||||||
WindowMode::Fullscreen { use_size } => {
|
|
||||||
let winit_window = winit_window_builder.build(&event_loop).unwrap();
|
|
||||||
|
|
||||||
winit_window.set_fullscreen(Some(winit::window::Fullscreen::Exclusive(
|
|
||||||
match use_size {
|
|
||||||
true => get_fitting_videomode(&winit_window.current_monitor(), &window),
|
|
||||||
false => get_best_videomode(&winit_window.current_monitor()),
|
|
||||||
},
|
|
||||||
)));
|
|
||||||
winit_window
|
|
||||||
}
|
|
||||||
_ => winit_window_builder
|
_ => winit_window_builder
|
||||||
.with_inner_size(winit::dpi::PhysicalSize::new(window.width, window.height))
|
.with_inner_size(winit::dpi::PhysicalSize::new(window.width, window.height))
|
||||||
.with_resizable(window.resizable)
|
.with_resizable(window.resizable),
|
||||||
.build(&event_loop)
|
|
||||||
.unwrap(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let winit_window = winit_window_builder
|
||||||
|
.with_title(&window.title)
|
||||||
|
.build(&event_loop)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
self.window_id_to_winit.insert(window.id, winit_window.id());
|
self.window_id_to_winit.insert(window.id, winit_window.id());
|
||||||
self.winit_to_window_id.insert(winit_window.id(), window.id);
|
self.winit_to_window_id.insert(winit_window.id(), window.id);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user