Browse Source

move some camera constants to preprocessor defines

master
cinnaboot 8 years ago
parent
commit
475f3e7e08
  1. 1
      src/hexgame.cpp
  2. 24
      src/renderer.h

1
src/hexgame.cpp

@ -528,6 +528,7 @@ int main(int argc, char* argv[])
} }
cleanUp(handles); cleanUp(handles);
LOG(INFO) << "Application exiting\n";
return 0; return 0;
} }

24
src/renderer.h

@ -18,11 +18,11 @@
#include "hexlib.h" #include "hexlib.h"
#include "hexgame.h" #include "hexgame.h"
#if 0 #define MOVE_SPEED 5.f
#define PROJ_TYPE ORTHOGRAPHIC #define ROTATE_SPEED 0.005f
#else #define CAMERA_Z_CLAMP_ANGLE 85.f
#define PROJ_TYPE PERSPECTIVE //#define PROJ_TYPE ORTHOGRAPHIC
#endif #define PROJ_TYPE PERSPECTIVE
const char * VERTEX_SHADER_CODE = const char * VERTEX_SHADER_CODE =
"#version 330 core\n" "#version 330 core\n"
@ -272,6 +272,8 @@ initShaderProgram(gl_render_group &rg, const char * vertex_code, const char * fr
void void
initMatrices(projection_type p) initMatrices(projection_type p)
{ {
// TODO: many constants used here should be passed as args
if (p == PERSPECTIVE) if (p == PERSPECTIVE)
{ {
g_scene_matrices.projection = glm::infinitePerspective( g_scene_matrices.projection = glm::infinitePerspective(
@ -391,8 +393,6 @@ moveCamera(bool up, bool left, bool down, bool right, bool forward, bool backwar
if (!up && !left && !down && !right && !forward && !backward) if (!up && !left && !down && !right && !forward && !backward)
return; return;
float d = 5.f; // units per frame
glm::vec3 f = g_camera.forward; glm::vec3 f = g_camera.forward;
glm::vec3 u = g_camera.up; glm::vec3 u = g_camera.up;
glm::vec3 old = g_camera.position; glm::vec3 old = g_camera.position;
@ -415,7 +415,7 @@ moveCamera(bool up, bool left, bool down, bool right, bool forward, bool backwar
} }
glm::normalize(v); glm::normalize(v);
p += (v * d); p += (v * MOVE_SPEED);
glm::vec3 diff = old - p; glm::vec3 diff = old - p;
g_scene_matrices.view = glm::translate(g_scene_matrices.view, diff); g_scene_matrices.view = glm::translate(g_scene_matrices.view, diff);
g_scene_matrices.MVP = g_scene_matrices.projection * g_scene_matrices.view * g_scene_matrices.model; g_scene_matrices.MVP = g_scene_matrices.projection * g_scene_matrices.view * g_scene_matrices.model;
@ -427,11 +427,11 @@ rotateCamera(int32 xrel, int32 yrel)
camera &c = g_camera; camera &c = g_camera;
float &h = c.hAngle; float &h = c.hAngle;
float &v = c.vAngle; float &v = c.vAngle;
h += 0.005f * xrel; h += ROTATE_SPEED * xrel;
v -= 0.005f * yrel; v -= ROTATE_SPEED * yrel;
// clamp vAngle to + or - 85 degrees to prevent gimbal lock // clamp vAngle to prevent gimbal lock
float a = glm::radians(85.f); float a = glm::radians(CAMERA_Z_CLAMP_ANGLE);
if (v < (-1 * a)) v = (-1 * a); if (v < (-1 * a)) v = (-1 * a);
if (v > a) v = a; if (v > a) v = a;

Loading…
Cancel
Save