diff options
Diffstat (limited to 'alligator_render/src')
| -rw-r--r-- | alligator_render/src/instance.rs | 8 | ||||
| -rw-r--r-- | alligator_render/src/renderer.rs | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/alligator_render/src/instance.rs b/alligator_render/src/instance.rs index 2d1808f..e346cae 100644 --- a/alligator_render/src/instance.rs +++ b/alligator_render/src/instance.rs @@ -151,8 +151,12 @@ impl InstanceBuffer { } // the instances must be sorted by z-index before being handed to the GPU - let mut sorted = self.instances.clone(); - sorted.sort_by(|a, b| a.z_index.total_cmp(&b.z_index)); + let sorted = { + profiling::scope!("depth sorting"); + let mut sorted = self.instances.clone(); + sorted.sort_by(|a, b| a.z_index.total_cmp(&b.z_index)); + sorted + }; queue.write_buffer( &self.instance_buffer, diff --git a/alligator_render/src/renderer.rs b/alligator_render/src/renderer.rs index ec3cac5..9f4aad1 100644 --- a/alligator_render/src/renderer.rs +++ b/alligator_render/src/renderer.rs @@ -372,7 +372,7 @@ impl Renderer { } /// Run the renderer indefinitely - pub fn run(mut self, f: &'static mut dyn FnMut(&mut Self)) -> ! { + pub fn run<F: FnMut(&mut Self) + 'static>(mut self, mut f: F) -> ! { self.window.set_visible(true); let event_loop = self.event_loop(); event_loop.run(move |event, _, control_flow| match event { |
