summaryrefslogtreecommitdiff
path: root/engine/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/lib.rs')
-rw-r--r--engine/src/lib.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/engine/src/lib.rs b/engine/src/lib.rs
index ee93695..ce953f8 100644
--- a/engine/src/lib.rs
+++ b/engine/src/lib.rs
@@ -4,6 +4,7 @@ use std::collections::BTreeMap;
use glfw::{Window, WindowBuilder};
+use crate::camera::Camera;
use crate::object::{Id as ObjectId, Object};
use crate::vector::Vec2;
@@ -13,6 +14,7 @@ mod projection;
mod renderer;
mod transform;
+pub mod camera;
pub mod color;
pub mod object;
pub mod vector;
@@ -26,6 +28,7 @@ pub struct Engine
/// Objects have to be dropped before window. Otherwise, UB.
objects: BTreeMap<ObjectId, Object>,
window: Window,
+ camera: Camera,
}
impl Engine
@@ -59,6 +62,7 @@ impl Engine
Ok(Self {
window,
objects: BTreeMap::new(),
+ camera: Camera::new(),
})
}
@@ -96,7 +100,7 @@ impl Engine
let window_size = self.window.size().map_err(Error::GetWindowSizeFailed)?;
- crate::renderer::render(self.objects.values(), &window_size);
+ crate::renderer::render(self.objects.values(), &window_size, &self.camera);
self.window
.swap_buffers()
@@ -109,6 +113,11 @@ impl Engine
Ok(())
}
+
+ pub fn camera(&mut self) -> &mut Camera
+ {
+ &mut self.camera
+ }
}
/// Engine Error