OpenCut/rust/crates/gpu/src/lib.rs

22 lines
694 B
Rust

mod context;
use thiserror::Error;
pub use context::GpuContext;
pub use wgpu;
pub const GPU_TEXTURE_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Bgra8Unorm;
pub const FULLSCREEN_SHADER_SOURCE: &str = include_str!("shaders/fullscreen.wgsl");
#[derive(Debug, Error)]
pub enum GpuError {
#[error("No WebGPU adapter is available")]
AdapterUnavailable,
#[error("Failed to request a WebGPU device: {0}")]
RequestDevice(#[from] wgpu::RequestDeviceError),
#[error("Failed to create a WebGPU surface: {0}")]
CreateSurface(#[from] wgpu::CreateSurfaceError),
#[error("The output surface does not support the required texture format")]
UnsupportedSurfaceFormat,
}