mod app;
mod project;
mod views;
mod worker;
fn main() -> eframe::Result {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
let mut open: Option<std::path::PathBuf> = None;
let mut mode: Option<app::Mode> = None;
let mut args = std::env::args().skip(1);
while let Some(arg) = args.next() {
if arg == "--mode" {
match args.next().as_deref().map(app::Mode::from_name) {
Some(Some(m)) => mode = Some(m),
_ => log::warn!("--mode: expected data|tune|center|run|output|live"),
}
} else {
open = Some(std::path::PathBuf::from(arg));
}
}
let options = eframe::NativeOptions {
renderer: eframe::Renderer::Wgpu,
viewport: rsplot::egui::ViewportBuilder::default()
.with_title("tomoxide")
.with_inner_size([1440.0, 900.0]),
..Default::default()
};
eframe::run_native(
"tomoxide",
options,
Box::new(move |cc| Ok(Box::new(app::App::new(cc, open, mode)) as Box<dyn eframe::App>)),
)
}