shenanigans

This commit is contained in:
gallant 2023-04-05 19:53:12 -05:00
parent a058ddde77
commit 6f34f30f83
2 changed files with 70 additions and 9 deletions

View file

@ -7,6 +7,7 @@ use sdl2::gfx::primitives::DrawRenderer;
//use sdl2::hint::Hint::Default;
//use sdl2::sys::*;
use std::default::Default;
use sdl2::pixels::Color;
#[allow(unused)]
fn main() {
@ -15,16 +16,72 @@ fn main() {
let bluh = Mesh {
tris: vec![
//SOUTH
Triangle::from((
Vec3::from((0.0,0.0,0.0)),
Vec3::from((0.0,1.0,0.0)),
Vec3::from((1.0,1.0,0.0))
)),
Triangle::from((
Vec3::from((0.0,0.0,0.0)),
Vec3::from((1.0,1.0,0.0)),
Vec3::from((1.0,0.0,0.0))
)),
//EAST
Triangle::from((
Vec3::from((0.0,0.0,0.0)),
Vec3::from((1.0,0.0,0.0)),
Vec3::from((1.0,1.0,0.0)),
Vec3::from((1.0,1.0,1.0))
)),
Triangle::from((
Vec3::from((1.0,0.0,0.0)),
Vec3::from((1.0,1.0,1.0)),
Vec3::from((1.0,0.0,1.0))
)),
//NORTH
Triangle::from((
Vec3::from((1.0,0.0,1.0)),
Vec3::from((1.0,1.0,1.0)),
Vec3::from((0.0,1.0,1.0))
)),
Triangle::from((
Vec3::from((1.0,0.0,1.0)),
Vec3::from((0.0,1.0,1.0)),
Vec3::from((0.0,0.0,1.0))
)),
//WEST
Triangle::from((
Vec3::from((0.0,0.0,1.0)),
Vec3::from((0.0,1.0,1.0)),
Vec3::from((0.0,1.0,0.0))
)),
Triangle::from((
Vec3::from((0.0,0.0,1.0)),
Vec3::from((0.0,1.0,0.0)),
Vec3::from((0.0,0.0,0.0))
)),
//TOP
Triangle::from((
Vec3::from((0.0,1.0,0.0)),
Vec3::from((0.0,1.0,1.0)),
Vec3::from((1.0,1.0,1.0))
)),
Triangle::from((
Vec3::from((0.0,1.0,0.0)),
Vec3::from((1.0,1.0,1.0)),
Vec3::from((1.0,1.0,0.0))
)),
//BOTTOM
Triangle::from((
Vec3::from((1.0,0.0,1.0)),
Vec3::from((0.0,0.0,1.0)),
Vec3::from((0.0,0.0,0.0))
)),
Triangle::from((
Vec3::from((1.0,0.0,1.0)),
Vec3::from((0.0,0.0,0.0)),
Vec3::from((1.0,0.0,0.0))
)),
]
};
@ -41,6 +98,7 @@ fn main() {
let dis_mode = video.current_display_mode(0).unwrap();
let gl_attr = video.gl_attr();
let f_near: f32 = 0.1;
let f_far: f32 = 1000.0;
let f_fov: f32 = 90.0;
@ -48,6 +106,8 @@ fn main() {
let f_fov_rad = 1.0 / f32::tan(f_fov * 0.5 / 180.0 * std::f32::consts::PI);
let mat_proj = Matrix4::zeros_generic(U4, U4);
b.set_draw_color((1u8,1u8,1u8,255u8));
for tri in &bluh.tris
{
let mut tri_projected = Triangle {..Default::default()};
@ -66,16 +126,17 @@ fn main() {
tri_projected.p.2.x *= 0.5 * dis_mode.w as f32;
tri_projected.p.2.y *= 0.5 * dis_mode.h as f32;
b.trigon(tri_projected.p.0.x as i16,
//println!("{:?}",tri_projected.p);
b.filled_trigon(tri_projected.p.0.x as i16,
tri_projected.p.0.y as i16,
tri_projected.p.1.x as i16,
tri_projected.p.1.y as i16,
tri_projected.p.2.x as i16,
tri_projected.p.2.y as i16,
(0u8,0u8,0u8, 0u8));
Color::BLACK).unwrap();
}
//ctx.set_background_colour(0,0,0);
ctx.set_background_colour(255,255,255);
}).unwrap();
}

View file

@ -1,6 +1,6 @@
//use nalgebra::Vector2;
#[derive(Default, Copy, Clone)]
#[derive(Default, Copy, Clone, Debug)]
pub struct Vec3 {
pub x: f32,
pub y: f32,
@ -14,12 +14,12 @@ pub struct Triangle {
impl From<(f32,f32,f32)> for Vec3
{
fn from(value: (f32,f32,f32)) -> Self
fn from((x,y,z): (f32,f32,f32)) -> Vec3
{
Vec3 {
x: value.0,
y: value.1,
z: value.2,
x,
y,
z,
}
}
}