diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-09-30 13:18:42 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-09-30 13:18:42 +0200 |
| commit | 7143e10afccc7beef22646f6c7355075f97afb2c (patch) | |
| tree | 6713e1c732fb47ec3ef439f0b90df489398df201 /tests | |
| parent | ee11f871756b1a17cf34b3ed5549eaddddc70f5e (diff) | |
Streamline font handling a bit 📜
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_typeset.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/tests/test_typeset.rs b/tests/test_typeset.rs index c7f4cd5d..e9051d10 100644 --- a/tests/test_typeset.rs +++ b/tests/test_typeset.rs @@ -7,13 +7,12 @@ use std::path::Path; use std::rc::Rc; use fontdock::fs::{FsIndex, FsProvider}; -use fontdock::FontLoader; use futures_executor::block_on; use raqote::{DrawTarget, PathBuilder, SolidSource, Source, Transform, Vector}; use ttf_parser::OutlineBuilder; use typstc::export::pdf; -use typstc::font::{DynProvider, SharedFontLoader}; +use typstc::font::{FontLoader, SharedFontLoader}; use typstc::geom::{Size, Value4}; use typstc::layout::elements::{LayoutElement, Shaped}; use typstc::layout::MultiLayout; @@ -60,13 +59,12 @@ fn main() { let mut index = FsIndex::new(); index.search_dir(FONT_DIR); - let (descriptors, files) = index.clone().into_vecs(); - let provider = FsProvider::new(files.clone()); - let dynamic = Box::new(provider) as Box<DynProvider>; - let loader = FontLoader::new(dynamic, descriptors); + let (descriptors, files) = index.into_vecs(); + let provider = FsProvider::new(files); + let loader = FontLoader::new(Box::new(provider), descriptors); let loader = Rc::new(RefCell::new(loader)); - let mut typesetter = Typesetter::new(loader.clone()); + let mut typesetter = Typesetter::new(loader.clone()); typesetter.set_page_style(PageStyle { class: PaperClass::Custom, size: Size::with_all(Length::pt(250.0).as_raw()), @@ -106,6 +104,8 @@ fn test( ); } + let loader = loader.borrow(); + let png_path = format!("{}/{}.png", OUT_DIR, name); render(&layouts, &loader, 3.0).write_png(png_path).unwrap(); @@ -144,7 +144,7 @@ impl TestFilter { } } -fn render(layouts: &MultiLayout, loader: &SharedFontLoader, scale: f64) -> DrawTarget { +fn render(layouts: &MultiLayout, loader: &FontLoader, scale: f64) -> DrawTarget { let pad = scale * 10.0; let width = 2.0 * pad + layouts @@ -191,13 +191,12 @@ fn render(layouts: &MultiLayout, loader: &SharedFontLoader, scale: f64) -> DrawT fn render_shaped( surface: &mut DrawTarget, - loader: &SharedFontLoader, + loader: &FontLoader, shaped: &Shaped, pos: Size, scale: f64, ) { - let loader = loader.borrow(); - let face = loader.get_loaded(shaped.face); + let face = loader.get_loaded(shaped.face).get(); for (&glyph, &offset) in shaped.glyphs.iter().zip(&shaped.offsets) { let mut builder = WrappedPathBuilder(PathBuilder::new()); |
