Browse Source

Lesson 25.5

Godzil 3 years ago
parent
commit
310b63b2fc
3 changed files with 8 additions and 5 deletions
  1. 5 2
      source/camera.c
  2. 2 2
      source/display.c
  3. 1 1
      source/include/camera.h

+ 5 - 2
source/camera.c

@@ -15,6 +15,8 @@ void createCamera(camera_t *camera)
 {
     camera->position = vec3(0, 0, 0);
     camera->direction = vec3(0, 0, 1 );
+    camera->target = vec4FromVec3(vec3(0, 0, 1));
+    camera->up = vec3(0, 1, 0);
     camera->yawAngle = 0;
     camera->pitchAngle = 0;
 }
@@ -36,7 +38,7 @@ void cameraMoveBackward(camera_t *camera, double distance)
     camera->position = vec3SubVectors(camera->position, velocity);
 }
 
-void cameraMoveAbsolute(camera_t *camera, double x, double y, double z)
+void cameraMoveRelative (camera_t *camera, double x, double y, double z)
 {
     camera->position.x += x;
     camera->position.y += y;
@@ -48,7 +50,8 @@ void cameraRotateBy(camera_t *camera, double yaw, double pitch)
     camera->yawAngle += yaw;
     camera->pitchAngle += pitch;
 
-    matrix4_t rotationMatrix = mat4ProdMat4(mat4RotationX(camera->yawAngle), mat4RotationY(camera->pitchAngle));
+    matrix4_t rotationMatrix = mat4ProdMat4(mat4RotationY(camera->yawAngle),
+                                            mat4RotationX(camera->pitchAngle));
     camera->direction = vec3FromVec4(mat4ProdVec4(rotationMatrix, camera->target));
 }
 

+ 2 - 2
source/display.c

@@ -73,8 +73,8 @@ bool initialiseWindow(int32_t width, int32_t height, bool fullScreen)
     }
     else
     {
-        fullscreenWidth = width * 4;
-        fullscreenHeight = height * 4;
+        fullscreenWidth = width;
+        fullscreenHeight = height;
     }
 
     window = SDL_CreateWindow(NULL, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, fullscreenWidth, fullscreenHeight,

+ 1 - 1
source/include/camera.h

@@ -37,7 +37,7 @@ void cameraSetUp(camera_t *camera, vec3_t up);
 void cameraSetDirection(camera_t *camera, vec3_t direction);
 void cameraMoveForward(camera_t *camera, double distance);
 void cameraMoveBackward(camera_t *camera, double distance);
-void cameraMoveAbsolute(camera_t *camera, double x, double y, double z);
+void cameraMoveRelative(camera_t *camera, double x, double y, double z);
 void cameraRotateBy(camera_t *camera, double yaw, double pitch);
 
 matrix4_t cameraGetViewMatrix(camera_t *camera);