From dc837f71978da564f8945678e400b6551b6bd6af Mon Sep 17 00:00:00 2001 From: Mark Poliakov Date: Tue, 5 Jul 2022 21:13:58 +0300 Subject: [PATCH] Fix flipped Y-axis in viewport --- src/render/context.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/render/context.rs b/src/render/context.rs index 595bffa..30fc5a6 100644 --- a/src/render/context.rs +++ b/src/render/context.rs @@ -51,6 +51,7 @@ impl VulkanContext { let required_extensions = vulkano_win::required_extensions(); let device_extensions = DeviceExtensions { khr_swapchain: true, + khr_maintenance1: true, // Required for flipping Y-axis on viewport ..DeviceExtensions::none() }; @@ -119,8 +120,8 @@ impl VulkanContext { let framebuffers = Self::create_framebuffers(&swapchain_images, render_pass.clone())?; let viewport = Viewport { - origin: [0.0, 0.0], - dimensions: dim.into(), + origin: [0.0, dim.height as f32], + dimensions: [dim.width as f32, -(dim.height as f32)], depth_range: 0.0..1.0, }; @@ -236,7 +237,10 @@ impl VulkanContext { fn recreate_swapchain(&mut self) -> Result<(f32, f32), EngineError> { let dim = self.surface.window().inner_size(); - self.viewport.dimensions = dim.into(); + + self.viewport.origin[1] = dim.height as f32; + self.viewport.dimensions[0] = dim.width as f32; + self.viewport.dimensions[1] = -(dim.height as f32); let (new_swapchain, new_images) = match self.swapchain.recreate(SwapchainCreateInfo { image_extent: dim.into(),