#![feature(unix_socket_ancillary_data)] #![feature(str_from_utf16_endian)] #![feature(try_blocks)] #![allow(dead_code, unused_variables)] mod assets; mod terminal; mod background; mod toggle; mod overlay; mod input; mod ffi; mod texture_server; use teleia::*; use clap::{command, Command}; pub fn main() -> Erm<()> { let matches = command!() .propagate_version(true) .subcommand_required(true) .arg_required_else_help(true) .subcommand(Command::new("overlay").about("Run the full-screen transparent overlay")) .subcommand(Command::new("model-terminal").about("Run the LCOLONQ model renderer in a terminal")) .get_matches(); match matches.subcommand() { Some(("overlay", _cm)) => { teleia::run("LCOLONQ", 1920, 1080, teleia::Options::OVERLAY, |ctx, st| { overlay::Overlays::new(ctx, st, vec![ Box::new(overlay::automata::Overlay::new(ctx)), Box::new(overlay::shader::Overlay::new(ctx)), Box::new(overlay::tcg::Overlay::new(ctx)), Box::new(overlay::clippy::Overlay::new(ctx)), // Box::new(overlay::handcam::Overlay::new(ctx)), Box::new(overlay::combo::Overlay::new(ctx)), Box::new(overlay::drawing::Overlay::new(ctx)), Box::new(overlay::asset::Overlay::new(ctx)), // Box::new(overlay::model::Overlay::new(ctx)), // Box::new(overlay::loopback::Overlay::new(ctx)), ]) })?; }, Some(("model-terminal", _cm)) => { teleia::run("LCOLONQ", 1920, 1080, teleia::Options::HIDDEN, overlay::model::Terminal::new)?; }, _ => unreachable!("no subcommand"), } Ok(()) }