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
15#[must_use]
17pub fn run<T: Application>(
18 title: &str,
19 virtual_size: UVec2,
20 requested_surface_size: UVec2,
21) -> AppReturnValue {
22 App::new()
23 .insert_resource(Window {
24 title: title.to_string(),
25 requested_surface_size,
26 minimal_surface_size: virtual_size,
27 mode: ScreenMode::Windowed,
28 })
29 .insert_resource(GameSettings { virtual_size })
30 .add_plugins((limnus::DefaultPlugins, DefaultPlugins))
31 .add_plugins(GamePlugin::<T>::new())
32 .run()
33}
34
35pub struct DefaultPlugins;
36
37impl Plugin for DefaultPlugins {
38 fn build(&self, app: &mut App) {
39 app.add_plugins((RenderWgpuPlugin, MaterialPlugin, FontPlugin));
40 }
41}