render_graph_diagram/
render-graph-diagram.rs1use mittens_engine::{engine, engine::ecs::SignalEmitter, scripting, utils};
17
18#[path = "example_util/mod.rs"]
19mod example_util;
20
21fn main() {
22 mittens_engine::example_support::ensure_model_assets();
23 utils::logger::init();
24
25 let output = scripting::MeowMeowRunner::eval_file("examples/render-graph-diagram.mms");
26
27 for error in &output.errors {
28 eprintln!("[mms] error: {error}");
29 }
30 if !output.errors.is_empty() {
31 eprintln!(
32 "[mms] {} error(s) — scene may be incomplete",
33 output.errors.len()
34 );
35 }
36
37 println!("[mms] {} intent(s) emitted:", output.intents.len());
38 for intent in &output.intents {
39 if let engine::ecs::IntentValue::SpawnComponentTree { root, .. } = intent {
40 println!(" spawn {}", root.component_type);
41 }
42 }
43
44 let world = engine::ecs::World::default();
45 let mut universe = engine::Universe::new(world);
46
47 let scope = engine::ecs::ComponentId::default();
49 for intent in output.intents {
50 universe.command_queue.push_intent_now(scope, intent);
51 }
52
53 example_util::spawn_mms_demo_rig(&mut universe, [0.0, 2.2, 7.0]);
56
57 universe.systems.process_commands(
58 &mut universe.world,
59 &mut universe.visuals,
60 &mut universe.render_assets,
61 &mut universe.command_queue,
62 );
63
64 engine::Windowing::run_app(universe).expect("Windowing failed");
65}