pub struct FontManager { /* private fields */ }Implementations§
Source§impl FontManager
impl FontManager
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new FontManager instance.
This will search for system fonts and cache them. It will also initialize an empty cache for loaded fonts.
Sourcepub fn load_font(
&mut self,
font_name: &str,
glyph_range: Option<&[(u32, u32)]>,
size: f32,
) -> Option<Font>
pub fn load_font( &mut self, font_name: &str, glyph_range: Option<&[(u32, u32)]>, size: f32, ) -> Option<Font>
Loads a font by name and size, optionally specifying a glyph range.
If the font is already cached, it will return the cached version.
If the font is not found, it will return None.
Examples found in repository?
examples/font.rs (line 20)
5fn main() {
6 let mut runner = est_render::runner::new().expect("Failed to create runner");
7
8 let mut window = runner
9 .create_window("Font Example", Point2::new(800, 600))
10 .build()
11 .expect("Failed to create window");
12
13 let mut gpu = est_render::gpu::new(Some(&mut window))
14 .build()
15 .expect("Failed to create GPU");
16
17 let mut font_manager = est_render::font::new();
18
19 let font = font_manager
20 .load_font("Arial", None, 20.0)
21 .expect("Failed to load font");
22
23 // Generate baked text texture
24 let texture = font
25 .create_baked_text(&mut gpu, "Hello, World!\nThis is a clear color example.")
26 .expect("Failed to create baked text");
27
28 while runner.pool_events(None) {
29 for event in runner.get_events() {
30 match event {
31 Event::WindowClosed { .. } => {
32 return;
33 }
34 _ => {}
35 }
36 }
37
38 if let Ok(mut cmd) = gpu.begin_command() {
39 if let Ok(mut gp) = cmd.begin_renderpass() {
40 gp.set_clear_color(Color::BLUE);
41
42 // The best texture blend for font rendering, others may has artifacts like black borders
43 gp.set_blend(0, Some(&BlendState::ADDITIVE_BLEND));
44
45 if let Some(mut drawing) = gp.begin_drawing() {
46 let size: Vector2 = texture.size().into();
47
48 // Baked text rendering
49 drawing.set_texture(Some(&texture));
50 drawing.draw_rect_image(Vector2::new(0.0, 0.0), size, Color::WHITE);
51
52 // Online text rendering
53 drawing.set_font(&font);
54 drawing.draw_text(
55 "Hello, World!\nThis is a clear color example.",
56 Vector2::new(size.x, 0.0),
57 Color::WHITE,
58 );
59 }
60 }
61 }
62 }
63}Sourcepub fn load_font_cached(&mut self, path: &str) -> Option<Font>
pub fn load_font_cached(&mut self, path: &str) -> Option<Font>
Loads a font from a cached file.
This will load the font from a binary file created by Font::save_font_cache. If the font is already cached, it will return the cached version.
Trait Implementations§
Source§impl Clone for FontManager
impl Clone for FontManager
Source§fn clone(&self) -> FontManager
fn clone(&self) -> FontManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FontManager
impl !RefUnwindSafe for FontManager
impl !Send for FontManager
impl !Sync for FontManager
impl Unpin for FontManager
impl !UnwindSafe for FontManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more