From dcd33d943ec9d7ee41da6bbdad842cfc249d8ce8 Mon Sep 17 00:00:00 2001 From: Alula <6276139+alula@users.noreply.github.com> Date: Sat, 22 Jan 2022 05:07:53 +0100 Subject: [PATCH] Compliant BMFont renderer --- src/bmfont_renderer.rs | 18 +++++++----------- src/builtin/builtin_font.fnt | Bin 92105 -> 92105 bytes src/builtin/builtin_font_0.png | Bin 31136 -> 31135 bytes src/engine_constants/mod.rs | 1 - 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/bmfont_renderer.rs b/src/bmfont_renderer.rs index 18e714c..550d6ea 100644 --- a/src/bmfont_renderer.rs +++ b/src/bmfont_renderer.rs @@ -56,8 +56,7 @@ impl BMFontRenderer { for chr in iter { if let Some(glyph) = self.font.chars.get(&chr) { - offset_x += ((glyph.width as f32 + glyph.xoffset as f32) * constants.font_scale).floor() - + if chr != ' ' { constants.font_scale } else { constants.font_space_offset }; + offset_x += glyph.xadvance as f32 * constants.font_scale; } } @@ -131,16 +130,15 @@ impl BMFontRenderer { for chr in iter { if let Some(glyph) = self.font.chars.get(&chr) { batch.add_rect_scaled_tinted( - offset_x, - y + (glyph.yoffset as f32 * constants.font_scale).floor(), + offset_x + (glyph.xoffset as f32 * constants.font_scale), + y + (glyph.yoffset as f32 * constants.font_scale), color, constants.font_scale, constants.font_scale, &Rect::new_size(glyph.x as u16, glyph.y as u16, glyph.width as u16, glyph.height as u16), ); - offset_x += ((glyph.width as f32 + glyph.xoffset as f32) * constants.font_scale).floor() - + if chr != ' ' { constants.font_scale } else { constants.font_space_offset }; + offset_x += glyph.xadvance as f32 * constants.font_scale; } } @@ -169,8 +167,8 @@ impl BMFontRenderer { for (chr, glyph) in chars.iter() { if glyph.page == page { batch.add_rect_scaled_tinted( - offset_x, - y + (glyph.yoffset as f32 * constants.font_scale).floor(), + offset_x + (glyph.xoffset as f32 * constants.font_scale), + y + (glyph.yoffset as f32 * constants.font_scale), color, constants.font_scale * scale, constants.font_scale * scale, @@ -178,9 +176,7 @@ impl BMFontRenderer { ); } - offset_x += scale - * (((glyph.width as f32 + glyph.xoffset as f32) * constants.font_scale).floor() - + if *chr != ' ' { constants.font_scale } else { constants.font_space_offset }); + offset_x += scale * (glyph.xadvance as f32 * constants.font_scale); } batch.draw(ctx)?; diff --git a/src/builtin/builtin_font.fnt b/src/builtin/builtin_font.fnt index 7f5fae2bd5b7d4e608358d0b5abc110cde1d4e1f..3986e9c134c0490f813c5ebf5175afe00acf7079 100644 GIT binary patch delta 140 zcmX?kp7rE;)(MTAhK&ChnHd-v{!i@s&8WS(jqy1%qw3^5*7J-^lkM278JRX$u@y5i zT5f*FKATg_6snqqfrWvGfq`FCfq~&K!{+&dY)p)zo0kdSXJmT9u(@6I7c-|V%;4rO j$?aW|jNML*vfIUCfaWuOWZ3>co^csFBj@yG>5R$%iZv-C delta 140 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

u}*1Vxqp`PAM-vGOd5b3J)mshgc#037h)FE z&3qrF{}S!%&)<~S_}`!J&;JfY?%(^^EA!vs%l?NVa{psU;3ls8|FbM&=nV*Qmowdi z8~!J=9B^6*E8m|VL5F`%ML1>JZm`Su=lk;?_49uKw6EGbyGCzn00000NkvXXu0mjf DkB!(* diff --git a/src/engine_constants/mod.rs b/src/engine_constants/mod.rs index 259c314..73423e8 100644 --- a/src/engine_constants/mod.rs +++ b/src/engine_constants/mod.rs @@ -1529,7 +1529,6 @@ impl EngineConstants { self.title.logo_rect = Rect { left: 0, top: 0, right: 214, bottom: 50 }; self.font_path = "csfont.fnt".to_owned(); self.font_scale = 0.5; - self.font_space_offset = 3.0; self.soundtracks.insert("Remastered".to_owned(), "/base/Ogg11/".to_owned()); self.soundtracks.insert("New".to_owned(), "/base/Ogg/".to_owned());