diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2022-12-09 19:43:16 +0100 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2022-12-09 19:43:16 +0100 |
commit | 2b6cd04c1fcf9807b6da9aa03e9920c28780db2c (patch) | |
tree | e31e647762d5827c1b95006af3233af96146a608 /src/graphics/font.h | |
parent | 30f488cdcb88dad5dd1df425588cb6a7fd206bb5 (diff) |
Add basic bitmap font/text support
Diffstat (limited to 'src/graphics/font.h')
-rw-r--r-- | src/graphics/font.h | 35 |
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 |