vert 0.1.1

The 51th Rust Game Engine, to write the 6th Game in Rust
Documentation
use crate::{Dependencies, Handle, Plugin};
pub mod renderer;
pub use renderer::{
    AcesToneMapping, Attribute, Bloom, BloomSettings, MainPassRenderer, PostProcessingEffect,
    Prepare, Renderer, ScreenVertexShader, ToneMappingSettings, VertexT,
};

pub mod winit_main;
pub use winit_main::WinitMain;

pub mod graphics_context;
pub use graphics_context::GraphicsContext;

pub mod tokio_runtime;
pub use tokio_runtime::TokioRuntime;

pub mod input;
pub use input::Input;

pub mod scheduler;
pub use scheduler::{Schedule, Scheduler};

pub mod time;
pub use time::Time;

pub mod camera;
pub use camera::MainCamera3D;

pub mod screen_size;
pub use screen_size::{MainScreenSize, ScreenSize};

pub mod arenas;
pub use arenas::Arenas;

pub mod egui;
pub use egui::Egui;

pub mod ui;

use self::{
    renderer::main_pass_renderer::{
        ColorMeshRenderer, Gizmos, TextRenderer, UiRectRenderer, WorldRectRenderer,
    },
    ui::{UiDeps, UiPlugin},
};

pub mod batteries;

pub struct DefaultModules;

impl Plugin for DefaultModules {
    fn add(&self, app: &mut crate::AppBuilder) {
        app.add_main_module::<WinitMain>();
        app.add::<TokioRuntime>();
        app.add::<GraphicsContext>();
        app.add::<Scheduler>();
        app.add::<Input>();
        app.add::<Time>();
        app.add::<Renderer>();
        app.add::<Arenas>();
        app.add::<MainCamera3D>();
        app.add::<MainScreenSize>();
        app.add_with_config::<Bloom>(BloomSettings::default());
        app.add_with_config::<AcesToneMapping>(ToneMappingSettings::Aces);
        app.add::<Gizmos>();
        app.add::<ColorMeshRenderer>();
        app.add::<Egui>();
        app.add::<UiRectRenderer>();
        app.add::<WorldRectRenderer>();
        app.add::<TextRenderer>();
        app.add_plugin(UiPlugin);
    }
}

#[derive(Debug, Dependencies, Clone)]
pub struct DefaultDependencies {
    pub winit: Handle<WinitMain>,
    pub tokio: Handle<TokioRuntime>,
    pub ctx: Handle<GraphicsContext>,
    pub scheduler: Handle<Scheduler>,
    pub input: Handle<Input>,
    pub time: Handle<Time>,
    pub renderer: Handle<Renderer>,
    pub arenas: Handle<Arenas>,
    pub camera_3d: Handle<MainCamera3D>,
    pub screen_size: Handle<MainScreenSize>,
    pub bloom: Handle<Bloom>,
    pub tone_mapping: Handle<AcesToneMapping>,
    pub egui: Handle<Egui>,
    pub gizmos: Handle<Gizmos>,
    pub color_mesh: Handle<ColorMeshRenderer>,
    pub ui_rects: Handle<UiRectRenderer>,
    pub world_rects: Handle<WorldRectRenderer>,
    pub text: Handle<TextRenderer>,
    pub ui: UiDeps,
}