use crate::error::RSGTError;
use std::path::Path;
use winit::window::Icon;
pub fn load_icon(path: &Path) -> Result<Icon, RSGTError> {
let (icon_rgba, icon_width, icon_height) = {
let image = match image::open(path) {
Ok(img) => img.into_rgba8(),
Err(err) => {
return Err(RSGTError::illegal_argument(err.to_string().as_str()));
}
};
let (width, height) = image.dimensions();
let rgba = image.into_raw();
(rgba, width, height)
};
let icon = match Icon::from_rgba(icon_rgba, icon_width, icon_height) {
Ok(icon) => icon,
Err(err) => {
return Err(RSGTError::illegal_argument(err.to_string().as_str()));
}
};
Ok(icon)
}