summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2023-05-27 21:42:42 +0200
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2023-05-27 21:42:42 +0200
commitfa4c45a206f73fe2d502e09f30ef29c25269fbf0 (patch)
treedd1e3bd892a6d910990af555639761415dedb982 /src
parentcbaba9b893eb340d9063431f27e5069ca7e04991 (diff)
downloadmt_client-fa4c45a206f73fe2d502e09f30ef29c25269fbf0.tar.xz
Fix crash on invalid texture
Diffstat (limited to 'src')
-rw-r--r--src/gfx/media.rs16
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)
}
}