bevy_camera/
lib.rs

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
30/// The camera prelude.
31///
32/// This includes the most common types in this crate, re-exported for your convenience.
33pub 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/// Label for `camera_system<T>`, shared across all `T`.
43#[derive(SystemSet, Clone, Eq, PartialEq, Hash, Debug)]
44pub struct CameraUpdateSystems;
45
46/// Deprecated alias for [`CameraUpdateSystems`].
47#[deprecated(since = "0.17.0", note = "Renamed to `CameraUpdateSystems`.")]
48pub type CameraUpdateSystem = CameraUpdateSystems;