diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-08-09 18:05:15 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-08-09 18:05:15 -0700 |
| commit | 1216c5f3dd1f902fb545db875e2b88f50d24e580 (patch) | |
| tree | f367588e57d43b391c0c21642886e4aa34fe1b4a /src/files | |
| parent | d672e147db0df6186c528262367770dcde9d75fc (diff) | |
move PNG-specific code to a new module files::png
this mirrors files::obj Force-Push: yes Change-Id: I17ccae0b54b49453100873ba707ee36406b96057
Diffstat (limited to 'src/files')
| -rw-r--r-- | src/files/mod.rs | 2 | ||||
| -rw-r--r-- | src/files/png.rs | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/files/mod.rs b/src/files/mod.rs index 8bc7539..c977be4 100644 --- a/src/files/mod.rs +++ b/src/files/mod.rs @@ -1,3 +1,5 @@ #![deny(unsafe_code)] pub mod obj; +pub mod png; + diff --git a/src/files/png.rs b/src/files/png.rs new file mode 100644 index 0000000..c164613 --- /dev/null +++ b/src/files/png.rs @@ -0,0 +1,23 @@ +#![deny(unsafe_code)] +use crate::error::*; +use crate::graphics::{ Permanent, Texture }; + +use std::io::Cursor; + +use png::Decoder; + + +pub fn load_png(permanent: &Permanent) -> Result<(Texture, u32)> { + let png = include_bytes!("../../textures/forest_leaves_04_diff.png"); + + let decoder = Decoder::new(Cursor::new(png)); + let mut reader = decoder.read_info()?; + + let (width, height) = reader.info().size(); + + let mut pixels = vec![0; reader.info().raw_bytes()]; + reader.next_frame(&mut pixels)?; + + Texture::new(width, height, pixels, permanent) +} + |