aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/headers
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2018-02-12 00:13:39 +0100
committerNao Pross <naopross@thearcway.org>2018-02-12 00:13:39 +0100
commitd3e8495212f9008f0c2650fb5ee628b464ca5ac0 (patch)
treee45ef935e17e24184cce7a75d5a281133d49b271 /src/main/headers
parentUpdate README to add dependencies (diff)
downloadSubconscious-old-d3e8495212f9008f0c2650fb5ee628b464ca5ac0.tar.gz
Subconscious-old-d3e8495212f9008f0c2650fb5ee628b464ca5ac0.zip
Handle WindowResize event and add zoom
Diffstat (limited to '')
-rw-r--r--src/main/headers/Scene.hpp14
-rw-r--r--src/main/headers/WorldScene.hpp7
2 files changed, 17 insertions, 4 deletions
diff --git a/src/main/headers/Scene.hpp b/src/main/headers/Scene.hpp
index 2b19d31..b7a46e6 100644
--- a/src/main/headers/Scene.hpp
+++ b/src/main/headers/Scene.hpp
@@ -6,7 +6,19 @@
class Scene
{
public:
- virtual void render(sf::RenderWindow &window) = 0;
+ constexpr static float MAX_ZOOM = 10;
+ constexpr static float MIN_ZOOM = .1;
+
+ virtual void render() = 0;
+ virtual void resize(const sf::Event::SizeEvent &size) = 0;
+
+ virtual void zoom(float factor) {}
+
+protected:
+ float _zoom = 1;
+ sf::RenderWindow &_window;
+
+ Scene(sf::RenderWindow &window) : _window(window) {}
};
#endif
diff --git a/src/main/headers/WorldScene.hpp b/src/main/headers/WorldScene.hpp
index acdda63..09f3120 100644
--- a/src/main/headers/WorldScene.hpp
+++ b/src/main/headers/WorldScene.hpp
@@ -14,11 +14,12 @@ public:
constexpr static int ZOOM_MAX = 100;
constexpr static int DEFAULT_TILE_SIZE_PX = 20;
- WorldScene();
+ WorldScene(sf::RenderWindow &window);
- virtual void render(sf::RenderWindow &window);
+ virtual void render();
+ virtual void resize(const sf::Event::SizeEvent &size);
- virtual void zoom(int value);
+ virtual void zoom(float factor);
virtual void pan(int dx, int dy);
private: