upd camera

This commit is contained in:
griffi-gh 2023-01-25 04:11:55 +01:00
parent 3d6988f459
commit 29166c3b95
2 changed files with 9 additions and 6 deletions

View file

@ -1,7 +1,7 @@
use glam::{Mat4, Vec3}; use glam::{Mat4, Vec3};
use shipyard::{Component, ViewMut, View, IntoIter, Workload, IntoWorkload}; use shipyard::{Component, ViewMut, View, IntoIter, Workload, IntoWorkload};
use std::f32::consts::PI; use std::f32::consts::PI;
use crate::transform::Transform; use crate::{transform::Transform, events::WindowResizedEvent};
#[derive(Component)] #[derive(Component)]
pub struct Camera { pub struct Camera {
@ -46,14 +46,17 @@ fn update_view_matrix(
} }
fn update_perspective_matrix( fn update_perspective_matrix(
mut vm_camera: ViewMut<Camera> mut vm_camera: ViewMut<Camera>,
resize: View<WindowResizedEvent>,
) { ) {
//todo compute this on win resize! //TODO update on launch
const ASPECT_RATIO: f32 = 16. / 9.; let Some(&size) = resize.iter().next() else {
return
};
for camera in (&mut vm_camera).iter() { for camera in (&mut vm_camera).iter() {
camera.perspective_matrix = Mat4::perspective_rh_gl( camera.perspective_matrix = Mat4::perspective_rh_gl(
camera.fov, camera.fov,
ASPECT_RATIO, size.0.x as f32 / size.0.y as f32,
camera.z_near, camera.z_near,
camera.z_far, camera.z_far,
) )

View file

@ -15,7 +15,7 @@ pub struct InputDeviceEvent{
} }
#[derive(Component, Clone, Copy, Debug, Default)] #[derive(Component, Clone, Copy, Debug, Default)]
pub struct WindowResizedEvent(UVec2); pub struct WindowResizedEvent(pub UVec2);
pub fn process_glutin_events(world: &mut World, event: &Event<'_, ()>) { pub fn process_glutin_events(world: &mut World, event: &Event<'_, ()>) {
#[allow(clippy::collapsible_match, clippy::single_match)] #[allow(clippy::collapsible_match, clippy::single_match)]