From 1c2d6d92f95bc4b15545b3db5e11ba3780f26b16 Mon Sep 17 00:00:00 2001 From: Aaron Loucks Date: Sat, 27 Jul 2019 14:52:35 -0400 Subject: [PATCH] Add name to FontConfig --- src/fonts/atlas.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/fonts/atlas.rs b/src/fonts/atlas.rs index 16e57e4..e0e2885 100644 --- a/src/fonts/atlas.rs +++ b/src/fonts/atlas.rs @@ -280,6 +280,7 @@ pub struct FontConfig { pub glyph_max_advance_x: f32, pub rasterizer_flags: u32, pub rasterizer_multiply: f32, + pub name: Option, } impl Default for FontConfig { @@ -296,6 +297,7 @@ impl Default for FontConfig { glyph_max_advance_x: f32::MAX, rasterizer_flags: 0, rasterizer_multiply: 1.0, + name: None, } } } @@ -313,6 +315,17 @@ impl FontConfig { raw.GlyphMaxAdvanceX = self.glyph_max_advance_x; raw.RasterizerFlags = self.rasterizer_flags; raw.RasterizerMultiply = self.rasterizer_multiply; + if let Some(name) = self.name.as_ref() { + let bytes = name.as_bytes(); + let mut len = bytes.len().max(raw.Name.len() - 1); + while !name.is_char_boundary(len) { + len -= 1; + } + unsafe { + bytes.as_ptr().copy_to(raw.Name.as_mut_ptr() as _, len); + raw.Name[len] = 0; + } + } } }