Skip to main content

wde_pbr/deferred/subpass/
gbuffer_bindgroup.rs

1use bevy::prelude::*;
2
3use bevy::ecs::system::SystemParamItem;
4use wde_renderer::prelude::*;
5
6use crate::{deferred::transform::PbrSsboTransform, prelude::PbrSsboInstanceToTransform};
7
8#[derive(Default, Clone, TypePath, Asset)]
9pub struct SsboTransformBinding;
10impl RenderBinding for SsboTransformBinding {
11    type Params = (
12        SRenderData<PbrSsboTransform>,
13        SRenderData<PbrSsboInstanceToTransform>
14    );
15
16    fn describe(
17        &mut self,
18        (ssbo_transform, ssbo_instance_to_transform): &SystemParamItem<Self::Params>,
19        builder: &mut wde_renderer::assets::RenderBindingBuilder
20    ) {
21        builder
22            .add_buffer(ssbo_transform, PbrSsboTransform::TRANSFORM_IDX)
23            .add_buffer(
24                ssbo_instance_to_transform,
25                PbrSsboInstanceToTransform::INSTANCE_TO_TRANSFORM_IDX
26            );
27    }
28
29    fn label(&self) -> &str {
30        "ssbo-transform-bindgroup"
31    }
32}