mireforge_boot_game/
lib.rs1pub mod prelude;
6
7use int_math::UVec2;
8use limnus::prelude::{App, AppReturnValue, ScreenMode};
9use limnus::prelude::{Plugin, Window};
10use mireforge_font::FontPlugin;
11use mireforge_game::{Application, GamePlugin, GameSettings};
12use mireforge_material::MaterialPlugin;
13use mireforge_render_wgpu::plugin::RenderWgpuPlugin;
14
15pub fn run<T: Application>(
17 title: &str,
18 virtual_size: UVec2,
19 requested_surface_size: UVec2,
20) -> AppReturnValue {
21 App::new()
22 .insert_resource(Window {
23 title: title.to_string(),
24 requested_surface_size,
25 minimal_surface_size: virtual_size,
26 mode: ScreenMode::Windowed,
27 })
28 .insert_resource(GameSettings { virtual_size })
29 .add_plugins((limnus::DefaultPlugins, DefaultPlugins))
30 .add_plugins(GamePlugin::<T>::new())
31 .run()
32}
33
34pub struct DefaultPlugins;
35
36impl Plugin for DefaultPlugins {
37 fn build(&self, app: &mut App) {
38 app.add_plugins((RenderWgpuPlugin, MaterialPlugin, FontPlugin));
39 }
40}