diff options
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, |
