1use super::texture::Texture;
2
3#[derive(Clone, Debug)]
4pub enum UniformValue {
5 None,
6 Boolean(bool),
7 Float(f32),
8 Vec2([f32; 2]),
9 Vec3([f32; 3]),
10 Vec4([f32; 4]),
11 Mat2([f32; 4]),
12 Mat3([f32; 9]),
13 Mat4([f32; 16]),
14 Texture(Texture),
15}
16
17#[derive(Clone, Debug)]
18pub struct Field {
19 pub name: &'static str,
20 pub value: UniformValue,
21}
22
23pub trait IntoUniform {
24 fn into_uniform(&self) -> UniformValue;
25}
26
27pub trait Uniforms {
28 fn uniforms(&self) -> Vec<Field>;
29}