Allows resizing of windows (#8)

This commit is contained in:
bilsen 2021-07-02 01:09:46 +02:00 committed by Carter Anderson
parent 5d0655f84c
commit e1e4055a51

View File

@ -117,19 +117,22 @@ pub fn prepare_windows(
.entry(window.id) .entry(window.id)
.or_insert_with(|| render_device.create_swap_chain(surface, &swap_chain_descriptor)); .or_insert_with(|| render_device.create_swap_chain(surface, &swap_chain_descriptor));
let frame = if let Ok(swap_chain_frame) = swap_chain.get_current_frame() { let frame = match swap_chain.get_current_frame() {
swap_chain_frame Ok(swap_chain_frame) => {
} else { swap_chain_frame
let swap_chain = window_surfaces },
.swap_chains Err(wgpu::SwapChainError::Outdated) => {
.entry(window.id) let new_swap_chain = render_device.create_swap_chain(surface, &swap_chain_descriptor);
.or_insert_with(|| { let frame = new_swap_chain.get_current_frame().expect("Error recreating swap chain");
render_device.create_swap_chain(surface, &swap_chain_descriptor) window_surfaces.swap_chains.insert(
}); window.id,
new_swap_chain
swap_chain );
.get_current_frame() frame
.expect("Failed to acquire next swap chain texture!") },
err => {
err.expect("Failed to acquire next swap chain texture!")
}
}; };
window.swap_chain_frame = Some(TextureView::from(frame)); window.swap_chain_frame = Some(TextureView::from(frame));