make window its own plugin and rename add_defaults to add_default_plugins
This commit is contained in:
		
							parent
							
								
									f6f8ba2cb6
								
							
						
					
					
						commit
						5cbf606ef7
					
				| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| #[derive(Uniforms, Default)] | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().run(); | ||||
|     App::build().add_default_plugins().run(); | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| #[allow(dead_code)] | ||||
|  | ||||
| @ -6,7 +6,7 @@ struct MyEvent { | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .add_event::<MyEvent>() | ||||
|         .add_system(event_trigger_system()) | ||||
|         .build_system(event_listener_system) | ||||
|  | ||||
| @ -3,7 +3,7 @@ use rand::{rngs::StdRng, Rng, SeedableRng}; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .add_system(build_move_system()) | ||||
|         .add_plugin(DiagnosticsPlugin { | ||||
|             print_diagnostics: true, | ||||
|  | ||||
| @ -2,5 +2,5 @@ use bevy::{asset, prelude::*}; | ||||
| 
 | ||||
| fn main() { | ||||
|     asset::load_gltf("examples/assets/Box.gltf").unwrap(); | ||||
|     App::build().add_defaults().run(); | ||||
|     App::build().add_default_plugins().run(); | ||||
| } | ||||
|  | ||||
| @ -1,18 +1,17 @@ | ||||
| use bevy::prelude::*; | ||||
| use bevy::core::window::CreateWindow; | ||||
| use bevy::{prelude::*, window::CreateWindow}; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| fn setup(_world: &mut World, resources: &mut Resources) { | ||||
|     let mut create_window_events = resources.get_mut::<Event<CreateWindow>>().unwrap(); | ||||
|     let mut create_window_events = resources.get_mut::<Events<CreateWindow>>().unwrap(); | ||||
|     create_window_events.send(CreateWindow { | ||||
|         descriptor: WindowDescriptor { | ||||
|             width: 800, | ||||
|             height: 600, | ||||
|             vsync: false, | ||||
|             title: "another window".to_string(), | ||||
|         } | ||||
|         }, | ||||
|     }); | ||||
| } | ||||
| @ -4,7 +4,7 @@ struct Rotator; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .setup(setup) | ||||
|         .add_system(build_rotator_system()) | ||||
|         .run(); | ||||
|  | ||||
| @ -2,7 +2,7 @@ use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .load_plugin(concat!( | ||||
|             env!("CARGO_MANIFEST_DIR"), | ||||
|             "/examples/plugin_loading/example_plugin/target/release/libexample_plugin.so" | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| fn setup(world: &mut World, resources: &mut Resources) { | ||||
|  | ||||
| @ -2,7 +2,7 @@ use bevy::{prelude::*, serialization::*}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use type_uuid::TypeUuid; | ||||
| fn main() { | ||||
|     let app = App::build().add_defaults().setup(setup).build(); | ||||
|     let app = App::build().add_default_plugins().setup(setup).build(); | ||||
| 
 | ||||
|     let comp_registrations = [ComponentRegistration::of::<Test>()]; | ||||
| 
 | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().add_setup_system(setup_system()).run(); | ||||
|     App::build().add_default_plugins().add_setup_system(setup_system()).run(); | ||||
| } | ||||
| 
 | ||||
| pub fn setup_system() -> Box<dyn Schedulable> { | ||||
|  | ||||
| @ -3,7 +3,7 @@ use rand::{rngs::StdRng, Rng, SeedableRng}; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .add_system(build_move_system()) | ||||
|         .add_plugin(DiagnosticsPlugin { | ||||
|             print_diagnostics: true, | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| fn setup(world: &mut World, resources: &mut Resources) { | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build().add_defaults().setup(setup).run(); | ||||
|     App::build().add_default_plugins().setup(setup).run(); | ||||
| } | ||||
| 
 | ||||
| fn setup(world: &mut World, resources: &mut Resources) { | ||||
|  | ||||
| @ -2,7 +2,7 @@ use bevy::prelude::*; | ||||
| 
 | ||||
| fn main() { | ||||
|     App::build() | ||||
|         .add_defaults() | ||||
|         .add_default_plugins() | ||||
|         .setup(setup) | ||||
|         .add_system(build_move_system()) | ||||
|         .add_plugin(DiagnosticsPlugin { | ||||
|  | ||||
| @ -5,6 +5,7 @@ use crate::{ | ||||
|     }, | ||||
|     core::{CorePlugin, Events}, | ||||
|     legion::prelude::{Resources, Runnable, Schedulable, Schedule, Universe, World}, | ||||
|     window::WindowPlugin, | ||||
|     render::RenderPlugin, | ||||
|     ui::UiPlugin, | ||||
| }; | ||||
| @ -178,7 +179,10 @@ impl AppBuilder { | ||||
|         T: Send + Sync + 'static, | ||||
|     { | ||||
|         self.add_resource(Events::<T>::default()) | ||||
|             .add_system_to_stage(system_stage::EVENT_UPDATE, Events::<T>::build_update_system()) | ||||
|             .add_system_to_stage( | ||||
|                 system_stage::EVENT_UPDATE, | ||||
|                 Events::<T>::build_update_system(), | ||||
|             ) | ||||
|     } | ||||
| 
 | ||||
|     pub fn add_resource<T>(mut self, resource: T) -> Self | ||||
| @ -194,15 +198,16 @@ impl AppBuilder { | ||||
|         self | ||||
|     } | ||||
| 
 | ||||
|     pub fn add_defaults(mut self) -> Self { | ||||
|     pub fn add_default_plugins(mut self) -> Self { | ||||
|         self = self | ||||
|             .add_plugin(CorePlugin::default()) | ||||
|             .add_plugin(WindowPlugin::default()) | ||||
|             .add_plugin(RenderPlugin::default()) | ||||
|             .add_plugin(UiPlugin::default()); | ||||
| 
 | ||||
|         #[cfg(feature = "winit")] | ||||
|         { | ||||
|             self = self.add_plugin(crate::core::window::winit::WinitPlugin::default()) | ||||
|             self = self.add_plugin(crate::window::winit::WinitPlugin::default()) | ||||
|         } | ||||
|         #[cfg(not(feature = "winit"))] | ||||
|         { | ||||
|  | ||||
| @ -1,18 +1,9 @@ | ||||
| use super::{CreateWindow, Time, WindowCreated, WindowResized, Windows, Events, WindowDescriptor}; | ||||
| use crate::app::{plugin::AppPlugin, AppBuilder}; | ||||
| use bevy_transform::transform_system_bundle; | ||||
| use super::Time; | ||||
| 
 | ||||
| pub struct CorePlugin { | ||||
|     pub primary_window: Option<WindowDescriptor>, | ||||
| } | ||||
| 
 | ||||
| impl Default for CorePlugin { | ||||
|     fn default() -> Self { | ||||
|         CorePlugin { | ||||
|             primary_window: Some(WindowDescriptor::default()), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| #[derive(Default)] | ||||
| pub struct CorePlugin; | ||||
| 
 | ||||
| impl AppPlugin for CorePlugin { | ||||
|     fn build(&self, mut app: AppBuilder) -> AppBuilder { | ||||
| @ -20,20 +11,8 @@ impl AppPlugin for CorePlugin { | ||||
|             app = app.add_system(transform_system); | ||||
|         } | ||||
| 
 | ||||
|         app = app.add_event::<WindowResized>() | ||||
|             .add_event::<CreateWindow>() | ||||
|             .add_event::<WindowCreated>() | ||||
|             .add_resource(Windows::default()) | ||||
|             .add_resource(Time::new()); | ||||
| 
 | ||||
|         if let Some(ref primary_window_descriptor) = self.primary_window { | ||||
|             let mut create_window_event = app.resources.get_mut::<Events<CreateWindow>>().unwrap(); | ||||
|             create_window_event.send(CreateWindow { | ||||
|                 descriptor: primary_window_descriptor.clone(), 
 | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         app | ||||
|             .add_resource(Time::new()) | ||||
|     } | ||||
| 
 | ||||
|     fn name(&self) -> &'static str { | ||||
|  | ||||
| @ -1,11 +1,9 @@ | ||||
| pub mod bytes; | ||||
| mod time; | ||||
| pub mod window; | ||||
| mod core_plugin; | ||||
| pub mod event; | ||||
| 
 | ||||
| pub use bytes::*; | ||||
| pub use time::*; | ||||
| pub use window::*; | ||||
| pub use core_plugin::*; | ||||
| pub use event::*; | ||||
| @ -8,6 +8,7 @@ pub mod prelude; | ||||
| pub mod render; | ||||
| pub mod serialization; | ||||
| pub mod ui; | ||||
| pub mod window; | ||||
| 
 | ||||
| pub use bevy_transform as transform; | ||||
| pub use glam as math; | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| pub use crate::{ | ||||
|     app::{plugin::AppPlugin, App, AppBuilder}, | ||||
|     asset::{Asset, AssetStorage, Handle}, | ||||
|     core::{Events, EventReader, GetEventReader, Time, Window, Windows, WindowDescriptor}, | ||||
|     window::{Window, Windows, WindowDescriptor, WindowPlugin}, | ||||
|     core::{Events, EventReader, GetEventReader, Time}, | ||||
|     diagnostic::DiagnosticsPlugin, | ||||
|     ecs, | ||||
|     ecs::{ | ||||
|  | ||||
| @ -14,7 +14,7 @@ use super::{ | ||||
|         AssetBatchers, EntityRenderResourceAssignments, RenderResourceAssignments, | ||||
|     }, | ||||
| }; | ||||
| use crate::{core::WindowResized, prelude::*}; | ||||
| use crate::{prelude::*, window::WindowResized}; | ||||
| 
 | ||||
| #[derive(Default)] | ||||
| pub struct RenderPlugin; | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| use crate::{ | ||||
|     core::WindowResized, | ||||
|     window::WindowResized, | ||||
|     prelude::*, | ||||
|     render::{ | ||||
|         render_resource::{ | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| use crate::{ | ||||
|     core::WindowResized, | ||||
|     window::WindowResized, | ||||
|     prelude::*, | ||||
|     render::{ | ||||
|         render_resource::{ | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| use crate::{ | ||||
|     core::Windows, | ||||
|     window::Windows, | ||||
|     prelude::World, | ||||
|     render::{ | ||||
|         render_resource::{RenderResourceAssignments, ResourceProvider}, | ||||
|  | ||||
| @ -9,8 +9,8 @@ pub use wgpu_resources::*; | ||||
| 
 | ||||
| use crate::{ | ||||
|     app::{plugin::AppPlugin, system_stage, AppBuilder}, | ||||
|     core::{Events, WindowCreated, WindowResized}, | ||||
|     render::renderer::Renderer, | ||||
|     core::Events, | ||||
|     render::renderer::Renderer, window::{WindowCreated, WindowResized}, | ||||
| }; | ||||
| 
 | ||||
| use legion::prelude::*; | ||||
|  | ||||
| @ -1,9 +1,7 @@ | ||||
| use super::{wgpu_type_converter::OwnedWgpuVertexBufferDescriptor, WgpuRenderPass, WgpuResources}; | ||||
| use crate::{ | ||||
|     asset::{AssetStorage, Handle}, | ||||
|     core::{ | ||||
|         winit::WinitWindows, Events, EventReader, Window, WindowCreated, WindowResized, Windows, | ||||
|     }, | ||||
|     core::{EventReader, Events}, | ||||
|     legion::prelude::*, | ||||
|     render::{ | ||||
|         pass::{ | ||||
| @ -20,6 +18,7 @@ use crate::{ | ||||
|         shader::Shader, | ||||
|         texture::{SamplerDescriptor, TextureDescriptor}, | ||||
|     }, | ||||
|     window::{winit::WinitWindows, Window, WindowCreated, WindowResized, Windows}, | ||||
| }; | ||||
| use std::{ | ||||
|     cell::RefCell, | ||||
| @ -270,10 +269,12 @@ impl WgpuRenderer { | ||||
|             } | ||||
|             _ => match global_render_resource_assignments.get(name) { | ||||
|                 Some(resource) => wgpu_resources.textures.get(&resource).unwrap(), | ||||
|                 None => if let Some(swap_chain_output) = swap_chain_outputs.get(name) { | ||||
|                     &swap_chain_output.view 
 | ||||
|                 }  else { | ||||
|                     panic!("Color attachment {} does not exist", name); | ||||
|                 None => { | ||||
|                     if let Some(swap_chain_output) = swap_chain_outputs.get(name) { | ||||
|                         &swap_chain_output.view | ||||
|                     } else { | ||||
|                         panic!("Color attachment {} does not exist", name); | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|         } | ||||
|  | ||||
| @ -10,7 +10,8 @@ use crate::{ | ||||
|         }, | ||||
|         renderer::Renderer, | ||||
|         texture::{SamplerDescriptor, TextureDescriptor}, | ||||
|     }, core::WindowId, | ||||
|     }, | ||||
|     window::WindowId, | ||||
| }; | ||||
| use std::collections::HashMap; | ||||
| 
 | ||||
| @ -59,7 +60,10 @@ impl WgpuResources { | ||||
|         if let Some((render_resource_set_id, _indices)) = | ||||
|             render_resource_assignments.get_render_resource_set_id(bind_group_descriptor.id) | ||||
|         { | ||||
|             log::debug!("start creating bind group for RenderResourceSet {:?}", render_resource_set_id); | ||||
|             log::debug!( | ||||
|                 "start creating bind group for RenderResourceSet {:?}", | ||||
|                 render_resource_set_id | ||||
|             ); | ||||
|             let bindings = bind_group_descriptor | ||||
|                 .bindings | ||||
|                 .iter() | ||||
| @ -128,7 +132,10 @@ impl WgpuResources { | ||||
|                 .bind_groups | ||||
|                 .insert(*render_resource_set_id, bind_group); | ||||
| 
 | ||||
|             log::debug!("created bind group for RenderResourceSet {:?}", render_resource_set_id); | ||||
|             log::debug!( | ||||
|                 "created bind group for RenderResourceSet {:?}", | ||||
|                 render_resource_set_id | ||||
|             ); | ||||
|             log::trace!("{:#?}", bind_group_descriptor); | ||||
|             return true; | ||||
|         } else { | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| use crate::{ | ||||
|     core::Window, | ||||
|     prelude::Color, | ||||
|     render::{ | ||||
|         pass::{LoadOp, StoreOp}, | ||||
| @ -19,6 +18,7 @@ use crate::{ | ||||
|             TextureDescriptor, TextureDimension, TextureFormat, TextureUsage, TextureViewDimension, | ||||
|         }, | ||||
|     }, | ||||
|     window::Window, | ||||
| }; | ||||
| 
 | ||||
| impl From<VertexFormat> for wgpu::VertexFormat { | ||||
|  | ||||
| @ -2,9 +2,11 @@ | ||||
| pub mod winit; | ||||
| mod events; | ||||
| mod windows; | ||||
| mod window_plugin; | ||||
| 
 | ||||
| pub use events::*; | ||||
| pub use windows::*; | ||||
| pub use window_plugin::*; | ||||
| 
 | ||||
| use uuid::Uuid; | ||||
| 
 | ||||
							
								
								
									
										36
									
								
								src/window/window_plugin.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/window/window_plugin.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| use super::{CreateWindow, WindowCreated, WindowResized, Windows, WindowDescriptor}; | ||||
| use crate::{core::Events, app::{plugin::AppPlugin, AppBuilder}}; | ||||
| 
 | ||||
| pub struct WindowPlugin { | ||||
|     pub primary_window: Option<WindowDescriptor>, | ||||
| } | ||||
| 
 | ||||
| impl Default for WindowPlugin { | ||||
|     fn default() -> Self { | ||||
|         WindowPlugin { | ||||
|             primary_window: Some(WindowDescriptor::default()), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl AppPlugin for WindowPlugin { | ||||
|     fn build(&self, mut app: AppBuilder) -> AppBuilder { | ||||
|         app = app.add_event::<WindowResized>() | ||||
|             .add_event::<CreateWindow>() | ||||
|             .add_event::<WindowCreated>() | ||||
|             .add_resource(Windows::default()); | ||||
| 
 | ||||
|         if let Some(ref primary_window_descriptor) = self.primary_window { | ||||
|             let mut create_window_event = app.resources.get_mut::<Events<CreateWindow>>().unwrap(); | ||||
|             create_window_event.send(CreateWindow { | ||||
|                 descriptor: primary_window_descriptor.clone(), 
 | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         app | ||||
|     } | ||||
| 
 | ||||
|     fn name(&self) -> &'static str { | ||||
|         "Window" | ||||
|     } | ||||
| } | ||||
| @ -1,4 +1,4 @@ | ||||
| use crate::{core::WindowId, prelude::*}; | ||||
| use crate::{window::WindowId, prelude::*}; | ||||
| use std::collections::HashMap; | ||||
| 
 | ||||
| #[derive(Default)] | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Carter Anderson
						Carter Anderson