Fix flipped Y-axis in viewport

This commit is contained in:
Mark Poliakov 2022-07-05 21:13:58 +03:00
parent 12731f507c
commit dc837f7197

View File

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