diff options
author | Greg Depoire--Ferrer <56923875+greg904@users.noreply.github.com> | 2022-02-16 20:57:46 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-16 20:57:46 +0000 |
commit | a64553bbaf9e058f02d278dfa7104ea96fc58dd8 (patch) | |
tree | d332bd65a6ead6a6f3f0b368db994b1dd50fccac /alacritty/src/renderer/mod.rs | |
parent | ed5dbc11183030367c9a510a9706f6791b54430f (diff) | |
download | r-alacritty-a64553bbaf9e058f02d278dfa7104ea96fc58dd8.tar.gz r-alacritty-a64553bbaf9e058f02d278dfa7104ea96fc58dd8.tar.bz2 r-alacritty-a64553bbaf9e058f02d278dfa7104ea96fc58dd8.zip |
Reuse Rasterizer in Display::new
Instead of creating a `Rasterizer` to guess the window dimensions,
dropping it and then creating a new one for the glyph cache, reuse the
same `Rasterizer`.
This prevents the font from being loaded twice during startup.
Diffstat (limited to 'alacritty/src/renderer/mod.rs')
-rw-r--r-- | alacritty/src/renderer/mod.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/alacritty/src/renderer/mod.rs b/alacritty/src/renderer/mod.rs index ad59a4e1..e7878b6d 100644 --- a/alacritty/src/renderer/mod.rs +++ b/alacritty/src/renderer/mod.rs @@ -404,10 +404,12 @@ impl GlyphCache { } /// Calculate font metrics without access to a glyph cache. - pub fn static_metrics(font: Font, dpr: f64) -> Result<crossfont::Metrics, crossfont::Error> { - let mut rasterizer = crossfont::Rasterizer::new(dpr as f32, font.use_thin_strokes)?; + pub fn static_metrics( + rasterizer: &mut crossfont::Rasterizer, + font: Font, + ) -> Result<crossfont::Metrics, crossfont::Error> { let regular_desc = GlyphCache::make_desc(font.normal(), Slant::Normal, Weight::Normal); - let regular = Self::load_regular_font(&mut rasterizer, ®ular_desc, font.size())?; + let regular = Self::load_regular_font(rasterizer, ®ular_desc, font.size())?; rasterizer.get_glyph(GlyphKey { font_key: regular, character: 'm', size: font.size() })?; rasterizer.metrics(regular, font.size()) |