Reflect for Tonemapping and ClusterConfig (#6488)
# Objective - it would be useful to inspect these structs using reflection ## Solution - derive and register reflect - Note that `#[reflect(Component)]` requires `Default` (or `FromWorld`) until #6060, so I implemented `Default` for `Tonemapping` with `is_enabled: false`
This commit is contained in:
parent
0aa17d0aca
commit
4ad621fe0f
@ -7,7 +7,7 @@ use bevy_app::prelude::*;
|
||||
use bevy_asset::{load_internal_asset, HandleUntyped};
|
||||
use bevy_ecs::prelude::*;
|
||||
use bevy_ecs::query::QueryItem;
|
||||
use bevy_reflect::TypeUuid;
|
||||
use bevy_reflect::{Reflect, TypeUuid};
|
||||
use bevy_render::camera::Camera;
|
||||
use bevy_render::extract_component::{ExtractComponent, ExtractComponentPlugin};
|
||||
use bevy_render::renderer::RenderDevice;
|
||||
@ -37,6 +37,8 @@ impl Plugin for TonemappingPlugin {
|
||||
Shader::from_wgsl
|
||||
);
|
||||
|
||||
app.register_type::<Tonemapping>();
|
||||
|
||||
app.add_plugin(ExtractComponentPlugin::<Tonemapping>::default());
|
||||
|
||||
if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
|
||||
@ -104,7 +106,8 @@ impl FromWorld for TonemappingPipeline {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Component, Clone)]
|
||||
#[derive(Component, Clone, Reflect, Default)]
|
||||
#[reflect(Component)]
|
||||
pub struct Tonemapping {
|
||||
pub is_enabled: bool,
|
||||
}
|
||||
|
||||
@ -130,6 +130,9 @@ impl Plugin for PbrPlugin {
|
||||
.register_asset_reflect::<StandardMaterial>()
|
||||
.register_type::<AmbientLight>()
|
||||
.register_type::<DirectionalLightShadowMap>()
|
||||
.register_type::<ClusterConfig>()
|
||||
.register_type::<ClusterZConfig>()
|
||||
.register_type::<ClusterFarZMode>()
|
||||
.register_type::<PointLightShadowMap>()
|
||||
.add_plugin(MeshRenderPlugin)
|
||||
.add_plugin(MaterialPlugin::<StandardMaterial>::default())
|
||||
|
||||
@ -308,7 +308,7 @@ pub enum SimulationLightSystems {
|
||||
|
||||
/// Configure the far z-plane mode used for the furthest depth slice for clustered forward
|
||||
/// rendering
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Debug, Copy, Clone, Reflect, FromReflect)]
|
||||
pub enum ClusterFarZMode {
|
||||
/// Calculate the required maximum z-depth based on currently visible lights.
|
||||
/// Makes better use of available clusters, speeding up GPU lighting operations
|
||||
@ -320,7 +320,8 @@ pub enum ClusterFarZMode {
|
||||
}
|
||||
|
||||
/// Configure the depth-slicing strategy for clustered forward rendering
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Debug, Copy, Clone, Reflect, FromReflect)]
|
||||
#[reflect(Default)]
|
||||
pub struct ClusterZConfig {
|
||||
/// Far `Z` plane of the first depth slice
|
||||
pub first_slice_depth: f32,
|
||||
@ -338,7 +339,8 @@ impl Default for ClusterZConfig {
|
||||
}
|
||||
|
||||
/// Configuration of the clustering strategy for clustered forward rendering
|
||||
#[derive(Debug, Copy, Clone, Component)]
|
||||
#[derive(Debug, Copy, Clone, Component, Reflect)]
|
||||
#[reflect(Component)]
|
||||
pub enum ClusterConfig {
|
||||
/// Disable light cluster calculations for this view
|
||||
None,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user