Skip to content

Commit

Permalink
Move registrations to their respective plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
MrGVSV committed Nov 22, 2022
1 parent edd32d5 commit 537a209
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 42 deletions.
18 changes: 7 additions & 11 deletions crates/bevy_render/src/camera/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,11 @@ mod projection;
pub use camera::*;
pub use camera_driver_node::*;
pub use projection::*;
use std::ops::Range;

use crate::{
primitives::Aabb,
render_graph::RenderGraph,
view::{ComputedVisibility, RenderLayers, Visibility, VisibleEntities},
RenderApp, RenderStage,
};
use crate::{render_graph::RenderGraph, RenderApp, RenderStage};
use bevy_app::{App, Plugin};
use bevy_reflect::{ReflectDeserialize, ReflectSerialize};

#[derive(Default)]
pub struct CameraPlugin;
Expand All @@ -23,14 +20,13 @@ impl Plugin for CameraPlugin {
app.register_type::<Camera>()
.register_type::<Viewport>()
.register_type::<Option<Viewport>>()
.register_type::<Visibility>()
.register_type::<ComputedVisibility>()
.register_type::<VisibleEntities>()
.register_type::<Range<f32>>()
.register_type_data::<Range<f32>, ReflectSerialize>()
.register_type_data::<Range<f32>, ReflectDeserialize>()
.register_type::<WindowOrigin>()
.register_type::<ScalingMode>()
.register_type::<Aabb>()
.register_type::<CameraRenderGraph>()
.register_type::<RenderLayers>()
.register_type::<RenderTarget>()
.add_plugin(CameraProjectionPlugin::<Projection>::default())
.add_plugin(CameraProjectionPlugin::<OrthographicProjection>::default())
.add_plugin(CameraProjectionPlugin::<PerspectiveProjection>::default());
Expand Down
1 change: 1 addition & 0 deletions crates/bevy_render/src/globals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ impl Plugin for GlobalsPlugin {
fn build(&self, app: &mut App) {
if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
render_app
.register_type::<GlobalsUniform>()
.init_resource::<GlobalsBuffer>()
.init_resource::<Time>()
.add_system_to_stage(RenderStage::Extract, extract_frame_count)
Expand Down
31 changes: 3 additions & 28 deletions crates/bevy_render/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,14 @@ pub use once_cell;
use crate::{
camera::CameraPlugin,
mesh::MeshPlugin,
render_graph::RenderGraph,
render_resource::{PipelineCache, Shader, ShaderLoader},
renderer::{render_system, RenderInstance},
view::{ViewPlugin, WindowRenderPlugin},
};
use bevy_app::{App, AppLabel, Plugin};
use bevy_asset::{AddAsset, AssetServer};
use bevy_ecs::prelude::*;
use bevy_reflect::{ReflectDeserialize, ReflectSerialize};
use bevy_utils::tracing::debug;
use std::ops::Range;
use std::{
any::TypeId,
ops::{Deref, DerefMut},
Expand Down Expand Up @@ -199,7 +196,7 @@ impl Plugin for RenderPlugin {
.with_system(render_system.at_end()),
)
.add_stage(RenderStage::Cleanup, SystemStage::parallel())
.init_resource::<RenderGraph>()
.init_resource::<render_graph::RenderGraph>()
.insert_resource(RenderInstance(instance))
.insert_resource(device)
.insert_resource(queue)
Expand Down Expand Up @@ -330,33 +327,11 @@ impl Plugin for RenderPlugin {
.add_plugin(MeshPlugin)
.add_plugin(GlobalsPlugin);

app.register_type::<camera::Camera>()
.register_type::<camera::CameraRenderGraph>()
.register_type::<camera::OrthographicProjection>()
.register_type::<camera::PerspectiveProjection>()
.register_type::<camera::Projection>()
.register_type::<camera::RenderTarget>()
.register_type::<camera::ScalingMode>()
.register_type::<camera::Viewport>()
.register_type::<Option<camera::Viewport>>()
.register_type::<Range<f32>>()
.register_type_data::<Range<f32>, ReflectSerialize>()
.register_type_data::<Range<f32>, ReflectDeserialize>()
.register_type::<camera::WindowOrigin>()
.register_type::<color::Color>()
.register_type::<globals::GlobalsUniform>()
.register_type::<mesh::skinning::SkinnedMesh>()
.register_type::<Vec<Entity>>()
app.register_type::<color::Color>()
.register_type::<primitives::Aabb>()
.register_type::<primitives::CubemapFrusta>()
.register_type::<primitives::Frustum>()
.register_type::<texture::Image>()
.register_type::<view::ComputedVisibility>()
.register_type::<view::ComputedVisibilityFlags>()
.register_type::<view::Msaa>()
.register_type::<view::RenderLayers>()
.register_type::<view::Visibility>()
.register_type::<view::VisibleEntities>();
.register_type::<render_graph::RenderGraph>();
}
}

Expand Down
2 changes: 2 additions & 0 deletions crates/bevy_render/src/mesh/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ pub use mesh::*;
use crate::render_asset::RenderAssetPlugin;
use bevy_app::{App, Plugin};
use bevy_asset::AddAsset;
use bevy_ecs::entity::Entity;

/// Adds the [`Mesh`] as an asset and makes sure that they are extracted and prepared for the GPU.
pub struct MeshPlugin;
Expand All @@ -17,6 +18,7 @@ impl Plugin for MeshPlugin {
app.add_asset::<Mesh>()
.add_asset::<skinning::SkinnedMeshInverseBindposes>()
.register_type::<skinning::SkinnedMesh>()
.register_type::<Vec<Entity>>()
.add_plugin(RenderAssetPlugin::<Mesh>::default());
}
}
1 change: 1 addition & 0 deletions crates/bevy_render/src/texture/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ impl Plugin for ImagePlugin {
app.add_plugin(RenderAssetPlugin::<Image>::with_prepare_asset_label(
PrepareAssetLabel::PreAssetPrepare,
))
.register_type::<Image>()
.add_asset::<Image>()
.register_asset_reflect::<Image>();
app.world
Expand Down
9 changes: 7 additions & 2 deletions crates/bevy_render/src/view/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use crate::{
render_resource::{DynamicUniformBuffer, ShaderType, Texture, TextureView},
renderer::{RenderDevice, RenderQueue},
texture::{BevyDefault, TextureCache},
RenderApp, RenderStage,
view, RenderApp, RenderStage,
};
use bevy_app::{App, Plugin};
use bevy_ecs::prelude::*;
Expand All @@ -31,7 +31,12 @@ pub struct ViewPlugin;

impl Plugin for ViewPlugin {
fn build(&self, app: &mut App) {
app.register_type::<Msaa>()
app.register_type::<ComputedVisibility>()
.register_type::<ComputedVisibilityFlags>()
.register_type::<Msaa>()
.register_type::<RenderLayers>()
.register_type::<Visibility>()
.register_type::<VisibleEntities>()
.init_resource::<Msaa>()
// NOTE: windows.is_changed() handles cases where a window was resized
.add_plugin(ExtractResourcePlugin::<Msaa>::default())
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/view/visibility/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ impl Visibility {

bitflags::bitflags! {
#[derive(Reflect)]
pub(crate) struct ComputedVisibilityFlags: u8 {
pub(super) struct ComputedVisibilityFlags: u8 {
const VISIBLE_IN_VIEW = 1 << 0;
const VISIBLE_IN_HIERARCHY = 1 << 1;
}
Expand Down

0 comments on commit 537a209

Please sign in to comment.