diff options
Diffstat (limited to 'components/layout/webrender_helpers.rs')
-rw-r--r-- | components/layout/webrender_helpers.rs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/components/layout/webrender_helpers.rs b/components/layout/webrender_helpers.rs index eca0837d6a8..cd450bd273e 100644 --- a/components/layout/webrender_helpers.rs +++ b/components/layout/webrender_helpers.rs @@ -353,15 +353,35 @@ impl WebRenderDisplayItemConverter for DisplayItem { } } BorderDetails::Gradient(ref gradient) => { + let extend_mode = if gradient.gradient.repeating { + ExtendMode::Repeat + } else { + ExtendMode::Clamp + }; webrender_traits::BorderDetails::Gradient(webrender_traits::GradientBorder { gradient: builder.create_gradient( gradient.gradient.start_point.to_pointf(), gradient.gradient.end_point.to_pointf(), gradient.gradient.stops.clone(), - ExtendMode::Clamp), + extend_mode), outset: gradient.outset, }) } + BorderDetails::RadialGradient(ref gradient) => { + let extend_mode = if gradient.gradient.repeating { + ExtendMode::Repeat + } else { + ExtendMode::Clamp + }; + webrender_traits::BorderDetails::RadialGradient(webrender_traits::RadialGradientBorder { + gradient: builder.create_radial_gradient( + gradient.gradient.center.to_pointf(), + gradient.gradient.radius.to_sizef(), + gradient.gradient.stops.clone(), + extend_mode), + outset: gradient.outset, + }) + } }; builder.push_border(rect, clip, widths, details); |