psemek/libs/ui_legacy/include/psemek/ui/bmfont.hpp

35 lines
589 B
C++

#pragma once
#include <psemek/geom/vector.hpp>
#include <psemek/io/stream.hpp>
#include <string>
#include <unordered_map>
namespace psemek::ui
{
struct bmfont_data
{
struct glyph_data
{
float start_x;
float start_y;
float size_x;
float size_y;
float offset_x;
float offset_y;
float advance;
};
std::string name;
geom::vector<int, 2> size;
int baseline;
std::unordered_map<char32_t, glyph_data> glyphs;
float sdf_scale = 0.f;
// Parse JSON font info generated by BMFont or msdf-bmfont
static bmfont_data parse(io::istream && stream);
};
}