35 lines
589 B
C++
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);
|
|
};
|
|
|
|
}
|