diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-05-27 21:42:42 +0200 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-05-27 21:42:42 +0200 |
commit | fa4c45a206f73fe2d502e09f30ef29c25269fbf0 (patch) | |
tree | dd1e3bd892a6d910990af555639761415dedb982 /src | |
parent | cbaba9b893eb340d9063431f27e5069ca7e04991 (diff) | |
download | mt_client-fa4c45a206f73fe2d502e09f30ef29c25269fbf0.tar.xz |
Fix crash on invalid texture
Diffstat (limited to 'src')
-rw-r--r-- | src/gfx/media.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/gfx/media.rs b/src/gfx/media.rs index eca2fcd..36554bf 100644 --- a/src/gfx/media.rs +++ b/src/gfx/media.rs @@ -41,6 +41,13 @@ impl MediaMgr { .map(Vec::as_slice) } + pub fn rand_img() -> image::RgbaImage { + let mut img = image::RgbImage::new(1, 1); + rand::thread_rng().fill(&mut img.get_pixel_mut(0, 0).0); + + image::DynamicImage::from(img).to_rgba8() + } + pub fn texture(&self, texture: &str) -> image::RgbaImage { match match self.get(texture) { Some(payload) => image::load_from_memory(payload) @@ -53,12 +60,7 @@ impl MediaMgr { } } { Some(v) => image::imageops::flip_vertical(&v), - None => { - let mut img = image::RgbImage::new(1, 1); - rand::thread_rng().fill(&mut img.get_pixel_mut(0, 0).0); - - image::DynamicImage::from(img).to_rgba8() - } + None => Self::rand_img(), } } @@ -83,6 +85,6 @@ impl MediaMgr { base }) - .unwrap() + .unwrap_or_else(Self::rand_img) } } |