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
9pub mod auto_exposure;
10pub mod bloom;
11pub mod dof;
12pub mod effect_stack;
13pub mod motion_blur;
14pub mod msaa_writeback;
15
16use crate::{
17 bloom::BloomPlugin, dof::DepthOfFieldPlugin, effect_stack::EffectStackPlugin,
18 motion_blur::MotionBlurPlugin, msaa_writeback::MsaaWritebackPlugin,
19};
20use bevy_app::{App, Plugin};
21use bevy_shader::load_shader_library;
22
23#[derive(Default)]
25pub struct PostProcessPlugin;
26
27impl Plugin for PostProcessPlugin {
28 fn build(&self, app: &mut App) {
29 load_shader_library!(app, "gaussian_blur.wgsl");
30
31 app.add_plugins((
32 MsaaWritebackPlugin,
33 BloomPlugin,
34 MotionBlurPlugin,
35 DepthOfFieldPlugin,
36 EffectStackPlugin,
37 ));
38 }
39}