OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
font.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include <glad/glad.h>
8#include <glm/glm.hpp>
9
10#include <unordered_map>
11#include <string>
12
13#include "../ecs/component.hpp"
14#include "../constants.hpp"
15
16namespace Engine::UI {
21 struct FontChar {
23 GLuint textureID = 0;
25 glm::ivec2 size;
27 glm::ivec2 bearing;
29 unsigned int advance;
30 };
31
36 class Font {
37 private:
38 std::unordered_map<char, FontChar> mCharacters;
39 std::vector<char> mDataBuffer;
40 float mSize;
41
42 public:
46 Font();
47
52 ~Font();
53
60 Font(const std::string& fontPath, int fontSize = 48);
68 Font(const char *buffer, size_t size, int fontSize = 48);
69
76 FontChar GetChar(const char c);
82 void SetFontSize(float size);
88 float GetFontSize() const;
89
96 void LoadFromFile(const std::string& filePath, int fontSize = 48);
104 void LoadFromMemory(const char *buffer, size_t size, int fontSize = 48);
113 glm::vec2 GetTextSize(const std::string& text, glm::vec2 scale = glm::vec2(1.0f, 1.0f), float maxWidth = 0.0f);
114 };
115}
void LoadFromFile(const std::string &filePath, int fontSize=48)
Charge une police depuis un fichier sur le disque.
Definition font.cpp:41
void LoadFromMemory(const char *buffer, size_t size, int fontSize=48)
Charge une police depuis un buffer en mémoire.
Definition font.cpp:46
float GetFontSize() const
Permet de lire la taille actuelle de la police.
Definition font.cpp:37
void SetFontSize(float size)
Change la taille de la police.
Definition font.cpp:30
Font()
Construit un nouvel objet Font vide.
Definition font.cpp:10
~Font()
Nettoie la font et détruit proprement.
Definition font.cpp:14
FontChar GetChar(const char c)
Renvoie la structure FontChar associée à un caractère donné pour cette font.
Definition font.cpp:91
glm::vec2 GetTextSize(const std::string &text, glm::vec2 scale=glm::vec2(1.0f, 1.0f), float maxWidth=0.0f)
Renvoie la taille d'une chaine de caractère en fonction des paramètres et de la font.
Definition font.cpp:95
Définit un component de base dans le cadre d'un ECS.
Définit des constantes utilisables un peu partout dans le code du moteur.
Definition action.hpp:9
FontChar est une structure qui stocke la data d'un caractère chargé par une font.
Definition font.hpp:21
GLuint textureID
La texture OpenGL associée au caractère chargé
Definition font.hpp:23
glm::ivec2 size
La taille du caractère en largeur/hauteur.
Definition font.hpp:25
glm::ivec2 bearing
Le bearing est la distance parcourue par le caractère "dans le vide".
Definition font.hpp:27
unsigned int advance
La distance que le caractère parcourt dans le sens de la lecture (utile pour calculer la taille d'une...
Definition font.hpp:29