From 9ec712bb69a3646114b8609c902b5b5ac06101cc Mon Sep 17 00:00:00 2001 From: Richard Acayan Date: Fri, 19 Jul 2024 17:10:28 -0400 Subject: [PATCH] core: graphics: use saturating_add for copying images High-level language skill issue :P --- src/core/graphics.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/core/graphics.rs b/src/core/graphics.rs index 2fc1958..68370eb 100644 --- a/src/core/graphics.rs +++ b/src/core/graphics.rs @@ -16,7 +16,6 @@ use core::rgb::alt::BGR; use core::rgb::alt::BGRA; use core::xkeysym::Keysym; use std::collections::HashMap; -use std::convert::TryInto; use std::fs::File; use std::io::Read; use std::iter; @@ -26,9 +25,9 @@ fn convert_gray_to_bgrx(mut dest: ImgRefMut>, src: ImgRef, fg_color { for (dest, src) in iter::zip(dest.rows_mut(), src.rows()) { for (dest, src) in iter::zip(dest, src) { - dest.r = ((dest.r as f32 + *src as f32 * fg_color.r) as u16).try_into().unwrap_or(255); - dest.g = ((dest.g as f32 + *src as f32 * fg_color.g) as u16).try_into().unwrap_or(255); - dest.b = ((dest.b as f32 + *src as f32 * fg_color.b) as u16).try_into().unwrap_or(255); + dest.r = dest.r.saturating_add((*src as f32 * fg_color.r) as u8); + dest.g = dest.g.saturating_add((*src as f32 * fg_color.g) as u8); + dest.b = dest.b.saturating_add((*src as f32 * fg_color.b) as u8); } } } @@ -36,7 +35,7 @@ fn convert_gray_to_bgrx(mut dest: ImgRefMut>, src: ImgRef, fg_color fn copy_image(mut dest: ImgRefMut, src: ImgRef) { for (dest, src) in iter::zip(dest.pixels_mut(), src.pixels()) { - *dest = (src as u16 + *dest as u16).try_into().unwrap_or(255); + *dest = src.saturating_add(*dest); } }