aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/webrender_helpers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/webrender_helpers.rs')
-rw-r--r--components/layout/webrender_helpers.rs22
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);