use crate::sys;
#[derive(Debug, Clone, Copy)]
pub struct Glyph {
pub(crate) raw: sys::ImFontGlyph,
}
impl Glyph {
pub fn from_raw(raw: sys::ImFontGlyph) -> Self {
Self { raw }
}
pub fn codepoint(&self) -> u32 {
self.raw.Codepoint()
}
pub fn visible(&self) -> bool {
self.raw.Visible() != 0
}
pub fn advance_x(&self) -> f32 {
self.raw.AdvanceX
}
pub fn tex_coords(&self) -> ([f32; 2], [f32; 2]) {
([self.raw.U0, self.raw.V0], [self.raw.U1, self.raw.V1])
}
pub fn position_and_size(&self) -> ([f32; 2], [f32; 2]) {
([self.raw.X0, self.raw.Y0], [self.raw.X1, self.raw.Y1])
}
}
impl From<sys::ImFontGlyph> for Glyph {
fn from(raw: sys::ImFontGlyph) -> Self {
Self::from_raw(raw)
}
}