From 19538454a60549d05ee6a0ffd54cef6d7bdc8ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Lupien=20=28Jojolepro=29?= Date: Wed, 12 Dec 2018 14:18:42 -0500 Subject: [PATCH] Fixed wrong reported screen dimensions, and initial screen dimensions (DisplayConfig). --- amethyst_renderer/src/renderer.rs | 8 +++++--- amethyst_renderer/src/system.rs | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/amethyst_renderer/src/renderer.rs b/amethyst_renderer/src/renderer.rs index 7552acd3c0..d2f7cb730d 100644 --- a/amethyst_renderer/src/renderer.rs +++ b/amethyst_renderer/src/renderer.rs @@ -182,16 +182,18 @@ impl RendererBuilder { wb = wb.with_fullscreen(Some(self.events.get_primary_monitor())); } + let hidpi = self.events.get_primary_monitor().get_hidpi_factor(); + if let Some(dimensions) = self.config.dimensions { - wb = wb.with_dimensions(dimensions.into()); + wb = wb.with_dimensions(LogicalSize::from_physical(dimensions, hidpi)); } if let Some(dimensions) = self.config.min_dimensions { - wb = wb.with_min_dimensions(dimensions.into()); + wb = wb.with_min_dimensions(LogicalSize::from_physical(dimensions, hidpi)); } if let Some(dimensions) = self.config.max_dimensions { - wb = wb.with_max_dimensions(dimensions.into()); + wb = wb.with_max_dimensions(LogicalSize::from_physical(dimensions, hidpi)); } self.winit_builder = wb; diff --git a/amethyst_renderer/src/system.rs b/amethyst_renderer/src/system.rs index 4c36cf3a7b..731bb5094e 100644 --- a/amethyst_renderer/src/system.rs +++ b/amethyst_renderer/src/system.rs @@ -127,8 +127,10 @@ where screen_dimensions.dirty = false; } + let hidpi = self.renderer.window().get_hidpi_factor(); + if let Some(size) = self.renderer.window().get_inner_size() { - let (window_width, window_height): (f64, f64) = size.into(); + let (window_width, window_height): (f64, f64) = size.to_physical(hidpi).into(); // Send window size changes to the resource if (window_width, window_height) != (width, height) { @@ -139,7 +141,7 @@ where screen_dimensions.dirty = false; } } - screen_dimensions.update_hidpi_factor(self.renderer.window().get_hidpi_factor()); + screen_dimensions.update_hidpi_factor(hidpi); } fn render(&mut self, (mut event_handler, data): RenderData<'_, P>) {