From 121846b0e35607bf8b48d5ce304a65e2657be455 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Wed, 13 Sep 2017 13:55:22 -0700 Subject: ray: cleanup ray_camera_frame_t fragments Previously every fb_fragment_t (and thus thread) was constructing its own ray_camera_frame_t view into the scene, duplicating some work. Instead introduce ray_camera_fragment_t to encapsulate the truly per-fragment state and make ray_scene_render_fragment() operate on just this stuff with a reference to a shared ray_camera_frame_t prepared once per-frame. Some minor ray_camera.c cleanups sneak in as well (prefer multiply instead of divide, whitespace cleanups...) --- src/modules/ray/ray_scene.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/modules/ray/ray_scene.h') diff --git a/src/modules/ray/ray_scene.h b/src/modules/ray/ray_scene.h index 98928ee..1fe736c 100644 --- a/src/modules/ray/ray_scene.h +++ b/src/modules/ray/ray_scene.h @@ -20,11 +20,12 @@ typedef struct ray_scene_t { float ambient_brightness; struct { - ray_color_t ambient_light; + ray_color_t ambient_light; + ray_camera_frame_t frame; } _prepared; } ray_scene_t; void ray_scene_prepare(ray_scene_t *scene, ray_camera_t *camera); -void ray_scene_render_fragment(ray_scene_t *scene, ray_camera_t *camera, fb_fragment_t *fragment); +void ray_scene_render_fragment(ray_scene_t *scene, fb_fragment_t *fb_fragment); #endif -- cgit v1.2.1