diff options
Diffstat (limited to 'font/src/darwin/mod.rs')
-rw-r--r-- | font/src/darwin/mod.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/font/src/darwin/mod.rs b/font/src/darwin/mod.rs index bdcbbdfa..7f01f57b 100644 --- a/font/src/darwin/mod.rs +++ b/font/src/darwin/mod.rs @@ -148,15 +148,16 @@ impl ::Rasterize for Rasterizer { } fn load_font(&mut self, desc: &FontDesc, size: Size) -> Result<FontKey, Error> { + let scaled_size = Size::new(size.as_f32_pts() * self.device_pixel_ratio); self.keys - .get(&(desc.to_owned(), size)) + .get(&(desc.to_owned(), scaled_size)) .map(|k| Ok(*k)) .unwrap_or_else(|| { let font = self.get_font(desc, size)?; let key = FontKey::next(); self.fonts.insert(key, font); - self.keys.insert((desc.clone(), size), key); + self.keys.insert((desc.clone(), scaled_size), key); Ok(key) }) @@ -184,6 +185,10 @@ impl ::Rasterize for Rasterizer { Err(Error::MissingGlyph(glyph.c)) }) } + + fn update_dpr(&mut self, device_pixel_ratio: f32) { + self.device_pixel_ratio = device_pixel_ratio; + } } impl Rasterizer { |