Show the image in a window
This commit is contained in:
parent
675d9f837d
commit
354135949f
|
|
@ -8,3 +8,4 @@ edition = "2021"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rand = "0.8.5"
|
rand = "0.8.5"
|
||||||
glm = "0.2.3"
|
glm = "0.2.3"
|
||||||
|
show-image = "0.14.0"
|
||||||
|
|
|
||||||
19
src/main.rs
19
src/main.rs
|
|
@ -1,12 +1,14 @@
|
||||||
mod mesh_loader;
|
mod mesh_loader;
|
||||||
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::{env, io};
|
use std::{env};
|
||||||
|
use std::error::Error;
|
||||||
use std::f32::consts::PI;
|
use std::f32::consts::PI;
|
||||||
use std::io::{BufRead, BufReader, BufWriter};
|
use std::io::{BufRead, BufReader};
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use glm::*;
|
use glm::*;
|
||||||
|
use show_image::{ImageInfo, ImageView, WindowOptions};
|
||||||
use crate::mesh_loader::load_mesh;
|
use crate::mesh_loader::load_mesh;
|
||||||
|
|
||||||
const W: i32 = 320;
|
const W: i32 = 320;
|
||||||
|
|
@ -55,7 +57,8 @@ fn ypr_to_mat(ypr: Vec3) -> Mat3 {
|
||||||
m_roll * m_pitch * m_yaw
|
m_roll * m_pitch * m_yaw
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
#[show_image::main]
|
||||||
|
fn main() -> Result<(), Box<dyn Error>> {
|
||||||
let args: Vec<String> = env::args().collect();
|
let args: Vec<String> = env::args().collect();
|
||||||
let mesh = {
|
let mesh = {
|
||||||
let f = File::open(&args[1])?;
|
let f = File::open(&args[1])?;
|
||||||
|
|
@ -107,11 +110,11 @@ fn main() -> io::Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let f = File::create("1.ppm")?;
|
|
||||||
let mut f = BufWriter::new(f);
|
let window = show_image::create_window("Raytracing", WindowOptions::default())?;
|
||||||
write!(f, "P6\n")?;
|
let image = ImageView::new(ImageInfo::rgb8(W as u32, H as u32), img.data());
|
||||||
write!(f, "{W} {H} 255\n")?;
|
window.set_image("image", image)?;
|
||||||
f.write(img.data())?;
|
window.wait_until_destroyed()?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user