use super::MeshPass;
impl MeshPass {
pub(in super::super) fn rebuild_material_bind_group(&mut self, device: &wgpu::Device) {
let (Some(srgb), Some(linear), Some(sampler)) = (
self.material_array_srgb_view.as_ref(),
self.material_array_linear_view.as_ref(),
self.material_array_sampler.as_ref(),
) else {
self.material_bind_group = None;
return;
};
let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {
label: Some("Mesh Material Texture Bind Group"),
layout: &self.texture_bind_group_layout,
entries: &[
wgpu::BindGroupEntry {
binding: 0,
resource: wgpu::BindingResource::TextureView(srgb),
},
wgpu::BindGroupEntry {
binding: 1,
resource: wgpu::BindingResource::TextureView(linear),
},
wgpu::BindGroupEntry {
binding: 2,
resource: wgpu::BindingResource::Sampler(sampler),
},
],
});
self.material_bind_group = Some(bind_group);
}
}