Skip to main content

lumen_engine/node/compositing/
mod.rs

1pub mod boolean;
2pub mod merge;
3pub mod raster_multimerge;
4pub mod switch;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, lumen_macros::NodeEnum)]
7#[repr(u8)]
8#[non_exhaustive]
9pub enum BlendMode {
10    Normal = 0,
11    Multiply = 1,
12    Screen = 2,
13    Overlay = 3,
14    Darken = 4,
15    Lighten = 5,
16}
17
18impl TryFrom<usize> for BlendMode {
19    type Error = &'static str;
20
21    fn try_from(value: usize) -> Result<Self, Self::Error> {
22        match value {
23            0 => Ok(BlendMode::Normal),
24            1 => Ok(BlendMode::Multiply),
25            2 => Ok(BlendMode::Screen),
26            3 => Ok(BlendMode::Overlay),
27            4 => Ok(BlendMode::Darken),
28            5 => Ok(BlendMode::Lighten),
29            _ => Err("failed to convert usize into BlendMode"),
30        }
31    }
32}