#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct ToneMapUniform {
pub(crate) exposure: f32,
pub(crate) mode: u32, pub(crate) bloom_enabled: u32,
pub(crate) ssao_enabled: u32,
pub(crate) contact_shadows_enabled: u32,
pub(crate) edl_enabled: u32,
pub(crate) edl_radius: f32,
pub(crate) edl_strength: f32,
pub(crate) background_colour: [f32; 4],
pub(crate) near_plane: f32,
pub(crate) far_plane: f32,
pub(crate) lic_enabled: u32,
pub(crate) lic_strength: f32,
}
const _: () = assert!(std::mem::size_of::<ToneMapUniform>() == 64);
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct BloomUniform {
pub(crate) threshold: f32,
pub(crate) intensity: f32,
pub(crate) horizontal: u32, pub(crate) _pad: u32,
}
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct SsaoUniform {
pub(crate) inv_proj: [[f32; 4]; 4], pub(crate) proj: [[f32; 4]; 4], pub(crate) radius: f32,
pub(crate) bias: f32,
pub(crate) _pad: [f32; 2],
}
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct DofUniform {
pub(crate) focal_distance: f32,
pub(crate) focal_range: f32,
pub(crate) max_blur_radius: f32,
pub(crate) near_plane: f32,
pub(crate) far_plane: f32,
pub(crate) viewport_width: f32,
pub(crate) viewport_height: f32,
pub(crate) _pad: f32,
}
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct ShadowAtlasUniform {
pub(crate) cascade_view_proj: [[f32; 4]; 16], pub(crate) cascade_splits: [f32; 4], pub(crate) cascade_count: u32, pub(crate) atlas_size: f32, pub(crate) shadow_filter: u32, pub(crate) pcss_light_radius: f32, pub(crate) atlas_rects: [[f32; 4]; 8], }
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct AtlasBlitUniform {
pub(crate) rect: [f32; 4],
}
#[repr(C)]
#[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
pub(crate) struct ContactShadowUniform {
pub(crate) inv_proj: [[f32; 4]; 4], pub(crate) proj: [[f32; 4]; 4], pub(crate) light_dir_view: [f32; 4], pub(crate) world_up_view: [f32; 4], pub(crate) params: [f32; 4], }