nightshade 0.14.0

A cross-platform data-oriented game engine.
Documentation
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);
    }
}