easygpu/buffers/
uniform.rs

1use std::num::NonZeroU64;
2
3use crate::binding::Bind;
4
5/// A uniform buffer that can be bound in a 'BindingGroup'.
6#[derive(Debug)]
7pub struct UniformBuffer {
8    pub wgpu: wgpu::Buffer,
9    pub size: usize,
10    pub count: usize,
11}
12
13impl Bind for UniformBuffer {
14    fn binding(&self, index: u32) -> wgpu::BindGroupEntry {
15        wgpu::BindGroupEntry {
16            binding: index,
17            resource: wgpu::BindingResource::Buffer(wgpu::BufferBinding {
18                buffer: &self.wgpu,
19                offset: 0,
20                size: NonZeroU64::new((self.size * self.count) as u64),
21            }),
22        }
23    }
24}