67 lines
1.5 KiB
Rust
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();
|
|
}
|
|
}
|