diff --git a/crates/gpui/src/elements/img.rs b/crates/gpui/src/elements/img.rs index 2ce63d7e30f9c22bff7b50f7cf9e0c5062133814..961429b826c56c99f20428ea2ffd2bd169bb7049 100644 --- a/crates/gpui/src/elements/img.rs +++ b/crates/gpui/src/elements/img.rs @@ -3,7 +3,6 @@ use crate::{ DefiniteLength, Element, ElementId, GlobalElementId, Hitbox, Image, InteractiveElement, Interactivity, IntoElement, LayoutId, Length, ObjectFit, Pixels, RenderImage, Resource, SharedString, SharedUri, StyleRefinement, Styled, SvgSize, Task, Window, - SMOOTH_SVG_SCALE_FACTOR, }; use anyhow::{anyhow, Result}; @@ -611,7 +610,7 @@ impl Asset for ImageAssetLoader { } else { let pixmap = // TODO: Can we make svgs always rescale? - svg_renderer.render_pixmap(&bytes, SvgSize::ScaleFactor(SMOOTH_SVG_SCALE_FACTOR))?; + svg_renderer.render_pixmap(&bytes, SvgSize::ScaleFactor(1.0))?; let mut buffer = ImageBuffer::from_raw(pixmap.width(), pixmap.height(), pixmap.take()).unwrap(); diff --git a/crates/gpui/src/svg_renderer.rs b/crates/gpui/src/svg_renderer.rs index 306f8ed6518157f9bc6de6721da94e9befaaac6c..f99880ec5e31cc947047f8027ae73f590571fd55 100644 --- a/crates/gpui/src/svg_renderer.rs +++ b/crates/gpui/src/svg_renderer.rs @@ -3,9 +3,6 @@ use anyhow::anyhow; use resvg::tiny_skia::Pixmap; use std::{hash::Hash, sync::Arc}; -/// When rendering SVGs, we render them at twice the size to get a higher-quality result. -pub const SMOOTH_SVG_SCALE_FACTOR: f32 = 2.; - #[derive(Clone, PartialEq, Hash, Eq)] pub(crate) struct RenderSvgParams { pub(crate) path: SharedString, diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 1e9f6dd75e8f6648fbb74973f4e43d4fbd72ec39..e522ea85957b9f64193c937e65d5160f5ad39d31 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -13,7 +13,7 @@ use crate::{ Subscription, TaffyLayoutEngine, Task, TextStyle, TextStyleRefinement, TransformationMatrix, Underline, UnderlineStyle, WindowAppearance, WindowBackgroundAppearance, WindowBounds, WindowControls, WindowDecorations, WindowOptions, WindowParams, WindowTextSystem, - SMOOTH_SVG_SCALE_FACTOR, SUBPIXEL_VARIANTS, + SUBPIXEL_VARIANTS, }; use anyhow::{anyhow, Context as _, Result}; use collections::{FxHashMap, FxHashSet}; @@ -2553,11 +2553,12 @@ impl Window { let element_opacity = self.element_opacity(); let scale_factor = self.scale_factor(); let bounds = bounds.scale(scale_factor); + // Render the SVG at twice the size to get a higher quality result. let params = RenderSvgParams { path, - size: bounds.size.map(|pixels| { - DevicePixels::from((pixels.0 * SMOOTH_SVG_SCALE_FACTOR).ceil() as i32) - }), + size: bounds + .size + .map(|pixels| DevicePixels::from((pixels.0 * 2.).ceil() as i32)), }; let Some(tile) =