aboutsummaryrefslogtreecommitdiffstats
path: root/include/YAGE/camera2d.hpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-04-04 12:19:41 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-04-04 12:19:41 +0100
commit55a1e0ad7c9d2661c266b2e767bfcb2f944e859f (patch)
treefe3ac90ab853e2f87bd33294976a3fc56e144988 /include/YAGE/camera2d.hpp
parentaa67c8bb56cb750ac83ecbd361439f5ecb5e12d9 (diff)
downloadYAGE-55a1e0ad7c9d2661c266b2e767bfcb2f944e859f.tar.gz
YAGE-55a1e0ad7c9d2661c266b2e767bfcb2f944e859f.zip
Adding spritebatch class
Diffstat (limited to 'include/YAGE/camera2d.hpp')
-rw-r--r--include/YAGE/camera2d.hpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/YAGE/camera2d.hpp b/include/YAGE/camera2d.hpp
new file mode 100644
index 00000000..030b0a37
--- /dev/null
+++ b/include/YAGE/camera2d.hpp
@@ -0,0 +1,36 @@
+#ifndef CAMERA_2D_HPP
+#define CAMERA_2D_HPP
+
+#include <glm/glm.hpp>
+#include <glm/gtc/matrix_transform.hpp>
+
+namespace yage
+{
+
+class Camera2D
+{
+private:
+ bool matrix_needs_update_=true;
+ float scale_=1.f;
+ glm::vec2 position_;
+ glm::mat4 camera_matrix_;
+ glm::mat4 ortho_matrix_;
+public:
+ Camera2D(int screen_width=1280, int screen_height=720);
+ virtual ~Camera2D();
+
+ void update();
+
+ // setters
+ void setPosition(const glm::vec2 &new_position) { position_=new_position; matrix_needs_update_=true; }
+ void setScale(float new_scale) {scale_=new_scale; matrix_needs_update_=true; }
+
+ // getters
+ float getScale() { return scale_; }
+ glm::vec2 getPosition() { return position_; }
+ glm::mat4 getCameraMatrix() { return camera_matrix_; }
+};
+
+} // yage
+
+#endif