summaryrefslogtreecommitdiff
path: root/src/extend
diff options
context:
space:
mode:
Diffstat (limited to 'src/extend')
-rw-r--r--src/extend/camera.c24
-rw-r--r--src/extend/camera.h21
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;