move plugin to core

This commit is contained in:
Carter Anderson 2020-03-29 01:04:27 -07:00
parent 45d4f25a93
commit e2393de97c
10 changed files with 16 additions and 19 deletions

View File

@ -1,8 +1,7 @@
use crate::{ use crate::{
app::{system_stage, App}, app::{system_stage, App},
core::{winit::WinitPlugin, CorePlugin}, core::{plugin::{AppPlugin, load_plugin}, winit::WinitPlugin, CorePlugin},
legion::prelude::{Resources, Runnable, Schedulable, Schedule, Universe, World}, legion::prelude::{Resources, Runnable, Schedulable, Schedule, Universe, World},
plugin::{load_plugin, AppPlugin},
render::{renderer::Renderer, *}, render::{renderer::Renderer, *},
ui, ui,
}; };

View File

@ -1,5 +1,5 @@
use super::{Time, Window}; use super::{Time, Window, plugin::AppPlugin};
use crate::{app::AppBuilder, plugin::AppPlugin}; use crate::{app::AppBuilder};
#[derive(Default)] #[derive(Default)]
pub struct CorePlugin; pub struct CorePlugin;
@ -9,6 +9,7 @@ impl AppPlugin for CorePlugin {
app.add_resource(Window::default()) app.add_resource(Window::default())
.add_resource(Time::new()) .add_resource(Time::new())
} }
fn name(&self) -> &'static str { fn name(&self) -> &'static str {
"Core" "Core"
} }

View File

@ -1,6 +1,7 @@
pub mod bytes; pub mod bytes;
mod time; mod time;
pub mod window; pub mod window;
pub mod plugin;
mod core_plugin; mod core_plugin;
pub use bytes::*; pub use bytes::*;

View File

@ -7,7 +7,7 @@ pub trait AppPlugin: Any + Send + Sync {
fn name(&self) -> &'static str; fn name(&self) -> &'static str;
} }
type CreateAppPlugin = unsafe fn() -> *mut dyn AppPlugin; pub type CreateAppPlugin = unsafe fn() -> *mut dyn AppPlugin;
pub fn load_plugin(path: &str) -> (Library, Box<dyn AppPlugin>) { pub fn load_plugin(path: &str) -> (Library, Box<dyn AppPlugin>) {
let lib = Library::new(path).unwrap(); let lib = Library::new(path).unwrap();

View File

@ -1,6 +1,5 @@
use crate::{ use crate::{
app::{App, AppBuilder}, app::{App, AppBuilder}, core::plugin::AppPlugin,
plugin::AppPlugin,
}; };
use super::Window; use super::Window;

View File

@ -2,7 +2,7 @@ use super::{
diagnostics::{frame_time_diagnostic_system, print_diagnostics_system}, diagnostics::{frame_time_diagnostic_system, print_diagnostics_system},
Diagnostics, Diagnostics,
}; };
use crate::{app::AppBuilder, plugin::AppPlugin}; use crate::{app::AppBuilder, core::plugin::AppPlugin};
use std::time::Duration; use std::time::Duration;
pub struct DiagnosticsPlugin { pub struct DiagnosticsPlugin {
@ -25,9 +25,8 @@ impl AppPlugin for DiagnosticsPlugin {
fn build(&self, mut app: AppBuilder) -> AppBuilder { fn build(&self, mut app: AppBuilder) -> AppBuilder {
app = app.add_resource(Diagnostics::default()); app = app.add_resource(Diagnostics::default());
if self.add_defaults { if self.add_defaults {
let frame_time_diagnostic_system = { let frame_time_diagnostic_system =
frame_time_diagnostic_system(&mut app.resources, 10) { frame_time_diagnostic_system(&mut app.resources, 10) };
};
app = app.add_system(frame_time_diagnostic_system) app = app.add_system(frame_time_diagnostic_system)
} }

View File

@ -4,7 +4,6 @@ pub mod asset;
pub mod core; pub mod core;
pub mod diagnostic; pub mod diagnostic;
pub mod ecs; pub mod ecs;
pub mod plugin;
pub mod prelude; pub mod prelude;
pub mod render; pub mod render;
pub mod serialization; pub mod serialization;

View File

@ -1,7 +1,7 @@
pub use crate::{ pub use crate::{
app::{App, AppBuilder}, app::{App, AppBuilder},
asset::{Asset, AssetStorage, Handle}, asset::{Asset, AssetStorage, Handle},
core::{Time, Window}, core::{Time, Window, plugin::AppPlugin},
ecs, ecs,
ecs::{ ecs::{
default_archetypes::*, CommandBufferBuilderSource, EntityArchetype, WorldBuilder, default_archetypes::*, CommandBufferBuilderSource, EntityArchetype, WorldBuilder,

View File

@ -11,12 +11,12 @@ use super::{
MeshResourceProvider, UiResourceProvider, MeshResourceProvider, UiResourceProvider,
}, },
AssetBatchers, EntityRenderResourceAssignments, RenderResourceAssignments, AssetBatchers, EntityRenderResourceAssignments, RenderResourceAssignments,
}, RenderContext, },
}; };
use crate::{ use crate::{
app::AppBuilder, app::AppBuilder,
asset::AssetStorage, asset::AssetStorage,
plugin::AppPlugin, core::plugin::AppPlugin,
prelude::{ prelude::{
LocalToWorld, Mesh, PipelineDescriptor, Shader, StandardMaterial, Texture, LocalToWorld, Mesh, PipelineDescriptor, Shader, StandardMaterial, Texture,
UniformResourceProvider, UniformResourceProvider,
@ -57,7 +57,6 @@ impl AppPlugin for RenderPlugin {
let mut asset_batchers = AssetBatchers::default(); let mut asset_batchers = AssetBatchers::default();
asset_batchers.batch_types2::<Mesh, StandardMaterial>(); asset_batchers.batch_types2::<Mesh, StandardMaterial>();
app = app app = app
.add_resource(RenderContext::default())
.add_resource(RenderGraph::default()) .add_resource(RenderGraph::default())
.add_resource(AssetStorage::<Mesh>::new()) .add_resource(AssetStorage::<Mesh>::new())
.add_resource(AssetStorage::<Texture>::new()) .add_resource(AssetStorage::<Texture>::new())

View File

@ -7,7 +7,7 @@ pub use wgpu_render_pass::*;
pub use wgpu_renderer::*; pub use wgpu_renderer::*;
pub use wgpu_resources::*; pub use wgpu_resources::*;
use crate::{app::AppBuilder, plugin::AppPlugin}; use crate::{app::AppBuilder, core::plugin::AppPlugin};
pub struct WgpuRendererPlugin; pub struct WgpuRendererPlugin;