#ifndef GRAPHICS_FONT_H #define GRAPHICS_FONT_H #include #include #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 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