Track hidpi_factor, and properly round the physical pixel size (#15)
This commit is contained in:
parent
6f0b1e0102
commit
ea4e2aafc1
|
@ -16,7 +16,7 @@ fn main() -> Result<(), Error> {
|
||||||
.parse()
|
.parse()
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
|
|
||||||
let (window, surface, width, height) = {
|
let (window, surface, width, height, mut hidpi_factor) = {
|
||||||
let scale = 3.0;
|
let scale = 3.0;
|
||||||
let width = SCREEN_WIDTH as f64 * scale;
|
let width = SCREEN_WIDTH as f64 * scale;
|
||||||
let height = SCREEN_HEIGHT as f64 * scale;
|
let height = SCREEN_HEIGHT as f64 * scale;
|
||||||
|
@ -27,9 +27,16 @@ fn main() -> Result<(), Error> {
|
||||||
.build(&event_loop)
|
.build(&event_loop)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let surface = pixels::wgpu::Surface::create(&window);
|
let surface = pixels::wgpu::Surface::create(&window);
|
||||||
let size = window.inner_size().to_physical(window.hidpi_factor());
|
let hidpi_factor = window.hidpi_factor();
|
||||||
|
let size = window.inner_size().to_physical(hidpi_factor);
|
||||||
|
|
||||||
(window, surface, size.width as u32, size.height as u32)
|
(
|
||||||
|
window,
|
||||||
|
surface,
|
||||||
|
size.width.round() as u32,
|
||||||
|
size.height.round() as u32,
|
||||||
|
hidpi_factor,
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
let surface_texture = SurfaceTexture::new(width, height, surface);
|
let surface_texture = SurfaceTexture::new(width, height, surface);
|
||||||
|
@ -87,11 +94,14 @@ fn main() -> Result<(), Error> {
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Adjust high DPI factor
|
||||||
|
event::WindowEvent::HiDpiFactorChanged(factor) => hidpi_factor = factor,
|
||||||
|
|
||||||
// Resize the window
|
// Resize the window
|
||||||
event::WindowEvent::Resized(size) => {
|
event::WindowEvent::Resized(size) => {
|
||||||
let size = size.to_physical(window.hidpi_factor());
|
let size = size.to_physical(hidpi_factor);
|
||||||
let width = size.width as u32;
|
let width = size.width.round() as u32;
|
||||||
let height = size.height as u32;
|
let height = size.height.round() as u32;
|
||||||
|
|
||||||
fb.resize(width, height);
|
fb.resize(width, height);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue