From 6a529e9a7d8d641a564e077ba8478dc8b0c9c965 Mon Sep 17 00:00:00 2001 From: Josh Simmons Date: Thu, 9 May 2024 10:59:13 +0200 Subject: [PATCH] narcissus-app: Add HIDPI support --- engine/narcissus-app/src/lib.rs | 1 + engine/narcissus-app/src/sdl.rs | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/engine/narcissus-app/src/lib.rs b/engine/narcissus-app/src/lib.rs index a8baa7f..dc6205d 100644 --- a/engine/narcissus-app/src/lib.rs +++ b/engine/narcissus-app/src/lib.rs @@ -36,6 +36,7 @@ pub trait Window: AsRawWindow + Upcast { fn id(&self) -> WindowId; fn extent(&self) -> (u32, u32); + fn drawable_extent(&self) -> (u32, u32); } #[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)] diff --git a/engine/narcissus-app/src/sdl.rs b/engine/narcissus-app/src/sdl.rs index f3d6e4f..4e39553 100644 --- a/engine/narcissus-app/src/sdl.rs +++ b/engine/narcissus-app/src/sdl.rs @@ -22,6 +22,15 @@ impl Window for SdlWindow { } fn extent(&self) -> (u32, u32) { + let mut width = 0; + let mut height = 0; + unsafe { + sdl::SDL_GetWindowSize(self.window, &mut width, &mut height); + } + (width as u32, height as u32) + } + + fn drawable_extent(&self) -> (u32, u32) { let mut width = 0; let mut height = 0; unsafe { @@ -96,7 +105,10 @@ impl App for SdlApp { 0, desc.width as i32, desc.height as i32, - sdl::WINDOW_VULKAN | sdl::WINDOW_SHOWN | sdl::WINDOW_RESIZABLE, + sdl::WINDOW_VULKAN + | sdl::WINDOW_SHOWN + | sdl::WINDOW_RESIZABLE + | sdl::WINDOW_ALLOW_HIGHDPI, ) }; assert!(!window.is_null()); -- 2.49.0