32 lines
719 B
C
32 lines
719 B
C
|
#include <GL/glew.h>
|
||
|
#include <glm/glm.hpp>
|
||
|
#include <unordered_map>
|
||
|
|
||
|
#include <ft2build.h>
|
||
|
#include FT_FREETYPE_H
|
||
|
|
||
|
struct Character {
|
||
|
unsigned int TextureID; // ID handle of the glyph texture
|
||
|
glm::ivec2 Size; // Size of glyph
|
||
|
glm::ivec2 Bearing; // Offset from baseline to left/top of glyph
|
||
|
FT_Pos Advance; // Offset to advance to next glyph
|
||
|
};
|
||
|
|
||
|
class Font
|
||
|
{
|
||
|
public:
|
||
|
Font() = delete;
|
||
|
Font(const char* font);
|
||
|
void RenderText(GLuint VAO, GLuint VBO, GLuint shaderProgram, const char* text, float x, float y, float scale);
|
||
|
|
||
|
private:
|
||
|
void SetupCharMap(FT_Face& face);
|
||
|
|
||
|
public:
|
||
|
bool LoadError;
|
||
|
|
||
|
private:
|
||
|
std::unordered_map<GLchar, Character> m_Characters;
|
||
|
};
|
||
|
|