summaryrefslogtreecommitdiff
path: root/src/graphics/font.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics/font.h')
-rw-r--r--src/graphics/font.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/graphics/font.h b/src/graphics/font.h
new file mode 100644
index 0000000..9a8e919
--- /dev/null
+++ b/src/graphics/font.h
@@ -0,0 +1,35 @@
+#ifndef GRAPHICS_FONT_H
+#define GRAPHICS_FONT_H
+
+#include<string>
+#include<array>
+#include"SFML/Graphics.hpp"
+
+namespace Graphics {
+ class Font {
+ private:
+ const sf::Texture &tex_;
+ const std::string mapping_;
+ const unsigned int numrows_, numcols_;
+ sf::Vector2f glyphSize_;
+ public:
+ Font(const sf::Texture &texture, const std::string &mapping,
+ unsigned int numrows, unsigned int numcols);
+ std::array<sf::Vector2f,4> getGlyphMapping(const char ch);
+ sf::Vector2f getGlyphSize();
+ const sf::Texture *getTexture();
+ };
+
+ class Text : public sf::Drawable, public sf::Transformable {
+ private:
+ Font &font_;
+ const std::string text_;
+ sf::VertexArray vertices_;
+ public:
+ Text(Font &font, const std::string &text);
+ virtual void draw(sf::RenderTarget& target,
+ sf::RenderStates states) const override;
+ };
+}
+
+#endif // GRAPHICS_FONT_H