1#![expect(missing_docs, reason = "Not all docs are written yet, see #3492.")]
2mod camera;
3mod clear_color;
4mod components;
5pub mod primitives;
6mod projection;
7pub mod visibility;
8
9use bevy_ecs::schedule::SystemSet;
10pub use camera::*;
11pub use clear_color::*;
12pub use components::*;
13pub use projection::*;
14
15use bevy_app::{App, Plugin};
16
17#[derive(Default)]
18pub struct CameraPlugin;
19
20impl Plugin for CameraPlugin {
21 fn build(&self, app: &mut App) {
22 app.init_resource::<ClearColor>().add_plugins((
23 CameraProjectionPlugin,
24 visibility::VisibilityPlugin,
25 visibility::VisibilityRangePlugin,
26 ));
27 }
28}
29
30pub mod prelude {
34 #[doc(hidden)]
35 pub use crate::{
36 visibility::{InheritedVisibility, ViewVisibility, Visibility},
37 Camera, Camera2d, Camera3d, ClearColor, ClearColorConfig, OrthographicProjection,
38 PerspectiveProjection, Projection,
39 };
40}
41
42#[derive(SystemSet, Clone, Eq, PartialEq, Hash, Debug)]
44pub struct CameraUpdateSystems;
45
46#[deprecated(since = "0.17.0", note = "Renamed to `CameraUpdateSystems`.")]
48pub type CameraUpdateSystem = CameraUpdateSystems;