From a14d86012acdb2eade016465c3ac67c6f00cb25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sun, 2 Aug 2026 12:00:40 +0200 Subject: [PATCH] Finally debugged and fixed cleanup error in Font --- GlitchyEngine/src/Renderer/Text/Font.bf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/GlitchyEngine/src/Renderer/Text/Font.bf b/GlitchyEngine/src/Renderer/Text/Font.bf index d8be272..26a91ab 100644 --- a/GlitchyEngine/src/Renderer/Text/Font.bf +++ b/GlitchyEngine/src/Renderer/Text/Font.bf @@ -51,10 +51,8 @@ namespace GlitchyEngine.Renderer.Text public Padding boxOuterPadding; } - // TODO: I don't understand why freeing the face and hb_font sometimes results in an access violation... - internal FT_Face _face;// ~ FreeType.Done_Face(_face);//TODO!: ~ FreeType.Done_Face(_face); - internal hb_font_t* _harfBuzzFont;// ~ hb_font_destroy(_);//TODO:!! ~ hb_font_destroy(_); - internal hb_face_t* _harfBuzzFace;// ~ hb_face_destroy(_);//TODO:!! ~ hb_font_destroy(_); + internal FT_Face _face ~ FreeType.Done_Face(_face); + internal hb_font_t* _harfBuzzFont ~ hb_font_destroy(_); private Font _fallback ~ _?.ReleaseRef(); @@ -172,9 +170,8 @@ namespace GlitchyEngine.Renderer.Text Debug.Profiler.ProfileResourceScope!("hb_ft_font_create_referenced"); _harfBuzzFont = hb_ft_font_create_referenced(_face); - _harfBuzzFace = hb_font_get_face(_harfBuzzFont); - _unitsPerEm = hb_face_get_upem(_harfBuzzFace); + _unitsPerEm = hb_face_get_upem(hb_font_get_face(_harfBuzzFont)); hb_font_set_scale(_harfBuzzFont, (.)_unitsPerEm, (.)_unitsPerEm); }