Provides two macros, blend_formula! and blend_equation!, used to evaluate an arbitrary formula to its equivalent GPU blend mode. If none exist, it's a compile-time error.

Provides conversion traits for the corresponding wgpu types through the feature flag wgpu.

Examples

```rust use blend_formula::*;

// Formulae: asserteq!(blendformula!(srcsrc.a + dst(1 - src.a)), BlendFormula { srcfactor: BlendFactor::SrcAlpha, dstfactor: BlendFactor::OneMinusSrcAlpha, operation: BlendOperation::Add }); asserteq!(blendformula!(-src), BlendFormula { srcfactor: BlendFactor::One, dstfactor: BlendFactor::Zero, operation: BlendOperation::RevSub }); asserteq!(blendformula!(dst < src*c), BlendFormula { srcfactor: BlendFactor::Constant, dstfactor: BlendFactor::One, operation: BlendOperation::Min });

// Equations: asserteq!(blendequation!(src + dst(1-src.a)), BlendEquation::PREMULTIPLIED_ALPHA_BLENDING ); assert_eq!(blend_equation!((dst+(src-dst)src.a).rgb, (dst+src-dst*src).a), BlendEquation::ALPHA_BLENDING );

// Shortcuts: asserteq!(blendformula!(+), blendformula!(src+dst)); asserteq!(blendformula!(*), blendformula!(src*dst)); asserteq!(blendequation!(-, dst.a), BlendEquation { color: blendformula!(src-dst), alpha: blendformula!(dst), }); ```