use crate::fonts::atlas::FontAtlasLoaderError;
use crate::fonts::atlas::loader::{FontLoader, FontLoaderFlags};
use crate::sys;
use super::FontAtlas;
impl FontAtlas {
pub fn set_font_loader(&self, loader: &'static FontLoader) -> Result<(), FontAtlasLoaderError> {
self.assert_mutation_allowed("FontAtlas::set_font_loader()");
let source_count = unsafe { (*self.raw()).Sources.Size };
assert!(
source_count >= 0,
"FontAtlas::set_font_loader() observed a negative native source count"
);
if source_count != 0 {
return Err(FontAtlasLoaderError::SourcesAlreadyAdded {
source_count: source_count as usize,
});
}
unsafe {
sys::ImFontAtlas_SetFontLoader(self.raw(), loader.as_ptr());
}
Ok(())
}
pub fn set_font_loader_flags(&self, flags: FontLoaderFlags) {
self.assert_mutation_allowed("FontAtlas::set_font_loader_flags()");
unsafe {
(*self.raw()).FontLoaderFlags = flags.0;
}
}
pub fn font_loader_flags(&self) -> FontLoaderFlags {
unsafe { FontLoaderFlags((*self.raw()).FontLoaderFlags) }
}
}