Something went wrong. Try again.
iterative image reconstruction using random cubic bézier strokes, accelerated on metal
metal graphics rust
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637mod args;mod fs;mod log;mod metal;mod oklab;mod rng;mod sampling;mod pipeline;
use crate::pipeline::{process_dir, process_one, ResolvedOutput};use std::path::{Path, PathBuf};use std::process::ExitCode;
fn main() -> ExitCode { match real_main() { Ok(()) => ExitCode::SUCCESS, Err(msg) => { eprintln!("{msg}"); ExitCode::FAILURE } } }
fn real_main() -> Result<(), String> { let args = std::env::args().collect::<Vec<_>>(); let cfg = args::Config::parse(&args)?;
log::set_level(cfg.log);
let input_path = Path::new(&cfg.input);
if input_path.is_dir() { if cfg.current.is_some() { return Err("-c/--current is not supported when input is a directory".into()); } let out_root = fs::validate_and_prepare_dir_output(&cfg)?; return process_dir(&cfg, input_path, &out_root); }
let output = ResolvedOutput::from_config(&cfg, PathBuf::from(&cfg.output)); let final_path = process_one(&cfg, input_path, output)?; println!("output: {}", final_path.display());
Ok(()) }