MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / main

Function main

tools/bloom-reference/src/main.rs:2214–2329  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2212}
2213
2214fn main() -> ExitCode {
2215 let args = match parse_args() {
2216 Ok(a) => a,
2217 Err(e) => {
2218 eprintln!("error: {e}");
2219 return ExitCode::from(2);
2220 }
2221 };
2222
2223 let load_start = Instant::now();
2224 let scene = match load_scene(Path::new(&args.scene_path)) {
2225 Ok(s) => s,
2226 Err(e) => {
2227 eprintln!("error loading {}: {}", args.scene_path, e);
2228 return ExitCode::from(1);
2229 }
2230 };
2231 println!(
2232 "scene: {} triangles, {} materials, {} textures ({:?})",
2233 scene.triangles.len(),
2234 scene.materials.len(),
2235 scene.textures.len(),
2236 load_start.elapsed()
2237 );
2238
2239 let bvh_start = Instant::now();
2240 let bvh = build_bvh(&scene.triangles);
2241 println!(
2242 "bvh: {} nodes ({:?})",
2243 bvh.nodes.len(),
2244 bvh_start.elapsed()
2245 );
2246
2247 let environment = match &args.env_path {
2248 Some(p) => {
2249 let start = Instant::now();
2250 match Environment::load_hdr(Path::new(p), args.env_intensity) {
2251 Ok(env) => {
2252 println!("env: {}x{} ({:?})", env.width, env.height, start.elapsed());
2253 env
2254 }
2255 Err(e) => {
2256 eprintln!("warn: failed to load env {}: {}. Using procedural.", p, e);
2257 Environment::procedural()
2258 }
2259 }
2260 }
2261 None => {
2262 println!("env: procedural (no --env supplied)");
2263 Environment::procedural()
2264 }
2265 };
2266
2267 let sun = args.sun_direction.map(|dir| SunLight {
2268 direction_to_light: dir,
2269 color: args.sun_color,
2270 intensity: args.sun_intensity,
2271 });

Callers

nothing calls this directly

Calls 6

load_sceneFunction · 0.85
build_bvhFunction · 0.85
renderFunction · 0.85
bbox_centerMethod · 0.80
bbox_radiusMethod · 0.80
parse_argsFunction · 0.70

Tested by

no test coverage detected