Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_core_pipeline/src/lib.rs
9550 views
1
#![expect(missing_docs, reason = "Not all docs are written yet, see #3492.")]
2
#![forbid(unsafe_code)]
3
#![cfg_attr(docsrs, feature(doc_cfg))]
4
#![doc(
5
html_logo_url = "https://bevy.org/assets/icon.png",
6
html_favicon_url = "https://bevy.org/assets/icon.png"
7
)]
8
9
pub mod blit;
10
pub mod core_2d;
11
pub mod core_3d;
12
pub mod deferred;
13
pub mod fullscreen_material;
14
pub mod mip_generation;
15
pub mod oit;
16
pub mod prepass;
17
pub mod schedule;
18
pub mod tonemapping;
19
pub mod upscaling;
20
21
use bevy_ecs::schedule::IntoScheduleConfigs;
22
pub use bevy_light::Skybox;
23
pub use fullscreen_vertex_shader::FullscreenShader;
24
pub use schedule::{Core2d, Core2dSystems, Core3d, Core3dSystems};
25
26
mod fullscreen_vertex_shader;
27
mod skybox;
28
29
use crate::schedule::{
30
camera_driver, handle_uncovered_swap_chains, submit_pending_command_buffers,
31
};
32
use crate::{
33
blit::BlitPlugin, core_2d::Core2dPlugin, core_3d::Core3dPlugin,
34
deferred::copy_lighting_id::CopyDeferredLightingIdPlugin, mip_generation::MipGenerationPlugin,
35
tonemapping::TonemappingPlugin, upscaling::UpscalingPlugin,
36
};
37
use bevy_app::{App, Plugin};
38
use bevy_asset::embedded_asset;
39
use bevy_render::renderer::{RenderGraph, RenderGraphSystems};
40
use bevy_render::RenderApp;
41
use oit::OrderIndependentTransparencyPlugin;
42
43
#[derive(Default)]
44
pub struct CorePipelinePlugin;
45
46
impl Plugin for CorePipelinePlugin {
47
fn build(&self, app: &mut App) {
48
embedded_asset!(app, "fullscreen_vertex_shader/fullscreen.wgsl");
49
50
app.add_plugins((Core2dPlugin, Core3dPlugin, CopyDeferredLightingIdPlugin))
51
.add_plugins((
52
BlitPlugin,
53
TonemappingPlugin,
54
UpscalingPlugin,
55
OrderIndependentTransparencyPlugin,
56
MipGenerationPlugin,
57
));
58
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
59
return;
60
};
61
render_app.init_resource::<FullscreenShader>().add_systems(
62
RenderGraph,
63
(
64
camera_driver.in_set(RenderGraphSystems::Render),
65
(submit_pending_command_buffers, handle_uncovered_swap_chains)
66
.chain()
67
.in_set(RenderGraphSystems::Submit),
68
),
69
);
70
}
71
}
72
73