// Copyright 2023 The Vello authors // SPDX-License-Identifier: Apache-2.0 OR MIT mod types; #[cfg(feature = "compile")] pub mod compile; pub use types::{BindType, BindingInfo, WorkgroupBufferInfo}; use std::borrow::Cow; #[derive(Clone, Debug)] pub struct ComputeShader<'a> { pub name: Cow<'a, str>, pub code: Cow<'a, [u8]>, pub workgroup_size: [u32; 3], pub bindings: Cow<'a, [BindType]>, pub workgroup_buffers: Cow<'a, [WorkgroupBufferInfo]>, } pub trait PipelineHost { type Device; type ComputePipeline; type Error; fn new_compute_pipeline( &mut self, device: &Self::Device, shader: &ComputeShader, ) -> Result; } include!(concat!(env!("OUT_DIR"), "/shaders.rs"));