From 7d32f05f6123dc12ab099cf337f9abe137750e43 Mon Sep 17 00:00:00 2001 From: Sakarias Johansson Date: Tue, 14 Mar 2023 15:39:45 +0100 Subject: =?UTF-8?q?=F0=9F=A7=B9=20Misc=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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. --- racer-tracer/src/render.rs | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) (limited to 'racer-tracer/src/render.rs') 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>, 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>, camera: &RwLock, @@ -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, -- cgit v1.2.3