diff options
Diffstat (limited to 'src/extend')
-rw-r--r-- | src/extend/camera.c | 24 | ||||
-rw-r--r-- | src/extend/camera.h | 21 |
2 files changed, 23 insertions, 22 deletions
diff --git a/src/extend/camera.c b/src/extend/camera.c index 15bcc58..6426193 100644 --- a/src/extend/camera.c +++ b/src/extend/camera.c @@ -2,6 +2,26 @@ #include "../core/device.h" #include "camera.h" +// A unity editor style camera +typedef struct Camera { + Transform transform; + float fov, aspect, near, far; + /*matrix*/ + Mat4 cached_view_matrix; /*or WorldToCameraMatrix*/ + Mat4 cached_proj_matrix; + bool is_viewdirty, is_projdirty; + /*operations*/ + float zoom_speed; + Vec2 rotate_sensitivity; + Vec2 move_sensitivity; + Euler euler; + /*events*/ + bool look_around; + Vec2 mouse_prev; + bool move_around; + /*window*/ + wog_Window* wnd; +} Camera; Camera* camera_create(wog_Window* wnd, CameraConfig* config) { Camera* cam = ssrM_new(Camera); @@ -135,10 +155,10 @@ void camera_onupdate(Camera* cam, float dt) { void camera_ondraw(Camera* cam) { /*set vp matrix*/ ssr_matrixmode(MATRIX_PROJECTION); - camera_getprojmatrix(&cam, NULL); + camera_getprojmatrix(cam, NULL); ssr_loadmatrix(&cam->cached_proj_matrix); ssr_matrixmode(MATRIX_VIEW); - camera_getviewmatrix(&cam, NULL); + camera_getviewmatrix(cam, NULL); ssr_loadmatrix(&cam->cached_view_matrix); ssr_matrixmode(MATRIX_MODEL); /*set builtin variables*/ diff --git a/src/extend/camera.h b/src/extend/camera.h index 98e3e5a..add3684 100644 --- a/src/extend/camera.h +++ b/src/extend/camera.h @@ -8,26 +8,7 @@ #undef near #undef far -// A unity editor style camera -typedef struct Camera { - Transform transform; - float fov, aspect, near, far; - /*matrix*/ - Mat4 cached_view_matrix; /*or WorldToCameraMatrix*/ - Mat4 cached_proj_matrix; - bool is_viewdirty, is_projdirty; - /*operations*/ - float zoom_speed; - Vec2 rotate_sensitivity; - Vec2 move_sensitivity; - Euler euler; - /*events*/ - bool look_around; - Vec2 mouse_prev; - bool move_around; - /*window*/ - wog_Window* wnd; -} Camera; +typedef struct Camera Camera; typedef struct { Vec3 position; |