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(),