diff --git a/core/src/border.rs b/core/src/border.rs index da0aaa28..cf73284c 100644 --- a/core/src/border.rs +++ b/core/src/border.rs @@ -263,3 +263,16 @@ impl From for [f32; 4] { ] } } + +impl std::ops::Mul for Radius { + type Output = Self; + + fn mul(self, scale: f32) -> Self::Output { + Self { + top_left: self.top_left * scale, + top_right: self.top_right * scale, + bottom_right: self.bottom_right * scale, + bottom_left: self.bottom_left * scale, + } + } +} diff --git a/wgpu/src/layer.rs b/wgpu/src/layer.rs index a7d8b446..1ad709d0 100644 --- a/wgpu/src/layer.rs +++ b/wgpu/src/layer.rs @@ -49,11 +49,14 @@ impl Layer { position: [bounds.x, bounds.y], size: [bounds.width, bounds.height], border_color: color::pack(quad.border.color), - border_radius: quad.border.radius.into(), - border_width: quad.border.width, + border_radius: (quad.border.radius * transformation.scale_factor()) + .into(), + border_width: quad.border.width * transformation.scale_factor(), shadow_color: color::pack(quad.shadow.color), - shadow_offset: quad.shadow.offset.into(), - shadow_blur_radius: quad.shadow.blur_radius, + shadow_offset: (quad.shadow.offset * transformation.scale_factor()) + .into(), + shadow_blur_radius: quad.shadow.blur_radius + * transformation.scale_factor(), snap: quad.snap as u32, };