#include "../../include/mglpp/graphics/Font.hpp" #include "../../include/mglpp/graphics/Texture.hpp" #include "../../include/mglpp/system/MemoryMappedFile.hpp" #include namespace mgl { Font::Font() { memset(&font, 0, sizeof(font)); } Font::~Font() { mgl_font_unload(&font); } bool Font::load_from_file(const MemoryMappedFile &mapped_file, unsigned int character_size) { if(font.texture.id) { mgl_font_unload(&font); memset(&font, 0, sizeof(font)); } return mgl_font_load_from_file(&font, mapped_file.internal_mapped_file(), character_size) == 0; } unsigned int Font::get_character_size() const { return font.character_size; } FontGlyph Font::get_glyph(uint32_t codepoint) { FontGlyph font_glyph; mgl_font_get_glyph(&font, codepoint, (mgl_font_glyph*)&font_glyph); return font_glyph; } float Font::get_kerning(uint32_t prev_codepoint, uint32_t codepoint) { return mgl_font_get_kerning(&font, prev_codepoint, codepoint); } int Font::get_ascent() const { return font.ascent; } int Font::get_descent() const { return font.descent; } int Font::get_linegap() const { return font.linegap; } Texture Font::get_texture() const { return Texture::reference(font.texture); } mgl_font* Font::internal_font() { return &font; } }