From d297a6a48a87d2c63266be21993dca1e61f2b4f5 Mon Sep 17 00:00:00 2001 From: Edgar Geier Date: Tue, 14 Mar 2023 00:39:50 +0100 Subject: [PATCH] Call `get_font` lazily --- src/font/fallback/mod.rs | 96 +++++++++++++++++++++++++-------------- src/font/mod.rs | 52 ++++++--------------- src/font/system/no_std.rs | 20 ++++---- src/font/system/std.rs | 10 ++-- src/shape.rs | 18 ++++---- 5 files changed, 97 insertions(+), 99 deletions(-) diff --git a/src/font/fallback/mod.rs b/src/font/fallback/mod.rs index 5cbeb8f..410dfac 100644 --- a/src/font/fallback/mod.rs +++ b/src/font/fallback/mod.rs @@ -3,9 +3,10 @@ use alloc::sync::Arc; #[cfg(not(feature = "std"))] use alloc::vec::Vec; +use fontdb::Family; use unicode_script::Script; -use crate::Font; +use crate::{Font, FontSystem}; use self::platform::*; @@ -26,11 +27,11 @@ mod platform; mod platform; pub struct FontFallbackIter<'a> { - fonts: &'a [Arc], - default_families: &'a [&'a str], + font_system: &'a mut FontSystem, + font_ids: &'a [fontdb::ID], + default_families: &'a [&'a Family<'a>], default_i: usize, scripts: Vec