wip: theme update & some cleanup
This commit is contained in:
parent
54d47a1b38
commit
620c1adb74
17 changed files with 181 additions and 905 deletions
|
|
@ -31,29 +31,3 @@ impl Into<Srgba> for CssColor {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
/// straight alpha "A over B" operator on non-linear srgba
|
||||
pub fn over<A: Into<Srgba>, B: Into<Srgba>>(a: A, b: B) -> Srgba {
|
||||
let a = a.into();
|
||||
let b = b.into();
|
||||
let o_a = (alpha_over(a.alpha, b.alpha)).max(0.0).min(1.0);
|
||||
let o_r = (c_over(a.red, b.red, a.alpha, b.alpha, o_a))
|
||||
.max(0.0)
|
||||
.min(1.0);
|
||||
let o_g = (c_over(a.green, b.green, a.alpha, b.alpha, o_a))
|
||||
.max(0.0)
|
||||
.min(1.0);
|
||||
let o_b = (c_over(a.blue, b.blue, a.alpha, b.alpha, o_a))
|
||||
.max(0.0)
|
||||
.min(1.0);
|
||||
|
||||
Srgba::new(o_r, o_g, o_b, o_a)
|
||||
}
|
||||
|
||||
fn alpha_over(a: f32, b: f32) -> f32 {
|
||||
a + b * (1.0 - a)
|
||||
}
|
||||
|
||||
fn c_over(a: f32, b: f32, a_alpha: f32, b_alpha: f32, o_alpha: f32) -> f32 {
|
||||
a * a_alpha + b * b_alpha * (1.0 - a_alpha) / o_alpha
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue