diff options
Diffstat (limited to 'tiny_skia/src')
| -rw-r--r-- | tiny_skia/src/backend.rs | 5 | ||||
| -rw-r--r-- | tiny_skia/src/text.rs | 21 | 
2 files changed, 11 insertions, 15 deletions
diff --git a/tiny_skia/src/backend.rs b/tiny_skia/src/backend.rs index c721d96e..72184c8a 100644 --- a/tiny_skia/src/backend.rs +++ b/tiny_skia/src/backend.rs @@ -1,6 +1,5 @@  use crate::core::{Background, Color, Gradient, Rectangle, Vector};  use crate::graphics::backend; -use crate::graphics::text;  use crate::graphics::{Damage, Viewport};  use crate::primitive::{self, Primitive}; @@ -805,10 +804,6 @@ impl iced_graphics::Backend for Backend {  }  impl backend::Text for Backend { -    fn font_system(&self) -> &text::FontSystem { -        self.text_pipeline.font_system() -    } -      fn load_font(&mut self, font: Cow<'static, [u8]>) {          self.text_pipeline.load_font(font);      } diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs index cb3ef54c..4f6e3941 100644 --- a/tiny_skia/src/text.rs +++ b/tiny_skia/src/text.rs @@ -2,8 +2,8 @@ use crate::core::alignment;  use crate::core::text::{LineHeight, Shaping};  use crate::core::{Color, Font, Pixels, Point, Rectangle};  use crate::graphics::text::cache::{self, Cache}; +use crate::graphics::text::font_system;  use crate::graphics::text::paragraph; -use crate::graphics::text::FontSystem;  use rustc_hash::{FxHashMap, FxHashSet};  use std::borrow::Cow; @@ -12,7 +12,6 @@ use std::collections::hash_map;  #[allow(missing_debug_implementations)]  pub struct Pipeline { -    font_system: FontSystem,      glyph_cache: GlyphCache,      cache: RefCell<Cache>,  } @@ -20,18 +19,16 @@ pub struct Pipeline {  impl Pipeline {      pub fn new() -> Self {          Pipeline { -            font_system: FontSystem::new(),              glyph_cache: GlyphCache::new(),              cache: RefCell::new(Cache::new()),          }      } -    pub fn font_system(&self) -> &FontSystem { -        &self.font_system -    } -      pub fn load_font(&mut self, bytes: Cow<'static, [u8]>) { -        self.font_system.load_font(bytes); +        font_system() +            .write() +            .expect("Write font system") +            .load_font(bytes);          self.cache = RefCell::new(Cache::new());      } @@ -51,8 +48,10 @@ impl Pipeline {              return;          }; +        let mut font_system = font_system().write().expect("Write font system"); +          draw( -            self.font_system.get_mut(), +            font_system.raw(),              &mut self.glyph_cache,              paragraph.buffer(),              Rectangle::new(position, paragraph.min_bounds()), @@ -82,7 +81,9 @@ impl Pipeline {      ) {          let line_height = f32::from(line_height.to_absolute(size)); -        let font_system = self.font_system.get_mut(); +        let mut font_system = font_system().write().expect("Write font system"); +        let font_system = font_system.raw(); +          let key = cache::Key {              bounds: bounds.size(),              content,  | 
