nngn
Loading...
Searching...
No Matches
font.h
Go to the documentation of this file.
1
5#ifndef NNGN_FONT_H
6#define NNGN_FONT_H
7
8#include <array>
9#include <vector>
10
11#include "math/vec2.h"
12#include "utils/utils.h"
13
14namespace nngn {
15
16struct Graphics;
17
18struct Font {
19 static constexpr size_t N = 128;
20 struct Character {
21 uvec2 size;
23 float advance;
24 };
25 using Characters = std::array<Character, N>;
26 unsigned int size = 0;
27 Characters chars = {};
28};
29
30class Fonts {
31 void *ft = {};
32 std::vector<Font> v = {{}};
33public:
34 Graphics *graphics = nullptr;
36 Fonts(void) = default;
37 ~Fonts(void);
38 bool init(void);
39 size_t n() const { return this->v.size(); }
40 const Font *fonts(void) const { return this->v.data(); }
41 uint32_t add(const Font &f);
42 uint32_t load(unsigned int size, const char *filename);
43};
44
45}
46
47#endif
Definition: font.h:30
Fonts(void)=default
Graphics * graphics
Definition: font.h:34
uint32_t add(const Font &f)
const Font * fonts(void) const
Definition: font.h:40
std::vector< Font > v
Definition: font.h:32
uint32_t load(unsigned int size, const char *filename)
bool init(void)
Definition: font.cpp:154
void * ft
Definition: font.h:31
size_t n() const
Definition: font.h:39
function f()) end
#define NNGN_MOVE_ONLY(x)
Definition: utils.h:39
Definition: audio.cpp:7
vec2_base< std::uint32_t > uvec2
Definition: vec2.h:27
vec2_base< std::int32_t > ivec2
Definition: vec2.h:26
uvec2 size
Definition: font.h:21
ivec2 bearing
Definition: font.h:22
float advance
Definition: font.h:23
Definition: font.h:18
std::array< Character, N > Characters
Definition: font.h:25
Characters chars
Definition: font.h:27
unsigned int size
Definition: font.h:26
static constexpr size_t N
Definition: font.h:19