Files
wgpu-renderer/Source/Shader/ShaderSource.rs
2021-11-09 21:07:16 -03:00

23 lines
486 B
Rust

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
}
}
}