pub struct Windowing;Expand description
Minimal winit wrapper (2025 winit style: ApplicationHandler).
Implementations§
Source§impl Windowing
impl Windowing
Sourcepub fn run_app(universe: Universe) -> EngineResult<()>
pub fn run_app(universe: Universe) -> EngineResult<()>
Run a Universe in a winit window with default input handling.
Examples found in repository?
examples/simple-demo.rs (line 296)
280fn main() {
281 mittens_engine::example_support::ensure_model_assets();
282 utils::logger::init();
283
284 let world = engine::ecs::World::default();
285 let mut universe = engine::Universe::new(world);
286
287 build_demo_scene_7_shapes(&mut universe);
288
289 universe.systems.process_commands(
290 &mut universe.world,
291 &mut universe.visuals,
292 &mut universe.render_assets,
293 &mut universe.command_queue,
294 );
295 universe.enable_repl();
296 engine::Windowing::run_app(universe).expect("Windowing failed");
297}More examples
examples/vr-input-mms.rs (line 29)
3fn main() {
4 mittens_engine::example_support::ensure_model_assets();
5 utils::logger::init();
6
7 let output = scripting::MeowMeowRunner::eval(include_str!("vr-input.mms"));
8
9 for error in &output.errors {
10 eprintln!("[mms] {error}");
11 }
12 println!("[mms] {} intent(s) from vr-input.mms", output.intents.len());
13
14 let world = engine::ecs::World::default();
15 let mut universe = engine::Universe::new(world);
16
17 let scope = engine::ecs::ComponentId::default();
18 for intent in output.intents {
19 universe.command_queue.push_intent_now(scope, intent);
20 }
21
22 universe.systems.process_commands(
23 &mut universe.world,
24 &mut universe.visuals,
25 &mut universe.render_assets,
26 &mut universe.command_queue,
27 );
28
29 engine::Windowing::run_app(universe).expect("Windowing failed");
30}examples/ui-layout.rs (line 33)
3fn main() {
4 mittens_engine::example_support::ensure_model_assets();
5 utils::logger::init();
6
7 let output = scripting::MeowMeowRunner::eval(include_str!("ui-layout.mms"));
8
9 for error in &output.errors {
10 eprintln!("[mms] {error}");
11 }
12 println!(
13 "[mms] {} intent(s) from ui-layout.mms",
14 output.intents.len()
15 );
16
17 let world = engine::ecs::World::default();
18 let mut universe = engine::Universe::new(world);
19
20 let scope = engine::ecs::ComponentId::default();
21 for intent in output.intents {
22 universe.command_queue.push_intent_now(scope, intent);
23 }
24
25 universe.systems.process_commands(
26 &mut universe.world,
27 &mut universe.visuals,
28 &mut universe.render_assets,
29 &mut universe.command_queue,
30 );
31
32 universe.enable_repl();
33 engine::Windowing::run_app(universe).expect("Windowing failed");
34}examples/vtuber-desktop.rs (line 33)
3fn main() {
4 mittens_engine::example_support::ensure_model_assets();
5 utils::logger::init();
6
7 let output = scripting::MeowMeowRunner::eval(include_str!("vtuber-desktop.mms"));
8
9 for error in &output.errors {
10 eprintln!("[mms] {error}");
11 }
12 println!(
13 "[mms] {} intent(s) from vtuber-desktop.mms",
14 output.intents.len()
15 );
16
17 let world = engine::ecs::World::default();
18 let mut universe = engine::Universe::new(world);
19
20 let scope = engine::ecs::ComponentId::default();
21 for intent in output.intents {
22 universe.command_queue.push_intent_now(scope, intent);
23 }
24
25 universe.systems.process_commands(
26 &mut universe.world,
27 &mut universe.visuals,
28 &mut universe.render_assets,
29 &mut universe.command_queue,
30 );
31
32 universe.enable_repl();
33 engine::Windowing::run_app(universe).expect("Windowing failed");
34}examples/inline-block-layout.rs (line 33)
3fn main() {
4 mittens_engine::example_support::ensure_model_assets();
5 utils::logger::init();
6
7 let output = scripting::MeowMeowRunner::eval(include_str!("inline-block-layout.mms"));
8
9 for error in &output.errors {
10 eprintln!("[mms] {error}");
11 }
12 println!(
13 "[mms] {} intent(s) from inline-block-layout.mms",
14 output.intents.len()
15 );
16
17 let world = engine::ecs::World::default();
18 let mut universe = engine::Universe::new(world);
19
20 let scope = engine::ecs::ComponentId::default();
21 for intent in output.intents {
22 universe.command_queue.push_intent_now(scope, intent);
23 }
24
25 universe.systems.process_commands(
26 &mut universe.world,
27 &mut universe.visuals,
28 &mut universe.render_assets,
29 &mut universe.command_queue,
30 );
31
32 universe.enable_repl();
33 engine::Windowing::run_app(universe).expect("Windowing failed");
34}examples/vtuber-desktop-first-person.rs (line 33)
3fn main() {
4 mittens_engine::example_support::ensure_model_assets();
5 utils::logger::init();
6
7 let output = scripting::MeowMeowRunner::eval(include_str!("vtuber-desktop-first-person.mms"));
8
9 for error in &output.errors {
10 eprintln!("[mms] {error}");
11 }
12 println!(
13 "[mms] {} intent(s) from vtuber-desktop-first-person.mms",
14 output.intents.len()
15 );
16
17 let world = engine::ecs::World::default();
18 let mut universe = engine::Universe::new(world);
19
20 let scope = engine::ecs::ComponentId::default();
21 for intent in output.intents {
22 universe.command_queue.push_intent_now(scope, intent);
23 }
24
25 universe.systems.process_commands(
26 &mut universe.world,
27 &mut universe.visuals,
28 &mut universe.render_assets,
29 &mut universe.command_queue,
30 );
31
32 universe.enable_repl();
33 engine::Windowing::run_app(universe).expect("Windowing failed");
34}Additional examples can be found in:
- examples/text-input.rs
- examples/text-editor.rs
- examples/pipe-demo.rs
- examples/vtuber-secondary-motion.rs
- examples/query-demo.rs
- examples/component-method-call.rs
- examples/bloom.rs
- examples/mms-tables.rs
- examples/camera-constraint.rs
- examples/input-xr-gamepad.rs
- examples/font-size.rs
- examples/table-field-reassign.rs
- examples/world-panel.rs
- examples/padding-demo.rs
- examples/pride.rs
- examples/observer-router.rs
- examples/percentage-layout.rs
- examples/clip-shape.rs
- examples/neon-kawaii.rs
- examples/bisket-bones-and-ik.rs
- examples/bisket-desktop-demo.rs
- examples/bisket-vr-only-example.rs
- examples/rotate-look-at-example.rs
- examples/mms-loops.rs
- examples/http-server-example.rs
- examples/transition.rs
- examples/mms-functions.rs
- examples/signal-handler.rs
- examples/gestures-and-gizmos.rs
- examples/mms-module-example.rs
- examples/render-graph-diagram.rs
- examples/triage/panel-pierce.rs
- examples/vtuber-mirror-example.rs
- examples/vtuber-editor-example.rs
- examples/router.rs
- examples/camera-toggle.rs
- examples/audio-clip-instance-demo.rs
- examples/scrolling.rs
- examples/audio-music-demo.rs
- examples/diy-panel.rs
- examples/opacity-example.rs
- examples/pointer-events.rs
- examples/text-animation.rs
- examples/button-press.rs
- examples/vtuber-example.rs
- examples/openxr.rs
- examples/transparent-cutout-example.rs
- examples/text-example.rs
- examples/background-example.rs
- examples/mesh-factory-example.rs
- examples/bisket-vr-demo.rs
- examples/background-occlusion-example.rs
- examples/raycast-topology-animation.rs
- examples/animation-for-topology.rs
- examples/vr-input.rs
- examples/font-example.rs
- examples/vtuber-joints-example.rs
- examples/animation-example.rs
- examples/folder-text.rs
- examples/collision-perimeter.rs
- examples/audio-graph-example.rs
- examples/gravity-fields.rs
Sourcepub fn run_app_with_input(
universe: Universe,
user_input: UserInput,
) -> EngineResult<()>
pub fn run_app_with_input( universe: Universe, user_input: UserInput, ) -> EngineResult<()>
Run a Universe in a winit window with a caller-provided UserInput.
Auto Trait Implementations§
impl Freeze for Windowing
impl RefUnwindSafe for Windowing
impl Send for Windowing
impl Sync for Windowing
impl Unpin for Windowing
impl UnsafeUnpin for Windowing
impl UnwindSafe for Windowing
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.