use super::buffer::Buffer;
pub fn premultiply_f32(buf: &mut Buffer<f32>) {
profiling::scope!("premultiply_f32");
for p in buf.pixels.iter_mut() {
let a = p[3];
p[0] *= a;
p[1] *= a;
p[2] *= a;
}
}
pub fn unpremultiply_f32(buf: &mut Buffer<f32>) {
profiling::scope!("unpremultiply_f32");
for p in buf.pixels.iter_mut() {
let a = p[3];
if a > 0.0 {
p[0] /= a;
p[1] /= a;
p[2] /= a;
}
}
}
pub fn premultiply_f64(buf: &mut Buffer<f64>) {
profiling::scope!("premultiply_f64");
for p in buf.pixels.iter_mut() {
let a = p[3];
p[0] *= a;
p[1] *= a;
p[2] *= a;
}
}
pub fn unpremultiply_f64(buf: &mut Buffer<f64>) {
profiling::scope!("unpremultiply_f64");
for p in buf.pixels.iter_mut() {
let a = p[3];
if a > 0.0 {
p[0] /= a;
p[1] /= a;
p[2] /= a;
}
}
}