Support floating-point glyph coordinates
This commit is contained in:
parent
1582b341d3
commit
a2922708e8
2 changed files with 16 additions and 15 deletions
|
|
@ -13,13 +13,13 @@ namespace psemek::ui
|
|||
{
|
||||
struct glyph_data
|
||||
{
|
||||
int start_x;
|
||||
int start_y;
|
||||
int size_x;
|
||||
int size_y;
|
||||
int offset_x;
|
||||
int offset_y;
|
||||
int advance;
|
||||
float start_x;
|
||||
float start_y;
|
||||
float size_x;
|
||||
float size_y;
|
||||
float offset_x;
|
||||
float offset_y;
|
||||
float advance;
|
||||
};
|
||||
|
||||
std::string name;
|
||||
|
|
@ -28,6 +28,7 @@ namespace psemek::ui
|
|||
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);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ namespace psemek::ui
|
|||
|
||||
{
|
||||
auto const & sdf = document["common"];
|
||||
result.baseline = sdf["base"].GetInt();
|
||||
result.baseline = sdf["base"].GetFloat();
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -84,13 +84,13 @@ namespace psemek::ui
|
|||
char32_t id = charInfo["id"].GetUint();
|
||||
|
||||
auto & data = result.glyphs[id];
|
||||
data.start_x = charInfo["x"].GetInt();
|
||||
data.start_y = charInfo["y"].GetInt();
|
||||
data.size_x = charInfo["width"].GetInt();
|
||||
data.size_y = charInfo["height"].GetInt();
|
||||
data.offset_x = charInfo["xoffset"].GetInt();
|
||||
data.offset_y = charInfo["yoffset"].GetInt();
|
||||
data.advance = charInfo["xadvance"].GetInt();
|
||||
data.start_x = charInfo["x"].GetFloat();
|
||||
data.start_y = charInfo["y"].GetFloat();
|
||||
data.size_x = charInfo["width"].GetFloat();
|
||||
data.size_y = charInfo["height"].GetFloat();
|
||||
data.offset_x = charInfo["xoffset"].GetFloat();
|
||||
data.offset_y = charInfo["yoffset"].GetFloat();
|
||||
data.advance = charInfo["xadvance"].GetFloat();
|
||||
|
||||
data.offset_y = - data.offset_y - data.size_y;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue