diff --git a/src/Camera.cpp b/src/Camera.cpp new file mode 100644 index 0000000..265bfad --- /dev/null +++ b/src/Camera.cpp @@ -0,0 +1,20 @@ +#include "Camera.h" +#include + +Camera::Camera() { + glm::vec3 eye(0.0f, 0.0f, 4.0f), at(0.0f, 0.0f, 0.0f), up(0.0f, 1.0f, 0.0f); + _view = glm::lookAt(eye, at, up); + _projection = glm::perspective(45.0f, 1.0f, 2.0f, -2.0f); +} + +Camera *Camera::instance() { + static Camera camera; + return &camera; +} + +void Camera::storeUniformVars() { +// GLint view = glGetUniformLocation(program, "mView"); +// glUniformMatrix4fv(view, 1, GL_FALSE, glm::value_ptr(mView)); +// GLint projection = glGetUniformLocation(program, "mProjection"); +// glUniformMatrix4fv(projection, 1, GL_FALSE, glm::value_ptr(mProjection)); +} diff --git a/src/Camera.h b/src/Camera.h new file mode 100644 index 0000000..4b7550d --- /dev/null +++ b/src/Camera.h @@ -0,0 +1,23 @@ +#ifndef GLTEST_CAMERA_H +#define GLTEST_CAMERA_H + +#include +#include + +class Camera { +private: + glm::mat4 _view; + glm::mat4 _projection; + +private: + Camera(); + Camera(Camera&) = delete; + void operator=(Camera&) = delete; + void storeUniformVars(); + +public: + static Camera* instance(); +}; + + +#endif //GLTEST_CAMERA_H