summaryrefslogtreecommitdiff
path: root/src/graphics/textureFont.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics/textureFont.h')
-rw-r--r--src/graphics/textureFont.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/graphics/textureFont.h b/src/graphics/textureFont.h
new file mode 100644
index 0000000..aa89e50
--- /dev/null
+++ b/src/graphics/textureFont.h
@@ -0,0 +1,38 @@
+#ifndef GRAPHICS_FONT_H
+#define GRAPHICS_FONT_H
+
+#include<string>
+#include<array>
+#include"SFML/Graphics.hpp"
+
+namespace Graphics {
+ class TextureFont {
+ public:
+ struct Descr {
+ std::string mapping;
+ unsigned int numrows, numcols;
+ };
+ private:
+ const sf::Texture &tex_;
+ const Descr description_;
+ sf::Vector2f glyphSize_;
+ public:
+ TextureFont(const sf::Texture &texture, Descr desc);
+ 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:
+ TextureFont &font_;
+ const std::string text_;
+ sf::VertexArray vertices_;
+ public:
+ Text(TextureFont &font, const std::string &text);
+ virtual void draw(sf::RenderTarget& target,
+ sf::RenderStates states) const override;
+ };
+}
+
+#endif // GRAPHICS_FONT_H