diff --git a/vulkan-rs/src/swapchain.rs b/vulkan-rs/src/swapchain.rs index 182365c..4f5c860 100644 --- a/vulkan-rs/src/swapchain.rs +++ b/vulkan-rs/src/swapchain.rs @@ -133,11 +133,24 @@ impl Swapchain { device: Arc, swapchain_ci: &VkSwapchainCreateInfoKHR, ) -> Result> { - Ok(Self::from_raw( - device.clone(), - swapchain_ci, - device.create_swapchain(swapchain_ci)?, - )) + Ok(Arc::new(Swapchain { + width: AtomicU32::new(swapchain_ci.imageExtent.width), + height: AtomicU32::new(swapchain_ci.imageExtent.height), + usage: swapchain_ci.imageUsage, + index: AtomicU32::new(0), + + surface: Surface::from_vk_surface( + swapchain_ci.surface, + device.physical_device().instance(), + ), + + create_info: Mutex::new(swapchain_ci.clone()), + + swapchain: Mutex::new(device.create_swapchain(swapchain_ci)?), + device, + + raw: false, + })) } pub fn from_raw(