2016-12-04 16:15:03 +01:00

47 lines
1.2 KiB
C++

#ifndef FONT_H
#define FONT_H
#include <map>
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
class Texture;
class TextNode;
class Font
{
public:
struct CharInfo
{
glm::vec2 pos;
glm::vec2 dim;
glm::vec2 offset;
float xadvance;
};
Font();
// setters
void setName(std::string name){m_name = name;}
void addCharInfo(wchar_t character, CharInfo character_info){ m_charTable[character] = character_info; }
void setNbChar(int nbchar){m_nbChar =nbchar;}
void setLineHeight(float line_h){m_defaultLineHeight = line_h;}
float getLineHeight(){return m_defaultLineHeight;}
void setBase(float base){m_base = base;}
void setAntiAnliasing(bool antialiasing){m_antiAliasing = antialiasing;}
void setScale(glm::vec2 scale){m_scale = scale;}
void setTexture(Texture *tex){m_tex = tex;}
TextNode* getTextNode(std::string s, glm::vec3 color = glm::vec3(1), float font_size = 64.f);
private:
std::string m_name;
Texture *m_tex;
std::map<wchar_t, CharInfo> m_charTable;
glm::vec2 m_scale;
bool m_antiAliasing;
int m_nbChar;
float m_defaultLineHeight;
float m_base;
};
#endif // FONT_H