bevy_pixel_camera/
pixel_plugin.rs1#[allow(deprecated)]
2use super::PixelProjection;
3
4use bevy::prelude::{App, IntoSystemConfigs, Plugin, PostUpdate};
5use bevy::render::camera::{
6 self, Camera, OrthographicProjection, PerspectiveProjection, Projection, ScalingMode,
7};
8use bevy::render::primitives::Aabb;
9use bevy::render::view::visibility;
10use bevy::render::view::{InheritedVisibility, Visibility, VisibleEntities};
11use bevy::transform::TransformSystem;
12
13pub struct PixelCameraPlugin;
15
16#[allow(deprecated)]
17impl Plugin for PixelCameraPlugin {
18 fn build(&self, app: &mut App) {
19 app.register_type::<Camera>()
20 .register_type::<Visibility>()
21 .register_type::<InheritedVisibility>()
22 .register_type::<OrthographicProjection>()
23 .register_type::<VisibleEntities>()
24 .register_type::<ScalingMode>()
25 .register_type::<Aabb>()
26 .add_systems(PostUpdate, super::update_pixel_camera_viewport)
27 .add_systems(PostUpdate, camera::camera_system::<PixelProjection>)
28 .add_systems(
29 PostUpdate,
30 visibility::update_frusta::<PixelProjection>
31 .in_set(visibility::VisibilitySystems::UpdateOrthographicFrusta)
32 .after(camera::camera_system::<PixelProjection>)
33 .after(TransformSystem::TransformPropagate)
34 .ambiguous_with(visibility::update_frusta::<PerspectiveProjection>)
35 .ambiguous_with(visibility::update_frusta::<OrthographicProjection>)
36 .ambiguous_with(visibility::update_frusta::<Projection>),
37 )
38 .add_systems(
39 PostUpdate,
40 super::pixel_zoom_system.after(camera::camera_system::<OrthographicProjection>),
41 );
42 }
43}