aboutsummaryrefslogtreecommitdiff
path: root/src/graphics/Font.cpp
blob: ae87625c7fbfea21a0d3d2754ee09d862a4d5216 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "../../include/mglpp/graphics/Font.hpp"
#include "../../include/mglpp/graphics/Texture.hpp"
#include <string.h>

namespace mgl {
    Font::Font() {
        memset(&font, 0, sizeof(font));
    }

    Font::~Font() {
        mgl_font_unload(&font);
    }

    bool Font::load_from_file(const char *filepath, unsigned int character_size) {
        if(font.texture.id)
            return false;
        return mgl_font_load_from_file(&font, filepath, character_size) == 0;
    }

    unsigned int Font::get_character_size() const {
        return font.character_size;
    }

    FontGlyph Font::get_glyph(uint32_t codepoint) const {
        FontGlyph font_glyph;
        if(font.texture.id == 0)
            return font_glyph;

        mgl_font_get_glyph(&font, codepoint, (mgl_font_glyph*)&font_glyph);
        return font_glyph;
    }

    Texture Font::get_texture() const {
        if(font.texture.id == 0)
            return Texture();
        return Texture::reference(font.texture);
    }

    mgl_font* Font::internal_font() {
        return &font;
    }
}