eliminate font fudge factors; fix size units in freetype backend; fix directory iteration lack-of-robustness-to-failed-dir-open

This commit is contained in:
Ryan Fleury
2025-05-11 13:27:59 -07:00
parent 6df96b7eef
commit 8b3f07c7b5
4 changed files with 6 additions and 7 deletions
@@ -525,14 +525,13 @@ fp_raster(Arena *arena, FP_Handle font_handle, F32 size, FP_RasterFlags flags, S
}
//- rjf: draw glyph run
Vec2F32 draw_p = {0, (F32)atlas_dim.y - 1};
Vec2F32 draw_p = {0, (F32)atlas_dim.y};
if(font.face != 0)
{
F32 descent = round_f32((96.f/72.f)*size * font_metrics.descent / design_units_per_em);
F32 line_gap = round_f32((96.f/72.f)*size * font_metrics.lineGap / design_units_per_em);
draw_p.y -= descent;
draw_p.y -= line_gap;
draw_p.y += 1;
}
DWRITE_GLYPH_RUN glyph_run = {0};
if(font.face != 0)
@@ -68,11 +68,11 @@ fp_metrics_from_font(FP_Handle handle)
FP_Metrics result = {0};
if(font.face != 0)
{
result.design_units_per_em = (F32)font.face->units_per_EM;
result.design_units_per_em = (F32)(font.face->units_per_EM * 72.f/96.f);
result.ascent = (F32)font.face->ascender;
result.descent = (F32)font.face->descender;
result.line_gap = (F32)(font.face->height - font.face->ascender + font.face->descender);
result.capital_height = (F32)(font.face->ascender + font.face->descender);
result.capital_height = (F32)(font.face->ascender);
}
return result;
}
@@ -89,7 +89,7 @@ fp_raster(Arena *arena, FP_Handle handle, F32 size, FP_RasterFlags flags, String
//- rjf: unpack font
FT_Face face = font.face;
FT_Set_Pixel_Sizes(face, 0, (FT_UInt)size);
FT_Set_Pixel_Sizes(face, 0, (FT_UInt)((96.f/72.f) * size));
S64 ascent = face->size->metrics.ascender >> 6;
S64 descent = abs_s64(face->size->metrics.descender >> 6);
S64 height = face->size->metrics.height >> 6;