#[derive(Clone)]
pub enum Type {
U8,
U16,
U32,
I8,
I16,
I32,
F16,
F32,
}
impl Type {
pub fn size(&self) -> usize {
match self {
Type::U8 | Type::I8 => 1,
Type::U16 | Type::I16 | Type::F16 => 2,
Type::U32 | Type::I32 | Type::F32 => 4
}
}
pub fn format(&self) -> u32 {
match self {
Type::U8 => glow::UNSIGNED_BYTE,
Type::U16 => glow::UNSIGNED_SHORT,
Type::U32 => glow::UNSIGNED_INT,
Type::I8 => glow::BYTE,
Type::I16 => glow::SHORT,
Type::I32 => glow::INT,
Type::F16 => glow::HALF_FLOAT,
Type::F32 => glow::FLOAT
}
}
}