AGL2/src/main.rs

67 lines
1.5 KiB
Rust

use rgb::{colors, RGB8};
use shapes::point::{Point, ScreenPoint};
pub mod line;
pub mod rgb;
pub mod shapes;
pub mod window;
use minifb::{Key, Window as miniWindow, WindowOptions};
use window::Window;
/*
let p1 = Point { x: 0, y: 1, z: 2 };
let p2 = Point { x: 3, y: 4, z: 5 };
let p3 = Point { x: 6, y: 7, z: 8 };
let points = vec![&p1, &p2, &p3];
*/
fn main() {
let p1 = Point {
x: 0.0,
y: 1.0,
z: 2.0,
};
let p2 = Point {
x: 3.0,
y: 4.0,
z: 5.0,
};
let p3 = Point {
x: 6.0,
y: 7.0,
z: 8.0,
};
let points = vec![&p1, &p2, &p3];
let mut window = Window::new("able-graphics-library", 640, 480, Some(60));
let mut miniwindow = miniWindow::new(
&window.title,
window.width,
window.height,
WindowOptions::default(),
)
.unwrap_or_else(|e| {
panic!("{}", e);
});
// Limit to max ~60 fps update rate
miniwindow.limit_update_rate(window.timing_to_hit_target_fps());
while miniwindow.is_open() && !miniwindow.is_key_down(Key::Escape) {
window.clear(colors::BLACK);
// let _ = window.draw_triangles(&points);
window.draw_line(ScreenPoint { x: 1, y: 45 }, ScreenPoint { x: 200, y: 48 });
// We unwrap here as we want this code to exit if it fails. Real applications may want to handle this in a different way
miniwindow
.update_with_buffer(&window.buffer, window.width, window.height)
.unwrap();
}
}