From da8c5875c6a695b0b26ef5120da8ea08732b1a07 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 4 Oct 2022 16:02:46 -0600 Subject: [PATCH] Basic HiDPI implementation --- examples/text/src/main.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/examples/text/src/main.rs b/examples/text/src/main.rs index 953e8e7e..0c8d377a 100644 --- a/examples/text/src/main.rs +++ b/examples/text/src/main.rs @@ -370,9 +370,22 @@ impl<'a> FontSystem<'a> { } fn main() { + let display_scale = match orbclient::get_display_size() { + Ok((w, h)) => { + println!("Display size: {}, {}", w, h); + (h as i32 / 1600) + 1 + }, + Err(err) => { + println!("Failed to get display size: {}", err); + 1 + } + }; + let mut window = Window::new_flags( - -1, -1, - 1024, 768, + -1, + -1, + 1024 * display_scale as u32, + 768 * display_scale as u32, "COSMIC TEXT", &[WindowFlag::Resizable] ).unwrap(); @@ -435,7 +448,9 @@ fn main() { let mut relayout = true; let mut scroll = 0; loop { - let (font_size, line_height) = font_sizes[font_size_i]; + let (mut font_size, mut line_height) = font_sizes[font_size_i]; + font_size *= display_scale; + line_height *= display_scale; if relayout { let instant = Instant::now();