Brightness decrease (fade to black): result = color - color * evy / 16
(color: Color, evy: u8)
| 481 | let evy = self.registers.get_blend_brightness(); |
| 482 | Self::brightness_decrease(top_color, evy) |
| 483 | } |
| 484 | _ => top_color, |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | /// Alpha blend two colors: result = (color1 * eva + color2 * evb) / 16 |
| 489 | fn alpha_blend(color1: Color, color2: Color, eva: u8, evb: u8) -> Color { |
| 490 | let blend_component = |c1: u8, c2: u8| -> u8 { |
| 491 | let result = (u16::from(c1) * u16::from(eva) + u16::from(c2) * u16::from(evb)) / 16; |
| 492 | result.min(31) as u8 |
| 493 | }; |
| 494 | |
| 495 | Color::from_rgb( |
| 496 | blend_component(color1.red(), color2.red()), |
| 497 | blend_component(color1.green(), color2.green()), |