From c4a972aa7b2262718c4f28c952d5eb2b2da0f71d Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Wed, 22 Feb 2017 15:41:57 +1000 Subject: [PATCH] Update WR (inset box shadow fix, border-image support). I have a follow up PR for Servo that uses the new border-image APIs, but I'll land that separately, so that we don't delay landing the WR update itself. --- Cargo.lock | 50 +++++++++++++------------- components/layout/webrender_helpers.rs | 24 ++++++++----- 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ee6cb8a9890..8b21cb2038cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -283,7 +283,7 @@ dependencies = [ "num-traits 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -297,7 +297,7 @@ dependencies = [ "ipc-channel 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -418,8 +418,8 @@ dependencies = [ "servo_url 0.0.1", "style_traits 0.0.1", "time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender 0.17.0 (git+https://github.com/servo/webrender)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender 0.18.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -452,7 +452,7 @@ dependencies = [ "servo_remutex 0.0.1", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -672,7 +672,7 @@ dependencies = [ "servo_geometry 0.0.1", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -958,7 +958,7 @@ dependencies = [ "time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", "truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1037,7 +1037,7 @@ dependencies = [ "servo_url 0.0.1", "style_traits 0.0.1", "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1338,7 +1338,7 @@ dependencies = [ "style_traits 0.0.1", "unicode-bidi 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1378,7 +1378,7 @@ dependencies = [ "servo_geometry 0.0.1", "servo_url 0.0.1", "style 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1392,7 +1392,7 @@ dependencies = [ "profile_traits 0.0.1", "script_traits 0.0.1", "servo_url 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1477,8 +1477,8 @@ dependencies = [ "style 0.0.1", "style_traits 0.0.1", "webdriver_server 0.0.1", - "webrender 0.17.0 (git+https://github.com/servo/webrender)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender 0.18.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "webvr 0.0.1", "webvr_traits 0.0.1", ] @@ -1625,7 +1625,7 @@ dependencies = [ "heapsize_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1660,7 +1660,7 @@ dependencies = [ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1719,7 +1719,7 @@ dependencies = [ "servo_url 0.0.1", "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2251,7 +2251,7 @@ dependencies = [ "tinyfiledialogs 2.5.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "webvr 0.0.1", "webvr_traits 0.0.1", @@ -3160,8 +3160,8 @@ dependencies = [ [[package]] name = "webrender" -version = "0.17.0" -source = "git+https://github.com/servo/webrender#4221987984718bfc6312f92df9501d8fd7a88ea8" +version = "0.18.0" +source = "git+https://github.com/servo/webrender#e41f1413222d0b9f594649ac993a3e9e0ba35cbe" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0-alpha2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3183,13 +3183,13 @@ dependencies = [ "thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", ] [[package]] name = "webrender_traits" -version = "0.16.0" -source = "git+https://github.com/servo/webrender#4221987984718bfc6312f92df9501d8fd7a88ea8" +version = "0.18.0" +source = "git+https://github.com/servo/webrender#e41f1413222d0b9f594649ac993a3e9e0ba35cbe" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3229,7 +3229,7 @@ dependencies = [ "msg 0.0.1", "script_traits 0.0.1", "servo_config 0.0.1", - "webrender_traits 0.16.0 (git+https://github.com/servo/webrender)", + "webrender_traits 0.18.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -3569,8 +3569,8 @@ dependencies = [ "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" "checksum webdriver 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cdc28802daddee94267a657ffeac2593a33881fb7a3a44fedd320b1319efcaf6" -"checksum webrender 0.17.0 (git+https://github.com/servo/webrender)" = "" -"checksum webrender_traits 0.16.0 (git+https://github.com/servo/webrender)" = "" +"checksum webrender 0.18.0 (git+https://github.com/servo/webrender)" = "" +"checksum webrender_traits 0.18.0 (git+https://github.com/servo/webrender)" = "" "checksum websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a1a6ea5ed0367f32eb3d94dcc58859ef4294b5f75ba983dbf56ac314af45d" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/components/layout/webrender_helpers.rs b/components/layout/webrender_helpers.rs index 665916594fd9..de50d3d0e7ec 100644 --- a/components/layout/webrender_helpers.rs +++ b/components/layout/webrender_helpers.rs @@ -270,35 +270,41 @@ impl WebRenderDisplayItemConverter for DisplayItem { } DisplayItem::Border(ref item) => { let rect = item.base.bounds.to_rectf(); + let widths = webrender_traits::BorderWidths { + left: item.border_widths.left.to_f32_px(), + top: item.border_widths.top.to_f32_px(), + right: item.border_widths.right.to_f32_px(), + bottom: item.border_widths.bottom.to_f32_px(), + }; let left = webrender_traits::BorderSide { - width: item.border_widths.left.to_f32_px(), color: item.color.left, style: item.style.left.to_border_style(), }; let top = webrender_traits::BorderSide { - width: item.border_widths.top.to_f32_px(), color: item.color.top, style: item.style.top.to_border_style(), }; let right = webrender_traits::BorderSide { - width: item.border_widths.right.to_f32_px(), color: item.color.right, style: item.style.right.to_border_style(), }; let bottom = webrender_traits::BorderSide { - width: item.border_widths.bottom.to_f32_px(), color: item.color.bottom, style: item.style.bottom.to_border_style(), }; let radius = item.radius.to_border_radius(); let clip = item.base.clip.to_clip_region(builder); + let details = webrender_traits::NormalBorder { + left: left, + top: top, + right: right, + bottom: bottom, + radius: radius, + }; builder.push_border(rect, clip, - left, - top, - right, - bottom, - radius); + widths, + webrender_traits::BorderDetails::Normal(details)); } DisplayItem::Gradient(ref item) => { let rect = item.base.bounds.to_rectf();