use std::borrow::Cow;
use wgpu::PipelineCompilationOptions;
pub struct IndicatrixtracerPipeline {
pub compute_pipeline: wgpu::ComputePipeline,
}
impl IndicatrixtracerPipeline {
#[must_use]
pub fn new(device: &wgpu::Device) -> Self {
let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor {
label: Some("Gem Raytracer Shader"),
source: wgpu::ShaderSource::Wgsl(Cow::Borrowed(include_str!(
"shaders/gem_raytracer.wgsl"
))),
});
let compute_pipeline = device.create_compute_pipeline(&wgpu::ComputePipelineDescriptor {
label: Some("Gem Raytracer Compute Pipeline"),
layout: None,
module: &shader,
entry_point: Some("main"),
compilation_options: PipelineCompilationOptions::default(),
cache: None,
});
Self { compute_pipeline }
}
}