Auto merge of #18956 - glennw:update-wr-ellipse-bs, r=jdm

Update WR (box shadows + per-corner radii, elliptical clips).

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18956)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-10-20 16:47:30 -05:00 committed by GitHub
commit d6042707a6
5 changed files with 12 additions and 15 deletions

View file

@ -71,8 +71,8 @@ use style_traits::CSSPixel;
use style_traits::ToCss;
use style_traits::cursor::Cursor;
use table_cell::CollapsedBordersForCell;
use webrender_api::{ClipAndScrollInfo, ClipId, ColorF, ComplexClipRegion, GradientStop, LineStyle};
use webrender_api::{LocalClip, RepeatMode, ScrollPolicy, ScrollSensitivity, StickyFrameInfo};
use webrender_api::{ClipAndScrollInfo, ClipId, ClipMode, ColorF, ComplexClipRegion, GradientStop};
use webrender_api::{LineStyle, LocalClip, RepeatMode, ScrollPolicy, ScrollSensitivity, StickyFrameInfo};
use webrender_api::StickySideConstraint;
use webrender_helpers::{ToBorderRadius, ToMixBlendMode, ToRectF, ToTransformStyle};
@ -979,6 +979,7 @@ impl FragmentDisplayListBuilding for Fragment {
LocalClip::RoundedRect(bounds.to_rectf(), ComplexClipRegion::new(
bounds.to_rectf(),
border_radii.to_border_radius(),
ClipMode::Clip,
))
} else {
LocalClip::Rect(bounds.to_rectf())
@ -1478,6 +1479,7 @@ impl FragmentDisplayListBuilding for Fragment {
self.node,
style.get_cursor(Cursor::Default),
display_list_section);
let border_radius = build_border_radius(absolute_bounds, style.get_border());
state.add_display_item(DisplayItem::BoxShadow(Box::new(BoxShadowDisplayItem {
base: base,
box_bounds: *absolute_bounds,
@ -1486,9 +1488,7 @@ impl FragmentDisplayListBuilding for Fragment {
Au::from(box_shadow.base.vertical)),
blur_radius: Au::from(box_shadow.base.blur),
spread_radius: Au::from(box_shadow.spread),
border_radius: model::specified_border_radius(style.get_border()
.border_top_left_radius,
absolute_bounds.size).width,
border_radius,
clip_mode: if box_shadow.inset {
BoxShadowClipMode::Inset
} else {
@ -2010,6 +2010,7 @@ impl FragmentDisplayListBuilding for Fragment {
stacking_relative_border_box.to_rectf(),
ComplexClipRegion::new(stacking_relative_content_box.to_rectf(),
radii.to_border_radius(),
ClipMode::Clip,
))
} else {
LocalClip::Rect(stacking_relative_border_box.to_rectf())