use crate::{core::BufferWrapper, wgpu_sort};
#[derive(Debug, Clone)]
pub struct GaussiansDepthBuffer(wgpu::Buffer);
impl GaussiansDepthBuffer {
pub fn new(device: &wgpu::Device, gaussian_count: u32) -> Self {
let size = wgpu_sort::keys_buffer_size_bytes(gaussian_count);
let buffer = device.create_buffer(&wgpu::BufferDescriptor {
label: Some("Gaussians Depth Buffer"),
size: size as wgpu::BufferAddress,
usage: Self::DEFAULT_USAGES,
mapped_at_creation: false,
});
Self(buffer)
}
}
impl BufferWrapper for GaussiansDepthBuffer {
const DEFAULT_USAGES: wgpu::BufferUsages = wgpu::BufferUsages::STORAGE;
fn buffer(&self) -> &wgpu::Buffer {
&self.0
}
}
impl From<GaussiansDepthBuffer> for wgpu::Buffer {
fn from(wrapper: GaussiansDepthBuffer) -> Self {
wrapper.0
}
}