Initial wgpu abstraction

This commit is contained in:
Werner
2021-11-09 21:07:16 -03:00
parent 15e8989bef
commit b23bc27f55
25 changed files with 775 additions and 209 deletions

View File

@ -0,0 +1,22 @@
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub enum ShaderSource {
Glsl(String),
Spirv(Vec<u8>),
Wgsl(String),
}
impl ShaderSource {
pub fn SpirvFromBytes(bytes: &[u8]) -> ShaderSource {
ShaderSource::Spirv(Vec::from(bytes))
}
pub fn WgslToString(&self) -> Option<&String> {
if let ShaderSource::Wgsl(s) = &self {
Some(s)
} else {
None
}
}
}