only create wgpu swap chain when surface is ready
This commit is contained in:
parent
26ff878469
commit
ed9eb88835
@ -6,7 +6,7 @@ fn main() {
|
|||||||
.setup_world(setup)
|
.setup_world(setup)
|
||||||
.add_system(build_move_system())
|
.add_system(build_move_system())
|
||||||
.add_default_diagnostics()
|
.add_default_diagnostics()
|
||||||
.print_diagnostics(std::time::Duration::from_secs_f64(1.0))
|
.print_diagnostics()
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,6 +346,7 @@ impl WgpuRenderer {
|
|||||||
|
|
||||||
impl Renderer for WgpuRenderer {
|
impl Renderer for WgpuRenderer {
|
||||||
fn resize(&mut self, world: &mut World, resources: &mut Resources) {
|
fn resize(&mut self, world: &mut World, resources: &mut Resources) {
|
||||||
|
if let Some(surface) = self.surface.as_ref() {
|
||||||
self.encoder = Some(
|
self.encoder = Some(
|
||||||
self.device
|
self.device
|
||||||
.borrow()
|
.borrow()
|
||||||
@ -359,7 +360,7 @@ impl Renderer for WgpuRenderer {
|
|||||||
let swap_chain = self
|
let swap_chain = self
|
||||||
.device
|
.device
|
||||||
.borrow()
|
.borrow()
|
||||||
.create_swap_chain(self.surface.as_ref().unwrap(), &swap_chain_descriptor);
|
.create_swap_chain(surface, &swap_chain_descriptor);
|
||||||
|
|
||||||
// WgpuRenderer can't own swap_chain without creating lifetime ergonomics issues, so lets just store it in World.
|
// WgpuRenderer can't own swap_chain without creating lifetime ergonomics issues, so lets just store it in World.
|
||||||
resources.insert(swap_chain);
|
resources.insert(swap_chain);
|
||||||
@ -371,6 +372,10 @@ impl Renderer for WgpuRenderer {
|
|||||||
// consume current encoder
|
// consume current encoder
|
||||||
let command_buffer = self.encoder.take().unwrap().finish();
|
let command_buffer = self.encoder.take().unwrap().finish();
|
||||||
self.queue.submit(&[command_buffer]);
|
self.queue.submit(&[command_buffer]);
|
||||||
|
} else {
|
||||||
|
// TODO: remove this warning if this case is not a problem
|
||||||
|
println!("warning: attempted to resize renderer before surface was ready");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update(&mut self, world: &mut World, resources: &mut Resources) {
|
fn update(&mut self, world: &mut World, resources: &mut Resources) {
|
||||||
|
Loading…
Reference in New Issue
Block a user