screenspace coords was much easier than expected

This commit is contained in:
2020-08-08 01:49:35 -07:00
parent 67b7d98f99
commit 0619b79d34
8 changed files with 92 additions and 72 deletions

View File

@@ -11,7 +11,7 @@ use winit::event::Event;
/// Trait which may be inherited by objects that wish to be drawn to the screen
pub trait Drawable {
fn get(&self) -> Vec<VertexType>;
fn get(&self, window_size: (u32, u32)) -> Vec<VertexType>;
}
/// Trait which may be inherited by objects that wish to receive events
@@ -19,17 +19,29 @@ pub trait Eventable<T> {
fn notify(&mut self, event: &Event<T>) -> ();
}
/// Trait which may be inherited by objects that wish to be updated
pub trait Updatable {
fn update(&mut self, delta_time: f32) -> ();
}
/// Accumulator for Vectors of VertexTypes
#[derive(Default)]
pub struct CanvasFrame {
pub map: Vec<VertexType>,
window_size: (u32, u32),
}
impl CanvasFrame {
pub fn new(window_size: (u32, u32)) -> CanvasFrame {
CanvasFrame {
map: vec![],
window_size: window_size,
}
}
/// Push this drawable onto the back of the accumulator
pub fn draw(&mut self, drawable: &dyn Drawable) {
for i in drawable.get() {
for i in drawable.get(self.window_size) {
self.map.push(i);
}
}