From: Josh Simmons Date: Thu, 9 May 2024 08:59:13 +0000 (+0200) Subject: narcissus-app: Add HIDPI support X-Git-Url: https://git.nega.tv//gitweb.cgi?a=commitdiff_plain;h=6a529e9a7d8d641a564e077ba8478dc8b0c9c965;p=josh%2Fnarcissus narcissus-app: Add HIDPI support --- 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());