pub trait ShaderDevice {
type ComputePipeline: Send + Sync + ComputePipelineBase;
type RenderPipeline: Send + Sync;
// Required methods
fn create_compute_pipeline(
&self,
desc: ComputePipelineDesc<'_>,
) -> Self::ComputePipeline;
fn destroy_compute_pipeline(&self, pipeline: &mut Self::ComputePipeline);
fn create_render_pipeline(
&self,
desc: RenderPipelineDesc<'_>,
) -> Self::RenderPipeline;
fn destroy_render_pipeline(&self, pipeline: &mut Self::RenderPipeline);
}