mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 04:33:37 +00:00
Allows resizing of windows (#8)
This commit is contained in:
parent
5d0655f84c
commit
e1e4055a51
1 changed files with 16 additions and 13 deletions
|
@ -117,19 +117,22 @@ pub fn prepare_windows(
|
|||
.entry(window.id)
|
||||
.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() {
|
||||
swap_chain_frame
|
||||
} else {
|
||||
let swap_chain = window_surfaces
|
||||
.swap_chains
|
||||
.entry(window.id)
|
||||
.or_insert_with(|| {
|
||||
render_device.create_swap_chain(surface, &swap_chain_descriptor)
|
||||
});
|
||||
|
||||
swap_chain
|
||||
.get_current_frame()
|
||||
.expect("Failed to acquire next swap chain texture!")
|
||||
let frame = match swap_chain.get_current_frame() {
|
||||
Ok(swap_chain_frame) => {
|
||||
swap_chain_frame
|
||||
},
|
||||
Err(wgpu::SwapChainError::Outdated) => {
|
||||
let new_swap_chain = render_device.create_swap_chain(surface, &swap_chain_descriptor);
|
||||
let frame = new_swap_chain.get_current_frame().expect("Error recreating swap chain");
|
||||
window_surfaces.swap_chains.insert(
|
||||
window.id,
|
||||
new_swap_chain
|
||||
);
|
||||
frame
|
||||
},
|
||||
err => {
|
||||
err.expect("Failed to acquire next swap chain texture!")
|
||||
}
|
||||
};
|
||||
|
||||
window.swap_chain_frame = Some(TextureView::from(frame));
|
||||
|
|
Loading…
Reference in a new issue