mirror of
https://github.com/bevyengine/bevy
synced 2024-11-24 21:53:07 +00:00
Reflect derived traits on all components and resources: bevy_core_pipeline (#15213)
Solves https://github.com/bevyengine/bevy/issues/15187 for bevy_core_pipeline
This commit is contained in:
parent
c909a0572d
commit
df8cb3e5e2
7 changed files with 21 additions and 9 deletions
|
@ -3,6 +3,7 @@ use std::ops::RangeInclusive;
|
|||
use super::compensation_curve::AutoExposureCompensationCurve;
|
||||
use bevy_asset::Handle;
|
||||
use bevy_ecs::{prelude::Component, reflect::ReflectComponent};
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::{extract_component::ExtractComponent, texture::Image};
|
||||
use bevy_utils::default;
|
||||
|
@ -24,7 +25,7 @@ use bevy_utils::default;
|
|||
/// **Auto Exposure requires compute shaders and is not compatible with WebGL2.**
|
||||
///
|
||||
#[derive(Component, Clone, Reflect, ExtractComponent)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct AutoExposure {
|
||||
/// The range of exposure values for the histogram.
|
||||
///
|
||||
|
|
|
@ -6,6 +6,7 @@ use crate::{
|
|||
use bevy_app::prelude::*;
|
||||
use bevy_asset::{load_internal_asset, Handle};
|
||||
use bevy_ecs::{prelude::*, query::QueryItem};
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::{
|
||||
extract_component::{ExtractComponent, ExtractComponentPlugin, UniformComponentPlugin},
|
||||
|
@ -36,7 +37,7 @@ pub use node::CasNode;
|
|||
///
|
||||
/// To use this, add the [`ContrastAdaptiveSharpening`] component to a 2D or 3D camera.
|
||||
#[derive(Component, Reflect, Clone)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct ContrastAdaptiveSharpening {
|
||||
/// Enable or disable sharpening.
|
||||
pub enabled: bool,
|
||||
|
@ -68,7 +69,7 @@ impl Default for ContrastAdaptiveSharpening {
|
|||
}
|
||||
|
||||
#[derive(Component, Default, Reflect, Clone)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct DenoiseCas(bool);
|
||||
|
||||
/// The uniform struct extracted from [`ContrastAdaptiveSharpening`] attached to a [`Camera`].
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use crate::core_2d::graph::Core2d;
|
||||
use crate::tonemapping::{DebandDither, Tonemapping};
|
||||
use bevy_ecs::prelude::*;
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::prelude::Msaa;
|
||||
use bevy_render::{
|
||||
|
@ -16,7 +17,7 @@ use bevy_transform::prelude::{GlobalTransform, Transform};
|
|||
|
||||
#[derive(Component, Default, Reflect, Clone, ExtractComponent)]
|
||||
#[extract_component_filter(With<Camera>)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct Camera2d;
|
||||
|
||||
#[derive(Bundle, Clone)]
|
||||
|
|
|
@ -3,6 +3,7 @@ use crate::{
|
|||
tonemapping::{DebandDither, Tonemapping},
|
||||
};
|
||||
use bevy_ecs::prelude::*;
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::{Reflect, ReflectDeserialize, ReflectSerialize};
|
||||
use bevy_render::view::Msaa;
|
||||
use bevy_render::{
|
||||
|
@ -20,7 +21,7 @@ use serde::{Deserialize, Serialize};
|
|||
/// This means "forward" is -Z.
|
||||
#[derive(Component, Reflect, Clone, ExtractComponent)]
|
||||
#[extract_component_filter(With<Camera>)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct Camera3d {
|
||||
/// The depth clear operation to perform for the main 3d pass.
|
||||
pub depth_load_op: Camera3dDepthLoadOp,
|
||||
|
@ -112,7 +113,7 @@ impl From<Camera3dDepthLoadOp> for LoadOp<f32> {
|
|||
///
|
||||
/// **Note:** You can get better-looking results at any quality level by enabling TAA. See: [`TemporalAntiAliasPlugin`](crate::experimental::taa::TemporalAntiAliasPlugin).
|
||||
#[derive(Resource, Default, Clone, Copy, Reflect, PartialEq, PartialOrd, Debug)]
|
||||
#[reflect(Resource)]
|
||||
#[reflect(Resource, Default, Debug, PartialEq)]
|
||||
pub enum ScreenSpaceTransmissionQuality {
|
||||
/// Best performance at the cost of quality. Suitable for lower end GPUs. (e.g. Mobile)
|
||||
///
|
||||
|
|
|
@ -32,6 +32,7 @@ use std::ops::Range;
|
|||
use bevy_asset::UntypedAssetId;
|
||||
use bevy_ecs::prelude::*;
|
||||
use bevy_math::Mat4;
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::{
|
||||
render_phase::{
|
||||
|
@ -52,20 +53,24 @@ pub const MOTION_VECTOR_PREPASS_FORMAT: TextureFormat = TextureFormat::Rg16Float
|
|||
|
||||
/// If added to a [`crate::prelude::Camera3d`] then depth values will be copied to a separate texture available to the main pass.
|
||||
#[derive(Component, Default, Reflect, Clone)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct DepthPrepass;
|
||||
|
||||
/// If added to a [`crate::prelude::Camera3d`] then vertex world normals will be copied to a separate texture available to the main pass.
|
||||
/// Normals will have normal map textures already applied.
|
||||
#[derive(Component, Default, Reflect, Clone)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct NormalPrepass;
|
||||
|
||||
/// If added to a [`crate::prelude::Camera3d`] then screen space motion vectors will be copied to a separate texture available to the main pass.
|
||||
#[derive(Component, Default, Reflect, Clone)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct MotionVectorPrepass;
|
||||
|
||||
/// If added to a [`crate::prelude::Camera3d`] then deferred materials will be rendered to the deferred gbuffer texture and will be available to subsequent passes.
|
||||
/// Note the default deferred lighting plugin also requires `DepthPrepass` to work correctly.
|
||||
#[derive(Component, Default, Reflect)]
|
||||
#[reflect(Component, Default)]
|
||||
pub struct DeferredPrepass;
|
||||
|
||||
#[derive(Component, ShaderType, Clone)]
|
||||
|
|
|
@ -8,13 +8,14 @@ use bevy_app::{App, Plugin};
|
|||
use bevy_asset::{load_internal_asset, Handle};
|
||||
use bevy_core::FrameCount;
|
||||
use bevy_ecs::{
|
||||
prelude::{Bundle, Component, Entity},
|
||||
prelude::{Bundle, Component, Entity, ReflectComponent},
|
||||
query::{QueryItem, With},
|
||||
schedule::IntoSystemConfigs,
|
||||
system::{Commands, Query, Res, ResMut, Resource},
|
||||
world::{FromWorld, World},
|
||||
};
|
||||
use bevy_math::vec2;
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::{
|
||||
camera::{ExtractedCamera, MipBias, TemporalJitter},
|
||||
|
@ -136,6 +137,7 @@ pub struct TemporalAntiAliasBundle {
|
|||
///
|
||||
/// If no [`MipBias`] component is attached to the camera, TAA will add a MipBias(-1.0) component.
|
||||
#[derive(Component, Reflect, Clone)]
|
||||
#[reflect(Component, Default)]
|
||||
#[doc(alias = "Taa")]
|
||||
pub struct TemporalAntiAliasing {
|
||||
/// Set to true to delete the saved temporal history (past frames).
|
||||
|
|
|
@ -2,6 +2,7 @@ use crate::fullscreen_vertex_shader::fullscreen_shader_vertex_state;
|
|||
use bevy_app::prelude::*;
|
||||
use bevy_asset::{load_internal_asset, Assets, Handle};
|
||||
use bevy_ecs::prelude::*;
|
||||
use bevy_reflect::std_traits::ReflectDefault;
|
||||
use bevy_reflect::Reflect;
|
||||
use bevy_render::extract_component::{ExtractComponent, ExtractComponentPlugin};
|
||||
use bevy_render::extract_resource::{ExtractResource, ExtractResourcePlugin};
|
||||
|
@ -136,7 +137,7 @@ pub struct TonemappingPipeline {
|
|||
Component, Debug, Hash, Clone, Copy, Reflect, Default, ExtractComponent, PartialEq, Eq,
|
||||
)]
|
||||
#[extract_component_filter(With<Camera>)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Debug, Hash, Default, PartialEq)]
|
||||
pub enum Tonemapping {
|
||||
/// Bypass tonemapping.
|
||||
None,
|
||||
|
@ -391,7 +392,7 @@ pub fn prepare_view_tonemapping_pipelines(
|
|||
Component, Debug, Hash, Clone, Copy, Reflect, Default, ExtractComponent, PartialEq, Eq,
|
||||
)]
|
||||
#[extract_component_filter(With<Camera>)]
|
||||
#[reflect(Component)]
|
||||
#[reflect(Component, Debug, Hash, Default, PartialEq)]
|
||||
pub enum DebandDither {
|
||||
#[default]
|
||||
Disabled,
|
||||
|
|
Loading…
Reference in a new issue