#[derive(Debug, PartialEq, Eq, Clone, Copy, Default)]
pub enum Comparison {
#[default]
Always,
Never,
Less,
LessOrEqual,
Greater,
GreaterOrEqual,
Equal,
NotEqual,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy, Default)]
pub enum BlendOp {
#[default]
Add,
Subtract,
SubtractReverse,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum BlendValue {
SourceColor,
SourceAlpha,
DestinationColor,
DestinationAlpha,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum BlendFactor {
Zero,
One,
Value(BlendValue),
OneMinusValue(BlendValue),
SourceAlphaSaturate,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct BlendEquation {
pub op: BlendOp,
pub sfactor: BlendFactor,
pub dfactor: BlendFactor,
}
impl Default for BlendEquation {
fn default() -> Self {
BlendEquation {
op: BlendOp::Add,
sfactor: BlendFactor::Value(BlendValue::SourceAlpha),
dfactor: BlendFactor::OneMinusValue(BlendValue::SourceAlpha),
}
}
}