diff options
| author | Sakarias Johansson <sakarias.johansson@goodbyekansas.com> | 2023-03-14 15:39:45 +0100 |
|---|---|---|
| committer | Sakarias Johansson <sakariasjohansson@hotmail.com> | 2023-03-14 20:32:13 +0100 |
| commit | 7d32f05f6123dc12ab099cf337f9abe137750e43 (patch) | |
| tree | e30ad8933ae3e71f2beec104abf1ce3bcd1aa329 /racer-tracer/src/render.rs | |
| parent | f19c8cc40c5caf8abb4f04aaf9f91ec3a8c1ccbc (diff) | |
| download | racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.tar.gz racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.tar.xz racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.zip | |
🧹 Misc cleanup
- Was pointless to have one event for render and one for
cancel. Reduced it to one while fixing a minor bug.
- Remove useless dereference and borrow. Not sure how it
ended up like that.
- Moved around some code.
Diffstat (limited to 'racer-tracer/src/render.rs')
| -rw-r--r-- | racer-tracer/src/render.rs | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/racer-tracer/src/render.rs b/racer-tracer/src/render.rs index fefafce..6926091 100644 --- a/racer-tracer/src/render.rs +++ b/racer-tracer/src/render.rs @@ -1,4 +1,4 @@ -use std::{borrow::Borrow, sync::RwLock, time::Duration}; +use std::{sync::RwLock, time::Duration}; use rayon::prelude::*; use synchronoise::SignalEvent; @@ -34,6 +34,21 @@ fn ray_color(scene: &dyn Hittable, ray: &Ray, depth: usize) -> Vec3 { (1.0 - t) * first_color + t * second_color } +fn do_cancel(cancel_event: Option<&SignalEvent>) -> bool { + match cancel_event { + Some(event) => event.wait_timeout(Duration::from_secs(0)), + None => false, + } +} + +fn get_highest_divdable(value: usize, mut div: usize) -> usize { + // Feels like there could possibly be some other nicer trick to this. + while (value % div) != 0 { + div -= 1; + } + div +} + pub fn raytrace_scaled( buffer: &RwLock<Vec<u32>>, cancel_event: Option<&SignalEvent>, @@ -146,21 +161,6 @@ pub fn raytrace( }) } -fn do_cancel(cancel_event: Option<&SignalEvent>) -> bool { - match cancel_event { - Some(event) => event.wait_timeout(Duration::from_secs(0)), - None => false, - } -} - -fn get_highest_divdable(value: usize, mut div: usize) -> usize { - // Feels like there could possibly be some other nicer trick to this. - while (value % div) != 0 { - div -= 1; - } - div -} - pub fn render( buffer: &RwLock<Vec<u32>>, camera: &RwLock<Camera>, @@ -228,21 +228,12 @@ pub fn render( .into_par_iter() .map(|image| { scale.map_or_else( - || { - raytrace( - buffer, - cancel_event, - (*scene).borrow(), - cam.clone(), - &image, - data, - ) - }, + || raytrace(buffer, cancel_event, scene, cam.clone(), &image, data), |_| { raytrace_scaled( buffer, cancel_event, - (*scene).borrow(), + scene, cam.clone(), &image, data, |
