summaryrefslogtreecommitdiff
path: root/engine/src/texture.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2023-11-12 13:40:49 +0100
committerHampusM <hampus@hampusmat.com>2023-11-12 13:40:49 +0100
commit67023d6a095f457a2579367d59d13c6c804e7108 (patch)
treec4ddf7d960daf6976e834df18f480bac5fddc75c /engine/src/texture.rs
parent7d01458a6ea591f1d6215c6c9b247410807ed60d (diff)
feat(engine): add support for textures with 8-bit rgba data
Diffstat (limited to 'engine/src/texture.rs')
-rw-r--r--engine/src/texture.rs13
1 files changed, 9 insertions, 4 deletions
diff --git a/engine/src/texture.rs b/engine/src/texture.rs
index 7874df4..bde3cd2 100644
--- a/engine/src/texture.rs
+++ b/engine/src/texture.rs
@@ -3,7 +3,7 @@ use std::path::Path;
use image::io::Reader as ImageReader;
use image::{DynamicImage, ImageError};
-use crate::opengl::texture::Texture as InnerTexture;
+use crate::opengl::texture::{PixelDataFormat, Texture as InnerTexture};
use crate::vector::Vec2;
mod reexports
@@ -35,9 +35,13 @@ impl Texture
.decode()
.map_err(Error::DecodeImageFailed)?;
- if !matches!(image, DynamicImage::ImageRgb8(_)) {
- return Err(Error::UnsupportedImageDataKind);
- }
+ let pixel_data_format = match &image {
+ DynamicImage::ImageRgb8(_) => PixelDataFormat::Rgb,
+ DynamicImage::ImageRgba8(_) => PixelDataFormat::Rgba,
+ _ => {
+ return Err(Error::UnsupportedImageDataKind);
+ }
+ };
let inner = InnerTexture::new();
@@ -46,6 +50,7 @@ impl Texture
&texture_curr_bound,
&Vec2 { x: image.width(), y: image.height() },
image.as_bytes(),
+ pixel_data_format,
);
});