diff --git a/examples/instancing.rs b/examples/instancing.rs index 15a401a5af..b4f5a1080b 100644 --- a/examples/instancing.rs +++ b/examples/instancing.rs @@ -205,7 +205,9 @@ fn create_person(world: &mut World, mesh_handle: Handle, translation: Tran value: math::vec3(0.0, 0.0, 0.0), }, Instanced, - Material::new(Albedo::Color(math::vec4(0.5, 0.3, 0.3, 1.0) * random::())), + Material::new(Albedo::Color( + math::vec4(0.5, 0.3, 0.3, 1.0) * random::(), + )), mesh_handle, LocalToWorld::identity(), translation, diff --git a/examples/load_model.rs b/examples/load_model.rs index 377efa3eba..5384d5a72a 100644 --- a/examples/load_model.rs +++ b/examples/load_model.rs @@ -1,4 +1,4 @@ -use bevy::{prelude::*, asset}; +use bevy::{asset, prelude::*}; fn main() { asset::load_gltf("examples/assets/Box.gltf").unwrap(); diff --git a/examples/serializing.rs b/examples/serializing.rs index 8970a89372..3f1af2febb 100644 --- a/examples/serializing.rs +++ b/examples/serializing.rs @@ -1,12 +1,10 @@ use bevy::{prelude::*, serialization::*}; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; use type_uuid::TypeUuid; fn main() { let app = AppBuilder::new().add_defaults().setup_world(setup).build(); - let comp_registrations = [ - ComponentRegistration::of::(), - ]; + let comp_registrations = [ComponentRegistration::of::()]; let tag_registrations = []; @@ -14,12 +12,20 @@ fn main() { let serializable = legion::ser::serializable_world(&app.world, &ser_helper); let serialized_data = serde_json::to_string(&serializable).unwrap(); println!("{}", serialized_data); - let de_helper = DeserializeImpl::new(ser_helper.comp_types, ser_helper.tag_types, ser_helper.entity_map); + let de_helper = DeserializeImpl::new( + ser_helper.comp_types, + ser_helper.tag_types, + ser_helper.entity_map, + ); let mut new_world = app.universe.create_world(); let mut deserializer = serde_json::Deserializer::from_str(&serialized_data); legion::de::deserialize(&mut new_world, &de_helper, &mut deserializer).unwrap(); - let ser_helper = SerializeImpl::new_with_map(&comp_registrations, &tag_registrations, de_helper.entity_map.into_inner()); + let ser_helper = SerializeImpl::new_with_map( + &comp_registrations, + &tag_registrations, + de_helper.entity_map.into_inner(), + ); let serializable = legion::ser::serializable_world(&new_world, &ser_helper); let roundtrip_data = serde_json::to_string(&serializable).unwrap(); println!("{}", roundtrip_data); @@ -35,10 +41,5 @@ pub struct Test { fn setup(world: &mut World) { // plane - world.insert( - (), - vec![( - Test {x: 3.0, y: 4.0}, - )], - ); + world.insert((), vec![(Test { x: 3.0, y: 4.0 },)]); } diff --git a/src/app/app.rs b/src/app/app.rs index 0e58f68863..2d6f848a9e 100644 --- a/src/app/app.rs +++ b/src/app/app.rs @@ -6,7 +6,7 @@ use winit::{ use legion::prelude::*; -use crate::{render::*, core::Time}; +use crate::{core::Time, render::*}; pub struct App { pub universe: Universe, @@ -16,7 +16,12 @@ pub struct App { } impl App { - pub fn new(universe: Universe, world: World, schedule: Schedule, render_graph: RenderGraph) -> App { + pub fn new( + universe: Universe, + world: World, + schedule: Schedule, + render_graph: RenderGraph, + ) -> App { App { universe, world, @@ -50,9 +55,7 @@ impl App { self.world.resources.insert(window); log::info!("Initializing the example..."); - self.render_graph.initialize( - &mut self.world, - ); + self.render_graph.initialize(&mut self.world); log::info!("Entering render loop..."); event_loop.run(move |event, _, control_flow| { @@ -66,7 +69,8 @@ impl App { event: WindowEvent::Resized(size), .. } => { - self.render_graph.resize(size.width, size.height, &mut self.world); + self.render_graph + .resize(size.width, size.height, &mut self.world); } event::Event::WindowEvent { event, .. } => match event { WindowEvent::KeyboardInput { @@ -92,4 +96,4 @@ impl App { } }); } -} \ No newline at end of file +} diff --git a/src/app/app_builder.rs b/src/app/app_builder.rs index 0d79089f60..428158e665 100644 --- a/src/app/app_builder.rs +++ b/src/app/app_builder.rs @@ -1,10 +1,11 @@ use crate::{ + app::App, asset::*, - legion::{ - prelude::{Schedule, Schedulable, World, Universe, Runnable}, - }, + core::Time, + legion::prelude::{Runnable, Schedulable, Schedule, Universe, World}, + legion_transform::transform_system_bundle, render::{passes::*, *}, - legion_transform::transform_system_bundle, ui, app::App, core::Time, + ui, }; use std::collections::HashMap; @@ -54,7 +55,12 @@ impl AppBuilder { } } - App::new(self.universe, self.world, schedule_builder.build(), self.render_graph) + App::new( + self.universe, + self.world, + schedule_builder.build(), + self.render_graph, + ) } pub fn run(self) { @@ -77,25 +83,27 @@ impl AppBuilder { pub fn add_system_to_stage(mut self, stage_name: &str, system: Box) -> Self { if let None = self.system_stages.get(stage_name) { - self.system_stages.insert(stage_name.to_string(), Vec::new()); + self.system_stages + .insert(stage_name.to_string(), Vec::new()); self.stage_order.push(stage_name.to_string()); } let stages = self.system_stages.get_mut(stage_name).unwrap(); stages.push(system); - + self } pub fn add_runnable_to_stage(mut self, stage_name: &str, system: Box) -> Self { if let None = self.runnable_stages.get(stage_name) { - self.runnable_stages.insert(stage_name.to_string(), Vec::new()); + self.runnable_stages + .insert(stage_name.to_string(), Vec::new()); self.stage_order.push(stage_name.to_string()); } let stages = self.runnable_stages.get_mut(stage_name).unwrap(); stages.push(system); - + self } @@ -111,8 +119,15 @@ impl AppBuilder { .add_render_resource_manager(Box::new(render_resources::Global2dResourceManager)); let depth_format = wgpu::TextureFormat::Depth32Float; - render_graph.set_pass("forward", Box::new(ForwardPass::new(depth_format, msaa_samples))); - render_graph.set_pipeline("forward", "forward", Box::new(ForwardPipeline::new(msaa_samples))); + render_graph.set_pass( + "forward", + Box::new(ForwardPass::new(depth_format, msaa_samples)), + ); + render_graph.set_pipeline( + "forward", + "forward", + Box::new(ForwardPipeline::new(msaa_samples)), + ); render_graph.set_pipeline( "forward", "forward_instanced", diff --git a/src/app/mod.rs b/src/app/mod.rs index 30a83f5726..17f0331cde 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -1,5 +1,5 @@ -mod app_builder; mod app; +mod app_builder; +pub use app::App; pub use app_builder::AppBuilder; -pub use app::App; \ No newline at end of file diff --git a/src/asset/mesh.rs b/src/asset/mesh.rs index b873f1c730..a3542fecdd 100644 --- a/src/asset/mesh.rs +++ b/src/asset/mesh.rs @@ -67,10 +67,26 @@ pub fn create_quad( south_east: Vec2, ) -> (Vec, Vec) { let vertex_data = [ - Vertex::from(([south_west.x(), south_west.y(), 0.0], [0.0, 0.0, 1.0], [0.0, 0.0])), - Vertex::from(([north_west.x(), north_west.y(), 0.0], [0.0, 0.0, 1.0], [0.0, 1.0])), - Vertex::from(([north_east.x(), north_east.y(), 0.0], [0.0, 0.0, 1.0], [1.0, 1.0])), - Vertex::from(([south_east.x(), south_east.y(), 0.0], [0.0, 0.0, 1.0], [1.0, 0.0])), + Vertex::from(( + [south_west.x(), south_west.y(), 0.0], + [0.0, 0.0, 1.0], + [0.0, 0.0], + )), + Vertex::from(( + [north_west.x(), north_west.y(), 0.0], + [0.0, 0.0, 1.0], + [0.0, 1.0], + )), + Vertex::from(( + [north_east.x(), north_east.y(), 0.0], + [0.0, 0.0, 1.0], + [1.0, 1.0], + )), + Vertex::from(( + [south_east.x(), south_east.y(), 0.0], + [0.0, 0.0, 1.0], + [1.0, 0.0], + )), ]; let index_data: &[u16] = &[0, 2, 1, 0, 3, 2]; diff --git a/src/asset/texture.rs b/src/asset/texture.rs index 7a9eadaabe..909ca24f1b 100644 --- a/src/asset/texture.rs +++ b/src/asset/texture.rs @@ -14,16 +14,14 @@ impl Asset for Texture { TextureType::Data(data) => data.clone(), }; - Texture { - data: data, - } + Texture { data: data } } } pub fn create_texels(size: usize) -> Vec { use std::iter; - (0 .. size * size) + (0..size * size) .flat_map(|id| { // get high five for recognizing this ;) let cx = 3.0 * (id % size) as f32 / (size - 1) as f32 - 2.0; @@ -41,4 +39,4 @@ pub fn create_texels(size: usize) -> Vec { .chain(iter::once(1)) }) .collect() -} \ No newline at end of file +} diff --git a/src/ecs/mod.rs b/src/ecs/mod.rs index 4c6752280e..fa54b4e1fd 100644 --- a/src/ecs/mod.rs +++ b/src/ecs/mod.rs @@ -1,4 +1,5 @@ -use crate::prelude::{Children, Entity, World, SubWorld}; +use crate::prelude::{Children, Entity, SubWorld, World}; + pub fn run_on_hierarchy( world: &mut World, entity: Entity, diff --git a/src/lib.rs b/src/lib.rs index b29e60e57b..2be241439d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,12 +2,12 @@ pub mod app; pub mod asset; pub mod core; pub mod ecs; -pub mod render; -pub mod ui; pub mod prelude; +pub mod render; pub mod serialization; +pub mod ui; -pub use wgpu; pub use glam as math; pub use legion; pub use legion_transform; +pub use wgpu; diff --git a/src/prelude.rs b/src/prelude.rs index cc51044e89..cc72e992a0 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -3,8 +3,10 @@ pub use crate::{ asset::{Asset, AssetStorage, Handle, Mesh, MeshType, Texture, TextureType}, core::Time, ecs, - render::{Albedo, Camera, CameraType, ActiveCamera, ActiveCamera2d, Instanced, Light, Material}, - ui::{Node, Anchors, Margins}, + render::{ + ActiveCamera, ActiveCamera2d, Albedo, Camera, CameraType, Instanced, Light, Material, + }, + ui::{Anchors, Margins, Node}, }; pub use glam as math; pub use legion::{ @@ -14,4 +16,4 @@ pub use legion::{ system::SystemBuilder, }; pub use legion_transform::prelude::*; -pub use math::{Mat3, Mat4, Vec2, Vec3, Vec4, Quat}; +pub use math::{Mat3, Mat4, Quat, Vec2, Vec3, Vec4}; diff --git a/src/render/material.rs b/src/render/material.rs index 591ed06b18..d42d564031 100644 --- a/src/render/material.rs +++ b/src/render/material.rs @@ -1,4 +1,7 @@ -use crate::{asset::{Handle, Texture}, math}; +use crate::{ + asset::{Handle, Texture}, + math, +}; use zerocopy::{AsBytes, FromBytes}; pub enum Albedo { diff --git a/src/render/passes/forward/forward_pass.rs b/src/render/passes/forward/forward_pass.rs index 60ccfd38f2..7368e45051 100644 --- a/src/render/passes/forward/forward_pass.rs +++ b/src/render/passes/forward/forward_pass.rs @@ -86,7 +86,10 @@ impl Pass for ForwardPass { &render_graph.swap_chain_descriptor, self.msaa_samples, ); - render_graph.set_texture(MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME, multisampled_framebuffer); + render_graph.set_texture( + MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME, + multisampled_framebuffer, + ); } } @@ -112,7 +115,9 @@ impl Pass for ForwardPass { }, } } else { - let multisampled_framebuffer = render_graph.get_texture(MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME).unwrap(); + let multisampled_framebuffer = render_graph + .get_texture(MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME) + .unwrap(); wgpu::RenderPassColorAttachmentDescriptor { attachment: multisampled_framebuffer, resolve_target: Some(&frame.view), @@ -151,7 +156,10 @@ impl Pass for ForwardPass { &render_graph.swap_chain_descriptor, self.msaa_samples, ); - render_graph.set_texture(MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME, multisampled_framebuffer); + render_graph.set_texture( + MULTISAMPLED_FRAMEBUFFER_TEXTURE_NAME, + multisampled_framebuffer, + ); } } diff --git a/src/render/passes/forward_instanced/mod.rs b/src/render/passes/forward_instanced/mod.rs index aa98c54a0f..4191682cb5 100644 --- a/src/render/passes/forward_instanced/mod.rs +++ b/src/render/passes/forward_instanced/mod.rs @@ -1,7 +1,7 @@ use crate::{ asset::*, - render::{instancing::InstanceBufferInfo, *}, prelude::LocalToWorld, + render::{instancing::InstanceBufferInfo, *}, }; use legion::prelude::*; use std::{collections::HashMap, mem}; diff --git a/src/render/passes/ui/mod.rs b/src/render/passes/ui/mod.rs index 95c32c5d80..c141bda9f1 100644 --- a/src/render/passes/ui/mod.rs +++ b/src/render/passes/ui/mod.rs @@ -1,9 +1,9 @@ use crate::{ asset::*, ecs, math, + prelude::Parent, render::{instancing::InstanceBufferInfo, *}, ui::Node, - prelude::Parent, }; use legion::prelude::*; use wgpu::SwapChainOutput; diff --git a/src/render/render_graph/mod.rs b/src/render/render_graph/mod.rs index a756079a65..0bda3f608a 100644 --- a/src/render/render_graph/mod.rs +++ b/src/render/render_graph/mod.rs @@ -29,6 +29,7 @@ pub struct RenderGraphData { uniform_buffers: HashMap, bind_group_layouts: HashMap, } + impl RenderGraphData { pub fn new( device: wgpu::Device, @@ -152,7 +153,8 @@ impl RenderGraph { } pub fn render(&mut self, world: &mut World) { - let frame = self.swap_chain + let frame = self + .swap_chain .as_mut() .unwrap() .get_next_texture() @@ -246,4 +248,4 @@ impl RenderGraph { pub fn set_pass(&mut self, name: &str, pass: Box) { self.passes.insert(name.to_string(), pass); } -} \ No newline at end of file +} diff --git a/src/render/vertex.rs b/src/render/vertex.rs index 92762b9dd2..00a651e46f 100644 --- a/src/render/vertex.rs +++ b/src/render/vertex.rs @@ -22,14 +22,9 @@ impl From<([f32; 4], [f32; 4], [f32; 2])> for Vertex { impl From<([f32; 3], [f32; 3], [f32; 2])> for Vertex { fn from((position, normal, uv): ([f32; 3], [f32; 3], [f32; 2])) -> Self { Vertex { - position: [ - position[0], - position[1], - position[2], - 1.0, - ], + position: [position[0], position[1], position[2], 1.0], normal: [normal[0], normal[1], normal[2], 0.0], - uv: uv + uv: uv, } } } @@ -49,10 +44,7 @@ impl From<([i8; 4], [i8; 4], [i8; 2])> for Vertex { normal[2] as f32, normal[3] as f32, ], - uv: [ - uv[0] as f32, - uv[1] as f32, - ], + uv: [uv[0] as f32, uv[1] as f32], } } }